ホームページ >バックエンド開発 >Python チュートリアル >独自の言語モデルを構築する: Python と NumPy を使用した簡単なガイド

独自の言語モデルを構築する: Python と NumPy を使用した簡単なガイド

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-19 08:10:30903ブラウズ

Build Your Own Language Model: A Simple Guide with Python and NumPy

今日、人工知能はどこにでもあり、言語モデルはその大きな部分を占めています。 ChatGPT が導入されたとき、AI が文内の次の単語をどのように予測したり、段落全体を記述したりできるのか疑問に思ったかもしれません。このチュートリアルでは、TensorFlow や PyTorch などの派手なフレームワークに依存せず、単純な Python と NumPy だけで非常にシンプルな言語モデルを構築します。

チュートリアルを始める前に、大規模言語モデル (LLM) とは何かについて説明します。

  • LLM は、人間の言語を理解して生成するために、大量のテキスト データでトレーニングされた AI モデルです。
  • これらの LLM は、質問に答えたり、エッセイを書いたり、会話をしたりするなどのタスクを実行できます。基本的に、LLM は、前の単語に基づいてシーケンス内の次の単語を予測します。

このチュートリアルでは、これのより単純なバージョンであるバイグラム モデルを作成して

素敵ですね?始めましょう!?

私たちが構築しているもの:

バイグラム モデルを作成します。これにより、言語モデルがどのように機能するかについての基本的なアイデアが得られます。現在の単語に基づいて文内の次の単語を予測します。あまり詳細に埋もれることなく、物事がどのように機能するかを学べるように、わかりやすくわかりやすく説明します。??


ステップ 1: セットアップ

始める前に、Python と NumPy の準備ができていることを確認しましょう。 NumPy がインストールされていない場合は、次のコマンドを使用してすぐにインストールしてください。

pip install numpy

ステップ 2: 基本を理解する

言語モデルは文内の次の単語を予測します。物事を単純にしてバイグラム モデルを構築します。これは、モデルが現在の単語のみを使用して次の単語を予測することを意味します。

モデルをトレーニングするための短いテキストから始めます。以下に使用する小さなサンプルを示します:

import numpy as np

# Sample dataset: A small text corpus
corpus = """Artificial Intelligence is the new electricity.
Machine learning is the future of AI.
AI is transforming industries and shaping the future."""

ステップ 3: テキストの準備

まず最初に、このテキストを個々の単語に分割し、語彙 (基本的にすべての一意の単語のリスト) を作成する必要があります。これにより、作業対象が得られます。

# Tokenize the corpus into words
words = corpus.lower().split()

# Create a vocabulary of unique words
vocab = list(set(words))
vocab_size = len(vocab)

print(f"Vocabulary: {vocab}")
print(f"Vocabulary size: {vocab_size}")

ここでは、テキストを小文字に変換して単語に分割しています。その後、語彙として機能する固有の単語のリストを作成します。

ステップ 4: 単語を数字にマッピングする

コンピュータは言葉ではなく数字を扱います。そこで、各単語をインデックスにマッピングし、逆マッピングも作成します (これは、後で単語に変換し直すときに役立ちます)。

word_to_idx = {word: idx for idx, word in enumerate(vocab)}
idx_to_word = {idx: word for word, idx in word_to_idx.items()}

# Convert the words in the corpus to indices
corpus_indices = [word_to_idx[word] for word in words]

基本的に、単語をモデルが理解できる数値に変換しているだけです。 「AI」は 0、「学習」は 1 になるなど、順序によって単語ごとに番号が付けられます。

ステップ 5: モデルの構築

それでは、本題のバイグラム モデルの構築に移りましょう。ある単語が別の単語に続く確率を計算したいと考えています。そのために、各単語ペア (バイグラム) がデータセット内に出現する頻度を数えます。

pip install numpy

何が起こっているかは次のとおりです:

各単語が別の単語の後にどのくらいの頻度で続くかを数えています (これがバイグラムです)。
次に、それらのカウントを正規化して確率に変換します。
簡単に言うと、これは、「AI」の後に「is」が頻繁に続く場合、そのペアの確率が高くなるということを意味します。

ステップ 6: 次の単語を予測する

ここで、指定された単語に基づいて次の単語を予測することでモデルをテストしてみましょう。これは、次の単語の確率分布からサンプリングすることによって行われます。

import numpy as np

# Sample dataset: A small text corpus
corpus = """Artificial Intelligence is the new electricity.
Machine learning is the future of AI.
AI is transforming industries and shaping the future."""

この関数は単語を取得し、その確率を調べ、それらの確率に基づいて次の単語をランダムに選択します。 「AI」を渡すと、モデルは次の単語として「is」のようなものを予測する可能性があります。

ステップ 7: 文を生成する

最後に、文全体を生成してみましょう。単語から始めて、次の単語を数回予測し続けます。

# Tokenize the corpus into words
words = corpus.lower().split()

# Create a vocabulary of unique words
vocab = list(set(words))
vocab_size = len(vocab)

print(f"Vocabulary: {vocab}")
print(f"Vocabulary size: {vocab_size}")

この関数は、最初の単語を取得して次の単語を予測し、その単語を使用して次の単語を予測します。気が付くと、完全な文が完成しています!

まとめ

これで、Python と NumPy だけを使用してゼロから構築されたシンプルなバイグラム言語モデルが完成しました。派手なライブラリは使用しませんでした。これで、AI がテキストを予測する方法について基本的に理解できました。このコードを試してみたり、別のテキストを入力したり、より高度なモデルを使用して拡張したりすることもできます。

試してみて、どうなるか教えてください。コーディングを楽しんでください!

以上が独自の言語モデルを構築する: Python と NumPy を使用した簡単なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。