AI(人工知能/ディープラーニング)

ローカルAIを「考えるAI」にしたら、計算がポンコツに!? Python連携で完璧なハイブリッドAIを作った話

この記事は約7分で読めます。

最近、自分のPCでは機密情報を扱えるローカルAI(LLM)と、最先端のクラウド型生成AI(Claude、ChatGPT、Gemini)を使い分けています。
自作の「ローカルRAGチャットシステム」(社内文書などを読み込んで回答させる仕組み)に、最近流行りの推論(Thinking)モードを実装してみました。これは、AIが答えを出す前に「頭の中で考えている内容」を一度出力させるモードのこと。思考プロセスを経由させることで回答の論理性が爆上がりし、「これは賢い!」「報告書を書くのに使える」と感動していました。
しかし……ここで思わぬ落とし穴にハマりました。
推論を深めれば深めるほど、計算問題で盛大にミスをする(ハルシネーションを起こす)ようになってしまったのです。
今回は、この「LLMは計算が苦手問題」の原因を深掘りし、対策として「AIが自律的にPythonを呼び出して計算する仕組み(Function Calling)」を実装して、完璧なハイブリッドAIを作り上げた備忘録をまとめます。エンジニアでない方にも「そういう工夫ができるのか」とイメージを持ち帰っていただけるように書きました。

ローカルAIだからこそできるカスタマイズ

ローカルAI

利用環境について

利用環境は LM Studio(ローカルでAIを動かす無料ソフト)上で、Google公式の最新オープンモデル Gemma 4(2026年4月にリリースされた最新版)を使用。推論モードが優秀なことで評判のモデルです。

【ローカルAI革命】Google公式版「Gemma 4 E4B」登場!内蔵された「推論(Thinking)」機能の実力を徹底検証
私たちが使う「AI」の環境は、まさに日進月歩。いや、最近は「秒進分歩」と言っても過言ではありません。そして自宅や企業で動かす「ローカルAI」の環境もどんどん進化が早くなっています。4月の初めに、Googleから発表されたばかりの最新モデル「...

そして、このローカルAIをブラウザで使えるようにPCにはPythonが動く小さなサーバーを立ててあります。今回のカスタマイズが可能だったのは、この「間にPythonを挟める構造」のおかげ。LM Studio単独でローカルAIとして使う場合はこのような拡張は難しく、ローカルAI環境をブラウザ経由で使えるようにしておいてよかったと心底感じました。

完全オフライン!自分だけのローカルAI×RAGアプリを作ってみました
昨今、AIの話題を見ない日はありません。しかし、企業で導入するとなると「社内の機密データや顧客情報をインターネット上のAIに読み込ませて本当に大丈夫なのか?」というセキュリティの不安がつきまといます。そこで今回は、インターネットから切り離さ...

▼今回のカスタマイズでリニューアルした画面
ブラウザで使えるローカルAI

発生した問題:推論させると計算を間違える!

スタートアップの経営シミュレーション(月次売上、固定費、成長率から6ヶ月後の現金残高を計算する等)をAIに解かせてみたところ、論理的な経営アドバイスは素晴らしいものの、肝心のシミュレーションの数値が全く合っていない事態になりました。

たとえば、「500万円の5%増し」を計算させると、答えが「575万円」と出てきたりします(正しくは525万円。575万円は15%増しの値)。推論能力をオンにしたことで、AIは「自分は賢いから計算もいける!」と自信満々に間違った答えを出力するようになってしまったのです。
厄介なのは、思考プロセスが立派に見えるので、中身を検算しないと誤りに気づきにくいこと。経営判断に使うなら致命的です。

原因:なぜLLMは計算が苦手なのか?

ご存知の方も多いと思いますが、LLM(大規模言語モデル)は本質的に「次に来る確率の高い単語を予測している」だけのテキスト生成器です。

  • 構造的な限界: LLMの内部には電卓がありません。「12345 × 6789」のような計算も、算数として解いているのではなく、「過去の学習データからそれっぽい数字の並びを出力している」に過ぎません。桁数が増えるほど確率的な当てずっぽうに近づきます。
  • 推論モードの弊害: 推論(Thinking)機能は「テキストで論理を展開する」のには最適ですが、数値シミュレーションのように「1つの計算ミスが最後まで連鎖する」タスクでは、途中で間違えた数値を元に堂々と間違った結論を導き出してしまいます。考えれば考えるほど、間違いの上塗りが起きるのです。

これはGemma 4に限らず、ChatGPTでもClaudeでも、素の状態で複雑な計算をさせると同様のリスクがあります。

対策:LLMに計算をさせず、Pythonに「外部委託」する

結論として、「AIには一切計算させず、Pythonに計算させる」仕組みを導入することにしました。イメージは「AIが会議の進行役、Pythonが手元の電卓」という役割分担です。

最近の賢いモデルには 「Function Calling(ツール呼び出し)」 という機能があります。これは、AIに「あなたは『Python実行ツール』を持っています。計算が必要な時はこれを使ってね」と教えておくことで、AI自身がプログラムを生成し、システム側で実行した結果をAIに返すことができる機能です。ChatGPTのコードインタープリターと同じ発想を、ローカルで自作した、と思っていただければほぼ正解です。

実装ステップ1:システムの裏側にPython実行環境を用意

まずはバックエンド(Pythonサーバー)に、AIから渡されたPythonコードを実行し、その結果(printされた内容)を返す関数を実装しました。コードの中身は、ざっくり「受け取った文字列をPythonとして実行し、出力結果を文字列で返す」だけ。イメージとしては次の3行に集約できます。

# AIから渡された計算コードをその場で実行する
exec(code_str)
# 実行結果(printの出力)をAIに返す
return captured_output

たった数行ですが、これが「AIの暗算」を「電卓による正確な計算」に差し替える変換器になります。エンジニアでない方は「AIの答えを鵜呑みにせず、裏で電卓を叩いて検算するアシスタントを挟んだ」と捉えていただければOKです。

実装ステップ2:AIへの強力なプロンプト指示

ツールを用意しただけでは、AIは「面倒だから自分で暗算しよう」とサボることがあります(そして間違えます)。そこで、システムプロンプトに強力な禁止令を追加しました。

【厳守事項】 数値シミュレーションや計算を行う場合は、必ず提供されているPythonツール(execute_python)を使用し、自力で暗算・計算しないでください。結果を表示させるためには必ず print() 関数を使用してください。

この「サボらせない仕掛け」が意外と重要で、ツールを与えるだけでなく「使いなさい」と強く指示するのがコツです。これはプロンプト設計全般に応用できる教訓でもあります。

開発中にぶつかった「2つの壁」

すんなり完成とはいかず、実装中にいくつかエラーに直面しました。これも良い知見なので残しておきます。

壁1:単純な数式しか扱えない問題

最初はシンプルな数式だけを評価する仕組みで作っていました。しかしAIは気を利かせて、for ループや変数を多用した本格的なプログラムを書いて渡してきます。これだとエラーが頻発するため、複数行のプログラムをまるごと実行できる仕組み(`exec`関数)にアップグレードし、print結果を拾えるように改修しました。

壁2:Markdown記法によるSyntax Error

AIはコードを出力する際、親切にバッククォート3つ(“`python)で囲んで送ってきます。これをそのまま実行しようとすると構文エラーになってしまいます。バックエンド側で、コードを実行する前にMarkdown記法をクリーニングする処理を入れることで解決しました。「AIは丁寧すぎて逆に困る」という、生成AI実装あるあるです。

完成!「論理的推論 × 正確な計算」を持つ最強のエージェント

最終的に出来上がったAIに、先ほどの「スタートアップの6ヶ月後の財務シミュレーション」を再度お願いしてみました。

すると、AIは自ら裏でPythonコードを書き出し、システム側で実行。コードのイメージは以下のようにシンプルなループ計算です。

# 6ヶ月分、売上を1.15倍しながら現金残高を更新
for month in range(1, 7):
    sales = sales * 1.15
    cash += sales - fixed_cost
    print(month, sales, cash)

そして、Pythonが算出した「1円の狂いもない正確なシミュレーション結果」を受け取り、それに基づいて見事な経営アドバイスを回答してくれました。数字は電卓、判断と文章はAI──この役割分担が決まった瞬間、生成AIの信頼性は一段上がります。

まとめ:非エンジニアにも持ち帰れる3つの教訓

LLMの推論能力は凄まじいですが、計算能力には致命的な弱点があります。しかし、「思考はAIに、計算はPythonに」と役割分担(Function Calling)をさせることで、この弱点は完全に克服できました。

ローカル環境でも、工夫次第で商用サービス顔負けの自律型AIエージェントを作ることができます。中小企業の業務にAIを導入する立場からも、以下3点は汎用的な教訓として押さえておきたいところです。

  1. AIに数字の最終責任を負わせない。計算・集計・シミュレーションはExcelやPython、専用ツールに任せる。
  2. AIには「役割」を明示する。ツールがあっても使わせる指示を出さないと、暗算でサボり始める。
  3. 推論が深いAIほど検算が重要。論理的に見える出力ほど、中身が間違っていても気づきにくい。

もし「AIの計算ミス」に悩んでいる方がいれば、ぜひPythonや表計算ツールへの「外部委託」を試してみてください。

ローカルAIは安全安心

ローカルAIはネット接続しなくても使えるので情報漏洩リスクを最小化できるのが最大のメリットです。ぜひ企業でセキュリティ情報を扱うような場合はローカルAI導入を考えてみてください。

ローカルAIとは

なお、ここであらためて申し添えておきますが、私(遠田幹雄)はエンジニアではありません。この記事でもっともらしいコードのことやPythonの処理のことを書いていますが、これはすべて生成AIとの対話によって実現できたことです。

私は一行のコードも書かない(書けない)のですが、このようなことが非エンジニアでもできるということをお伝えしておきます。