人工知能はどうやって作られるのでしょう?
コードを知らなくても大丈夫。データを入れると、人工知能がトークン化 → ベクトル化 → 学習 → 生成という流れで作られる過程を目で見ることができます。望めば本物のPythonコードで作ることもできます。
直前の単語だけを見る学習用バイグラム模型です。埋め込み・attention・事実を学習しません。単語分割も本番LLMのトークナイザーではなく教材です。
- データ準備
- ① トークン化
- ② IDとワンホットベクトル
- ③ トレーニング(学習)
- ④ 生成
データ準備
短い例文を集めましょう。繰り返すと回数は変わりますが、目的に合う資料が必要です。各文は別々に終わります。
① トークン化
ここでは文を単語に近い断片に分けます。実際のLLMでは単語・部分語・文字・バイトなどを使います。トークン化は文章の表現方法で、長すぎて理解できないからではありません。
② IDとワンホットベクトル
IDは名札としての番号です。ワンホットベクトルはその位置だけを1にします。どちらも意味の近さを教えません。学習済み埋め込みは別のベクトルで、この実習では学習しません。
③ トレーニング(学習)
文末も含めてつながりを数えます。候補の確率は、その回数を選んだ単語の後の総回数で割った値です。ニューラル言語モデルはこの小さな表を保存するだけでなく、重みを学習します。
④ 生成
最高確率を選ぶ貪欲法と、確率に従う抽選を比べましょう。文末を選ぶと止まります。抽選でも同じ結果は出ます。生成文の事実確認はしていません。
| 単語 | 番号 | 数値ベクトル(ワンホット) |
|---|---|---|
単語を一つ選ぶと、その次にどの単語が来る確率が高いか、AIが学んだ内容を見られます:
百分率は丸めているため、表示の合計が100%から少しずれる場合があります。
この単語は文末にしか出てこないので、次の単語がありません。別の単語を選んでみましょう。
表は温度1の観測頻度です。温度は抽選確率を変えますが、学習回数や事実の正確さを変える道具ではありません。
Python実行環境を準備中…
私のコード
実行結果
[実行]を押すと、ここに結果が表示されます。