2 ポイント 投稿者 GN⁺ 2024-03-17 | 1件のコメント | WhatsAppで共有
  • Quiet-STaR は、正解付きQAデータセットの代わりに一般的なWebテキストを学習信号として用い、言語モデルが話す前に内部的な根拠を生成するよう訓練する手法
  • 従来の STaR が正解につながった根拠だけを選んで学習していたのに対し、Quiet-STaR は将来のテキスト予測を改善する根拠に報酬を与え、非構造テキストの暗黙的な推論を活用する
  • すべてのトークン位置で根拠を並列サンプリングし、根拠ありの予測と根拠なしの予測を混合して、実際の次のテキストをより良く当てる方向に学習する
  • Mistral 7B を OpenWebMath と C4 で継続事前学習した結果、タスク別ファインチューニングなしで GSM8K は 5.9%→10.9%、CommonsenseQA は 36.3%→47.2% へと精度が向上
  • 効果は予測が難しいトークンでより大きく現れ、内部思考に使うトークン数が長いほど、直接推論性能の改善も大きくなる傾向を示した

一般テキストを推論学習の対象にする

  • 人は文章を書いたり話したりするとき、少し立ち止まって考えることがあり、テキストの意味のかなりの部分は、文と文の間に現れない理由や含意にある
  • 既存の推論中心アプローチは主に質問に答えたりエージェント作業を完了したりする方式に集中してきたが、Quiet-STaR は 推論がほぼすべての文章に暗黙的に存在する とみなす
  • 暗黙的推論の例は次の通り
    • 証明で明示されない中間ステップ
    • 対話で相手の心理状態を推定する理論

STaR を言語モデリングへ拡張

  • STaR(Self-Taught Reasoner) は、質問応答データセットで少数例をもとに根拠をサンプリングし、正解につながった根拠だけを学習して、より難しい問題を反復的に解けるようにする手法
  • STaR には、高品質なQAデータセットのように細かくキュレーションされたデータに依存するという制約がある
    • こうしたデータセットには特定の推論課題しか含められない
    • 根拠そのもの、あるいは特定の推論タスクを提供する必要がある場合がある
  • Quiet-STaR は、特定の数学QAのようなタスクではなく、大規模なインターネットテキストから 将来のテキストを推論するのに役立つ根拠 を生成するよう言語モデルを学習させる
  • このアプローチは、「言語モデルは教師なしマルチタスク学習者である」という言語モデリングのパラダイムの直観の上に築かれている

学習手順: think, talk, learn

  • Quiet-STaR は3段階で動作する
    • think: テキストのすべてのトークンの後ろで、将来のテキストを説明する根拠を並列生成する
    • talk: 根拠がある場合とない場合の次トークン予測を混合する
    • learn: REINFORCE ベースの報酬により、将来のテキスト予測に役立つ根拠の尤度を高め、害になる根拠は捨てる
  • 学習中、1つの thought に対してモデルは STARTEND のような学習可能なメタトークンで思考の開始と終了を示す
  • 根拠を作った後は、mixing head が、その根拠ベースの予測を将来トークン予測にどれだけ反映するかを決定する

すべてのトークンで考えさせるための実装課題

  • 一般テキストでは、すべてのトークンごとに根拠を生成する必要があるため、計算コストが大きい
  • これを減らすため、文字列内のすべてのトークン位置で根拠を生成する トークン別並列サンプリングアルゴリズム を提案・実装した
  • 言語モデルが最初から内部思考を生成したり利用したりする方法を知らないという問題にも対応している
    • 思考の開始と終了を示すカスタムメタトークンを導入
    • モデルが根拠を生成すべきタイミングと、その根拠に基づいて予測すべきタイミングを学習するようにした
  • 単一の次トークンだけを見る近視眼的な学習を避けるため、複数トークン先まで含める 非近視眼損失(non-myopic loss) を用いる
  • 拡張された teacher-forcing 手法により、個別の次トークンを超えた予測まで学習に反映する

実験設定と結果

  • 実験は Mistral 7B に Quiet-STaR を適用して行われた
  • 継続事前学習には、Webテキストデータセットの OpenWebMathC4(Colossal Clean Crawled Corpus) が使われた
  • タスク別ファインチューニングなしで、ゼロショットの直接推論性能が改善した
    • GSM8K: 5.9%→10.9%
    • CommonsenseQA: 36.3%→47.2%
  • GSM8K と CommonsenseQA の両方で、Quiet-STaR 学習中に使った思考トークン数が長くなるほど、性能改善が一貫して増加した
  • 自然テキストでは、予測が難しいトークンの perplexity が改善された
  • 生成された根拠は、特に 予測が難しいトークン に不均衡に大きな助けを与えた

Quiet-STaR の貢献

  • Quiet-STaR は、キュレーションされた推論タスクではなく、多様な 非構造テキストデータ から推論を学習できるように STaR を一般化した
  • 並列サンプリングアルゴリズムにより、与えられた文字列のすべてのトークン位置で根拠を生成する学習手順をスケーラブルにした
  • 思考の開始と終了を示すカスタムメタトークンは、モデルが根拠生成と根拠ベース予測のタイミングを学ぶために使われる
  • mixing head は、特定の thought から得られた次トークン予測を現在の予測にどれだけ反映するかを事後的に決定する
  • 複数トークン先を含む言語モデリング損失が、思考の効果を改善する
  • 複数タスクで思考を使うことで、同じWebテキストで学習したモデルより難しいトークンをより正確に予測し、より長い thought で改善幅が大きくなる

1件のコメント

 
GN⁺ 2024-03-17
Hacker News の意見
  • たとえば 50層の深さを持つネットワークは、記号的な質問に対して50ステップ程度しか推論できない、というのは直感的に当然に思える
    より複雑に見えるのは、モデルが学習した1つ以上の部分空間で50ステップを実行しているからで、その1つの「ステップ」が人間の1ステップより多くのことをしている可能性もある
    人間はそれ以上にも推論できるが、そのためには実際の思考と熟考、時にはメモ帳が必要になる
    ChatGPTに、何の思考も「紙」もなしに 4桁の掛け算を正確にやることを期待するのはかなり驚くべきことで、実際にそうした計算を暗算でできる人も多くない

    • その通りだが、自己回帰的な要素も考慮する必要がある
      例ではモデル実行1回あたり50ステップで、出力トークンごとにモデルが1回実行される
      そのため、実際にモデルがどれだけ「考え」られるかを計算するのはもっと複雑になる
      もちろん、トークンが一度出力されるとデフォルト設定ではそのトークンにコミットされるが、その後のトークンを生成しながらも引き続き「考え」ていないという意味ではない
      コンテキストと以前の出力トークンは次のモデルステップの入力なので、言及したメモ帳と見なせる
    • この論文は、そうした直感に沿って合成タスクにおけるトランスフォーマーの限界を調べている。掛け算のように複数段階の推論を必要とする作業も含まれる: https://arxiv.org/abs/2305.18654
      実験結果は、トランスフォーマー大規模言語モデルが多段階の合成推論を体系的な問題解決能力として解くというより、線形化された部分グラフマッチングへと縮約して解く傾向があることを示唆している
      また、抽象的な多段階推論問題に関する理論的議論として、自己回帰生成の性能がタスクの複雑さの増加につれて急速に低下し得ることを示している
    • ここでは重要な細部であるトークン数を見落としている。ネットワークの深さとしては50「ステップ」でも、追加のトークンを使うことができる
      テープが尽きないと仮定すれば、大規模言語モデルが単純な演算だけに制限される理由はない
    • バックプロパゲーションがどう働くかを考えると、この説明はあまり筋が通らない。各層が独立してのみ動作するように制限されているわけではない
      モデルが自己回帰的である点を考えても、同様にうまく当てはまらない
  • Edsger Dijkstraは正確な英語文体を持っていて、母語がオランダ語だったにもかかわらず、多くのネイティブよりも英語をうまく使いこなしていたと思う
    あるEWDで彼は、子どもの頃に「文をどう終えるかをすでに分かっていないうちは話し始めるな」と教わった、と回想している
    この2つの観察の間には因果関係がありそうだ

    • 若い頃、外国にしばらく住んで語学の授業を受けていたが、同じ授業にいた中年男性は新しい言語がとても下手だったのに、いつも人を笑わせる力があった
      彼がどうやっているのか気になっていたところ、ある日昼食を一緒にしながら真剣に説明してくれた
      彼は、頭の中で完全に言ってみる前には一文たりとも口に出さず、単語を何度も思い浮かべながら文を磨き、相手がどう反応するかを想像したうえで、望む反応が描けた時だけ話すのだと言っていた
      その助言は同時に、私が考えなしに話していることを鋭く指摘するものでもあり、私が尋ねていない問いを正確に読み取って答えてくれたように感じた
      この方法を試すと、努力した分だけ見返りはあったが、習慣にはできず、今でも心より口が先に出るほうだ
    • それは私には地獄のように聞こえる。即興性と、その瞬間にとどまる感覚が完全に失われるやり方だ
      以前は話す前に何を言うかを強迫的に考えようとしていて、社交的にぎこちないほうなのに、まったく役に立たなかった
      書くことは非同期なので、考えを正確に整理して直せるから好きだが、社会的な場面では大きな妨げになる
    • 2つのことが見える。第一に、書くことと話すことは違う。書くことは非同期なので、書く前に考え、修正できる
      第二に、母語でない言語で話すと、これから言う内容をより深く考えるようになる。慣用句は減り、意味がきちんと伝わるかにより集中し、相手を不快にさせないかにもより敏感になるようだ
      目新しい話でもない。科学のような分野も、フランス語、ドイツ語、ラテン語のように研究者の母語ではない言語で多く行われてきた
      また分野ごとの専門用語も一役買っている。「Kubernetesは、デプロイ、スケーリング、ソフトウェアの管理を自動化するためのオープンソースのコンテナオーケストレーションシステムです」とただ言えば、私の母語話者の聴衆の半分は混乱するだろう
    • 彼のEWDを読むのが好きだ。彼と一緒に仕事をしていた教授が、試験のとき学生にペンを使わせていたと言っていたことがある
      学生がミスする可能性を減らそうとしていたのだろうか?
    • 私も教科書で英語を学んだが、ネイティブが「their, there, they’re」を日常的に混同するのは、最も奇妙なことの1つだった
      自分がし得るミスだとは思いもしなかったし、「wet」と「vet」を混同するのに近いと感じる
      確かに、ネイティブと非ネイティブの言語使用には違いがある
  • 数日前に思ったことだが、大規模言語モデルベースのシステムで思考の連鎖(Chain-of-Thought)推論パターンが性能向上に寄与している様子は、カーネマンの『Thinking, Fast and Slow』に出てくる心の2つのシステムのモデルと並べて考えられる気がする
    その本を何年も読み返してはいないが、低い努力・低い計算で済む思考には主に「System 1」を使う、と書かれていたと記憶している。たとえば 1+1=? や「空は ____」のようなものだ
    一方で「System 2」は、意図的で意識的、かつ認知負荷の大きい作業に使われる。大きな数の掛け算、推論問題、ツールの利用、意思決定全般のように、集中力や脳のリソースを必要とするものだ
    「大規模言語モデルは確率的オウムであって知能はない」という批判は、実のところモデルが「System 1」だけを使うように装備されている、という観察のように感じられる
    大規模言語モデルに段階的に考えるようプロンプトすると、自分の考えを書き留めておく作業空間を与え、次のトークン予測でそれを再び考慮させることになるため、一種の基礎的なSystem 2、つまり熟考用のサンドボックスになる
    人間も System 2 を使うとき、心の前面に世界のジオラマを保持し、特定の行動を取ったとき環境がどう反応するかをシミュレーションする。友人が何と答えるか、鉄板が力でどう曲がるか、コードがどう壊れるか、タイヤがどうグリップするかを思い描き、可能性の木を探索して最も報酬の大きい行動を選ぶ
    専門家ではないが、この論文も似た枠組みを見いだしたように思う。特にロボティクスで見られる行動モデルには、今後反復的な熟考/シミュレーション機構が入るかもしれない

    • 完全な作り話、非科学的な逸話、素朴あるいは未熟な話に聞こえるかもしれないと先に断っておく。幸い、誰も信じる必要はない
      数週間前、完全に起きているわけでも眠っているわけでもない状態で、速い思考をする脳が光速のように単語や概念を吐き出し、遅い思考をする脳がそれらを実際の文章に変えていく過程に気づくループに入った
      思考の連鎖をアイデアのリストとして見ているようで、そのリストはばかげた速さで埋まり、その後、慎重に選ばれた単語のリストからなるきちんとした「考え」へと要約された
      それ以来、私たちが思考として認識しているものは、直前のブレインストーミング過程から出てきた選別済みの出力なのだ、という見方を信じるようになった
    • 大規模言語モデルにまったく知能がないとは言わない。予測に基づいているからであり、私たちが知能として認識する能力こそが予測能力だと信じている。皮質も予測するように進化した
      それでも知能は全か無かではなく、スペクトラム上にある。私の定義は「過去の経験に基づいて未来の結果を正しく予測する能力の度合い」であり、生物学的であれ人工的であれ、システムがパターンを認識し予測するために使えるメカニズムに左右される
      知能は経験にも依存する。経験していないものは認識できず、したがって予測もできないからだ。ただし、予測能力と経験をどちらも「知能」とひとまとめにするより、区別する語彙があるほうがよいかもしれない
      大規模言語モデルの予測装置と人間の脳を比べると、欠けているものは多い。「話す前に考える」ことはその1つであり、Q*アプローチや思考の木の手法はここに役立つだろう
      視床—皮質ループのような反復構造も大規模言語モデル/Transformer アプローチに組み込めるかもしれないが、人間レベルの能力に決定的に欠けているピースはオンライン学習だと見ている。行動し、その結果を見て、そこから学ぶ能力だ
      現在のアプローチで「本で学んだ」AGIは作れるかもしれないが、技能は練習と実験なしには学べない。開発者であれ何であれ、本を読んだり他人が作った成果物を分析したりするだけでは学べず、自分の予測と行動が現実にもたらす結果を理解し、そこから学ぶ必要がある
    • Andrej Karpathy も2023年11月の「[1hr Talk] Intro to Large Language Models」動画で同じ本を引用し、同じ趣旨を述べている
      関連部分のリンク: https://youtu.be/zjkBMFhNj_g?t=2120
    • その本の主張の大半は反証されたのではなかったか? 一部は著者本人が反証したと理解している
      面白く読んだし洞察も多いと感じたが、後でその分野の友人から、この本は正確ではなく、著者が一部の主張を「撤回」したと聞いた
    • 人々はよく、大規模言語モデルは以前に読んだテキストや自分の応答の一部のウィンドウに基づいて、単語、正確にはトークンの流れを反射的に作り出しているだけなので、本当に考えているわけではない、と言う。それは事実だ
      しかし話すとき、私自身も、実際に言ったことを聞くまで自分が何を言うのかわからない経験がある
      ときには頭の中で言い回しを試しながら熟考し計画するが、たいていの私はただトークンの流れを生成する大規模言語モデルに近いように思う
  • またしてもベースラインがひどい強化学習論文だ。GSM8k では出力形式がかなり特定されているのに、ゼロショットの非指示チューニング Mistral を使っている
    改善後の正解率は11%だったが、few-shot プロンプティングは37%を達成している[1]。GPT-4 はプロンプティングで約97%まで可能だ
    [1]: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderb...

    • 真面目な科学者なら、既知の手法とベースラインを設定し、それを改善するのも良い科学だ
      最新性能まで拡張することも可能だろうが、目的は単純な設定で自分たちの変更が及ぼす影響だけを測定することかもしれない
      複数のシステム構成を混ぜ合わせて最新性能を出す作業は、エンジニアに任せればよい
  • OpenAI の噂のQ*、つまり q-star モデルと関係があるのだろうか? この論文の著者たちは関係なさそうに見える
    ただ名前が偶然重なっただけなのか?

    • 同じ大げさな用語を使った言葉遊びのように思う
    • 私も同じことを考えた。この論文が拡張したSTaR 論文は2022年に出ているので、少なくとも q-star もこれを基盤にしていた可能性はある
      ただし Q が別の意味かもしれない
  • これは推論能力を持つAIを学習させるうえで欠けていたピースだ
    答えはわかっているが推論ステップが欠けているタスクは非常に多い。この方法を使えば、より少ない注釈データでその能力に到達できる
    興味深いのは、生成された思考が人間には理解しにくくても、正解を得るにははるかに役立つ可能性がある点だ
    そうなれば、私たちより知的な何かを作ったことになる

  • 今朝、プロンプトのレベルで基本的に似たようなことを試したが、結果はひどいものだった。ただ、頭の中にあった大まかなアイデアはさらに進んでいて、大規模言語モデルが自分のコンテキストを再探索するのを助ける制御フローのメタトークンを導入する、というものだった
    この見方では、コンテキストを自己編集される構造化されたマインドマップとして捉え直すことができ、ある時点 T における線形コンテキストは、そのマインドマップ探索のこれまでの実行トレースになる
    一部のメタトークンは、コンテキストの一部を強調したり、構造化したり、要約したり、忘れたりするなどの副作用を持ち得る
    こうすれば、json のような構文形式や LMQL 的なプログラミング構成なしでも、ネイティブな構造化出力やメモリ実装などが可能になるかもしれない
    目標は、大規模言語モデルに論理/推論能力を与えることにとどまらず、独自の認知アーキテクチャを作り出す手段を与えることだ
    構造化出力に ... トークンを使ってメモリやスクラッチパッドも実装すれば、そうした認知構造の検査可能性もおまけとして得られる
    もちろん、どう実装すればいいのかはまったく分からない。機械学習の観光客なので

  • 彼らは、自分たちの研究よりほぼ8年前に出ていた、言語モデリングに適用した RNN の学習済み可変計算の論文 [1] を引用していない
    [1] https://openreview.net/pdf?id=S1LVSrcge
    Microsoft もその頃、画像認識向けに似たようなものを持っていた。入力には CNN を使い、分類段階で可変計算を行う方式だった

  • 評価に Base Mistral 7B を使うのは、ほとんど適切ではない。Intel のチームも NeuralChat でまったく同じやり方の抜け道を使おうとしていた https://huggingface.co/Intel/neural-chat-7b-v3#quantitative-...

  • 「テキストの意味の大部分は行間に隠れている。文書にそのような文がなぜ現れるのかを理解できなければ、読者は浅い理解しか得られない」という文は、私の読み方や、私が知るほとんどの人にとっては事実ではないように思う
    ほとんどの場合、私たちは世界モデルを持っており、そうした文が本に登場する理由をある程度は分かっているのだと思う
    流体力学の教科書を読むとき、数学は理解できないかもしれないが、それらの文が理論を学ぶ助けとなる数学的記述であり、重要な概念を教えるためのパターンに従っていることは分かる
    たとえば、概念は以前の概念の上に積み上がる。ベルヌーイの方程式は、その前にエネルギー保存則があったから登場し、私が後者を理解していると仮定しているから、そこにあるのだ