裁判シミュレーションでAIに同じ質問を8回させる「多角予測」を実装したワケ:AIの”温度”を意図的に使い分ける

弊社では顧問先ごとに、その現場専用の業務支援ツールを作って提供しています。
医療機関向け、研究所向け、司法書士向け、そして法律事務所向け——業種が変われば、必要な道具はまったく変わるからです。

そのうちの1つ、法律事務所向けのツールには、弁護士とパラリーガルの実務を支える機能が一通り入っています。法令・判例の調査、書面の作成支援、書面同士の矛盾検証、そして反論予測。「この主張を出したら、相手方や裁判官はどう突いてくるか」を事前に洗い出す機能です。

先日、この反論予測を大きく作り直しました。新機能の名前は「多角予測」。同じ主張を、AIに8通り別々に予測させて統合するモードです。

なぜそんな回りくどいことをするのか。そして設計の要が、なぜ「AIの温度(temperature)を、散らす時と束ねる時で意図的に使い分ける」ことだったのか?

この記事では、その導入理由と設計の考え方を、実装の詳細まで含めてまとめます。
AIツールを業務に組み込む際には、業種を問わず応用できる考え方だと思っています。

ちなみに開発はClaude Code, Google Antigravity, OpenAI Codexを使い分けています。

記事の内容

課題:AIの答えは「分布から引いた1枚」にすぎない

反論予測を実際に使っていて、ずっと引っかかっていたことがあります。

ChatGPT、GeminiなどのAIに「この主張への反論を予測して」と聞くと、それらしい反論が返ってきます。もっともらしい。でも、もう一度同じことを聞くと、微妙に違う反論が返ってくる

これはAIの欠陥ではありません。むしろ本質です。AIの答えは、確率的に選ばれた「ありうる答えの分布」から1枚引いたカードにすぎないのですね。

ここで困ってしまうのは、法律の世界の場合、現実の法廷は一発勝負だという点です。期日は一度きり。「あの時ああ言っておけば」と後から思っても、やり直しはできません。

にもかかわらず、弁護士の先生にはAIから引いた1枚のカードだけを見て本番に臨んでいただくことになってしまう。分布の全体像を見ないまま、たまたま引いた1枚だけを信じてしまう。これが気持ち悪かったんです。

発想の転換:モンテカルロ法という「未来の試し打ち」

そこでヒントにしてみたのは、モンテカルロ法というものです。コンピューターで大量の「乱数」を発生させて試行を繰り返し、確率的な近似解を求めるシミュレーション手法で、金融・物理・ITなど幅広い分野で使われている、いわば「未来の試し打ち」です。

裁判は、1つの争点だけで決まることは滅多にありません。複数のハードル(争点)を、すべてクリアして初めて勝訴できるわけです。

たとえば、こんな特許侵害訴訟を想定してみます。

  • 争点A:そもそも自社の特許が有効と認められるか(確率 70%)
  • 争点B:相手の製品が本当に特許を侵害していると認められるか(確率 50%)
  • 争点C:損害額がこちらの請求どおり満額認められるか(満額・半額・認められず、の確率分布)

これらを1万回ランダムに掛け合わせてモンテカルロ法でシミュレーションすれば、単なる「勝率50%」ではなく、「最終的に1億円を勝ち取れる確率は◯%、逆に1円も得られず裁判費用だけ損する確率は◯%」という、リアルな期待値の分布(リスクとリターン)をグラフ化できることになります。

反論予測も、同じような構造をしているように感じます。

  • 「相手方がどんな反論を出してくるか」には、分布がある
  • 何度予測しても出てくる反論=山の中心(=相手が確実に突いてくる)
  • たまにしか出ない反論=分布の端(=レアだが、刺さると危険)

1回だけ聞くのは、この分布の存在に気づかないまま、たまたま引いた1枚のカードで満足しているようなものなのです。

なぜ成り立つのか:AIの温度の調整で「ぶれ」を生み出す

ここが一番おもしろいところです。

AIに同じ質問をしても、毎回微妙に違う答えが返ってくることがあります。これは、temperature(温度)というパラメーターがあるからです。日本語にするなら「ぶれのつまみ」。

  • 温度を上げる:答えがあちこちに散らばり、自由で意外なものになる
  • 温度を下げる:いつもカチッと固まり、同じようなお堅い答えに寄る

法律ツールとして、条文や判例を扱う以上、答えが暴れては困ります。堅く、安定した答えを返してほしい。だから反論予測は、AIと相談しながら、temperature を 0.3 という低さで動かしています。

しかし、この設定のまま8回実行しても、意味がありません。 ほぼ同じ答えが8個並ぶだけ。コピーを8枚刷って「8回中8回出ました」と言っているようなものです。トークン代を8倍払って、何も得られない。

つまり——

「ぶれ」は、抑えるべきノイズではなく、多角予測のエンジンになりうる

だから多角予測モードでは、temperature を 0.95 まで上げています。ぶれてくれるからこそ、8通りがそれぞれ違う切り口になり、違う反論が出てくる。1回勝負なら邪魔でしかなかった「ぶれ」が、8回まわす前提では重要な判断材料に変わるわけです。

※ ただし、この「つまみ」は誰でも触れるわけではありません。ChatGPTやClaude.ai、Geminiアプリのような、私たちが普段使う一般向けのチャット画面には、温度を調整する機能はありません。プロバイダー側があらかじめ固定していて、ユーザー側からは見えないようになっています。実際に数値を動かして試すには、Google AI Studio・OpenAI Playground・Anthropic Consoleといった開発者向け画面か、今回のようにAPIを直接呼び出す実装が必要です。

なぜ「8回」なのか:100回は、要らない

「モンテカルロなら何万回も回すのでは?」と思われるかもしれません。実際、金融の世界では何十万回と回します。

業務ツールでは、そこまで要りませんでした。 理由は2つです。

1. 分布の山が、そもそも小さい

株価予測のような対象では膨大な試行が必要になりますが、「相手方が持ち出す反論の現実的な角度は、せいぜい5〜15通りで、争点はそこまで無限に広がらないだろう」・・・というのがAIの意見。

実際に100回まわして確かめてみたところ、9割は重複でした。だから8回程度の試行で、山の中心(頻出する反論)も、分布の端(レアだが危険な反論)も、あらかた見えてくる、というのもAIの意見。

2. コストに対して、効果がすぐ頭打ちになる

3回では端が拾えない。8回でほぼ拾える。20回でわずかに増える。100回でほとんど変わらない。逓減が非常に速い。

そしてAIは、読み書きした文字数(トークン)に応じて課金されます。8回なら約8倍、100回なら約100倍。8倍程度であれば、法廷の一発勝負に対して十分に見合うコストです。100倍は、得られるものに対して見合いません。費用対効果の折り返し地点が、8回あたりにあった、というのが結論です。

実装:8通りを「同時に」走らせ、裁判官AIが束ねる

設計はシンプルです。

ステップ1:8通りを並列で生成する

ここが実装上の勘所でした。8回を順番に実行すると、8倍の時間がかかります。 1回30秒なら4〜5分。実務ツールとして、それは使ってもらえません。

そこでClaude Codeには、8本のリクエストを同時に投げるように設計してもらいました。待ち時間は8回まわしても体感は1回分とほぼ変わりません。

ステップ2:「裁判官AI」が統合する

8通りの予測が出揃ったら、もう1体のAIに束ねさせます。役割は4つ。

  • 言い回しが違うだけの同じ反論を、1件にまとめる(表現の揺れを吸収)
  • 各反論が何通りの予測で出現したかを数える
  • 対処策が予測ごとに違う場合、最も有効なものを選ぶか統合する(いいとこ取り)
  • 出現回数の多い順に並べる

この統合役は、逆に temperature 0.25 の低温で動かしています。ここでぶれられては困るからです。散らすフェーズと、まとめるフェーズで、温度を意図的に使い分ける。 これが設計の要でした。

最大の収穫:「出現率」という、実測の確度

作ってみて、一番の収穫はここでした。

改修前から、各反論には「確度:高/中/低」という表示を付けています。ただしこれは、AIの自己申告です。AIが「自分では確度が高いと思う」と言っているだけ。根拠はAIの主観にすぎません。

多角予測では、これが変わります。

「この反論は、8通りの予測のうち7通りで出てきた」

これは自己申告ではなく、実測値です。8回中7回出るということは、その論点はAIが何度考え直しても浮かび上がってくる——つまり相手方が実際に持ち出す蓋然性が高いものと推測されます。

そして逆側も同じくらい重要です。8回中1回しか出なかったが、危険度は「強」。これは「レアだが、刺さったら致命傷」の反論です。1回勝負の予測なら、そもそも視界に入らなかった論点でした。

実務の言葉に翻訳すると、こうなります。

  • 出現率が高い反論 → 最優先で対策を用意すべき論点
  • 出現率は低いが強い反論 → 見落としがちだが、備えておくべき論点

つまり多角予測が本当に提供しているのは、反論のリストではありません。「どれから潰すか」という優先順位です。これは1回の予測からは、原理的に出てこない情報でした。

従来モードは、残した

念のため書いておくと、従来の「1回で予測する」モードは消していません。

低温(0.3)で1回だけ回す予測は、速く、安く、堅い。日常的な確認にはこれで十分です。出力結果に対して何度でも壁打ちができるようになっていますし。そして、すべてを多角予測にするのは、過剰品質になってしまいます。

  • 通常の反論予測:低温・1回・約30秒 → 日常の確認用
  • 多角予測:高温・8通り・約1分 → 重要な期日・交渉の前の総ざらい用

余談:「AI部隊」との違い──役割で分けるか、試行回数で分けるか

ここまで読んで、「複数のAIを同時に動かす」と聞いて、別の話を思い浮かべた方もいるかもしれません。

Claudeにはサブエージェントという機能があります。1つの複雑な課題に対して、複数のAI──いわば「バーチャル社員」──を同時に立ち上げ、それぞれに役割を割り振って並行して働かせる仕組みです。

一見、多角予測と似ています。どちらも「複数のAIを同時に動かす」という点は同じです。しかし、分けている軸がまったく違います。

  • サブエージェント(AI部隊)役割で分ける。リサーチ担当、執筆担当、レビュー担当……それぞれ違う仕事を、同時にこなす。目的は「作業の分担」。
  • 多角予測試行回数で分ける。全員が同じ仕事(同じ主張への反論予測)を、同時にこなす。目的は「答えのぶれの可視化」。

たとえるなら、前者は「3人のスタッフに、別々の作業を同時に振る」。後者は「8人のベテランに、同じ問いを考えてもらい、出てきた答えを見比べる」。どちらも『マルチ』ですが、解決している問題が違います。

  • 課題が「やることが複数ある」なら → サブエージェント(役割分担)
  • 課題が「1つの答えに、見落としがないか不安」なら → 多角予測(試行の分散)

今回の反論予測は、後者でした。反論を洗い出す作業は役割を分けるようなものではなく、「1つの問いに対する、AIの気まぐれを何度も覗く」作業だったからです。この2つの「マルチ」を課題に応じて使い分けられると、AI活用の引き出しは一気に広がると思います。

まとめ:一発勝負の前に、8回予行演習する

改めて整理すると、この改修でやったことは1つです。

現実には一度しか試せない勝負を、裏で8回やり直して、一番良い結論だけを持ってくる。

ほんの数年前まで、こんな芸当は大企業や研究所がスパコンでやる世界の話でした。
それが今では、AIを利用することで、顧問先1社のために実装できてしまうんです。 これは、かなり凄いことだと思います。

そして冒頭に書いたとおり、この考え方は法律業務に限りません。というか、本来は大規模シミュレーションで使う手段です。私たちの業務においては次のような場面でも使えそうです。

  • 値決め交渉の落としどころ
  • 反論が来そうな提案
  • 重要なプレゼンの想定問答

「一発勝負で、相手を通さないといけない」場面なら、何にでも効きます。 現実の本番は一度きりでも、AIの中でなら、その一度を8回でも予行演習できるからです。

AIを「良い答えを1つくれる賢い相談役」として使っているうちは、その分布の1枚しか見ていない
AIの”温度を調整”することで、いろんな答えが出てくる。まずはお使いのツールで、同じ質問を数回投げて、答えを並べてみてください。思っているよりも、答えは、ぶれています。

そのぶれは、決してノイズではありません。拾えていなかった重要な情報であるかもしれません

この記事を書いた人

情報環境コミュニケーションズ 代表
米国IT企業に12年間勤務ののち独立。
企業、団体のIT/AIコンサル、サポート、システム構築/管理、大学の招聘研究員として大規模調査の設計、集計の効率化、解析などを行っています。
最近では、生産性向上に寄与するAIの実装をサポートしています。
<著書>2008年〜2015年、テクニカルライターとして、週間アスキー、Ubuntuマガジン、Linux 100%, Mac 100%, Mr.PCなど多数のIT系雑誌に寄稿。

コメント

コメントする

記事の内容