チャットボットの答えを確かめる
チャットボットの答えを確かめるとは、使う前に、それが本当かどうかを調べることです。チャットボットは、ない事実や日付や本を作ってしまうことがあります。
作り話を自分のレポートに写すと、そのまちがいはあなたのものになります。少し確かめるだけで、それを防げます。
このレッスンのゴール
メモ
チャットボットの答えを、2つ目の情報源で確かめることができる。
キーワード
| ことば | いみ |
|---|---|
| 事実 | 本当で、確かめられること |
| 情報源 | 情報がどこから来たか |
| 2つ目の情報源 | 同じ事実を確かめる、別の場所 |
| 作り話 | 作られた、本当ではないこと |
| 古い情報 | 前は本当だったが、今はちがうこと |
学生が入力するセルは、このプレビューでは空白です。
チャットボットは作り話をすることがある
チャットボットは、ありそうな言葉を書くように作られています。だから、「わかりません」と止まることがあまりありません。見たことのないものについて聞くと、答えを作ってしまうことがあります。
次の2つの Run は、霧野瀬村について聞きます。このレッスンのために作った、存在しない村です。答えに出てくる年や本は、必ず作り話です。
ラボのチャットボットに聞く
メモ
ラボを起動してから、2つの Run を押しましょう。学校で AI が使えないときは、どちらも記録済みのサンプルを、そうわかる印付きで表示します。サンプルも、確かめるべき主張として扱いましょう。
存在しない村について聞く
docker exec -w /home/node/project agent node -e "const u=(process.env.AI_URL||'http://ai:4000')+'/v1/chat/completions';const post=(m,t,x)=>fetch(u,{method:'POST',headers:{'content-type':'application/json',authorization:'Bearer lab'},body:JSON.stringify({model:'lab',messages:[{role:'user',content:m}],max_tokens:t,temperature:x})}).then(r=>r.json());post('霧野瀬村に最初の図書館ができたのは何年ですか。短い一文で答えてください。',40,0.7).then(j=>console.log('チャットボット: '+j.choices[0].message.content)).catch(e=>console.log('記録済みのサンプル(チャットボットは答えませんでした): 霧野瀬村の最初の図書館は、1892年にできました。'))"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
その村についての本を聞く
docker exec -w /home/node/project agent node -e "const u=(process.env.AI_URL||'http://ai:4000')+'/v1/chat/completions';const post=(m,t,x)=>fetch(u,{method:'POST',headers:{'content-type':'application/json',authorization:'Bearer lab'},body:JSON.stringify({model:'lab',messages:[{role:'user',content:m}],max_tokens:t,temperature:x})}).then(r=>r.json());post('霧野瀬村の歴史についての本を一冊、書いた人と一緒に挙げてください。短い一文で答えてください。',40,0.7).then(j=>console.log('チャットボット: '+j.choices[0].message.content)).catch(e=>console.log('記録済みのサンプル(チャットボットは答えませんでした): おすすめは、森下ちづる著の『霧野瀬村ものがたり』です。'))"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
2つ目の情報源で確かめる
2つ目の情報源とは、同じ事実を知っているはずの、別の場所です。正しそうなものを選びます。教科書、自分のノート、学校のウェブサイト、時刻表などです。
2つが合っていれば、その事実を使えます。合わなければ、チャットボットではなく、よりたしかな情報源を信じます。
例: 3つの主張を確かめる
| チャットボットの答え | 2つ目の情報源 | そこに書いてあること | 結果 |
|---|---|---|---|
| 学校の図書室は8時に開く | 学校のウェブサイト | 8時30分に開く | 合っていない |
| 水は海の高さで100度でふっとうする | 理科の教科書 | 海の高さで100度 | 合っている |
| 42番のバスは10分ごとに来る | バスの時刻表 | 20分ごと | 合っていない |
| 友だちのサキは17歳 | 確かめられる場所がない | なし | 確かめられない |
学生が入力するセルは、このプレビューでは空白です。
日付と数字は特に気をつける
チャットボットは、ある日までに書かれた文章から学んでいます。それより新しいことは知らないかもしれません。だから、値段やルールが古い情報のことがあります。
計算もまちがえることがあります。数字も、ありそうな言葉として書くからです。日付は今日の日付が載ったページで、計算は自分で確かめましょう。
チャットボットの計算を確かめる
# チャットボットがこう答えたとします。[1つ目の数, 記号, 2つ目の数, その答え] です。
claims = [
[12, "×", 15, 180],
[48, "+", 27, 85],
[9, "×", 9, 81],
]
for claim in claims:
if claim[1] == "×":
right = claim[0] * claim[2]
else:
right = claim[0] + claim[2]
if right == claim[3]:
print(claim[0], claim[1], claim[2], "=", claim[3], "合っている")
else:
print(claim[0], claim[1], claim[2], "=", claim[3], "はまちがい。正しくは", right)
よくある間違い
注意
長くてくわしい答えなら本当だろう、と考える人が多いです。くわしさは、チャットボットにとって作りやすいものです。よい2つ目の情報源で確かめたときだけ、事実が正しいとわかります。
さらに挑戦: 出どころを聞く
チャットボットの中には、聞けば事実の出どころを答えるものもあります。役には立ちますが、挙げた情報源そのものが作り話のこともあります。
最近の自分のレポートから、事実を1つ選びましょう。それについて、よい情報源を2つ探します。2つは合っていましたか。