
複数回の推論により、LLMの精度向上を図る
挨拶と自己紹介
こんにちは!NITI Technologyでエンジニアをしている吉田鴻明です。現在はオフライン環境でも動作するLLMアプリ「オフチャット」の開発に取り組んでおり、特にRAG(Retrieval-Augmented Generation)を活用したシステム構築を目指しています。
本記事では、複数回推論を使用したLLM(大規模言語モデル)の精度向上に関する実験結果をまとめます。DeepSeek-R1のような最新技術が採用する複数回推論を、自社プロダクトに適用した場合の精度向上が実現できるのかを実験を通じて確認しました。
はじめに
近年、生成AIを活用したLLMが急速に進化し、多くの分野での活用が期待されています。特にDeepSeek-R1など、複数回の推論を行うことで精度が向上する技術が注目を集めています。しかし、実際にこれを自社のプロダクトに適用する際には、その精度向上が実際にどの程度実現できるのか、またどのような点で効果を発揮するのかを把握する必要があります。
問題設定と課題
現在、多くのLLMは単一の推論結果をもとに回答を生成しますが、これには限界があり、場合によっては浅い回答に終わることがあります。例えば、複雑な計算や詳細な論理展開を要する問題に対して、LLMが一度の推論で十分な精度を出すのは難しいことがあります。この課題を解決するためには、複数回にわたって推論を行い、思考プロセスを深める方法が有効であると考えられます。
提案手法
手法の概要
本手法は、LLMに対して複数回推論を行わせ、その結果を段階的に精緻化することを目指します。最初の推論で出力された結果に基づき、次の思考を進め、最終的に精度の高い回答を生成するアプローチです。このプロセスを「思考→出力」の繰り返しとして実装しました。
手法の強みと具体例
従来のLLMは一度の推論で最終的な回答を出力しますが、複数回推論を行うことにより、精度を向上させることができます。例えば、計算問題では単純な算出を避け、過程を検討する時間を持つことでより正確な結果を得ることが可能です。複数回の推論を導入することで、答えに至るまでの過程が明確になり、誤りを防ぐことができます。
実験の目的
この手法を実装し、単一の推論結果と複数回推論を行った場合の精度の違いを比較しました。
実験
問題設定
本実験では、一般的なLLMの出力と、複数回推論を行った場合の出力を比較し、その精度の違いを評価しました。実験に使用した問題は以下の通りです。
質問:「私は市場へ行きリンゴを10個買いました。リンゴを2個隣の人に、さらに2個を修理屋さんにあげました。その後リンゴを5個買い、1個食べました。バナナを3本兄にあげました。リンゴは何個残ったでしょう?」
回答:10個
また、モデルは1月30日にsakana ai社によって公開された、TinySwallow-1.5Bを使用します。
実験結果
以下に、実験で得られた結果を示します。従来のLLMと複数回推論を行った結果を比較します。
一般的なLLMの回答

【浅い回答】 「リンゴは8個残った。」
複数回推論を使用した結果

【思考プロセス】
Thinking turn 1: <thought>最初に10個のリンゴを購入し、その後5個を買い足しました。リンゴの合計は15個です。</thought>
Thinking turn 2: <thought>リンゴを2個隣の人に、さらに2個修理屋さんに渡したので、15-2-2=11個になります。</thought>
Thinking turn 3: <output>その後1個食べたので、11-1=10個残ります。</output>
最終回答: 「リンゴは10個残っています。」
評価結果
複数回推論を使用した場合、最初の浅い回答に比べて、最終的に正確な結果(リンゴは10個残る)が得られました。推論の過程で、途中段階を確認しながら結果を修正できたため、精度が向上しました。
まとめ
本実験では、複数回推論を使用することで、LLMの精度を向上させることができることが確認されました。特に、計算問題や論理展開が求められる問題において、複数回推論を行うことで精度が大きく向上しました。今後は、この手法をさらに最適化し、より複雑な問題にも対応できるようにしていきます。
今後の課題
本手法には、推論回数の増加に伴う計算資源の消費という課題があります。特に、簡単な問題に対しても深く考えすぎると効率的ではないため、問題の難易度に応じて推論回数を適切に切り分ける機構が必要です。今後は、問題の簡単さに応じて深さを調整できるアルゴリズムや、計算リソースを無駄にしない工夫を行う予定です。
また、最初の推論で間違いがあると、その後の推論でさらに誤った結論に導かれる可能性が高くなります。これを防ぐためには、初期の推論結果を適切に評価し、修正可能な場合に早期に訂正を行える仕組みを構築することが重要です。この点を改善することで、精度の向上と計算資源の効率化を両立させることを目指していきます。
感想
確かに問題によっては即答より深く考えさせた方が良い! ただプロンプトの設計には骨が折れる...