JaLMS
最新の AI 研究を日本語で解読

o1-Coder: an o1 Replication for Coding

Yuxiang Zhang, Shangxi Wu, Yuqi Yang, Jiangming Shu, Jinlin Xiao, Chao Kong & Jitao Sang
School of Computer Science and Technology
Beijing Jiaotong University
Beijing, China
{yuxiangzhang, wushangxi, yqyang, jiangmingshu, jinlinx, 23120361,
jtsang}@bjtu.edu.cn

Corresponding author.
Abstract

本技術報告書は、コーディングタスクに焦点を当てたOpenAIのo1モデルの複製を試みるO1-CODERを紹介する。これは、モデルのシステム2思考能力を向上させるために、強化学習(RL)とモンテカルロ木探索(MCTS)を統合している。このフレームワークには、標準化されたコードテスト用のテストケースジェネレータ(TCG)の訓練、推論プロセスを伴うコードデータ生成のためのMCTSの使用、そして最初に擬似コードを生成し、その後完全なコードを生成するためのポリシーモデルの反復的な微調整が含まれる。本稿はまた、o1様のモデルを実世界のアプリケーションに展開する際の機会と課題に取り組み、システム2パラダイムへの移行を提案し、環境状態の更新の必要性を強調している。更新されたモデルの進捗と実験結果は、後続のバージョンで報告される予定である。全てのソースコード、キュレーションされたデータセット、および派生モデルは、https://github.com/ADaM-BJTU/O1-CODERで公開される。

1 Introduction

OpenAIは最近、o1モデル(OpenAI, 2024)を発表した。このモデルは、印象的なシステム2思考能力を示している。このモデルは、高次の認知機能を必要とする複雑な推論タスクを実行するAIの能力において、重要な進歩を表している。その発表以降、多数の分析と複製の取り組みが現れ、o1のようなモデルへの関心と可能性の高まりを示している。注目すべき研究には、g1 (Benjamin Klieger, 2024)、OpenO1 (ope, 2024)、O1-Journey (GAIR-NLP, 2024)、OpenR (Team, 2024)、LLaMA-O1 (SimpleBerry, 2024)、LLaMA-Berry (Zhang et al., 2024)、Steiner (Ji, 2024)、Thinking Claude (Richards Tu, 2024)、LLaVA-o1 (Xu et al., 2024)、そしてk0-math、DeepSeek-R1-Lite、Macro-o1 (Zhao et al., 2024)、Skywork o1、QwQ (Qwen Team, 2024)、InternThinker (Shanghai AI Lab, 2024)などの産業界からのリリースがある(図1に示す)。

o1モデル以前の大規模言語モデル(LLM)は、主にシステム1の能力、すなわち速く直感的な応答を示していた。これらのモデルは主に質問-回答(Q,A)𝑄𝐴(Q,A)( italic_Q , italic_A )のペアで構成されたデータセットで訓練されており、意図的で分析的な処理を含む中間的な推論ステップが欠けていた。これは、人間がインターネットやその他の場所で自身の思考プロセスを記録することがほとんどないことに起因している。従来、Chain-of-Thought(CoT)プロンプティングなどの技術が、回答に至る前にステップバイステップの推論を生成するようモデルを導くために使用されていた。しかし、より直接的で効果的な方法は、推論の順序を含むデータセットを作成することである。例えば、(Q,,Si,,A)𝑄subscript𝑆𝑖𝐴(Q,...,S_{i},...,A)( italic_Q , … , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , … , italic_A )のように、Sisubscript𝑆𝑖S_{i}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTは最終的な回答に至る個々の推論ステップを表している。

o1が推論データの不足に対処するために強化学習と事前学習を組み合わせているという考えが広く信じられている。強化学習(RL)は、事前に定義されたデータに依存するのではなく、新しい戦略を探索し発見する能力で知られている。機械学習の主要な発展を振り返ると、ディープラーニングと大規模な事前学習が、それぞれモデルアーキテクチャとラベル付きデータの要件に変革をもたらしたことがわかる。一方、強化学習は目的関数の変革という異なる側面に取り組んでいる。明示的な指導や明確な目標が欠如している状況において、RLは探索を活用して新しい知識や解決策を探求する。事前学習とRLを組み合わせることで、学習と探索の強力な相乗効果が生まれる。事前学習が既存の人間の知識を圧縮し、RLがモデルに新しい可能性を探索させるのである。

我々は、RLを用いて推論データを生成し洗練させる方法を探るために、コーディングタスクを選択した。コーディングは、慎重で論理的かつ段階的な問題解決を必要とするシステム2思考の典型的なタスクである。さらに、コーディングは多くの他の複雑な問題を解決するための基礎的なスキルとなりうる。本技術報告書は、コーディングタスクに特化したo1の複製を試みた我々の取り組みを提示する。このアプローチは、RLとモンテカルロ木探索(MCTS)を統合してセルフプレイを可能にし、モデルが継続的に推論データを生成し、システム2の能力を向上させることを可能にする。

Refer to caption
図1: o1の複製の取り組み:上部は学術機関とオープンソースコミュニティから、下部は産業界からのもの。

2 Framework Overview

コード生成に適用される自己対戦型強化学習には、主に2つの課題がある。第一の課題は結果評価、つまり生成されたコードの品質を評価することである。囲碁や数学のように、ゲームのルールや正解に基づいて直接結果を評価できるタスクとは異なり、コードの評価にはテスト環境内で生成されたコードを実行し、テストケースに対して検証する必要がある。我々は、コードデータセットが常に十分なテストケースを提供すると仮定することはできない。第二の課題は、思考と探索の行動を定義すること、つまり過程報酬の対象と粒度を決定することである。コード生成においては、モデルの行動を効果的に導くために、推論プロセスとポリシーの空間をどのように設計するかが重要な問題となる。

第一の課題に対処するため、我々はテストケース生成器(TCG)の訓練を提案する。これは問題と正解コードに基づいてテストケースを自動生成するものである111我々は、問題のみに基づいてテストケースを生成する代替アプローチも提案している。問題のみを提供するコードデータセットを活用することに加えて、推論フェーズでも適用でき、事前に定義された正解コードを必要とせずにオンライン推論を可能にする。。このアプローチは、標準化されたコードテスト環境の構築に役立ち、強化学習のための結果報酬を提供する。

第二の課題については、2つのアプローチが考えられる。1つは「行動前に思考する」アプローチで、モデルはまず完全な思考の連鎖を形成し、その後一度に最終的な答えを生成する。もう1つのアプローチは「行動しながら思考する」(Zelikman et al., 2024)で、タスクを推論しながら同時に答えの一部を生成する。我々は前者のアプローチを選択した。コード生成においては、これはまず詳細な疑似コードを考え出して書き、それを用いて最終的な実行可能なコードを生成することを意味する。このアプローチには2つの利点がある:適応性、つまり同じ疑似コードから異なる具体的なコード実装につながる可能性があること;そして制御可能な粒度、つまり疑似コードの詳細レベルを調整することで推論/探索行動の粒度を制御できることである。

完全なフレームワークの疑似コードはアルゴリズム1に示されており、6つのステップで構成されている。(1) 最初のステップは、テストケース生成器(TCG)γTCGsubscript𝛾TCG\gamma_{\text{TCG}}italic_γ start_POSTSUBSCRIPT TCG end_POSTSUBSCRIPTの訓練であり、これは質問に基づいてテストケースを自動的に生成する役割を担う。(2) 第2のステップでは、元のコードデータセットに対してMCTSを実行し、推論プロセスを含むコードデータ𝒟processsubscript𝒟process\mathcal{D}_{\text{process}}caligraphic_D start_POSTSUBSCRIPT process end_POSTSUBSCRIPTを生成する。これには、正しい推論ステップと不正確な推論ステップを区別するための妥当性指標が含まれる。(3) 推論プロセスを含むデータが得られたら、第3のステップでは、ポリシーモデルπθsubscript𝜋𝜃\pi_{\theta}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPTを微調整し、「行動する前に考える」方式で振る舞うよう訓練する。(4) 推論プロセスデータは、推論ステップの質を評価するプロセス報酬モデル(PRM)ρPRMsubscript𝜌PRM\rho_{\text{PRM}}italic_ρ start_POSTSUBSCRIPT PRM end_POSTSUBSCRIPTの初期化にも使用できる。(5) 第5のステップが最も重要である:PRM ρPRMsubscript𝜌PRM\rho_{\text{PRM}}italic_ρ start_POSTSUBSCRIPT PRM end_POSTSUBSCRIPTがプロセス報酬を提供し、TCG γTCGsubscript𝛾TCG\gamma_{\text{TCG}}italic_γ start_POSTSUBSCRIPT TCG end_POSTSUBSCRIPTが結果報酬を提供する中で、ポリシーモデルπθsubscript𝜋𝜃\pi_{\theta}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPTは強化学習とMCTSによって更新される。(6) 第6のステップでは、更新されたポリシーモデルに基づいて新しい推論データを生成できる。この新しいデータは、PRMを再度微調整するために使用できる(第4ステップ)。したがって、ステップ4、5、6は反復サイクルを形成し、自己対戦が継続的にモデルの改善を推進する。6つのステップ間のフローは図2に示されている。以下のセクションでは、各ステップについて詳細に説明する。

アルゴリズム1 自己対戦+強化学習ベースのコーダー訓練フレームワーク
1:
2:𝒟codesubscript𝒟code\mathcal{D}_{\text{code}}caligraphic_D start_POSTSUBSCRIPT code end_POSTSUBSCRIPT: 問題Qisubscript𝑄𝑖Q_{i}italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTと解答コードCisubscript𝐶𝑖C_{i}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTを含むデータセット
3:πθsubscript𝜋𝜃\pi_{\theta}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT: 初期方策モデル
4:γTCGsubscript𝛾TCG\gamma_{\text{TCG}}italic_γ start_POSTSUBSCRIPT TCG end_POSTSUBSCRIPT: 問題指向のテストサンプルを作成するためのテストケース生成器(TCG)
5:ρPRMsubscript𝜌PRM\rho_{\text{PRM}}italic_ρ start_POSTSUBSCRIPT PRM end_POSTSUBSCRIPT: 中間推論ステップの品質を評価するプロセス報酬モデル(PRM)
6:ϕitalic-ϕ\phiitalic_ϕ: 結果ベースの報酬とプロセスベースの報酬を組み合わせる集約関数
7:
8:最適化された方策モデル πθsuperscriptsubscript𝜋𝜃\pi_{\theta}^{*}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT
9:\triangleright ① テストケース生成器(TCG)の訓練
10:γTCGsubscript𝛾TCG\gamma_{\text{TCG}}italic_γ start_POSTSUBSCRIPT TCG end_POSTSUBSCRIPT𝒟codesubscript𝒟code\mathcal{D}_{\text{code}}caligraphic_D start_POSTSUBSCRIPT code end_POSTSUBSCRIPTで訓練し、生成されたテストケース{(Ii,Oi)}subscript𝐼𝑖subscript𝑂𝑖\{(I_{i},O_{i})\}{ ( italic_I start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) }の多様性と正確性を最大化する。
11:\triangleright ② 推論強化コードデータセットの合成
12:𝒟code={Qi,Ci}subscript𝒟codesubscript𝑄𝑖subscript𝐶𝑖\mathcal{D}_{\text{code}}=\{Q_{i},C_{i}\}caligraphic_D start_POSTSUBSCRIPT code end_POSTSUBSCRIPT = { italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT }に基づき、MCTSを使用して𝒟process={(Qi,,Sij,vij,,Ci)|j=1,,m}subscript𝒟processconditional-setsubscript𝑄𝑖superscriptsubscript𝑆𝑖𝑗superscriptsubscript𝑣𝑖𝑗superscriptsubscript𝐶𝑖𝑗1𝑚\mathcal{D}_{\text{process}}=\{(Q_{i},\cdots,S_{i}^{j},v_{i}^{j},\cdots,C_{i}^% {\prime})|j=1,\cdots,m\}caligraphic_D start_POSTSUBSCRIPT process end_POSTSUBSCRIPT = { ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , ⋯ , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , ⋯ , italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) | italic_j = 1 , ⋯ , italic_m }を生成する。ここで、Sijsuperscriptsubscript𝑆𝑖𝑗S_{i}^{j}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPTは推論ステップを表し、vij{0,1}superscriptsubscript𝑣𝑖𝑗01v_{i}^{j}\in\{0,1\}italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT ∈ { 0 , 1 }は生成されたコードがテストケースを通過した場合にvim=1superscriptsubscript𝑣𝑖𝑚1v_{i}^{m}=1italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT = 1となる有効性指標である。
13:\triangleright ③ 方策モデルのファインチューニング
14:有効なステップ𝒟process+={(Qi,Sij,Ci)(Qi,Sij,vij,Ci)𝒟process,𝕀(Ci)=1}subscriptsuperscript𝒟processconditional-setsubscript𝑄𝑖superscriptsubscript𝑆𝑖𝑗superscriptsubscript𝐶𝑖formulae-sequencesubscript𝑄𝑖superscriptsubscript𝑆𝑖𝑗superscriptsubscript𝑣𝑖𝑗superscriptsubscript𝐶𝑖subscript𝒟process𝕀superscriptsubscript𝐶𝑖1\mathcal{D}^{+}_{\text{process}}=\{(Q_{i},S_{i}^{j},C_{i}^{\prime})\mid(Q_{i},% S_{i}^{j},v_{i}^{j},C_{i}^{\prime})\in\mathcal{D}_{\text{process}},\mathbb{I}(% C_{i}^{\prime})=1\}caligraphic_D start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT process end_POSTSUBSCRIPT = { ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ∣ ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ∈ caligraphic_D start_POSTSUBSCRIPT process end_POSTSUBSCRIPT , blackboard_I ( italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) = 1 }でSFTを用いてπθsubscript𝜋𝜃\pi_{\theta}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPTをファインチューニングする。
15:while 収束しない do
16:\triangleright ④ プロセス報酬モデル(PRM)の初期化/ファインチューニング
17: 𝒟processsubscript𝒟process\mathcal{D}_{\text{process}}caligraphic_D start_POSTSUBSCRIPT process end_POSTSUBSCRIPTを用いてポイントワイズ損失でSFTを使用するか、ペアワイズ損失でDPOを使用してPRMを訓練/ファインチューニングする。
18:\triangleright ⑤ 強化学習による方策モデルの改善
19: ri=0subscript𝑟𝑖0r_{i}=0italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = 0を初期化する。
20: for j=1,2,,m𝑗12𝑚j=1,2,\dots,mitalic_j = 1 , 2 , … , italic_m do
21: 推論ステップSijπθ(SijQi,Si1:j1)similar-tosuperscriptsubscript𝑆𝑖𝑗subscript𝜋𝜃conditionalsuperscriptsubscript𝑆𝑖𝑗subscript𝑄𝑖superscriptsubscript𝑆𝑖:1𝑗1S_{i}^{j}\sim\pi_{\theta}(S_{i}^{j}\mid Q_{i},S_{i}^{1:j-1})italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT ∼ italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ( italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT ∣ italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j - 1 end_POSTSUPERSCRIPT )を生成する。
22: PRMを使用してプロセスベースの報酬rij=ρPRM(Qi,Si1:j)superscriptsubscript𝑟𝑖𝑗subscript𝜌PRMsubscript𝑄𝑖superscriptsubscript𝑆𝑖:1𝑗r_{i}^{j}=\rho_{\text{PRM}}(Q_{i},S_{i}^{1:j})italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT = italic_ρ start_POSTSUBSCRIPT PRM end_POSTSUBSCRIPT ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j end_POSTSUPERSCRIPT )を計算する。
23: end for
24: Qisubscript𝑄𝑖Q_{i}italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTと完全な推論シーケンスSi1:msuperscriptsubscript𝑆𝑖:1𝑚S_{i}^{1:m}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_m end_POSTSUPERSCRIPTに基づいて、最終的なコードCisuperscriptsubscript𝐶𝑖C_{i}^{\prime}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPTを生成する。
25: TCGを使用して、正解コードCisubscript𝐶𝑖C_{i}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTを持つ各問題Qisubscript𝑄𝑖Q_{i}italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTのテストケース(Ii,Oi)subscript𝐼𝑖subscript𝑂𝑖(I_{i},O_{i})( italic_I start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT )を生成する。
26: 生成されたコードCisuperscriptsubscript𝐶𝑖C_{i}^{\prime}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPTを入力Iisubscript𝐼𝑖I_{i}italic_I start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTで実行して出力Oisuperscriptsubscript𝑂𝑖O_{i}^{\prime}italic_O start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPTを生成する。
27: 結果ベースの報酬を計算する:
Ri={τpass,if Oi=Oi,τfail,otherwise.subscript𝑅𝑖casessubscript𝜏passif superscriptsubscript𝑂𝑖subscript𝑂𝑖subscript𝜏failotherwise.R_{i}=\begin{cases}\tau_{\text{pass}},&\text{if }O_{i}^{\prime}=O_{i},\\ \tau_{\text{fail}},&\text{otherwise.}\end{cases}italic_R start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = { start_ROW start_CELL italic_τ start_POSTSUBSCRIPT pass end_POSTSUBSCRIPT , end_CELL start_CELL if italic_O start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = italic_O start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , end_CELL end_ROW start_ROW start_CELL italic_τ start_POSTSUBSCRIPT fail end_POSTSUBSCRIPT , end_CELL start_CELL otherwise. end_CELL end_ROW
28: 集約された報酬ϕ(Ri,ri1:m)italic-ϕsubscript𝑅𝑖superscriptsubscript𝑟𝑖:1𝑚\phi(R_{i},r_{i}^{1:m})italic_ϕ ( italic_R start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_m end_POSTSUPERSCRIPT )に導かれる強化学習手法を用いてπθsubscript𝜋𝜃\pi_{\theta}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPTを更新する。
29: \triangleright ⑥ 新しい推論データの生成
30: 更新されたπθsubscript𝜋𝜃\pi_{\theta}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPTを使用して新しい推論データ𝒟processsubscriptsuperscript𝒟process\mathcal{D}^{\prime}_{\text{process}}caligraphic_D start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT process end_POSTSUBSCRIPTを生成する。
31: データセットを更新する:𝒟process𝒟process𝒟processsubscript𝒟processsubscript𝒟processsubscriptsuperscript𝒟process\mathcal{D}_{\text{process}}\leftarrow\mathcal{D}_{\text{process}}\cup\mathcal% {D}^{\prime}_{\text{process}}caligraphic_D start_POSTSUBSCRIPT process end_POSTSUBSCRIPT ← caligraphic_D start_POSTSUBSCRIPT process end_POSTSUBSCRIPT ∪ caligraphic_D start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT process end_POSTSUBSCRIPT
32:end while
33:return 最適化された方策モデル πθsuperscriptsubscript𝜋𝜃\pi_{\theta}^{*}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT
Refer to caption
図2: 自己対戦+強化学習トレーニングフレームワーク。

3 Method and Intermediate Results

3.1 Test Case Generator Training

3.1.1 Objective

テストケース生成器は、入出力テストケースの作成を自動化するツールであり、コード生成タスクにおけるプログラム検証を支援する上で重要な役割を果たす。

訓練段階では、生成されたコードの正確性は通常、標準的な入出力テストケースで評価される。これらのテストケースの合格率は、生成されたコードの品質を評価する重要な指標となり、ポリシーモデルの訓練を導く結果報酬信号として機能する。この報酬信号は、モデルが生成戦略を洗練させるのに役立ち、それによって正確で機能的なコードを生成する能力を向上させる。

推論段階では、訓練されたモデルがコード生成を行う際、生成されたコードの正確性を検証するための標準的なテストケースが多くの場合利用できない。テストケース生成器は、ポリシーモデルに自己検証メカニズムを提供することでこの制限を緩和し、ポリシーモデルが最終生成前に評価を行うことを可能にする。その結果、ポリシーモデルは検証結果に基づいて最適な出力パスを選択することができる。

3.1.2 Training

訓練プロセスは、教師あり微調整(SFT)と直接選好最適化(DPO)(Rafailov et al., 2024)の2つの異なる段階に分かれる。 我々は、微調整されていない生成器をγTCGbasesubscript𝛾subscriptTCG𝑏𝑎𝑠𝑒\gamma_{\text{TCG}_{base}}italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT italic_b italic_a italic_s italic_e end_POSTSUBSCRIPT end_POSTSUBSCRIPTと表記する。

SFT段階の主な目的は、生成器の出力が事前に定義されたフォーマットに従うようにし、生成されたテストケースの正確な解析と抽出を可能にすることである。この段階の訓練データは、{question𝑞𝑢𝑒𝑠𝑡𝑖𝑜𝑛questionitalic_q italic_u italic_e italic_s italic_t italic_i italic_o italic_n, solution𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛solutionitalic_s italic_o italic_l italic_u italic_t italic_i italic_o italic_n, test_case𝑡𝑒𝑠𝑡_𝑐𝑎𝑠𝑒test\_caseitalic_t italic_e italic_s italic_t _ italic_c italic_a italic_s italic_e}のフォーマットに従うTACOデータセット(Li et al., 2023)から得られる。 モデルの入力と出力を標準化するために、我々は以下に詳述するテンプレートフォーマットを開発した:

TCG SFTのテンプレートフォーマット ### 指示 コード部分のタスクを完了し、生成されたコードの品質をテストするために使用できるいくつかのテストケースをテスト部分で生成してください。 ### 問題
{質問}
### コード部分
{提供された解決策からランダムに1つ選択}
### テスト部分
[ここでコードを検証するための3つのテストケースを生成]
{入力と出力の形式で各3つのtest_casesをサンプリング}
図3: TCG SFTのテンプレートフォーマット

SFT後の生成器はγTCGsftsubscript𝛾subscriptTCG𝑠𝑓𝑡\gamma_{\text{TCG}_{sft}}italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT italic_s italic_f italic_t end_POSTSUBSCRIPT end_POSTSUBSCRIPTと表記される。

DPO段階の目的は、特定の選好に沿ったテストケースを生成するようモデルを導き、テストケース生成器のパフォーマンスと信頼性を向上させることである。本研究では、選好データセットを構築することで、人工的に構築されたサンプルペアを用いてDPO手法を採用し、望ましい選好に沿う能力を向上させる。 我々のDPO微調整は、事前に構築された選好データセットDpref={x,yw,yl}subscript𝐷𝑝𝑟𝑒𝑓𝑥subscript𝑦𝑤subscript𝑦𝑙D_{pref}=\{x,y_{w},y_{l}\}italic_D start_POSTSUBSCRIPT italic_p italic_r italic_e italic_f end_POSTSUBSCRIPT = { italic_x , italic_y start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT }に依存しており、x𝑥xitalic_xは指示、質問、コードを含むプロンプトであり、ywsubscript𝑦𝑤y_{w}italic_y start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPTは選好に沿った正の例、つまりテストケースであり、ylsubscript𝑦𝑙y_{l}italic_y start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPTは選好に沿わない負の例、つまりテストケースである。 我々は以下のルールを採用して選好データを構築する:ywsubscript𝑦𝑤y_{w}italic_y start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPTについては、完全に一致する3つのサンプリングされたテストケースを直接正の例として使用する;ylsubscript𝑦𝑙y_{l}italic_y start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPTについては、3つのサンプリングされたテストケースの出力をシャッフルし、元の入力を連結して3つのテストケースの入出力ペアが完全に一致しないようにし、これらの不完全に一致する3つのテストケースを負の例として使用する。 訓練目的は、初期SFTモデルγTCGsftsubscript𝛾subscriptTCG𝑠𝑓𝑡\gamma_{\text{TCG}_{sft}}italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT italic_s italic_f italic_t end_POSTSUBSCRIPT end_POSTSUBSCRIPTに基づいてγTCGθsubscript𝛾subscriptTCG𝜃\gamma_{\text{TCG}_{\theta}}italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT end_POSTSUBSCRIPTを最適化することであり、初期SFTモデルγTCGsftsubscript𝛾subscriptTCG𝑠𝑓𝑡\gamma_{\text{TCG}_{sft}}italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT italic_s italic_f italic_t end_POSTSUBSCRIPT end_POSTSUBSCRIPTを表す参照モデルγTCGrefsubscript𝛾subscriptTCGref\gamma_{\text{TCG}_{\mathrm{ref}}}italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT roman_ref end_POSTSUBSCRIPT end_POSTSUBSCRIPTによる暗黙的な報酬モデリングを組み込む。目的関数は以下の通りである:

DPO(γTCGθ;γTCGref)=𝔼(x,yw,yl)Dpref[logσ(βlogγTCGθ(ywx)γTCGref(ywx)βlogγTCGθ(ylx)γTCGref(ylx))],subscriptDPOsubscript𝛾subscriptTCG𝜃subscript𝛾subscriptTCGrefsubscript𝔼similar-to𝑥subscript𝑦𝑤subscript𝑦𝑙subscript𝐷𝑝𝑟𝑒𝑓delimited-[]𝜎𝛽subscript𝛾subscriptTCG𝜃conditionalsubscript𝑦𝑤𝑥subscript𝛾subscriptTCGrefconditionalsubscript𝑦𝑤𝑥𝛽subscript𝛾subscriptTCG𝜃conditionalsubscript𝑦𝑙𝑥subscript𝛾subscriptTCGrefconditionalsubscript𝑦𝑙𝑥\mathcal{L}_{\text{DPO}}(\gamma_{\text{TCG}_{\theta}};\gamma_{\text{TCG}_{% \mathrm{ref}}})=-\mathbb{E}_{(x,y_{w},y_{l})\sim D_{pref}}\left[\log\sigma% \left(\beta\log\frac{\gamma_{\text{TCG}_{\theta}}(y_{w}\mid x)}{\gamma_{\text{% TCG}_{\mathrm{ref}}}(y_{w}\mid x)}-\beta\log\frac{\gamma_{\text{TCG}_{\theta}}% (y_{l}\mid x)}{\gamma_{\text{TCG}_{\mathrm{ref}}}(y_{l}\mid x)}\right)\right],caligraphic_L start_POSTSUBSCRIPT DPO end_POSTSUBSCRIPT ( italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT end_POSTSUBSCRIPT ; italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT roman_ref end_POSTSUBSCRIPT end_POSTSUBSCRIPT ) = - blackboard_E start_POSTSUBSCRIPT ( italic_x , italic_y start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) ∼ italic_D start_POSTSUBSCRIPT italic_p italic_r italic_e italic_f end_POSTSUBSCRIPT end_POSTSUBSCRIPT [ roman_log italic_σ ( italic_β roman_log divide start_ARG italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_y start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ∣ italic_x ) end_ARG start_ARG italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT roman_ref end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_y start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ∣ italic_x ) end_ARG - italic_β roman_log divide start_ARG italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_y start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ∣ italic_x ) end_ARG start_ARG italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT roman_ref end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_y start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ∣ italic_x ) end_ARG ) ] ,

(1)

ここで、σ(x)𝜎𝑥\sigma(x)italic_σ ( italic_x )はシグモイド関数であり、β𝛽\betaitalic_βは訓練中の正の例と負の例のコントラスト強度を調整するために使用されるスケーリング係数を表す。 DPO後の生成器はγTCGdposubscript𝛾subscriptTCG𝑑𝑝𝑜\gamma_{\text{TCG}_{dpo}}italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT italic_d italic_p italic_o end_POSTSUBSCRIPT end_POSTSUBSCRIPTと表記され、これは最終的な生成器γTCGsubscript𝛾TCG\gamma_{\text{TCG}}italic_γ start_POSTSUBSCRIPT TCG end_POSTSUBSCRIPTを表す。

3.1.3 Experiments

我々は、テストケース生成器のベースモデルとしてDeepSeek-1.3B-Instruct (Guo et al., 2024)を使用し、その後SFTとDPOを適用した。微調整段階では、QLoRA技術(Dettmers et al., 2023)をランクパラメータr=1𝑟1r=1italic_r = 1で採用し、以下のモジュールを適応させた:q_proj,o_proj,k_proj,v_proj,gate_proj,up_proj,down_proj𝑞_𝑝𝑟𝑜𝑗𝑜_𝑝𝑟𝑜𝑗𝑘_𝑝𝑟𝑜𝑗𝑣_𝑝𝑟𝑜𝑗𝑔𝑎𝑡𝑒_𝑝𝑟𝑜𝑗𝑢𝑝_𝑝𝑟𝑜𝑗𝑑𝑜𝑤𝑛_𝑝𝑟𝑜𝑗q\_{proj},o\_{proj},k\_{proj},v\_{proj},gate\_{proj},up\_{proj},down\_{proj}italic_q _ italic_p italic_r italic_o italic_j , italic_o _ italic_p italic_r italic_o italic_j , italic_k _ italic_p italic_r italic_o italic_j , italic_v _ italic_p italic_r italic_o italic_j , italic_g italic_a italic_t italic_e _ italic_p italic_r italic_o italic_j , italic_u italic_p _ italic_p italic_r italic_o italic_j , italic_d italic_o italic_w italic_n _ italic_p italic_r italic_o italic_j。学習率は訓練の安定性と収束速度のバランスを取るために5×1045superscript1045\times 10^{-4}5 × 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPTに設定された。訓練データはTACO訓練データセットのサブセットから得られ、ACM競技形式に準拠し、約10,000サンプルを含む。同様に、テストデータはTACOテストデータセットのサブセットから得られ、ICPC競技形式に準拠し、314サンプルで構成される。

我々は、TACOテストの異なる段階で生成されたテストケースの品質をテストした。SFT段階後、γTCGsftsubscript𝛾subscriptTCG𝑠𝑓𝑡\gamma_{\text{TCG}_{sft}}italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT italic_s italic_f italic_t end_POSTSUBSCRIPT end_POSTSUBSCRIPTによって生成されたテストケースの標準コードに対する合格率は80.8%であり、予備的な微調整後の生成器のテストケース生成能力の効率性を示した。さらに、γTCGdposubscript𝛾subscriptTCG𝑑𝑝𝑜\gamma_{\text{TCG}_{dpo}}italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT italic_d italic_p italic_o end_POSTSUBSCRIPT end_POSTSUBSCRIPTは89.2%のパフォーマンスを達成し、γTCGsftsubscript𝛾subscriptTCG𝑠𝑓𝑡\gamma_{\text{TCG}_{sft}}italic_γ start_POSTSUBSCRIPT TCG start_POSTSUBSCRIPT italic_s italic_f italic_t end_POSTSUBSCRIPT end_POSTSUBSCRIPTと比較して顕著な改善を反映した。これは、選好最適化によってモデルの意思決定プロセスを洗練させることで、生成器のより信頼性の高いテストケースを生成する能力が大幅に向上したことを示している。

実際のシナリオでは、生成器のパフォーマンスは一般的にコードの正確性を評価するための要件を満たしている。今後、我々はモデルが推論中に自律的にデータを生成するDPO手法を探求し、生成器のパフォーマンスをさらに最適化する可能性がある。

さらに、我々はTCGの訓練にセルフプレイの導入を検討している。この設定では、ポリシーモデルがTCGによって生成されたテストケースに合格することを意図したコードを生成し、TCGはより困難なテストケースを段階的に生成することを目指す。この敵対的な相互作用により、ポリシーモデルとテストケース生成器の両方が相互に改善される可能性がある。

疑似コードプロンプト ### 指示 与えられたタスクの説明を参照し、段階的な疑似コードの洗練という形で思考プロセスを提供してください。 好奇心旺盛なユーザーがプログラミングの質問をしてきました。ユーザーの質問に対して段階的な解決策を提供してください。各ステップで以下の3つのアクションのいずれかを選択できます: <アクション1> 疑似コードを使用したアルゴリズム構造の定義 説明:実装の詳細に立ち入ることなく、解決策の中核となる関数と全体的な構造を概説します。入力、出力、各関数が実行する主要なタスクを定義します。 <アクション2> 疑似コードの一部を洗練 説明:疑似コードにより多くの詳細を追加し、各関数が実行する正確なステップ、ロジック、操作を指定します。これにより、疑似コードを実際のコーディングの準備段階に進めます。 <アクション3> 疑似コードからPythonコードを生成 説明:洗練された疑似コードを実行可能なPythonコードに変換し、入力、出力の処理を確実に行い、実装の正確性を確保します。 注意: - 各ステップで3つのアクションのいずれかを選択できます。 - 各ステップの背後にある理由の詳細な説明を提供してください。 - 可能な限り参照コードを参照するよう努めますが、必要に応じて修正することもできます(例:変数名の変更、コメントの追加など)。 ### 例
{例}
### 質問
{質問}
図4: 段階的洗練のための疑似コードプロンプト

3.2 Reasoning-enhanced Code Data Synthesis

3.2.1 Pseudocode-based Reasoning Process

推論プロセスの定義は極めて重要である。序論で述べたように、我々は複雑なコードタスクに対する大規模言語モデルの深い推論を導くために設計された、疑似コードベースのプロンプティングアプローチを探求している。疑似コードは、自然言語記述と実際のコードの中間表現として機能し、アルゴリズムやプログラムの論理的流れをより抽象的かつ簡潔に表現する方法を提供する。図4に示すように、疑似コード推論をステップレベルの思考連鎖(Chain-of-Thought、CoT)に統合するために、我々は疑似コード推論を取り入れた3つの主要な行動アクションを定義する:

  • アクション1:疑似コードを用いたアルゴリズム構造の定義:このアクションでは、モデルは実装の詳細に立ち入ることなく、主要な関数の構造とインターフェースの概要を示す。目的は、モデルが各主要関数の入力、出力、および中核的機能を含む全体的なタスク構造を把握できるようにすることである。

  • アクション2:疑似コードの洗練:このアクションでは、モデルはアクション1で定義された疑似コードを反復的に洗練し、最終的なコード実装の準備として、各関数のステップ、ロジック、および操作を徐々に明確化する。

  • アクション3:疑似コードからのコード生成:このアクションの目標は、疑似コードの構造とロジックを実行可能なコードに正確に変換し、生成されたコードがタスクの要件を満たすことを確保することである。

これらのアクションにより、モデルは推論プロセス中に疑似コードを認知ツールとして使用し、複雑なコード生成タスクに対する推論能力を向上させる。 これら3つのアクションは、推論連鎖がこれらのステップのみに限定されることを意味するものではないことに注意することが重要である。図5に示すように、モデルは推論プロセス全体を通じてアクション2を繰り返し呼び出し、最終的なコード生成に十分な程度まで疑似コードを反復的に洗練する必要がある場合がある。

Refer to caption
図5:疑似コードCoTを用いて生成された例示コード

疑似コード推論を用いたステップレベルCoTの有効性を評価するために、我々はQwenシリーズのオープンソースモデル(Yang et al., 2024)とMostly Basic Python Problems (MBPP)データセット(Austin et al., 2021)をベンチマークとして使用して実験を行った。実験では、モンテカルロ木探索(MCTS)に基づくサンプリング戦略を採用し、通常のCoTと疑似コード推論を用いたCoTのPass@1、および正しい推論パス上の最後のステップにおける平均サンプリング合格率(ASPR)を比較した。我々の結果は、推論が正しい場合、疑似コードを組み込むことで生成されるコードの品質が大幅に向上することを示している。

1に結果を示す。Pass@1指標は疑似コードベースの推論で一般的に低下するが、ASPRの大幅な増加が観察された。これは、疑似コードが全体的な推論プロセスを向上させ、特に正しい最終出力に向けたパスの洗練に寄与していることを示している。このことは、正確な疑似コードが最終的な正しいコードに大きく貢献していることを示唆している。しかし、バニラLLMは依然として効果的な疑似コードの生成に課題を抱えており、これは後続のSFT初期化とSelf-Play+RL強化の目標そのものである。

Model Qwen2.5-1.5B Qwen2.5-3B Qwen2.5-7B Qwen2.5-Coder-7B
Vanilla Pseudocode Vanilla Pseudocode Vanilla Pseudocode Vanilla Pseudocode
Pass@1(%) 55.8 46.7(-9.1) 56.3 51.3(-5.0) 59.8 50.1(-9.7) 57.7 58.2(+0.5)
ASPR(%) 49.9 54.5(+4.6) 52.0 70.6(+18.6) 66.4 78.1(+11.7) 49.3 74.9(+25.6)
表1:MBPPベンチマークにおける疑似コードベースのコード生成結果。Pass@1は全体的な合格率を示す。ASPR(平均サンプリング合格率)は、最後のステップで正しい推論パスに到達する平均成功率を示す。

3.2.2 Reasoning Process Data Synthesis

我々はモンテカルロ木探索(MCTS)(Kocsis & Szepesvári, 2006; Feng et al., 2023; Qi et al., 2024)を使用して、𝒟process={(Qi,,Sij,vij,,Ci)}subscript𝒟processsubscript𝑄𝑖superscriptsubscript𝑆𝑖𝑗superscriptsubscript𝑣𝑖𝑗superscriptsubscript𝐶𝑖\mathcal{D}_{\text{process}}=\{(Q_{i},\cdots,S_{i}^{j},v_{i}^{j},\cdots,C_{i}^% {\prime})\}caligraphic_D start_POSTSUBSCRIPT process end_POSTSUBSCRIPT = { ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , ⋯ , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , ⋯ , italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) }の形式でステップレベルのプロセス報酬データを構築する。ここで、vijsuperscriptsubscript𝑣𝑖𝑗v_{i}^{j}italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPTはステップSijsuperscriptsubscript𝑆𝑖𝑗S_{i}^{j}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPTまでの推論パスの評価を表し、Cisuperscriptsubscript𝐶𝑖C_{i}^{\prime}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPTは最終ステップSimsuperscriptsubscript𝑆𝑖𝑚S_{i}^{m}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPTから導出された実行可能なコードである。このプロセスでは、パス探索に標準的なMCTSロールアウト戦略を採用する。各問題Qisubscript𝑄𝑖Q_{i}italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTに対して、我々は先に定義した疑似コードプロンプト戦略を適用して推論プロセスを導く。終端ノードSimsuperscriptsubscript𝑆𝑖𝑚S_{i}^{m}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPTに到達すると、完全な疑似コード推論パス(Qi,Si1,,Sim)subscript𝑄𝑖superscriptsubscript𝑆𝑖1superscriptsubscript𝑆𝑖𝑚(Q_{i},S_{i}^{1},\dots,S_{i}^{m})( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT , … , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT )が形成される。終端ノードSimsuperscriptsubscript𝑆𝑖𝑚S_{i}^{m}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPTの報酬値vimsuperscriptsubscript𝑣𝑖𝑚v_{i}^{m}italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPTは、以下の2つの主要な指標に基づいて計算される:

  • コンパイル成功率(compile):この指標は、生成されたコードが正常にコンパイルできるかどうかを判定する。compileの値は二値であり、compile=1compile1\textit{compile}=1compile = 1は成功を、compile=0compile0\textit{compile}=0compile = 0は失敗を示す。

  • テストケース合格率(pass):コンパイルが成功した場合、我々はさらに生成されたコードがテストケースに合格するかどうかを評価する。合格率はpass=NumpassedNumtest_casepasssubscriptNumpassedsubscriptNumtest_case\textit{pass}=\frac{\text{Num}_{\text{passed}}}{\text{Num}_{\text{test\_case}}}pass = divide start_ARG Num start_POSTSUBSCRIPT passed end_POSTSUBSCRIPT end_ARG start_ARG Num start_POSTSUBSCRIPT test_case end_POSTSUBSCRIPT end_ARGとして計算される。ここで、NumpassedsubscriptNumpassed\text{Num}_{\text{passed}}Num start_POSTSUBSCRIPT passed end_POSTSUBSCRIPTは合格したテストケースの数、Numtest_casesubscriptNumtest_case\text{Num}_{\text{test\_case}}Num start_POSTSUBSCRIPT test_case end_POSTSUBSCRIPTは検証に使用された総テストケース数である。

終端ノードSimsuperscriptsubscript𝑆𝑖𝑚S_{i}^{m}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPTの報酬値は、これら2つの指標の重み付け和として計算される:

vim=αcompile+(1α)pass,superscriptsubscript𝑣𝑖𝑚𝛼compile1𝛼passv_{i}^{m}=\alpha\cdot\text{{compile}}+(1-\alpha)\cdot\text{{pass}},italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT = italic_α ⋅ compile + ( 1 - italic_α ) ⋅ pass ,

ここで、α𝛼\alphaitalic_αはコンパイル成功とテスト合格率の相対的重要性を制御するハイパーパラメータである。

終端ノードの報酬値vimsuperscriptsubscript𝑣𝑖𝑚v_{i}^{m}italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPTが計算されると、我々はこの値をパスに沿って先行するすべてのノードにバックプロパゲートし、各ステップ(Sij,vij)superscriptsubscript𝑆𝑖𝑗superscriptsubscript𝑣𝑖𝑗(S_{i}^{j},v_{i}^{j})( italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT )に報酬値vijsuperscriptsubscript𝑣𝑖𝑗v_{i}^{j}italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPTを割り当てる。MCTSプロセスにおける複数のロールアウトにより、バックプロパゲーション中のノードvijsuperscriptsubscript𝑣𝑖𝑗v_{i}^{j}italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPTの累積報酬が1を超える可能性がある。したがって、我々はパスに沿った各ノードの報酬値を以下の式を用いて正規化し、最終的なステップ有効性値を得る。

推論プロセスデータセットを構築する際、各問題Qisubscript𝑄𝑖Q_{i}italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTに対して、探索を通じて正解が見つかった場合、少なくとも1つの終端ノード(Sim,vim)superscriptsubscript𝑆𝑖𝑚superscriptsubscript𝑣𝑖𝑚(S_{i}^{m},v_{i}^{m})( italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT , italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT )vim=1superscriptsubscript𝑣𝑖𝑚1v_{i}^{m}=1italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT = 1となることが保証される。探索が完了した後、我々は正解の終端ノード(Qi,Si1,,Sim,vim),vim=1subscript𝑄𝑖superscriptsubscript𝑆𝑖1superscriptsubscript𝑆𝑖𝑚superscriptsubscript𝑣𝑖𝑚superscriptsubscript𝑣𝑖𝑚1(Q_{i},S_{i}^{1},\dots,S_{i}^{m},v_{i}^{m}),v_{i}^{m}=1( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT , … , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT , italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT ) , italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT = 1から完全な推論パスを選択し、ポリシーモデルの初期化データセットを形成する。このデータセットは以下のように表される:

𝒟process+={(Qi,Sij,Ci)(Qi,Sij,vij,Ci)𝒟process,𝕀(Ci)=1},subscriptsuperscript𝒟processconditional-setsubscript𝑄𝑖superscriptsubscript𝑆𝑖𝑗superscriptsubscript𝐶𝑖formulae-sequencesubscript𝑄𝑖superscriptsubscript𝑆𝑖𝑗superscriptsubscript𝑣𝑖𝑗superscriptsubscript𝐶𝑖subscript𝒟process𝕀superscriptsubscript𝐶𝑖1\mathcal{D}^{+}_{\text{process}}=\{(Q_{i},S_{i}^{j},C_{i}^{\prime})\mid(Q_{i},% S_{i}^{j},v_{i}^{j},C_{i}^{\prime})\in\mathcal{D}_{\text{process}},\mathbb{I}(% C_{i}^{\prime})=1\},caligraphic_D start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT process end_POSTSUBSCRIPT = { ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ∣ ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ∈ caligraphic_D start_POSTSUBSCRIPT process end_POSTSUBSCRIPT , blackboard_I ( italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) = 1 } ,

ここで、𝕀()𝕀\mathbb{I}(\cdot)blackboard_I ( ⋅ )は生成されたコードCisuperscriptsubscript𝐶𝑖C_{i}^{\prime}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPTがすべてのテストケースに合格した場合に1を返す指示関数である。

3.3 Policy Model Initialization

3.2節で説明した推論データ合成タスクを完了した後、我々はデータセット内の各完全な推論解を用いて方策モデルπθsubscript𝜋𝜃\pi_{\theta}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPTを初期化する。このステップは、πθsubscript𝜋𝜃\pi_{\theta}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPTがタスク要件をより良く理解し、期待される行動パターンに従うことを助け、その後の反復訓練のための最適な出発点を提供することを目的としている。

質問Qisubscript𝑄𝑖Q_{i}italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTが与えられた場合、ステップj𝑗jitalic_jにおいて方策モデルπθsubscript𝜋𝜃\pi_{\theta}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPTによって生成される特定の推論ステップの内容はπθ(SijQi,Si1:j1)subscript𝜋𝜃conditionalsuperscriptsubscript𝑆𝑖𝑗subscript𝑄𝑖superscriptsubscript𝑆𝑖:1𝑗1\pi_{\theta}(S_{i}^{j}\mid Q_{i},S_{i}^{1:j-1})italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ( italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT ∣ italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j - 1 end_POSTSUPERSCRIPT )と表現できる。ここで、Sij=(w1,w2,,wk)superscriptsubscript𝑆𝑖𝑗subscript𝑤1subscript𝑤2subscript𝑤𝑘S_{i}^{j}=(w_{1},w_{2},\dots,w_{k})italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT = ( italic_w start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_w start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , italic_w start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT )である。Sijsuperscriptsubscript𝑆𝑖𝑗S_{i}^{j}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPTは推論ステップの内容を表し、特定の区切り文字で区切られており、w𝑤witalic_wは各デコーディングステップでπθsubscript𝜋𝜃\pi_{\theta}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPTによって生成されるトークンを表す。Si1:j1superscriptsubscript𝑆𝑖:1𝑗1S_{i}^{1:j-1}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j - 1 end_POSTSUPERSCRIPTは前の推論ステップの出力によって形成されるコンテキストを表す。

その後、方策モデルπθsubscript𝜋𝜃\pi_{\theta}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPTは検証済みの正しい推論解のセット𝒟process+subscriptsuperscript𝒟process\mathcal{D}^{+}_{\text{process}}caligraphic_D start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT process end_POSTSUBSCRIPTを用いて初期化される。この初期化は、以下の訓練目的を最適化することによって実行される:

SFT=(Qi,Sij,Ci)𝒟process+logπθ(Si1:mCiQi),subscriptSFTsubscriptsubscript𝑄𝑖superscriptsubscript𝑆𝑖𝑗superscriptsubscript𝐶𝑖subscriptsuperscript𝒟processsubscript𝜋𝜃conditionalsuperscriptsubscript𝑆𝑖:1𝑚superscriptsubscript𝐶𝑖subscript𝑄𝑖\mathcal{L}_{\text{SFT}}=-\sum\nolimits_{(Q_{i},S_{i}^{j},C_{i}^{\prime})\in% \mathcal{D}^{+}_{\text{process}}}\log\pi_{\theta}(S_{i}^{1:m}\circ C_{i}^{% \prime}\mid Q_{i}),caligraphic_L start_POSTSUBSCRIPT SFT end_POSTSUBSCRIPT = - ∑ start_POSTSUBSCRIPT ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ∈ caligraphic_D start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT process end_POSTSUBSCRIPT end_POSTSUBSCRIPT roman_log italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ( italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_m end_POSTSUPERSCRIPT ∘ italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∣ italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) , (2)

ここで、\circは推論ステップSi1:msuperscriptsubscript𝑆𝑖:1𝑚S_{i}^{1:m}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_m end_POSTSUPERSCRIPTと最終的なコードCisuperscriptsubscript𝐶𝑖C_{i}^{\prime}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPTの連結を表す。初期化された方策モデルπθSFTsuperscriptsubscript𝜋𝜃SFT\pi_{\theta}^{\text{SFT}}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT SFT end_POSTSUPERSCRIPTは、その後の訓練段階の基礎として機能する。

3.4 PRM Training

問題Qisubscript𝑄𝑖Q_{i}italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTと現在の状態に対応する解答の接頭辞が与えられた場合、プロセス報酬モデル(PRM)(Q×S+𝑄𝑆superscriptQ\times S\rightarrow\mathbb{R}^{+}italic_Q × italic_S → blackboard_R start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPTと表記)は、現在のステップSijsuperscriptsubscript𝑆𝑖𝑗S_{i}^{j}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPTに報酬値を割り当て、最終的な解答への貢献度を推定する。3.2節のデータ合成中に使用されたツリー探索アプローチに基づき、プロセス報酬モデルの訓練には、ポイントワイズとペアワイズと呼ばれる2つの形式のデータ編成を使用できる。以下に詳細を述べる。

ポイントワイズ この形式では、探索ツリーから収集されたデータはD={(Qi,Si1:j1,Sij,vij)i=1,2,,N}𝐷conditional-setsubscript𝑄𝑖superscriptsubscript𝑆𝑖:1𝑗1superscriptsubscript𝑆𝑖𝑗superscriptsubscript𝑣𝑖𝑗𝑖12𝑁D=\{(Q_{i},S_{i}^{1:j-1},S_{i}^{j},v_{i}^{j})\mid i=1,2,\ldots,N\}italic_D = { ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j - 1 end_POSTSUPERSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT ) ∣ italic_i = 1 , 2 , … , italic_N }として編成される。ここで、N𝑁Nitalic_Nはサンプル数であり、vijsuperscriptsubscript𝑣𝑖𝑗v_{i}^{j}italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPTはツリー探索プロセス中にステップSijsuperscriptsubscript𝑆𝑖𝑗S_{i}^{j}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPTに割り当てられた値ラベルを表す。処理方法に応じて、このラベルはハードまたはソフトな推定値を導出するために使用できる。(Wang et al., 2024)のアプローチに従い、PRMは以下の目的関数を用いて訓練される:

PRMpoint-wise=𝔼(Qi,Si1:j1,Sij,vij)D[vijlogr(Qi,Si1:j)+(1vij)log(1r(Qi,Si1:j))],superscriptsubscriptPRMpoint-wisesubscript𝔼similar-tosubscript𝑄𝑖superscriptsubscript𝑆𝑖:1𝑗1superscriptsubscript𝑆𝑖𝑗superscriptsubscript𝑣𝑖𝑗𝐷delimited-[]superscriptsubscript𝑣𝑖𝑗𝑟subscript𝑄𝑖superscriptsubscript𝑆𝑖:1𝑗1superscriptsubscript𝑣𝑖𝑗1𝑟subscript𝑄𝑖superscriptsubscript𝑆𝑖:1𝑗\mathcal{L}_{\text{PRM}}^{\textit{point-wise}}=-\mathbb{E}_{(Q_{i},S_{i}^{1:j-% 1},S_{i}^{j},v_{i}^{j})\sim D}\Big{[}v_{i}^{j}\log\,r(Q_{i},S_{i}^{1:j})+(1-v_% {i}^{j})\log\Big{(}1-r(Q_{i},S_{i}^{1:j})\Big{)}\Big{]},caligraphic_L start_POSTSUBSCRIPT PRM end_POSTSUBSCRIPT start_POSTSUPERSCRIPT point-wise end_POSTSUPERSCRIPT = - blackboard_E start_POSTSUBSCRIPT ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j - 1 end_POSTSUPERSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT ) ∼ italic_D end_POSTSUBSCRIPT [ italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT roman_log italic_r ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j end_POSTSUPERSCRIPT ) + ( 1 - italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT ) roman_log ( 1 - italic_r ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j end_POSTSUPERSCRIPT ) ) ] , (3)

ここで、r(Qi,Si1:j)𝑟subscript𝑄𝑖superscriptsubscript𝑆𝑖:1𝑗r(Q_{i},S_{i}^{1:j})italic_r ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j end_POSTSUPERSCRIPT )はPRMによって割り当てられた正規化された予測スコアである。

ペアワイズ ペアワイズ形式では、探索ツリーの深さd𝑑ditalic_dにあるノードndsuperscript𝑛𝑑n^{d}italic_n start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPTについて、その子ノードをinid+1subscript𝑖superscriptsubscript𝑛𝑖𝑑1\sum_{i}n_{i}^{d+1}∑ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_d + 1 end_POSTSUPERSCRIPTとして表現し、選好ペアデータをDpair={(Qi,Si1:j1,Sijwin,Sijlose)i=1,2,,N}subscript𝐷pairconditional-setsubscript𝑄𝑖superscriptsubscript𝑆𝑖:1𝑗1superscriptsubscript𝑆𝑖subscript𝑗winsuperscriptsubscript𝑆𝑖subscript𝑗lose𝑖12𝑁D_{\text{pair}}=\{(Q_{i},S_{i}^{1:j-1},S_{i}^{j_{\text{win}}},S_{i}^{j_{\text{% lose}}})\mid i=1,2,\ldots,N\}italic_D start_POSTSUBSCRIPT pair end_POSTSUBSCRIPT = { ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j - 1 end_POSTSUPERSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j start_POSTSUBSCRIPT win end_POSTSUBSCRIPT end_POSTSUPERSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j start_POSTSUBSCRIPT lose end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ) ∣ italic_i = 1 , 2 , … , italic_N }として編成する。ここで、Sijwinsuperscriptsubscript𝑆𝑖subscript𝑗winS_{i}^{j_{\text{win}}}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j start_POSTSUBSCRIPT win end_POSTSUBSCRIPT end_POSTSUPERSCRIPTはツリー探索中にSijlosesuperscriptsubscript𝑆𝑖subscript𝑗loseS_{i}^{j_{\text{lose}}}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j start_POSTSUBSCRIPT lose end_POSTSUBSCRIPT end_POSTSUPERSCRIPTと比較してより高い値の推定を達成した推論ステップを表す。

Bradley-Terryモデル(Bradley & Terry, 1952)に従い、PRMは以下の目的関数を用いて訓練される:

PRMpair-wise=𝔼(Qi,Si1:j1,Sijwin,Sijlose)Dpair[log(σ(r(Qi,Si1:j1,Sijwin)r(Qi,Si1:j1,Sijlose)))],superscriptsubscript𝑃𝑅𝑀pair-wisesubscript𝔼similar-tosubscript𝑄𝑖superscriptsubscript𝑆𝑖:1𝑗1superscriptsubscript𝑆𝑖subscript𝑗𝑤𝑖𝑛superscriptsubscript𝑆𝑖subscript𝑗𝑙𝑜𝑠𝑒subscript𝐷𝑝𝑎𝑖𝑟delimited-[]𝜎𝑟subscript𝑄𝑖superscriptsubscript𝑆𝑖:1𝑗1superscriptsubscript𝑆𝑖subscript𝑗𝑤𝑖𝑛𝑟subscript𝑄𝑖superscriptsubscript𝑆𝑖:1𝑗1superscriptsubscript𝑆𝑖subscript𝑗𝑙𝑜𝑠𝑒\mathcal{L}_{PRM}^{\textit{pair-wise}}=-\mathbb{E}_{(Q_{i},S_{i}^{1:j-1},S_{i}% ^{j_{win}},S_{i}^{j_{lose}})\sim D_{pair}}\Big{[}\log\Big{(}\sigma\big{(}r(Q_{% i},S_{i}^{1:j-1},S_{i}^{j_{win}})-r(Q_{i},S_{i}^{1:j-1},S_{i}^{j_{lose}})\big{% )}\Big{)}\Big{]},caligraphic_L start_POSTSUBSCRIPT italic_P italic_R italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT pair-wise end_POSTSUPERSCRIPT = - blackboard_E start_POSTSUBSCRIPT ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j - 1 end_POSTSUPERSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j start_POSTSUBSCRIPT italic_w italic_i italic_n end_POSTSUBSCRIPT end_POSTSUPERSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j start_POSTSUBSCRIPT italic_l italic_o italic_s italic_e end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ) ∼ italic_D start_POSTSUBSCRIPT italic_p italic_a italic_i italic_r end_POSTSUBSCRIPT end_POSTSUBSCRIPT [ roman_log ( italic_σ ( italic_r ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j - 1 end_POSTSUPERSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j start_POSTSUBSCRIPT italic_w italic_i italic_n end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ) - italic_r ( italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_j - 1 end_POSTSUPERSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j start_POSTSUBSCRIPT italic_l italic_o italic_s italic_e end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ) ) ) ] ,

(4)

ここで、σ(x)𝜎𝑥\sigma(x)italic_σ ( italic_x )はシグモイド関数を表す。ポイントワイズの設定とは異なり、ここでのスコアr𝑟ritalic_rは正規化されない。これにより、モデルは絶対的な値の予測ではなく、行動間の相対的な選好の学習に焦点を当てることができる。

3.5 RL-based Policy Model Improvement

我々は、コード生成タスクを言語拡張マルコフ決定過程(MDP)としてモデル化し、形式的に =(𝒱,𝒮,𝒜,𝒯,,ϕ)𝒱𝒮𝒜𝒯italic-ϕ\mathcal{M}=(\mathcal{V},\mathcal{S},\mathcal{A},\mathcal{T},\mathcal{R},\phi)caligraphic_M = ( caligraphic_V , caligraphic_S , caligraphic_A , caligraphic_T , caligraphic_R , italic_ϕ ) と表現する (Team, 2024; Carta et al., 2023)。 このフレームワークにおいて、𝒱𝒱\mathcal{V}caligraphic_V は語彙を表し、w𝒱𝑤𝒱w\in\mathcal{V}italic_w ∈ caligraphic_V はモデルによって生成される個々のトークンを表す。 行動空間 𝒜𝒱N𝒜superscript𝒱𝑁\mathcal{A}\subseteq\mathcal{V}^{N}caligraphic_A ⊆ caligraphic_V start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT と状態空間 𝒮𝒱N𝒮superscript𝒱𝑁\mathcal{S}\subseteq\mathcal{V}^{N}caligraphic_S ⊆ caligraphic_V start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT はトークン列の集合であり、行動と状態の両方がトークン列であることを意味する。 このフレームワークでは、s0subscript𝑠0s_{0}italic_s start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT が質問を表し、行動 aisubscript𝑎𝑖a_{i}italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT は推論ステップ(アルゴリズム 1Sisubscript𝑆𝑖S_{i}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT を参照)とみなされ、行動の種類とそれに対応する思考の連鎖の両方で構成される。 状態遷移関数 𝒯:𝒮×𝒜𝒮:𝒯𝒮𝒜𝒮\mathcal{T}:\mathcal{S}\times\mathcal{A}\to\mathcal{S}caligraphic_T : caligraphic_S × caligraphic_A → caligraphic_S は、行動 at𝒜subscript𝑎𝑡𝒜a_{t}\in\mathcal{A}italic_a start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∈ caligraphic_A が取られたときに現在の状態 st𝒮subscript𝑠𝑡𝒮s_{t}\in\mathcal{S}italic_s start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∈ caligraphic_S がどのように変化するかを定義する。具体的には、行動 atsubscript𝑎𝑡a_{t}italic_a start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT が現在の状態にトークンを追加し、新しい状態 st+1=𝒯(st,at)subscript𝑠𝑡1𝒯subscript𝑠𝑡subscript𝑎𝑡s_{t+1}=\mathcal{T}(s_{t},a_{t})italic_s start_POSTSUBSCRIPT italic_t + 1 end_POSTSUBSCRIPT = caligraphic_T ( italic_s start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT , italic_a start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) を形成する。このプロセスは、モデルが最終的な解を生成するまで続く。報酬関数 :𝒮×𝒜+:𝒮𝒜superscript\mathcal{R}:\mathcal{S}\times\mathcal{A}\to\mathbb{R}^{+}caligraphic_R : caligraphic_S × caligraphic_A → blackboard_R start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT は、推論プロセスや生成されたコードフラグメントなどの中間ステップの質を評価する。関数 ϕitalic-ϕ\phiitalic_ϕ は、プロセスベースの報酬と結果ベースの報酬を組み合わせて最終的な報酬信号を生成する。

各ステップで、モデルは行動 at𝒜subscript𝑎𝑡𝒜a_{t}\in\mathcal{A}italic_a start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∈ caligraphic_A を選択し、システムを新しい状態 st+1=𝒯(st,at)subscript𝑠𝑡1𝒯subscript𝑠𝑡subscript𝑎𝑡s_{t+1}=\mathcal{T}(s_{t},a_{t})italic_s start_POSTSUBSCRIPT italic_t + 1 end_POSTSUBSCRIPT = caligraphic_T ( italic_s start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT , italic_a start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) に遷移させる。行動を実行した後、モデルはPRMからプロセス報酬 rt=ρPRM(st1,at)superscript𝑟𝑡subscript𝜌PRMsubscript𝑠𝑡1subscript𝑎𝑡r^{t}=\rho_{\text{PRM}}(s_{t-1},a_{t})italic_r start_POSTSUPERSCRIPT italic_t end_POSTSUPERSCRIPT = italic_ρ start_POSTSUBSCRIPT PRM end_POSTSUBSCRIPT ( italic_s start_POSTSUBSCRIPT italic_t - 1 end_POSTSUBSCRIPT , italic_a start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) を受け取る。このプロセスは、モデルが最終的なコードを生成するか、事前に定義された最大深度に達するまで繰り返される。

モデルが最終的なコードを生成するか、探索プロセスを完了すると、結果報酬 Risubscript𝑅𝑖R_{i}italic_R start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT が一連のテストケースに対して生成されたコードをテストすることで評価される。我々は、時間依存の重みと割引因子の両方を組み込んだ報酬集約関数を提案する:

ϕ(Ri,ri1:m)=α(t)Ri+(1α(t))1mj=1mγjrij,italic-ϕsubscript𝑅𝑖superscriptsubscript𝑟𝑖:1𝑚𝛼𝑡subscript𝑅𝑖1𝛼𝑡1𝑚superscriptsubscript𝑗1𝑚superscript𝛾𝑗superscriptsubscript𝑟𝑖𝑗\phi(R_{i},r_{i}^{1:m})=\alpha(t)\cdot R_{i}+(1-\alpha(t))\cdot\frac{1}{m}\sum% _{j=1}^{m}\gamma^{j}r_{i}^{j},italic_ϕ ( italic_R start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_m end_POSTSUPERSCRIPT ) = italic_α ( italic_t ) ⋅ italic_R start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT + ( 1 - italic_α ( italic_t ) ) ⋅ divide start_ARG 1 end_ARG start_ARG italic_m end_ARG ∑ start_POSTSUBSCRIPT italic_j = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT italic_γ start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT ,

ここで、α(t)𝛼𝑡\alpha(t)italic_α ( italic_t ) は最終報酬 Risubscript𝑅𝑖R_{i}italic_R start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT と累積中間報酬 ri1:msuperscriptsubscript𝑟𝑖:1𝑚r_{i}^{1:m}italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_m end_POSTSUPERSCRIPT のバランスを時間とともに調整する時間変動因子である。例えば、α(t)𝛼𝑡\alpha(t)italic_α ( italic_t ) は時間とともに減少し、モデルが解を洗練するにつれて中間報酬の重みを徐々に増やし、モデルが最適な方策に近づくにつれて最終報酬の重みを減らすかもしれない。ri1:msuperscriptsubscript𝑟𝑖:1𝑚r_{i}^{1:m}italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 : italic_m end_POSTSUPERSCRIPT であり、α(t)𝛼𝑡\alpha(t)italic_α ( italic_t ) は通常、線形または対数的減衰などのスケジュールに従う。パラメータ γ[0,1]𝛾01\gamma\in[0,1]italic_γ ∈ [ 0 , 1 ] は割引因子であり、将来の報酬の重要性を即時の報酬に対して決定する。集約された報酬信号は、通常、PPO (Ziegler et al., 2019) や反復的DPO(Rafailov et al., 2024)などの強化学習アルゴリズムの実装を通じて、モデルの方策を洗練するために使用される。

この設定により、我々はコード生成タスクに特化した強化学習環境を定義する。モデルの行動は、中間的な推論ステップを促すプロセスベースの報酬と、最終的なコードの正確さを反映する結果ベースの報酬の両方によって駆動される。この二重報酬構造は、モデルが時間とともにコード生成能力を向上させるのに役立つ。

3.6 New Reasoning Data Generation and Self-Play

ステップ6では、更新されたポリシーモデルπθsubscript𝜋𝜃\pi_{\theta}italic_π start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPTを使用して、𝒟processsubscriptsuperscript𝒟process\mathcal{D}^{\prime}_{\text{process}}caligraphic_D start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT process end_POSTSUBSCRIPTと表される新しい推論データを生成する。このデータは、新しい問題インスタンスQisubscript𝑄𝑖Q_{i}italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTを通じて推論し、段階的な推論パス{Si1,Si2,,Sim}superscriptsubscript𝑆𝑖1superscriptsubscript𝑆𝑖2superscriptsubscript𝑆𝑖𝑚\{S_{i}^{1},S_{i}^{2},\dots,S_{i}^{m}\}{ italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , … , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT }を生成することで作成される。各パスは最終的なコード出力Cisuperscriptsubscript𝐶𝑖C_{i}^{\prime}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPTで culminate する。推論ステップは反復的に生成され、各ステップSijsuperscriptsubscript𝑆𝑖𝑗S_{i}^{j}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPTは前のステップに条件付けられる。

新しい推論データが生成されると、それは既存のデータセット𝒟processsubscript𝒟process\mathcal{D}_{\text{process}}caligraphic_D start_POSTSUBSCRIPT process end_POSTSUBSCRIPTに追加され、更新されたデータセット𝒟process𝒟process𝒟processsubscript𝒟processsubscript𝒟processsubscriptsuperscript𝒟process\mathcal{D}_{\text{process}}\leftarrow\mathcal{D}_{\text{process}}\cup\mathcal% {D}^{\prime}_{\text{process}}caligraphic_D start_POSTSUBSCRIPT process end_POSTSUBSCRIPT ← caligraphic_D start_POSTSUBSCRIPT process end_POSTSUBSCRIPT ∪ caligraphic_D start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT process end_POSTSUBSCRIPTを形成する。この更新により、推論例の多様性と品質が向上し、後続のステップのためのより包括的な訓練材料が提供される。

この新しいデータ生成プロセスにより、反復的な自己対戦訓練ループが可能となる。新しい推論データを追加した後、モデルはさらなる微調整を受け、第4ステップで説明したPRMの更新から始まる。PRMは、次に第5ステップで説明したRLを用いてポリシーモデルを調整する。データ生成、報酬モデルの更新、ポリシーの改善というこの反復的なサイクルにより、システムの推論能力の持続的な向上が確保される。

4 Discussions

4.1 Bitter Lesson: Data is All You Need

過去10年間、AI分野は計算能力-知能変換効率の最大化という中心線に沿って発展してきた。これは、絶えず増加する計算能力を効率的により高度な知能レベルに変換することを意味する。この流れに沿って、図6の上部に示されているように、初期の進歩はモデル側の改善を優先した:SVMからDNN、そしてTransformerへと、計算能力を最大限に活用できるスケーラブルなモデルアーキテクチャが設計された。

近年、焦点はデータ側にシフトしている。事前学習における半教師あり学習(SSL)や事後学習における強化学習(RL)などの技術は、データをより効果的に活用することを目的としている。o1モデルはこの流れを継続している。高品質な教師あり学習データを活用するSFTから、理論上無限のデータにアクセスできる環境フィードバックを利用するRLHFへ、そして最終的にo1の革新的なアプローチである、生成された推論プロセス自体から導出された報酬信号を通じて生成プロセスを監督する方法へと移行している。

この進展は、Transformerアーキテクチャが現在、膨大な量のデータを処理し、十分な規模のモデルを訓練できるようになったことを考えると、残された唯一の課題は適切なデータの獲得に収束することを示唆している。一つのアプローチは、システム2能力のための推論データや、身体化された知能のための物理世界の軌跡など、不足しているデータを求めることである。もう一つのアプローチは、人間の世界にはまだ存在しないデータタイプを探索することであり、これにはRLやSelf-Playなどの技術のさらなる探求が必要である。

Refer to caption
図6: 計算能力-知能変換効率の最大化に向けたトレンド。

4.2 Sweet Lesson: Beyond Human Data

LLMに対する一般的な批判は、既存の人間が記録したデータに依存していることであり、これが本質的にその潜在能力を制限している。ウィトゲンシュタインが述べたように、「私の言語の限界が私の世界の限界を意味する」。人間の言語記録の有限な範囲と深さが、LLMの認知能力を制約している。しかし、o1の成功は、我々が強化学習を通じてこれらの記録されたデータの背後にある思考プロセスを探求できるようになったことを示している。この進歩は、AI開発における重要な転換点を示しており、単なる人間の言語の模倣から、新しい認知プロセスの自律的な生成へと移行している。

さらに興味深いことに、これらの思考プロセスデータは必ずしも自然言語に限定される必要はない。最近のNature論文で強調されているように(Fedorenko et al., 2024)、「言語は思考の本質というよりも、主にコミュニケーションのための道具として機能する」。我々の観察では、o1によって生成された思考の連鎖の一部に無意味なテキストが含まれており、思考トークンが離散的な自然言語の単語に対応していない可能性を示唆している。モデルが思考のためのより効率的な内部表現形式を自ら開発したとすれば、これは思考プロセスと問題解決メカニズムの効率を大幅に向上させ、人間の言語データによって課された制限を超えるだけでなく、モデルの能力の可能性をさらに解き放つことになるだろう。

4.3 Opportunities

自己対戦+強化学習フレームワークは、基礎となるデータを探索するための実行可能な解決策を提供し、これまでシステム1の能力に依存していた多くのタスクにおいてシステム2の解決策を探索する可能性を開いている。タスク実行により思慮深く段階的なプロセスを統合することで、この手法が幅広い領域で好ましい結果をもたらすと我々は考えている(Kant et al., 2024; Ganapini et al., 2021; Valmeekam et al., 2024; Lowe, 2024)。報酬モデリング(Mahan et al., 2024)、機械翻訳(Zhao et al., 2024)、検索拡張生成(RAG)(Li et al., 2024)、マルチモーダルQA(Islam et al., 2024)など、従来システム1の能力を用いて解決されていたタスクは、すでにシステム2の思考によって可能となったより深い推論能力の恩恵を受けている。

o1モデルのシステムカードは、モデルの安全性における顕著な改善を示している。これに触発され、我々は最近システム2アライメントの概念を探求している。これは、入力を徹底的に評価し、潜在的なリスクを考慮し、推論におけるバイアスを修正するようモデルを導くことを含む(Wang & Sang, 2024)。我々はシステム2アライメントを実現するために、プロンプトエンジニアリング、教師あり微調整、プロセス監視付き強化学習という3つの方法を導入した。本稿で提示した自己対戦+強化学習フレームワークをシステム2アライメントに適用し、複雑なシナリオにおいてモデルが慎重に思考する能力をさらに向上させ、脆弱性を減少させることを目指す。

4.4 Challenges

現在リリースされているo1-previewとo1-miniには、OpenAIが完全版に含まれると主張しているマルチモーダル機能や関数呼び出し機能が欠けている。マルチモーダルと関数呼び出しを超えて、o1のような推論モデルの改善に不可欠なもう一つの特徴は、推論時間の最適化である。これには、推論効率の向上—単位時間あたりのより高いパフォーマンスの達成—と、適応的な推論時間調整の実現が含まれる。具体的には、タスクの複雑さに基づいてシステム2の推論プロセスを動的に調整し、より人間に近いシステム1とシステム2の推論モード間のシームレスな切り替え能力を実現することである。

o1のような推論モデルをより広範な実世界のアプリケーションに展開するためには、両方とも強化学習環境に関連する2つの主要な課題に取り組む必要がある。第一の課題は報酬関数の一般化に関するものである。これはすでにコミュニティで議論されている。例えば、推論モデルの高レベルの自然言語指示を理解する能力の向上を活用し、Constitutional AI (Bai et al., 2022)のようなアプローチは、報酬関数を直接自然言語で定義する可能性がある。もう一つの戦略は、コーディング能力を向上させ、他のタスクをコーディング問題に変換して解決することに焦点を当てている。

あまり言及されていないもう一つの課題は、環境状態の更新に関するものである。Q学習のような古典的なモデルフリーの強化学習手法とは異なり、状態遷移が明示的にモデル化されていないo1のようなモデルは、行動シミュレーションと前方探索に依存しており、行動後の更新された状態の知識を必要とする。これにより、パラダイムはモデルベースの強化学習へとシフトする。プログラミング、数学、囲碁などの明確に定義された領域では、環境には多くの場合決定論的なルールがある。例えば、プログラミングはコンパイラで定義された言語仕様を使用し、数学は公理論理に従い、囲碁は固定されたゲームルールの下で動作する。これらの決定論的なフレームワークにより、特定の行動後の状態遷移確率p(statei+1statei,actioni)𝑝conditionalsubscriptstate𝑖1subscriptstate𝑖subscriptaction𝑖p(\text{state}_{i+1}\mid\text{state}_{i},\text{action}_{i})italic_p ( state start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ∣ state start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , action start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT )を正確に計算することができる。

しかし、検索拡張生成(RAG)、デバイス使用、実体化エージェントなど、多くの実世界のアプリケーションでは、状態更新の取得には外部環境やシミュレータとの相互作用が必要である。これにより、大きな計算コストと時間コストが発生する。例えば、デバイス使用では、クリック、入力、スクロールなどの行動を、ページのレンダリング、状態更新、時にはネットワークリクエストのような複雑なバックエンド相互作用を含む方法でシミュレートする必要がある。さらに、o1のようなモデルは、推論中にオンラインの行動シミュレーションを実行できないという制限に直面しており、これにより、モデルが以前の状態に戻って行動を検証または修正することができなくなる。これは、バックトラックして決定を改善する能力の欠如につながる。

したがって、主要な方向性の一つは、状態遷移予測のためのワールドモデルを開発することにより、環境を明示的にモデル化することを試みることである。ワールドモデルは、現在および過去の状態と行動を入力として受け取り、次の状態を出力として生成する。これにより、モデルは実際の環境やシミュレータと直接相互作用するのではなく、内部のワールドモデルと相互作用することができる。我々は、このようなワールドモデルを構築する際の強化学習における継続的な課題の一つが、その精度を確保することであると認識している。その結果、ワールドモデルは通常、ダイナミクスが比較的単純で十分に理解されている環境に適用されてきた。良いニュースは、生成ゲーム(Sang, 2024)における最近の急速な進歩が、実世界のアプリケーションにおける推論モデルのためのより正確で実用的な環境モデリングを促進する可能性のある有望な進展を提供していることである。

展望。 o1モデルは明らかにAlphaGoの影響を受けている:AlphaGoは模倣学習を使用してポリシーネットワークを初期化し、強化学習を用いてポリシーを微調整し、価値ネットワークを学習し、MCTSをオンライン探索戦略として使用した。これはLLMの事前学習、事後学習、推論と並行している。AlphaGoZeroは、歴史的データに依存しないより高度なアプローチを取り、これは現在のLLM開発が事後学習段階をますます重視する傾向と正確に一致している。Alphaシリーズの進化に従えば、o1のような推論モデルでも同様の発展が予想される。当初、Alphaシリーズは一般化に向けて発展した:AlphaZeroは囲碁、チェス、将棋に適用され、MuZeroは57のAtariゲームで人間レベルのパフォーマンスを達成した。しかし、一般化以外のもう一つの目標は、これらのモデルをより複雑な実世界のタスクに適用することである。この進展は、AlphaFoldからAlphaCodeとAlphaGeometryへの飛躍、さらにはSIMAの3D仮想エージェントやRT-Xの具現化された知能など、AIの物理的環境への拡張に見られる。

Acknowledgements

我々は、有益な議論と参加をしていただいた王宇航氏と張静氏に感謝する。

References

  • ope (2024) Open o1: A model matching proprietary power with open-source innovation. https://github.com/Open-Source-O1/Open-O1/, 2024.
  • Austin et al. (2021) Jacob Austin, Augustus Odena, Maxwell Nye, Maarten Bosma, Henryk Michalewski, David Dohan, Ellen Jiang, Carrie Cai, Michael Terry, Quoc Le, et al. Program synthesis with large language models. arXiv preprint arXiv:2108.07732, 2021.
  • Bai et al. (2022) Yuntao Bai, Saurav Kadavath, Sandipan Kundu, Amanda Askell, Jackson Kernion, Andy Jones, Anna Chen, Anna Goldie, Azalia Mirhoseini, Cameron McKinnon, et al. Constitutional ai: Harmlessness from ai feedback. arXiv preprint arXiv:2212.08073, 2022.
  • Benjamin Klieger (2024) Benjamin Klieger. g1: Using Llama-3.1 70b on Groq to create o1-like reasoning chains. https://github.com/bklieger-groq/g1, 2024.
  • Bradley & Terry (1952) Ralph Allan Bradley and Milton E Terry. Rank analysis of incomplete block designs: I. the method of paired comparisons. Biometrika, 39(3/4):324–345, 1952.
  • Carta et al. (2023) Thomas Carta, Clément Romac, Thomas Wolf, Sylvain Lamprier, Olivier Sigaud, and Pierre-Yves Oudeyer. Grounding large language models in interactive environments with online reinforcement learning. In International Conference on Machine Learning, pp.  3676–3713. PMLR, 2023.
  • Dettmers et al. (2023) Tim Dettmers, Artidoro Pagnoni, Ari Holtzman, and Luke Zettlemoyer. Qlora: Efficient finetuning of quantized llms. In A. Oh, T. Naumann, A. Globerson, K. Saenko, M. Hardt, and S. Levine (eds.), Advances in Neural Information Processing Systems, volume 36, pp.  10088–10115. Curran Associates, Inc., 2023. URL https://proceedings.neurips.cc/paper_files/paper/2023/file/1feb87871436031bdc0f2beaa62a049b-Paper-Conference.pdf.
  • Fedorenko et al. (2024) Evelina Fedorenko, Steven T. Piantadosi, and Edward A. Gibson. Language is primarily a tool for communication rather than thought. Nature, 615:75–82, 2024.
  • Feng et al. (2023) Xidong Feng, Ziyu Wan, Muning Wen, Stephen Marcus McAleer, Ying Wen, Weinan Zhang, and Jun Wang. Alphazero-like tree-search can guide large language model decoding and training. arXiv preprint arXiv:2309.17179, 2023.
  • GAIR-NLP (2024) GAIR-NLP. O1 replication journey: A strategic progress report, 2024.
  • Ganapini et al. (2021) Marianna Bergamaschi Ganapini, Murray Campbell, Francesco Fabiano, Lior Horesh, Jon Lenchner, Andrea Loreggia, Nicholas Mattei, Francesca Rossi, Biplav Srivastava, and Kristen Brent Venable. Thinking fast and slow in ai: the role of metacognition, 2021.
  • Guo et al. (2024) Daya Guo, Qihao Zhu, Dejian Yang, Zhenda Xie, Kai Dong, Wentao Zhang, Guanting Chen, Xiao Bi, Yu Wu, YK Li, et al. Deepseek-coder: When the large language model meets programming–the rise of code intelligence. arXiv preprint arXiv:2401.14196, 2024.
  • Islam et al. (2024) Mohammed Saidul Islam, Raian Rahman, Ahmed Masry, Md Tahmid Rahman Laskar, Mir Tafseer Nayeem, , and Enamul Hoque. Are large vision language models up to the challenge of chart comprehension and reasoning? Findings of the Association for Computational Linguistics: EMNLP 2024, 2024(November):3334–3368, 2024.
  • Ji (2024) Yichao Ji. A small step towards reproducing openai o1: Progress report on the steiner open source models, October 2024. URL https://medium.com/@peakji/b9a756a00855.
  • Kant et al. (2024) Manuj Kant, Marzieh Nabi, Manav Kant, Preston Carlson, and Megan Ma. Equitable access to justice: Logical llms show promise. arXiv preprint arXiv:2410.09904, 2024.
  • Kocsis & Szepesvári (2006) Levente Kocsis and Csaba Szepesvári. Bandit based monte-carlo planning. In European conference on machine learning, pp.  282–293. Springer, 2006.
  • Li et al. (2024) Huayang Li, Pat Verga, Priyanka Sen, Bowen Yang, Vijay Viswanathan, Patrick Lewis, Taro Watanabe, and Yixuan Su. Alr2: A retrieve-then-reason framework for long-context question answering. arXiv preprint arXiv:2410.03227, 2024.
  • Li et al. (2023) Rongao Li, Jie Fu, Bo-Wen Zhang, Tao Huang, Zhihong Sun, Chen Lyu, Guang Liu, Zhi Jin, and Ge Li. Taco: Topics in algorithmic code generation dataset. arXiv preprint arXiv:2312.14852, 2023.
  • Lowe (2024) Scott C. Lowe. System 2 reasoning capabilities are nigh, 2024.
  • Mahan et al. (2024) Dakota Mahan, Duy Van Phung, Rafael Rafailov, Chase Blagden, Nathan Lile, Louis Castricato, Jan-Philipp Fränken, Chelsea Finn, and Alon Albalak. Generative reward models, 2024.
  • OpenAI (2024) OpenAI. Learning to reason with large language models. https://openai.com/index/learning-to-reason-with-llms/, 2024.
  • Qi et al. (2024) Zhenting Qi, Mingyuan Ma, Jiahang Xu, Li Lyna Zhang, Fan Yang, and Mao Yang. Mutual reasoning makes smaller llms stronger problem-solvers. arXiv preprint arXiv:2408.06195, 2024.
  • Qwen Team (2024) Qwen Team. QwQ-32b-preview. https://qwenlm.github.io/zh/blog/qwq-32b-preview/, 2024.
  • Rafailov et al. (2024) Rafael Rafailov, Archit Sharma, Eric Mitchell, Christopher D Manning, Stefano Ermon, and Chelsea Finn. Direct preference optimization: Your language model is secretly a reward model. Advances in Neural Information Processing Systems, 36, 2024.
  • Richards Tu (2024) Richards Tu. Thinking Claude. https://github.com/richards199999/Thinking-Claude/tree/main, 2024.
  • Sang (2024) Jitao Sang. A note on generative games: Positioning, progress and prospects. arXiv, 2024.
  • Shanghai AI Lab (2024) Shanghai AI Lab. InternThinker. https://internlm-chat.intern-ai.org.cn, 2024.
  • SimpleBerry (2024) SimpleBerry. Llama-o1: Open large reasoning model frameworks for training, inference and evaluation with pytorch and huggingface. https://github.com/SimpleBerry/LLaMA-O1, 2024. Accessed: 2024-11-25.
  • Team (2024) OpenR Team. Openr: An open source framework for advanced reasoning with large language models. https://github.com/openreasoner/openr, 2024.
  • Valmeekam et al. (2024) Karthik Valmeekam, Kaya Stechly, Atharva Gundawar, and Subbarao Kambhampati. Planning in strawberry fields: Evaluating and improving the planning and scheduling capabilities of lrm o1, 2024.
  • Wang et al. (2024) Peiyi Wang, Lei Li, Zhihong Shao, Runxin Xu, Damai Dai, Yifei Li, Deli Chen, Yu Wu, and Zhifang Sui. Math-shepherd: Verify and reinforce LLMs step-by-step without human annotations. In Lun-Wei Ku, Andre Martins, and Vivek Srikumar (eds.), Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp.  9426–9439, Bangkok, Thailand, August 2024. Association for Computational Linguistics. doi: 10.18653/v1/2024.acl-long.510. URL https://aclanthology.org/2024.acl-long.510.
  • Wang & Sang (2024) Yuhang Wang and Jitao Sang. Don’t command, cultivate: An exploratory study of system-2 alignment, 2024.
  • Xu et al. (2024) Guowei Xu, Peng Jin, Li Hao, Yibing Song, Lichao Sun, and Li Yuan. Llava-o1: Let vision language models reason step-by-step, 2024. URL https://arxiv.org/abs/2411.10440.
  • Yang et al. (2024) An Yang, Baosong Yang, Binyuan Hui, Bo Zheng, Bowen Yu, Chang Zhou, Chengpeng Li, Chengyuan Li, Dayiheng Liu, Fei Huang, et al. Qwen2 technical report. arXiv preprint arXiv:2407.10671, 2024.
  • Zelikman et al. (2024) Eric Zelikman et al. Quiet-star: Language models can teach themselves to think before speaking. arXiv preprint arXiv:2403.09629, 2024. URL https://arxiv.org/abs/2403.09629.
  • Zhang et al. (2024) Di Zhang, Jianbo Wu, Jingdi Lei, Tong Che, Jiatong Li, Tong Xie, Xiaoshui Huang, Shufei Zhang, Marco Pavone, Yuqiang Li, Wanli Ouyang, and Dongzhan Zhou. Llama-berry: Pairwise optimization for o1-like olympiad-level mathematical reasoning. arXiv preprint arXiv:2410.02884, 2024. URL https://arxiv.org/abs/2410.02884. Accessed: 2024-11-25.
  • Zhao et al. (2024) Yu Zhao, Huifeng Yin, Bo Zeng, Hao Wang, Tianqi Shi, Chenyang Lyu, Longyue Wang, Weihua Luo, and Kaifu Zhang. Marco-o1: Towards open reasoning models for open-ended solutions, 2024.
  • Ziegler et al. (2019) Daniel M Ziegler, Nisan Stiennon, Jeffrey Wu, Tom B Brown, Alec Radford, Dario Amodei, Paul Christiano, and Geoffrey Irving. Fine-tuning language models from human preferences. arXiv preprint arXiv:1909.08593, 2019.