🤩

LLMプロダクト開発で気づいた最も重要なこと「ユーザーの期待にこたえ続ける」安定性・再現性

に公開

LLMプロダクト開発における「安定性・再現性」の重要性

先日、ある方のポストに深く共感しました。

https://x.com/erukiti/status/1921058999211856150

この言葉に強く共感したのは、まさに僕自身がSmart-IPで特許業務向けのプロンプト(中間対応の対比表生成や意見書生成など)を作成していた時の経験と完全に一致したからです。当時のプロンプト編集作業で最も求められたことは、「いかに生成物の品質を安定させるか」ということでした。
LLMを活用したプロダクト開発において、この**「安定性・再現性」こそが、従来のソフトウェア開発とは一線を画す、非常に重要な、そして難しい課題であると痛感しています。
では、ここで僕が考える
「安定性・再現性」の定義を明確にしておきたいと思います。それは、「ユーザーの期待範囲内での出力結果の一貫性」です。
ユーザーが同じような入力や状況でプロダクトを利用した際に、予測可能で、期待を裏切らないレベルの出力が
一貫**して得られること。これこそが、LLMプロダクトの信頼性を支える基盤なのです。

LLMプロダクトは「知性を持った工場」である

なぜ、この「ユーザーの期待範囲内での出力結果の一貫性」がそれほどまでに重要なのでしょうか?
それは、LLMを特許業務のような実務に活用する中で気づいた、LLMプロダクトが実質的に「生産手段」であり、「工場」の役割を期待されているという点に答えがあります。
工場である以上、そこで生産される製品には一定の品質が求められます。特許実務で言えば、AIが生成する対比表や意見書は、常に一定以上の精度と品質、つまり「ユーザーの期待範囲内での一貫した品質」を保つ必要があります。これが担保されなければ、そのプロダクトは実務で使用するに値しません。
しかし、ご存知の通り、LLMは本質的に確率的な挙動をします。全く同じプロンプト、同じ状況でも、出力が微妙に、あるいは大きく変わることがあります。ここに、「ユーザーの期待範囲内での出力結果の一貫性」を実現する難しさがあり、そしてLLMプロダクト開発者が「どうやればプロンプトの安定性・再現性を上げられるか?」について試行し続ける理由があるのです。

「安定性・再現性」を高めるための実践的アプローチ

特許業務向けプロンプト開発の経験から、「ユーザーの期待範囲内での出力結果の一貫性」を高めるために効果的だった、いくつかの実践的なアプローチを紹介します。

  • 具体的な例示
    「こういう入力に対して、こういう結果を期待している」という具体的な例を複数示すことで、LLMの出力傾向をコントロールし、期待する「一貫性」に近づけることができます。
  • 制約条件の明確化
    生成してほしくない内容や、含めるべき要素など、「〜すること」「〜しないこと」といった制約をプロンプト内で明確に明示することで、不確実性を減らし、期待通りの出力を得やすくなります。
  • 処理の分割
    複雑なタスクは、一度にLLMに処理させるのではなく、より単純なステップに分割します。例えば対比表生成の場合、特許公報の読解、拒絶理由通知書の読解、それらを比較して対比する、というように処理を分けることで、各ステップでのエラーを防ぎやすくなり、最終的な出力の「一貫性」を高めます。
  • モデルの選択と組み合わせ
    LLMの性能や得意なことはモデルによって大きく異なります。推論が得意なモデル、創作が得意なモデル、特定のフォーマット生成に強いモデルなど、タスクの性質や求められる「一貫性」の種類に応じて最適なモデルを選択したり、複数のモデルを組み合わせたりすることが重要です。

LLMプロダクト開発の特徴だと感じるのは、この「ユーザーの期待範囲内での出力結果の一貫性」への試行錯誤に終わりがないという点です。
一見大変に思えますが、これこそがソフトウェアに新しい役割「工場」を付与していることの面白さだと捉えています。従来のプログラムは「与えられた命令を正確に実行する道具」でしたが、LLMは「知的生産を行う工場」という、より能動的で、品質管理が不可欠な新たな役割を担っているのです。

*「The AI PM's Playbook」ではAIプロダクト開発の3原則の一つとして「欲しい出力が出るまで修正を続ける」が挙げられています。

https://www.news.aakashg.com/p/ai-pm-playbook

開発を経験して変わったAIとの向き合い方

特許業務向けのLLMプロダクト開発を経験する中で、LLMに対する認識、向き合い方が大きく変化しました。最初はChatGPTで単に会話を楽しむユーザーでしたが、「ユーザーの期待範囲内での出力結果の一貫性」を追求するプロダクト開発を通じて見えてきた新たな視点をいくつか共有したいと思います。
それは、「一貫性」を求める過程で見えてきた、以下の3つの変化です。

「結果」から「プロセス」へ

開発前は、私もLLMから返ってくる最終的な回答が良いかどうかだけを気にしていました。良い回答が得られれば満足し、それがどう生成されたかには特に関心がありませんでした。しかし、「ユーザーの期待範囲内での一貫性」を追求するプロダクト開発を重ねるうちに、たまたま良い結果が出るだけでは不十分だと気づきました。入力から出力までの各ステップが安定して機能し、なぜその結果になったのか、どうすれば安定して同じ品質の結果が得られるか、といったプロセス全体に目を向けるようになりました。この変化は、単に技術的な理解が深まっただけでなく、AIを活用する際の思考法そのものが変わった瞬間でした。

「個人的な満足」から「一貫した品質保証」へ

当初は自分自身の一回限りの体験を基準にしていました。「私の質問に答えられたか」という個人的な成功体験で満足していたのです。しかし、特許業務向けプロダクトを作る中で、「どんなケースでも一貫して機能するか」、つまり「ユーザーの期待範囲内での出力結果の一貫性」が担保されているか、という評価軸に移行していきました。あるケースでは問題なく動作するプロンプトが、別のケースでは全く機能しないことが頻繁に起こります。ユーザーが都度、会話によってエラーを解決することは可能かもしれませんが、それでは「お金を払ってでも使いたいプロダクト」にはなり得ません。お金を払ってでも使いたいプロダクトには、どんなケースでも「ユーザーの期待範囲内での一定品質の出力」が求められるのです。そのためには、プロンプトやシステム全体を「一貫性」を追求するように改善することが不可欠でした。

「単一モデル」から「複合システム」へ

最初はChatGPTと単に対話することから入りました。しかし、「ユーザーの期待範囲内での出力結果の一貫性」を実務レベルで実現しようと開発を進めるうちに、LLMは大きなシステムの一部に過ぎないという考え方へと変わっていきました。特許業務のAI化プロジェクトでは、ある処理には推論に強いモデル、別の処理には創作性のない堅実なモデルというように、複数のAIモデルを適材適所で組み合わせることの重要性を痛感しました。
LLM単体では解決できない問題も多く、それらを効果的に組み合わせ、前処理・後処理も含めた一つのシステムを作り上げることこそが、実務で役立つ「安定性・再現性」を持つプロダクトを生み出す、本当の意味でのAI活用だと気づいたのです。

まとめ

LLMプロダクト開発において、「安定性・再現性」、すなわち「ユーザーの期待範囲内での出力結果の一貫性」の追求は単なる技術的課題ではなく、そのプロダクトの信頼性、ひいてはその価値を決定づける核心的要素です。それは工場における品質管理と同じく、信頼できる知的生産手段としての価値を保証するものです。
従来のソフトウェア開発では「機能が正しく動くか」が主な焦点だったのに対し、LLMプロダクト開発では「ユーザーの期待範囲内で、安定した知的生産ができるか」が問われます。

LLMプロダクト開発の経験を通じて、たまたまの良い結果ではなくプロセス全体で一貫性を追求すること、個人的な満足ではなくスケーラブルな品質保証を目指すこと、そしてLLMを複合的なシステムの一部として考えることの重要性を学びました。この「ユーザーの期待範囲内での出力結果の一貫性」を追求する経験が、僕のAIとの向き合い方を根本から変えました。

最後に、この気づきのきっかけをくださった@erukitiさんに改めて感謝します。一見シンプルな言葉の中に、LLMプロダクト開発の本質が凝縮されていました。
LLMプロダクト開発は、まだ始まったばかりです。この「安定性・再現性」の追求という、難しくも面白い課題に、共に取り組んでいけることを楽しみにしています。ぜひ、皆さんの経験やアイデアを拝聴したいです。
LLMプロダクト開発に役立つ情報があれば、積極的に発信していきたいと思います。

Discussion