こんにちは!
AIに同じ質問を2回すると、全然違う答えが返ってくること、ありませんか?
1回目:「5つのマーケティングアイデアをご紹介します……」 2回目:「7つの戦略的アプローチを検討しましょう……」
構成が違う。考え方が違う。トーンも違う。
これ、けっこう困りますよね。
ブランドに合わせた商品説明を量産したいとき。予測可能な出力が必要なワークフローを作りたいとき。プロンプトを調整してるのに、変化が効果なのかAIのランダム性なのかわからないとき。
今日は、AIの一貫性を上げる方法を、自分が試行錯誤した結果からまとめます。
なぜバラつくのか
まず、なぜこうなるのかを理解しておくと対策が立てやすいです。
AIは「次に来る単語を確率的に予測する」仕組みで動いてます。同じ入力でも、確率に基づいて少しずつ違う選択をする。だから出力が毎回変わる。
これは「temperature(温度)」というパラメータで制御されてます。温度が高いとランダム性が増えて創造的に、低いと予測可能で一貫した出力になる。
対策1:temperatureを下げる(APIの場合)
APIを使ってる場合、一番直接的な方法はtemperatureを下げることです。
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0.2 # デフォルトは0.7くらい
)
- 0.0〜0.3:かなり一貫性が高い。定型的なタスク向け
- 0.4〜0.7:バランス型。多くの場合これで十分
- 0.8〜1.0:創造性重視。ブレストや創作向け
ちなみに、ChatGPTやClaudeのWebインターフェースだと、この設定はできません。APIを使うか、別の方法で対策する必要があります。
対策2:出力フォーマットを厳密に指定する
フォーマットを明確に指定すると、構造的な一貫性が上がります。
悪い例:
マーケティングアイデアをいくつか出して
良い例:
以下のフォーマットで3つのマーケティングアイデアを出してください:
## アイデア1:[タイトル]
- 概要:[1文で説明]
- ターゲット:[誰向けか]
- 予算感:[低/中/高]
## アイデア2:[タイトル]
...
フォーマットを見本として見せると、AIはそれに従おうとします。出力の「構造」は安定しやすくなる。
対策3:具体的な制約を追加する
曖昧さを減らすと、一貫性が上がります。
曖昧:
この製品の説明を書いて
具体的:
この製品の説明を書いてください。
条件:
- 文字数:100〜120字
- トーン:プロフェッショナルだけど親しみやすく
- 構成:特徴→メリット→使用シーンの順
- 避けること:専門用語、誇張表現
制約が多いほど、AIの「選択の余地」が減って、結果が安定します。
対策4:例を見せる(フューショット)
一番確実なのは、望む出力の例を見せること。
以下の形式で商品説明を書いてください。
例1:
商品:ワイヤレスイヤホン
説明:「通勤の30分が、自分だけの時間に変わる。
ノイズキャンセリングで周囲を遮断。1回の充電で1週間持続。」
例2:
商品:スマートウォッチ
説明:「健康管理が、腕時計を見るだけに。
心拍・睡眠・運動を24時間トラッキング。通知も手首で確認。」
これを参考に、以下の商品の説明を書いてください:
商品:ポータブル充電器
例を2〜3個見せると、AIはそのパターンを学んで一貫した出力を生成しやすくなります。
対策5:システムプロンプトで固定する
ChatGPT APIやClaude APIでは、システムプロンプトで「常にこういう風に振る舞って」と指定できます。
あなたはテクノロジー製品のコピーライターです。
以下のルールに従ってください:
1. 常に100〜120字で書く
2. 特徴ではなくメリットを強調する
3. 専門用語は使わない
4. 「〜できます」ではなく「〜になります」で締める
このシステムプロンプトを固定しておけば、ユーザープロンプトが変わっても、基本的なスタイルは一貫します。
ハマりポイント
完璧な一貫性は無理
正直に言うと、AIで100%同じ出力を得るのは難しいです。temperatureを0にしても、微妙に変わることがあります。
「許容範囲内のバラつき」を目指すのが現実的かなと思います。
一貫性を求めすぎると創造性が落ちる
temperature低め+厳密なフォーマット+具体的な制約……とやりすぎると、出力が「定型的すぎる」ことがあります。
ブレストや創作タスクでは、あえてバラつきを許容したほうがいい結果が出ることも。
長い出力ほどバラつく
短い出力(数十字)より長い出力(数百〜数千字)のほうがバラつきやすいです。
長い文章を生成するときは、パートごとに分けて生成→結合するアプローチも検討してみてください。
実践的なワークフロー
自分が一貫性が必要なタスクでやってるやり方:
- まず1回生成してみる——出力を確認
- 良い出力を「見本」として保存——次回のフューショット用
- フォーマットと制約を言語化——暗黙の期待を明示的に
- テンプレート化——同じタスクは同じプロンプトで
これで「だいたい同じ感じ」の出力が得られるようになりました。
まとめ
AIの出力がバラバラなのは、仕組み上の特性。完全に消すのは難しいけど、コントロールはできます。
- temperatureを下げる(APIの場合)
- フォーマットを厳密に指定
- 制約を具体的に
- 例を見せる
- システムプロンプトで固定
この5つを組み合わせれば、かなり一貫性のある出力が得られます。
一貫性が必要な業務タスクでは、試してみてください。
関連記事: