Leanstral 1.5: すべての人に証明の豊かさを

Leanstral 1.5: すべての人に証明の豊かさを

Mistral AIは、Lean 4における証明エンジニアリングに特化したモデルであるLeanstral 1.5をリリースしました。このモデルは総パラメータ数119B、アクティブパラメータ数6Bを特徴とし、Apache-2.0ライセンスの下で公開されており、形式検証と数学的推論において大幅なパフォーマンス向上を実現しています。

パフォーマンス・ベンチマーク

Leanstral 1.5は、いくつかの主要な数学的ベンチマークにおいて最先端(state-of-the-art)の結果を達成しており、初等的な推論から高度な推論までを扱う能力を示しています。

  • miniF2F: このモデルは、形式数学のためのクロスシステム・ベンチマークであるminiF2Fにおいて、検証セットとテストセットの両方で100%に達し、完全に飽和しています。
  • PutnamBench: Leanstral 1.5は、Putnam数学コンペティションの672問中587問を解決しました。これはSeed-Prover 1.5 (high setting)を7問上回り、コストは大幅に低減されています。具体的には、1問あたり約4ドルに対し、推定300ドル以上となっています。
  • FATE-H and FATE-X: このモデルは、大学院および博士課程レベルの問題を対象としたこれらの抽象代数ベンチマークにおいて、新たな最先端を確立しました。FATE-Hの87%、FATE-Xの34%の問題を解決しています。
  • FLTEval: Leanstral 1.5は、pass@1を21.9から28.9へ、pass@8を31.9から43.2へと向上させ、Opus 4.6の39.6を、わずか7分の1のコストで上回りました。

学習手法

Leanstral 1.5は、ミッドトレーニング(mid-training)、教師あり微調整(supervised fine-tuning)、およびCISPOを用いた強化学習(reinforcement learning)という3段階のプロセスで開発されました。モデルは、2つの異なるRL環境で学習されました。

  1. Multiturn Environment: モデルは定理の主張を証明または反証するタスクを与えられます。証明を提出し、Leanコンパイラからフィードバックを受け取り、証明がコンパイルされるか予算が尽きるまで、反復的にアプローチを洗練させます。
  2. Code Agent Environment: モデルは、生のファイルシステム内で開発者として動作し、ファイルを編集し、bashコマンドを実行し、Lean言語サーバーを利用してゴール、エラー、および型情報を調査します。この環境により、モデルはリポジトリ内の部分的な証明の補完や補助的な補題(lemmas)の構築といった、長期的なタスクを扱うことが可能になります。

テスト時スケーリングと推論

Leanstral 1.5は、強力なテスト時スケーリング(test-time scaling)を示しており、これは、試行あたりのトークン予算が増えるにつれて、パフォーマンスが単調に向上することを意味します。PutnamBenchにおいて、Pass@8のパフォーマンスは、50kトークンでの44問解決から、4Mトークンでの587問解決へと上昇しました。この能力により、モデルは、複雑なAVL-treeの証明において2.7Mトークン以上と22回のコンパクション(compaction)を必要としたように、数百万のトークンにわたって推論、ファイルの編集、および修正を行うことができます。

実世界でのコード検証ケーススタディ

Leanstral 1.5は、コードの特性を検証し、オープンソース・リポジトリにおけるバグの発見に実用的な有用性を示しています。

AVL Tree Time Complexity

モデルは、AVL木の実際のインプリメンテーションにおけるO(log n)の時間計算量保証を証明することに成功しました。これには、構造的帰納法、モナディックな時間追跡の処理、および再平衡化パスの網羅的なケース分析が必要でした。

オープンソースソフトウェアにおけるバグ発見

RustコードをLeanに変換するAeneasと、意図を推論し正当性特性を生成するLeanstral 1.5を組み合わせたパイプラインを使用することで、Mistral AIは57個のテスト済みリポジトリにわたって11個の真正なバグを見つけ出しました。そのうち5個は、GitHub上で以前に報告されていなかったものです。注目すべき例として、datrs/varintegerライブラリのzigzagデコーディング用のsign関数におけるオーバーフロー・バグがあり、これはStd.U64.MAXを入力とした際に発生します。

コミュニティ・フィードバックと分析

モデルのパフォーマンスは素晴らしいものですが、Hacker Newsのコミュニティ・メンバーは、いくつかの議論のポイントを挙げています。

"I found the bug finding example to be weird... In what way would this boundary condition case be considered something that 'testing [...] would typically miss'?"

一部のユーザーは、datrs/varintegerで見つかったような境界条件のバグは、通常、ファジング(fuzzing)や注意深いテストによって検出されるものだと主張しています。また、同じバグが発表の1週間前にGitHub issueとして報告されていたことを指摘し、主張されている「発見」の妥当性に疑問を呈するユーザーもいました。

さらに、一部のユーザーはベンチマークの比較対象が古いモデルであることや、、Lean 4をIsabelle/HOLやTLA+のような他の形式検証ツールと比較せず、Lean 4を選択した理由について疑問を呈しています。

Leanstral 1.5 をはじめに

Leanstral 1.5は、HuggingFace上でApache-2.0ライセンスのモデルとして、また無料のAPIエンドポイント(leanstral-1-5)として利用可能です。ユーザーは、以下のセットアップでMistral Vibeを通じて展開できます。

  1. Mistral Vibeのインストール: uv tool install mistral-vibe に続いて vibe --setup
  2. Leanstral 1.5のインストール: /leanstallexit
  3. Agentの起動: vibe --agent lean
  4. オプションのLSP MCP: 機能拡張のためにlean-lsp-mcp~/.vibe/config.tomlファイルに追加することでインストールできます。

Sources