- Entropixは、LLMが次のトークンを選ぶ瞬間の不確実性を読み取り、状態ごとにサンプリング方式を変えることで推論品質を高めようとするプロジェクト
- 判断基準はロジット分布のエントロピーと**分散エントロピー(varentropy)**で、2つの値の組み合わせによってモデルの確信状態を4つに分類する
- 確信度が高い状態ではargmaxサンプリングが適しているが、有力な候補が複数ある状態では分岐(branching)によって経路を比較できる
- 高エントロピー状態は、モデルが本当に分からない場合や、選択肢が実質的に同等である場合があり、**思考トークン(thinking token)**の挿入、温度調整、分岐といった対応が必要になる
- まだ大規模評価がないため効果は不確実だが、推論時サンプリングは大きな予算なしでもオープンソース実験で改善を試せる領域
Entropixが狙う問題
- EntropixはXJDRが開発したプロジェクトで、モデルが不確実な瞬間にサンプリング戦略を変えて推論を改善しようとするアプローチ
- まだEntropixに関する大規模評価がないため、実際の性能向上幅は明確ではない
- ただし不確実性ベースのサンプリングは、LLM推論を別の角度から見る実験的手法と思考モデルを提供する
LLMの不確実性はどこに現れるのか
- サンプリングは、LLMが可能なトークン分布である**ロジット(logits)**の中からどのトークンを選ぶかを決める過程
- モデルの確信度は、次のトークンに対するロジット分布から見られる
- 確信度が高いと、一部のトークンに確率が明確に集中する
- 確信度が低いと、次のトークン候補がより広く分散する
- 不確実性は常に悪いシグナルとは限らず、原因はさまざま
goodとgreatのようにトークンが同義語、または実質的に同等の場合
- プログラムをJavaで書くこともCで書くこともできるように、分岐経路がある場合
- モデルが何をすべきか分からない場合や、学習データで見たことのない**分布外(out of distribution)**入力に遭遇した場合
エントロピーと分散エントロピー
- Entropixはロジットの**エントロピー(entropy)と分散エントロピー(varentropy)**で不確実性を測定する
- エントロピーは予測ロジット同士がどれだけ異なるかを表し、最も可能性の高い結果に対する不確実性を示す
- 低エントロピーでは、一部のロジットについてかなり確信している
- 高エントロピーでは、ロジット分布がより均一になり、確信度が低くなる
- 分散エントロピーは不確実性の**形状(shape)**を示す指標
- 高い分散エントロピーは、一部の値が他の値と大きく異なることを意味する
- 2つの指標は**サプライザル(自己情報量、surprisal/self-information)**の概念に基づく
- サプライザルは、ある事象がその確率に比べてどれほど予想外かを測定する
- 事象
xの確率がP(x)のとき、サプライザルはI(x) = -log₂(P(x))
P(x) = 1/8ならサプライザルは3ビット、P(x) = 1/2なら1ビット
- エントロピーは、起こり得るすべての結果のサプライザルの期待値
- 分散エントロピーはサプライザルの分散として計算され、一部の結果が平均サプライザルに比べてどれほど意外かを表す
4つの不確実性状態
- エントロピーと分散エントロピーを合わせて見ると、モデル状態を4つに分けられる
- 低エントロピー・低分散エントロピー:1つの結果が非常に高い確率を持つ鋭い分布
- 低エントロピー・高分散エントロピー:異なるいくつかの山がある分布
- 高エントロピー・低分散エントロピー:均一、またはほぼ均一な分布
- 高エントロピー・高分散エントロピー:広く分散しているが、均一ではない分布
状態別の適応型サンプリング
-
低エントロピー・低分散エントロピー
- モデルが第一候補だけでなく、その候補が間違っていた場合の代替案についても比較的確信している理想的な状態
- 候補リストがきれいに並んでいることが多く、最も確率の高いトークンを選ぶargmaxサンプリングが適している
-
低エントロピー・高分散エントロピー
- モデルがいくつかの選択肢を非常に高く予測している状態
- この状態は新しい出力経路全体を意味する場合もあれば、同義語のように複数の表現がどれも可能な状況である場合もあり、判断が難しい
- 可能な対応は、2つのロジットをどちらも予測してそれぞれの経路をたどり、一定時点以降の結果を比較する分岐(branching)
- 分岐結果が同程度の確信度を持ちながら内容が異なるなら、それをユーザーへの質問に変えることができる
-
高エントロピー・低分散エントロピー
- モデルが低い確信状態にあるか、すべての選択肢が相互に置き換え可能な状況である可能性がある
- Entropixはこのとき、モデルがより高い確信状態へ進むように思考トークンを次のトークンとして入れる方式を提案する
- 例は
Wait..のようなトークン
- 思考トークンは、モデルが答えを出す前により多くの計算時間を使って考えるべきだというシグナルとして出力に挿入される
- 例えばモデルが
The capital of Germany is Parisと予測しようとしているが確信を持てない場合、Waitを入れることでThe capital of Germany is Paris… Wait, no, it’s actually Berlinのように続けられる
-
高エントロピー・高分散エントロピー
- 明確な最上位候補はないが、一部の出力については他の出力よりも強く確信している状態
- 上位の選択肢が同義語のようにどれも問題ない選択である可能性があり、より高い**温度(temperature)**でランダム選択できる
- 前の状態と同様に、分岐したり思考トークンを挿入したりする方式も可能
分岐と思考トークンの違い
- どちらの方式も、不確実な状態でより多くの推論計算を使おうとする方法
- 分岐予測はいくつかのロジットをたどり、どの別のトークンにつながるかを確認する
- 一般に**MCTS(Monte Carlo Tree Search)**と呼ばれる
- LLMではよく試されてきたが、成果は中程度だった
- 各分岐が互いの計算を活用できない点が主なトレードオフ
- 思考トークンは、捨てる可能性のある分岐探索に計算を使わず、不確実な状態で追加計算を確保する方法
Wait…の挿入は、AIが間違えたかもしれないことを認識させる
- 分岐と思考トークンのどちらが優れているかは、未解決の研究課題として残っている
アテンションベースのシグナル
- Entropixは温度を調整する際、他のエントロピー測定値も一部使用する
- Attention Entropyは、アテンションヘッドが特定のトークンを追っているのか、文脈内の多くのトークンに注意を分散しているのかを表す
- Attention Agreementは、複数のアテンションヘッドが同じトークンに注意を向けているのか、互いに異なるトークンを見ているのかを示す
- ヘッドのエントロピーが低くagreementが高ければ、最高確率のトークンをサンプリングしてよいという追加シグナルになり得る
- agreementが低ければ、異なるヘッドが異なる予測に寄与している可能性があり、分岐を検討する価値がある
なぜ重要なのか
- Entropixのアイデアは理解しやすく、まったく新しいものでもないが、LLM推論の改善をサンプリング段階で捉え直させる
- 評価で大きな利点がまだ確認されていないとしても、このような推論時テクニックは比較的実験しやすい
- オープンソースのハッカーが大きな予算なしに推論改善を試みられる有望な方向になり得る
1件のコメント
Hacker News の意見
「バベッジさん、機械に間違った数字を入れたら正しい答えが出るのですか?」という質問を二度も受けたという
そのような質問を生む思考の混乱がどういうものなのか、Charles Babbage にはまったく理解できなかったという話
こうしたサンプリングベースの手法は、コンシューマー向けハードウェアで最新モデルを改善できる、まれなケースの一つ
長くは続かないと思うし、最終的には学習可能なサンプラーが出てくるだろうが、今は思う存分いじってみる価値がある: https://github.com/codelion/optillm
optillm の作者たちは、Entropics の追加計算が単純な chain-of-thought デコーディングより良い結果をもたらすとは見ていないようだ。効率まで確認したのかは分からない: https://x.com/asankhaya/status/1846736390152949966
LLM の多くの問題は、GSM Symbolic 論文にあるような意味漏れや、無関係な情報に注意が分散する現象から来ているように思え、ひょっとするとアテンションには改善の余地があるのかもしれない
関連していくつか記事も書いた: https://zzbbyy.substack.com/p/semantic-leakage-quick-notes, https://zzbbyy.substack.com/p/llms-and-reasoning, https://zzbbyy.substack.com/p/o1-inference-time-turing-machi...
よりうまく機能すると主張する人はいるが、それを示す厳密なベンチマークがない。「文章がよくなる」「文体が新鮮だ」といった具合で、この点については LeCun が100%正しいと思う。汎用モデルを「詩」や「散文」でうまくいくという形で評価するのは、偏りの定義に近く、個人的な逸話で自分の足を引っ張っているようなものだ
コーディングや数学に適用した結果が見たい。例えばオリンピアード数学の問題でサンプラーがよりうまく機能するのか、前後を丁寧にベンチマークしてほしい
あるいはアテンションメカニズムの、より根本的な弱点かもしれない。今では代替案も出てきている
このプロジェクトが学術論文ベースなのか、つまり LLM の不確実性を判断する公開された手法を使っているのかはよく分からない
最近の研究では、これはかなり関連がありそうだ: https://learnandburn.ai/p/how-to-tell-if-an-llm-is-just-gues...
ここではトークン logits の標準的なエントロピーよりも洗練された意味エントロピーというアイデアを使っており、LLM が推測しているのか、あるいは確信度が高いのかを統計的に定量化するのにより適している。元論文は Oxford の著者らによる Nature 論文
このアプローチをさらに一般化した研究 [1] もあり、サンプル出力同士の意味的同値性の概念に基づいてソフトクラスタリングを行う
それでも注意すべき点がある。最近、LLM の不確実性推定の最新手法を総合的にベンチマークした論文 [2] を出したが、多くの場合、意味を考慮した手法は非常にうまく機能する一方で、別のタスクではトークン分布の平均エントロピーのような単純なベースラインが、複雑な手法と同程度かそれ以上に良いこともあった
また、LLM に適用可能な最新の不確実性推定手法を実装し、推定手法のベンチマークや運用中モデルの出力不確実性推定を容易にするオープンソースの Python ライブラリ [3] も開発中だ
[1] https://arxiv.org/abs/2307.01379
[2] https://arxiv.org/abs/2406.15627
[3] https://github.com/IINemo/lm-polygraph
かなり近くで追っていたが、小さなモデルの方がこのサンプラーではより効率的かもしれないように見えて興味深かった。関心があるなら投稿を読む価値があり、この種のサンプリングは大きな意味のある取り組みのように感じる
他のコメントでも書いたように、作者は根本的な誤解をしているようで、記事冒頭のメモを見ると、そのために実際の実用的な成果を出せなかった可能性がありそうだ
だからといって非難したり、意欲をそぐつもりはない。何かをつかんでいる可能性もあるし、こうした独特のアプローチは試す価値がある。ただ、前述の理由でポジティブな効果がないなら論文にはなりにくかっただろうから、このアプローチに関する学術論文がないことも驚きではない
エントロピーが高いときは、モデルに逃げ道があるべきだと考えられる
回答全体の確実性が低いとトリガーし、生成中に確実性スコアを累積して、最後にユーザーが回答の確実性がひどく低かったかどうかを確認できるようにすべき。そのような回答は捨てるか、「よく分かりません」に置き換えられるべき
この分野でモデルの不確実性を定量化するさまざまな方法を比較するときは、よく拒否検証を行う。基本的には、不確実性の高いデータポイントを順に拒否していき、残った出力の平均品質がどう上がるかを見る方法である。良い不確実性推定値は出力品質と強く相関しているはずなので、不確実性の低い出力の平均品質はより高くなるはずだ
最近の LLM 不確実性推定アプローチのベンチマーク [1] でもまさにこの方法が使われており、このようなベンチマークを可能にするオープンソースライブラリ [2] も開発中である。特定のモデル出力に対する不確実性スコアも作れるため、産業現場でもアプリケーションに統合できる
[1] https://arxiv.org/abs/2406.15627
[2] https://github.com/IINemo/lm-polygraph
そのため、エントロピーが高いときに「自信がない」というシグナルである場合も多いが、モデルが非常に頻繁に自信満々に間違うこともある。したがって、ロジットのエントロピーを信頼度の指標として使うと、大きく誤解しやすい
LLM の専門家ではなく、一般的な分類器についての理解に基づく考えである。データが十分にあれば、この考慮がもはや当てはまらなくなるのか気になる
十分に拒否回答へ押し込む実験も可能で、実際に試してみることを勧める。smollm-entropix リポジトリ [1] は全体を Jupyter ノートブックで実装しているため、アイデアを試しやすい
[1]: https://github.com/SinatrasC/entropix-smollm
現代的な大規模 GPT は、トークン語彙全体に対する巨大な分類器のロジットを出力する
これらは何らかの空間内にあり、非自明な凸性の性質を持つ多様体を仮定できるだけでなく、経験的に計算することもできる。どの LLM がどの文章を書いたのかを判別する問題は、特定の文体で書くよう指示した場合まで含めても、よく定義されているか、事実上解かれた問題に近い
これは研究されていた問題であるだけでなく、急速で印象的な進展が起きていた分野だったが、ある時点で単に止められてしまった
この分野で最高になることは巨大なビジネスである。そしてスタートアップがやるべきことの典型だ。資金力のある既存企業が競争相手として出てきにくいからであり、それは彼らが市場を無視しているからではなく、この市場が存在することを積極的に望んでいないからである
この説明の仕方は、ほとんど迷路探索アルゴリズムのように聞こえる。ここで計算時間は、「可能な解かどうかを試すために、1つの経路をどれだけ深くたどってみるか」に相当する
ほかにも類似点があるのか気になる。たとえば LLM に適用できそうな迷路解法アルゴリズムはあるだろうか?
正直に言うと、Bitter Lesson(http://www.incompleteideas.net/IncIdeas/BitterLesson.html)とは逆方向である。その教訓は、チェスで迷路探索を過度に精巧に扱っていたことにも由来している。だが現在の LLM の規模では、こうした改善に価値があるかもしれない
こうした潜在的な最適化について読むたびに、人々がどうして最小限の監督だけで LLM を信頼して使えるのか理解しにくい
LLM を使った「AI」製品が、コンピューターを制御したり正確なコードを書いたりできるほど十分に有能だと本当に信じているのだろうか?設計上、すべてが「幻覚」または推測ではないのか?それを本当に克服できるのだろうか?
機械に動作を送信し、結果/エラー/出力を取得し、それを .csv に保存したあと、見やすく整形された Excel ファイルに変換するプログラムだ。特定のテストで技術者がどう接続すべきかを示すスタートガイドも提供する
私はプログラマーではなく、うちの会社にもプログラマーはいない。それでも、依頼したとおりに正確に動くコードを書いてくれた。開発中にコードで詰まったらまた ChatGPT に入れて解決させ、最終的にすべて解決した。1日ほどかかったが、自分でやっていたら1か月、外注なら1万ドルと1週間はかかっただろう
LLM は高給の高度なプログラミングプロジェクトには向かないかもしれない。だが、コンピューターで何かをする必要があるのに、コンピューターに何をしてほしいかを伝える言語の壁を越えられない人々にとっては福音だ
普段自分が書くコードよりはるかに堅牢で正確だ。私は20年間プログラミングしてきた
ただの新たな過熱にすぎない。Client/Server、Industry 4.0、Machine Learning、Microservices、Cloud、Crypto のように
モデルが絶対に不確実になれないようにしたら、出力がどうなるのか実験した人はいるだろうか?
たとえば、確信度がしきい値を下回るたびにサンプラーが巻き戻って別のトークンを選ぶ方式だ。最終的には、すべての単一トークンがしきい値以上の確信度を持つ状態になる
望ましくない出力を完全になくすことはできないだろうが、興味深いはずだ
あるいは「わかりません」と完全な確信をもって言うこともできるかもしれない
言語モデルのサンプリング戦略は何十億通りもある
問題は、あるサンプリング戦略が標準的な top-k や top-p サンプリングより優れていることを経験的に示すのが非常に難しい点だ。パープレキシティを最小化するだけでは、特定の方法の優位性を立証するには不十分だ。ブログ記事で提案されている戦略にも同じ問題がある。理論的にはもっともらしいが、実際には検証されていない革新だ
「より良い」が何を意味するのか明確に言いにくく、選好データのようなものを収集するコストが大きいため、証明は難しい
多くのサンプルを見たうえで、常識的に「X を最適化するにはこの方法のほうがうまく機能しそうだ」と言うことはできる
LLM の回答の限界には、「不確実性」ひとつよりもはるかに多くの次元がある
「質問/文が意味をなしていない」「答えるには情報が十分でない」「専門家の合意として『誰にも本当のところはわからない』という情報がある」などだ
与えられた質問に答えるのが難しい理由を、単純に不確実性の問題へ還元しようとする人間の傾向があり、そのため LLM の回答にも単一の不確実性レベルだけがあるかのように見てしまう。だがそれは擬人化だ
AI 画像、さらにその前の写真は、画像が間違いうる新しく想像もしていなかった方法、つまり本物らしいのに間違っているという方法を示した。AI との言語的なやり取りも、より微妙に同じことをしている
これまでは主に強化学習で行われてきたが、推論時に捕まえて処理する方式も探る価値がありそうだ。オープンソースにとっては、はるかにアクセスしやすくもある。こうした強化学習は大手 ML 研究所にしかできないことだ
擬人化は LLM のマーケティング戦略の一部だと感じる
不確実性は複数の「味」に分解することもできる。最も単純でよく議論される分解は、偶然的不確実性と認識論的不確実性だ。認識論的不確実性、またはモデルベースの不確実性は、通常、モデルが以前に見たことのない種類の入力を受け取って悪い出力を出す場合を指し、正しく処理することを期待しにくい状況だ。一方、偶然的不確実性はデータ自体に内在するもので、タスクの自然な曖昧さやノイズの多いラベリングを考えればよい
不確実性推定の分野では、こうした異なる種類の不確実性を定量化する方法を開発することに大きな関心があり、方法によってどちらにより敏感かが異なる場合がある