ハルシネーション、古くなった知識、アシスタントの過信を見抜けるようになりましょう。
このレッスンを Kodokon で開くコードを学ぶうえで、生成AIはとてつもなく頼もしい味方です。得意なことは次のとおり。ある概念をあなたにぴったりのレベルで説明すること、理解できなかったときに別の言い方で言い換えること、求めに応じて追加の例を出すこと、あなた専用の練習問題を作ること、そしてあなたの成果物を添削して間違いを指摘することです。これほどあなたに合わせてくれる教科書はありませんし、24時間いつでも対応してくれる先生もいません。しかしこの味方には、信頼する前に知っておくべき3つの欠点があります。
1つ目の欠点はハルシネーションです。ハルシネーションとは、間違っているのに、まるで当たり前のことのように言い切られた回答のことです。前のレッスンを思い出してください。モデルは*検証された*テキストではなく、*もっともらしい*テキストを生み出します。実際の例としては、存在しないJavaScriptの関数(でっち上げのarray.shuffle()など)を作り出す、書かれたこともない本を引用する、あるいは名言を別の人物のものだと取り違える、などがあります。文章は流暢で、自信に満ち、よく組み立てられていて…そして間違っているのです。
2つ目の欠点は古くなった知識です。モデルは学習が止まった時点で凍結されており、その日付はナレッジカットオフ(知識の締め切り)と呼ばれます。それより後に登場したもの(言語の新バージョン、新しいライブラリ、最近の出来事)は、アシスタントがウェブ検索ツールを持っていない限り、モデルには分かりません。実際には、「Pythonの最新バージョンは?」と尋ねると、何の合図もなく古い情報が返ってくることがあります。
3つ目の欠点は過信です。有能な人間は「分かりません」や「確信はありません」と言います。ところがLLMは、初期設定では断定的な回答を生み出します。ためらいのある文章は学習データにほとんどないからです。その結果、あなたが初心者であればあるほど、推測を事実として受け取ってしまう危険が高まります。対策は、確かなことと確かでないことを区別するよう、モデルに明示的に頼むことです。
あなたは、でっち上げるくらいなら不確かさを認めるほうを選ぶ、厳密なアシスタントです。
以下の私の質問に、次の規則を厳密に守って答えてください:
1. 確立された事実と、仮定を、はっきり区別してください。
2. ある点について確信がない場合は、その前に「要確認:」と書いてください。
3. あなたのナレッジカットオフの日付を述べ、それ以降に変わっている可能性のあることを指摘してください。
4. 私が自分で確認できる公式の情報源のリストで締めくくってください。
私の質問:[ここに質問を書いてください]今日から身につけるべき正しい習慣は、AIを出発点として扱い、決して最終的な情報源として扱わないことです。重要な情報(構文、バージョン、事実)については、公式ドキュメントや信頼できる情報源と照らし合わせてください。この小さな検証の手間は時間の無駄ではありません。ドキュメントを調べることは、その過程で鍛えられるプログラミングのスキルなのです。
あなたはたった今、次のことを私に言いました:[ここにAIの発言を貼り付けてください]。
では、あえて反対の立場を取ってください。この発言が間違っている、不完全である、あるいは古くなっているかもしれない理由を挙げ、そのうえで、私が自分で検証するための正確な方法(どの公式ドキュメントを参照すべきか、そこで何を探すべきか)を教えてください。