もう一度､ この素晴らしい図をご覧いただきたい｡
さて､ 私が言及したかった技術的なことだ｡
だから､ 過去にモデルが次のトークンを予測すると言ったとき､ 私は少しルーズだった｡
単純に考えればいい｡
私たちはよくそのような言い回しを使っているが､ 実際に起こっていることはそうではない｡
トランスフォーマー・アーキテクチャーがあり､ 一番下のレイヤーから出てくるのは､ 予測された次のトークンである単一のトークンである､
というようなものではない｡
そういうわけにはいかない｡
最後の層で実際に出てくるのは確率である｡
すべてのトークンを持っている｡
そのトークンが次のトークンである確率は？
その一連の確率を出力する｡
これがニューラルネットワークの底から出てくるものだ｡
そして､ プリントするときに見た最後のレイヤーを覚えているかもしれない｡
このモデルはLMヘッドと呼ばれる｡
そして､ それが本当に最後のステップとなる｡
実際にロジットと呼ばれる確率を表す数値のベクトルが出てくる｡
そして､ それを関数に通す必要がある｡
ええと､ これはもう詳しすぎるだろうけど､ もう知っているかもしれないね｡
ソフトマックスと呼ばれる関数があり､ この関数はこれらの数値を確率に変換する｡
つまり､ モデルの結果を､ 次のトークンの確率として解釈する方法を与えてくれるのだ｡
つまり､ これがフォワードパスで出てくるものなのだ｡
推論を行うとき､ 推論モードでこれを実行すると､ 得られるのはこれらの確率だ｡
それでどうするんだ｡
次のトークンをどう予測するか？
まあ､ たいていの場合はとてもシンプルなアプローチなんだけどね｡
次のトークンを取るだけだ｡
最も確率の高いトークンを取る｡
さまざまな確率が示された｡
どれが最大なのか調べてみよう｡
それを次の手紙とする｡
もう少し洗練されたテクニックもある｡
これらの確率を､ サンプルの取り方の重みとして使って､ 無作為にサンプリングすることができる｡
そうすれば､ もう少しバリエーションが増える｡
その他にも､ いくつかの文字を並べてみて､ それが自分の進みたい道かどうかを判断するテクニックもある｡
そのため､ 推論の際には､ これらの確率に基づいて､ 最善の仕事をするために使えるさまざまな戦略がある｡
このトークンはそれぞれコストを表し､
数字を表している｡
それで少しスマートなことはできるが､ その必要はない｡
単純に確率の高いものを選ぶこともできる｡
これがモデル出力の説明だ｡
これではっきりしたと思う｡
それから損失関数｡
だから､ 前回のビデオで少し触れた｡
損失を計算するようにね｡
どの程度悪かったのですか？
では､ 実際にはどうなのか？
素晴らしくシンプルだ｡
つまり､ 次に起こりうるすべてのトークンの確率がわかったわけだ｡
それで､ 次のトークンが何であるべきかがわかった｡
仮に99歳だとしよう｡
そこで､ これらの確率をすべて調べて､ モデルが99に対してどのような確率を与えたか､ 実際に正しい次のトークンであったか､
と言うのだ｡
そして､ ここで重要なのはそれだけだ｡
重要なのは､ 実際に正しかったことにどのような確率を与えたかということだ｡
うーん､ もし100％の確率でそうなるのなら､ 完璧だったということになる｡
正しい結果に100％の自信を持っていた｡
確率は足し算で1になるのだから､ それ以外はすべてゼロでなければならない｡
だから､ それは絶対に完璧だ｡
もし100％以下なら､ うまくいかなかったということだ｡
確率が低ければ低いほど､ 成績は悪くなる｡
そして､ その確率を求め､ その数値の対数をとり､ それを否定する式がうまく機能することがわかった｡
つまり､ その数字の対数のマイナス1倍を取るわけだ｡
それを計算すると､ その数字が1であれば､ 100％の確率であれば､ 0になるということだ｡
それはいいことだと思う｡
完璧であれば､ 損失は何もないはずだ｡
そして､ 確率が低ければ低いほど､ その損失額は大きくなる｡
つまり､ 確率の負の対数を取ることは､ うまく振る舞う損失関数を持つ方法なのだ｡
それに洒落た名前がある｡
この損失関数はクロスエントロピー損失として知られている｡
そう呼ばれている｡
真の次のトークンの確率の負の対数だ｡
そして､ それが使われているんだ｡
トレーニングが進行している場合､ 各予測のクロスエントロピー損失を計算します｡
そして､ もうひとつ余談がある｡
特にデータサイエンティストにとっては､ これは何かを異なるビンに分類しようとするときに､
分類に使われる計算だという解釈がある｡
昔､ 画像を4つか5つのカテゴリーに分類しようとしたとき､ クロスエントロピー損失があれば､
確率を計算し､ 分類がうまくいったかどうかを判断するためにクロスエントロピー損失を使います｡
次のトークンを予測するプロセス全体が分類問題なのだから｡
次のトークンには､ いろいろなカテゴリーが考えられると言いたいのだろう｡
実際､ 次の可能性のあるトークンはすべてある｡
そして､ 次のトークンを入れるのに最も可能性の高いバケツはどれかを予想する｡
つまり､ 生成AIの全プロセスは､ 実際には単なる分類問題なのだ｡
次のトークンを分類し､ 次のトークンがそうである確率を計算する｡
そして興味深いことに､ モデル価格を予測する私たちの特別なプロジェクトでは､ 少し前にも言ったように､ これは本当に回帰の問題なのです｡
数字を予測しようとしているのに､
それを分類問題のように扱っている｡
私たちは､ すべての製品をこの999のバケツのひとつに分類しようとしているだけです｡
だからこそ､ 分類問題としては非常にうまく機能するのだ｡
フロンティア・モデルが得意とする理由であり､ オープンソース・モデルが得意とすることを期待している理由でもある｡
そして､ これらすべてが､ 私たちの背後にある有益な理論である｡
でも､ 今は練習に戻る時だ｡
そういうわけで､ そろそろオープンソースの､ ええと､ ファインチューニングはどうなっているのかについて話をしようじゃないか｡