1 ポイント 投稿者 GN⁺ 2024-10-27 | 1件のコメント | WhatsAppで共有
  • Entropixは、LLMが次のトークンを選ぶ瞬間の不確実性を読み取り、状態ごとにサンプリング方式を変えることで推論品質を高めようとするプロジェクト
  • 判断基準はロジット分布のエントロピーと**分散エントロピー(varentropy)**で、2つの値の組み合わせによってモデルの確信状態を4つに分類する
  • 確信度が高い状態ではargmaxサンプリングが適しているが、有力な候補が複数ある状態では分岐(branching)によって経路を比較できる
  • 高エントロピー状態は、モデルが本当に分からない場合や、選択肢が実質的に同等である場合があり、**思考トークン(thinking token)**の挿入、温度調整、分岐といった対応が必要になる
  • まだ大規模評価がないため効果は不確実だが、推論時サンプリングは大きな予算なしでもオープンソース実験で改善を試せる領域

Entropixが狙う問題

  • EntropixXJDRが開発したプロジェクトで、モデルが不確実な瞬間にサンプリング戦略を変えて推論を改善しようとするアプローチ
  • まだEntropixに関する大規模評価がないため、実際の性能向上幅は明確ではない
  • ただし不確実性ベースのサンプリングは、LLM推論を別の角度から見る実験的手法と思考モデルを提供する

LLMの不確実性はどこに現れるのか

  • サンプリングは、LLMが可能なトークン分布である**ロジット(logits)**の中からどのトークンを選ぶかを決める過程
  • モデルの確信度は、次のトークンに対するロジット分布から見られる
    • 確信度が高いと、一部のトークンに確率が明確に集中する
    • 確信度が低いと、次のトークン候補がより広く分散する
  • 不確実性は常に悪いシグナルとは限らず、原因はさまざま
    • goodgreatのようにトークンが同義語、または実質的に同等の場合
    • プログラムを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件のコメント

 
GN⁺ 2024-10-27
Hacker News の意見
  • 「バベッジさん、機械に間違った数字を入れたら正しい答えが出るのですか?」という質問を二度も受けたという
    そのような質問を生む思考の混乱がどういうものなのか、Charles Babbage にはまったく理解できなかったという話

    • 人々は「AI」が何をすべきか分かっていると思っているが、実際に期待と違う動作をすると壊れていると呼ぶ
    • これは十分に正当な質問で、むしろ 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
    • これはこの匿名の Twitter アカウントの取り組みに基づいている: https://x.com/_xjdr
      かなり近くで追っていたが、小さなモデルの方がこのサンプラーではより効率的かもしれないように見えて興味深かった。関心があるなら投稿を読む価値があり、この種のサンプリングは大きな意味のある取り組みのように感じる
    • 学術論文ではなさそうだ。学界なら、トークン不確実性意味的不確実性/意味的正答性の違いをよりよく理解するか、両者の関係を主張する前にデータに基づく相関を確立しようとしただろうと期待するからだ
      他のコメントでも書いたように、作者は根本的な誤解をしているようで、記事冒頭のメモを見ると、そのために実際の実用的な成果を出せなかった可能性がありそうだ
      だからといって非難したり、意欲をそぐつもりはない。何かをつかんでいる可能性もあるし、こうした独特のアプローチは試す価値がある。ただ、前述の理由でポジティブな効果がないなら論文にはなりにくかっただろうから、このアプローチに関する学術論文がないことも驚きではない
    • 私の知る限り学術論文ではなく、だからこそこの記事を書きたかった。それでもこのプロジェクトは ML Twitter で熱心な支持者と熱心な反対者を同時に抱えている状態だ
    • LLM の不確実性に関心のある HN 読者に向けた話であり、記事/リポジトリの作者には、実際に不確実性をどれほどよく識別できているのか、テスト結果を見たい
  • エントロピーが高いときは、モデルに逃げ道があるべきだと考えられる
    回答全体の確実性が低いとトリガーし、生成中に確実性スコアを累積して、最後にユーザーが回答の確実性がひどく低かったかどうかを確認できるようにすべき。そのような回答は捨てるか、「よく分かりません」に置き換えられるべき

    • 通常は棄権または拒否と呼ばれる
      この分野でモデルの不確実性を定量化するさまざまな方法を比較するときは、よく拒否検証を行う。基本的には、不確実性の高いデータポイントを順に拒否していき、残った出力の平均品質がどう上がるかを見る方法である。良い不確実性推定値は出力品質と強く相関しているはずなので、不確実性の低い出力の平均品質はより高くなるはずだ
      最近の LLM 不確実性推定アプローチのベンチマーク [1] でもまさにこの方法が使われており、このようなベンチマークを可能にするオープンソースライブラリ [2] も開発中である。特定のモデル出力に対する不確実性スコアも作れるため、産業現場でもアプリケーションに統合できる
      [1] https://arxiv.org/abs/2406.15627
      [2] https://github.com/IINemo/lm-polygraph
    • 問題は、深層ニューラルネットワーク分類器が一般に、そのままの状態では統計的にうまく較正されていないことにある
      そのため、エントロピーが高いときに「自信がない」というシグナルである場合も多いが、モデルが非常に頻繁に自信満々に間違うこともある。したがって、ロジットのエントロピーを信頼度の指標として使うと、大きく誤解しやすい
      LLM の専門家ではなく、一般的な分類器についての理解に基づく考えである。データが十分にあれば、この考慮がもはや当てはまらなくなるのか気になる
    • Entropix は、そうしたことを行えるフレームワークを提供する。構造上、現在の状態を検知したうえでサンプラー設定を調整するか、まったく新しいサンプリング戦略に切り替える方式である
      十分に拒否回答へ押し込む実験も可能で、実際に試してみることを勧める。smollm-entropix リポジトリ [1] は全体を Jupyter ノートブックで実装しているため、アイデアを試しやすい
      [1]: https://github.com/SinatrasC/entropix-smollm
    • 語彙表に追加トークンが多数入る可能性はほぼ確実に見える。thinking トークンのようなものだけでなく、「分からない」トークンもあり得るし、洗練されたデコーディング戦略も多数出てくるだろう。必要なのはデータを生成することだ
    • 新しい Claude Sonnet 3.5 は、私の経験ではある程度そうしたことをしている
  • 現代的な大規模 GPT は、トークン語彙全体に対する巨大な分類器のロジットを出力する
    これらは何らかの空間内にあり、非自明な凸性の性質を持つ多様体を仮定できるだけでなく、経験的に計算することもできる。どの LLM がどの文章を書いたのかを判別する問題は、特定の文体で書くよう指示した場合まで含めても、よく定義されているか、事実上解かれた問題に近い
    これは研究されていた問題であるだけでなく、急速で印象的な進展が起きていた分野だったが、ある時点で単に止められてしまった
    この分野で最高になることは巨大なビジネスである。そしてスタートアップがやるべきことの典型だ。資金力のある既存企業が競争相手として出てきにくいからであり、それは彼らが市場を無視しているからではなく、この市場が存在することを積極的に望んでいないからである

    • これがなぜ有用なのか、もう少し説明してもらえるだろうか?説明だけを見ると、リクエストのかなりの部分は出力を十分に変えて、特定の LLM の検出を防ぎそうに思える。また、新しい LLM が合成・生成データを多用している状況も、かなり大きな変数を生みそうだ
  • この説明の仕方は、ほとんど迷路探索アルゴリズムのように聞こえる。ここで計算時間は、「可能な解かどうかを試すために、1つの経路をどれだけ深くたどってみるか」に相当する
    ほかにも類似点があるのか気になる。たとえば LLM に適用できそうな迷路解法アルゴリズムはあるだろうか?

    • シーケンス全体の結合確率が最も高いものを見つけるために逐次的にサンプリングするのは、明らかに探索問題である。だからビーム探索のようなアルゴリズムがサンプリングでよく使われる
    • LLM デコーディングをナビゲーションの観点から捉える質問を、別の角度ではあるが、この Reddit 投稿でも投げかけていた: https://www.reddit.com/r/MachineLearning/comments/1dw2pqo/d_...
    • その通りで、さらに研究の余地がある領域に見える
      正直に言うと、Bitter Lesson(http://www.incompleteideas.net/IncIdeas/BitterLesson.html)とは逆方向である。その教訓は、チェスで迷路探索を過度に精巧に扱っていたことにも由来している。だが現在の LLM の規模では、こうした改善に価値があるかもしれない
  • こうした潜在的な最適化について読むたびに、人々がどうして最小限の監督だけで LLM を信頼して使えるのか理解しにくい
    LLM を使った「AI」製品が、コンピューターを制御したり正確なコードを書いたりできるほど十分に有能だと本当に信じているのだろうか?設計上、すべてが「幻覚」または推測ではないのか?それを本当に克服できるのだろうか?

    • ChatGPT と Python で、会社の生産テストシステムで使うプログラムをいくつか作成した、または監督した
      機械に動作を送信し、結果/エラー/出力を取得し、それを .csv に保存したあと、見やすく整形された Excel ファイルに変換するプログラムだ。特定のテストで技術者がどう接続すべきかを示すスタートガイドも提供する
      私はプログラマーではなく、うちの会社にもプログラマーはいない。それでも、依頼したとおりに正確に動くコードを書いてくれた。開発中にコードで詰まったらまた ChatGPT に入れて解決させ、最終的にすべて解決した。1日ほどかかったが、自分でやっていたら1か月、外注なら1万ドルと1週間はかかっただろう
      LLM は高給の高度なプログラミングプロジェクトには向かないかもしれない。だが、コンピューターで何かをする必要があるのに、コンピューターに何をしてほしいかを伝える言語の壁を越えられない人々にとっては福音だ
    • 人間はそれをどう克服しているのか?よく考えてみれば、LLM はあらゆることに使えるという結論に至るはずだ。たとえば人間だって、コードを書いてすぐに本番環境へ押し込むわけではない
    • もちろん信じている。これは仮定の質問ではない。私のコードのほぼすべては Claude 3.5 Sonnet が書いている
      普段自分が書くコードよりはるかに堅牢で正確だ。私は20年間プログラミングしてきた
    • そうではないと思う。だが人間は、感情であれ金銭であれ、あまりに多くを投資すると簡単には退かず、むしろすべてを賭けてしまう
      ただの新たな過熱にすぎない。Client/Server、Industry 4.0、Machine Learning、Microservices、Cloud、Crypto のように
  • モデルが絶対に不確実になれないようにしたら、出力がどうなるのか実験した人はいるだろうか?
    たとえば、確信度がしきい値を下回るたびにサンプラーが巻き戻って別のトークンを選ぶ方式だ。最終的には、すべての単一トークンがしきい値以上の確信度を持つ状態になる
    望ましくない出力を完全になくすことはできないだろうが、興味深いはずだ

    • それだと、そもそも答えを出せないのではないか?
      あるいは「わかりません」と完全な確信をもって言うこともできるかもしれない
    • 以前はほとんど決定論的な引用文のような出力が出ていたが、それでも浮動小数点誤差の影響を受けていた
  • 言語モデルのサンプリング戦略は何十億通りもある
    問題は、あるサンプリング戦略が標準的な top-ktop-p サンプリングより優れていることを経験的に示すのが非常に難しい点だ。パープレキシティを最小化するだけでは、特定の方法の優位性を立証するには不十分だ。ブログ記事で提案されている戦略にも同じ問題がある。理論的にはもっともらしいが、実際には検証されていない革新だ

    • 証明が必ず必要というわけではない
      「より良い」が何を意味するのか明確に言いにくく、選好データのようなものを収集するコストが大きいため、証明は難しい
      多くのサンプルを見たうえで、常識的に「X を最適化するにはこの方法のほうがうまく機能しそうだ」と言うことはできる
  • LLM の回答の限界には、「不確実性」ひとつよりもはるかに多くの次元がある
    「質問/文が意味をなしていない」「答えるには情報が十分でない」「専門家の合意として『誰にも本当のところはわからない』という情報がある」などだ
    与えられた質問に答えるのが難しい理由を、単純に不確実性の問題へ還元しようとする人間の傾向があり、そのため LLM の回答にも単一の不確実性レベルだけがあるかのように見てしまう。だがそれは擬人化だ
    AI 画像、さらにその前の写真は、画像が間違いうる新しく想像もしていなかった方法、つまり本物らしいのに間違っているという方法を示した。AI との言語的なやり取りも、より微妙に同じことをしている

    • そのとおりだ。だが、そうした状態のいずれかに入った可能性を検知できるなら、それが正確にはどの状態なのかを振り返ることができる
      これまでは主に強化学習で行われてきたが、推論時に捕まえて処理する方式も探る価値がありそうだ。オープンソースにとっては、はるかにアクセスしやすくもある。こうした強化学習は大手 ML 研究所にしかできないことだ
    • モデルの不正確さを幻覚と呼ぶのと同じくらい擬人化された表現だ
      擬人化は LLM のマーケティング戦略の一部だと感じる
    • 不確実性がかなりゆるく定義された用語だという点はそのとおりだ。通常は、モデルの出力が何らかの意味で正しい確率についての代理指標として使われる
      不確実性は複数の「味」に分解することもできる。最も単純でよく議論される分解は、偶然的不確実性認識論的不確実性だ。認識論的不確実性、またはモデルベースの不確実性は、通常、モデルが以前に見たことのない種類の入力を受け取って悪い出力を出す場合を指し、正しく処理することを期待しにくい状況だ。一方、偶然的不確実性はデータ自体に内在するもので、タスクの自然な曖昧さやノイズの多いラベリングを考えればよい
      不確実性推定の分野では、こうした異なる種類の不確実性を定量化する方法を開発することに大きな関心があり、方法によってどちらにより敏感かが異なる場合がある
    • データを構造化するために LLM を使っている私の用途と深く関係していそうだ。データの各断片ごとに、優れた不確実性指標がまさに必要だ
    • それらも異なる種類の不確実性ではないのか?