リモート開発メインのソフトウェア開発企業のエンジニアブログです

生成AIを使い始めたら読む、失敗しにくい質問の仕方

目次

はじめに

記事を書いている時点の生成AIを使っていて感じるのは、質問の仕方を知らないまま使うと、意図しない回答や正確でない回答が返ってくることがあり、失敗してしまうという点です。

特に、回答を仕事で使う方にとって、回答の検証は欠かせません。ただ、回答が来るたびに詳しく検証していては、効率が悪くなってしまいます。

私も使い始めた頃と今を比較して、普段使うときに意識することが増えた様に感じます。

そこで、効率的に使うために最低限覚えておきたいコツと生成AIの特徴を紹介します。

機密情報

生成AIで必ず押さえておきたいのは、顧客情報や具体名など、外に出してはいけない情報を質問に書かないことです。入力した内容が、生成AIの学習用データとして扱われることがあり、情報流出のリスクがあるためです。学習に利用されないようにする「オプトアウト」という設定を用意している生成AIもありますが、基本的には、質問するときは具体名や顧客情報を仮の名前や仮の情報に置き換えておくのが望ましいでしょう。

質問に書かない方がよい情報には、たとえば次のようなものがあります。

  • 顧客や取引先の会社名、担当者の氏名、住所、電話番号、メールアドレス
  • 未発表の製品名、売上や契約金額などの社内情報
  • パスワードやAPIキー、社内システムの接続情報

置き換えの例を挙げます。

  • そのまま書く場合:「株式会社〇〇の山田太郎様宛に、納品が遅れたお詫びのメールを書いてください」
  • 置き換えた場合:「取引先のA社のB様宛に、納品が遅れたお詫びのメールを書いてください」

置き換えた文章でも、お詫びメールの下書きという目的は同じなので、回答の質はほとんど変わりません。あとで本物の名前に戻せば、そのまま使えます。

誤解を招きにくいプロンプト

生成AIに質問するときの文章をプロンプトと呼びます。プロンプトはシンプルで正確で、情報の漏れのない、重複のない状態にすべきです。端的に言えば「誤解を招きにくい文章」にするということです。MECE(Mutually Exclusive, Collectively Exhaustive:ミーシー)という考え方が参考になります。「漏れなく、ダブりなく」考える、という意味です。

例えば資料の修正を頼む場面では、次のように違いが出ます。

  • 誤解を招きやすい:「資料を直してください」→ どの資料のどこを、誤字なのか構成なのか、何を基準に直すのかが分からず、生成AIが推測で内容まで書き換えてしまうことがあります。
  • 誤解を招きにくい:「添付した会議資料の誤字脱字だけを直してください。内容と構成は変えず、直した箇所を一覧で教えてください。」→ 対象、直す範囲、変えてはいけない点、出力の形が揃っています。

本を探す場面でも同じです。

  • 誤解を招きやすい:「おすすめの本を教えて」
  • 誤解を招きにくい:「IT業界で働いていて生成AIが初めての人向けに、基礎が学べる日本語の入門書を3冊、選んだ理由つきで教えてください。」

誤解を招きにくい例は、「誰が」「何を」「どこまで」「どんな形で」が揃っていて抜けがなく、同じことを二重に書いたり、条件が食い違ったりもしていません。これがMECEの考え方にあたります。

特に日本語は言葉を省略したり、前後の文から予想して意味を考えると言ったことが多い言語だと思います。そのため、曖昧な文章になりやすく生成AIと相性が悪いと言えます。例えば「記事をドキュメント化してください。ただし文の修正は後で行ってください。」など、ただしといった条件を加えることでも自分の意図を汲み取ってもらうためにできる工夫だと思います。

Moba Pro

生成AIに反対の立場に立ってもらう

生成AIはその人にとって「都合の良い」回答を返す傾向があると考えています。

そのため、自分の案が良いか確かめたいときに「この案をどう思いますか?」と聞くと、賛成する回答が返ってきやすくなります。そこで、あえて反論する立場に立ってもらいます。

例えば、新サービスの月額料金を決める場面では、次のように違いが出ます。

  • 普通に聞く場合:「新サービスの月額料金を500円にしようと考えています。どう思いますか?」→ 手頃で始めやすい、といった肯定的な回答になりがちです。
  • 立場を変える場合:「あなたは慎重な経営コンサルタントです。新サービスの月額料金を500円にする案に、あえて反対の立場から、問題点を3つ挙げてください。」→ 利益が出るか、値上げしにくくならないか、といった弱点が出てきます。

反論を聞いたうえで、案を直すか、そのまま進めるかは自分で判断します。

Web検索のように使わない

生成AIへのプロンプトは、自然言語(普段使う口調や言葉)で書くのがおすすめです。Web検索のように「お風呂場 洗剤 危険 使い方」と関連する言葉を区切って並べるのではなく、「お風呂掃除をするときの洗剤の使い方で、危険な使い方はありますか」というように、文章で書きます。

そうすることで、生成AIは文章に沿った回答を生成しやすくなります。

適切なモデルを使う

生成AIには複数のモデルがあり、性能・速度・コストがそれぞれ異なります。常に最上位のモデルを使えば良いわけではなく、内容に合った適切なモデルを選ぶと、結果の質と待ち時間のバランスが良くなります。ここでは例としてClaudeの3つのモデルを挙げます。

  • Opus:最も高性能なモデルです。複雑な推論、難しいコーディング、長く込み入った作業に向きます。そのぶん回答は遅めで、コストも高めです。
  • Sonnet:性能と速度のバランスが良いモデルです。日常的な質問、文章作成、一般的な作業ならこれで十分なことが多く、最初に選ぶのに向いています。
  • Haiku:軽量で速く、低コストなモデルです。要約、分類、簡単な質問など、素早い応答が欲しい単純な作業に向きます。

例えばHaikuが向いているのは、

  • 「次の文章を3行で要約してください」
  • 「次の問い合わせメールを、『返金依頼』『使い方の質問』『その他』のどれかに分類してください」
  • 「この文章の誤字脱字を直してください」
  • 「『ご確認ありがとうございます』を英語にしてください」
  • 「Excelで重複した行を削除する方法を教えてください」

といったケースです。反対に、条件が多い設計の相談や、複雑な推論、長いプログラムの作成などは、SonnetやOpusのほうが安定した結果を得やすくなります。

このように、目的や内容に合わせてモデルを選ぶことを意識しておくと良いでしょう。

私は、広範囲に及ぶコード修正にはOpus、通常のコーディングにはSonnet、「〇〇について教えて」といった簡単な質問にはHaikuを使っています。

コンテキストウィンドウ

コンテキストウィンドウとは、生成AIが一度に扱える情報量の上限のことです。これまでの会話、貼り付けた文章、添付したファイル、生成AIが書いた回答まで、すべてが同じ枠の中に入ります。

会話が長くなって枠がいっぱいになると、古い内容が抜け落ちたり、前に伝えた条件を忘れたりします。枠に収まっていても、情報が多すぎると、回答の精度が下がることがあります。

対策として、話題が変わったら新しいチャットを始める、長いやり取りは要点をまとめて引き継ぐ、といった使い方が有効です。

私は、同じチャットでElectronのコーディングをしたあとに、Tauri(どちらもデスクトップアプリを作るための技術です)のコーディングをお願いしたところ、Electronを前提にした内容が混ざってしまった経験があります。

まとめ

生成AIは質問の仕方や使い方しだいで、回答の質が大きく変わります。この記事のポイントは次の6つです。

  • 機密情報は書かない:顧客情報や具体名は、仮の名前や仮の情報に置き換えてから質問します。
  • 誤解を招きにくいプロンプトにする:対象・範囲・出力の形を揃え、漏れも重複もない文章にします(MECE)。
  • 反対の立場に立ってもらう:生成AIは都合の良い回答を返しやすいので、自分の案には、あえて反論してもらいます。
  • Web検索のように使わない:単語を並べず、普段の言葉で文章にして質問します。
  • 内容に合ったモデルを選ぶ:単純な作業はHaiku、日常的な作業はSonnet、複雑な作業はOpusが目安です。
  • コンテキストウィンドウを意識する:会話が長くなると前の内容を忘れやすいので、話題が変わったら新しいチャットを始めます。

どれも、今日からすぐに試せることばかりです。まずは1つ、普段の質問に取り入れてみてください。

「こういう使い方をしてみた」という事例をいろいろ見ないと、生成AIでどんなことができるのか、なかなか分からないと思います。他の人の事例を積極的に取り入れ、自分でも発信していくことで、うまく活用できるようになると思います。

← 前の投稿

次の投稿 →

公式の MCP サーバーで出来ない事が多い

コメントを残す