人間関係もコンテクストエンジニアリングが大事だよねという話
どうも。
昨年後半あたりからAI界隈で「コンテクストエンジニアリング」の話題が増えてきました。
今日はこの「コンテクストエンジニアリング」の考え方が、実は人間関係にもそのまま当てはまるよね、という話をします。
コンテクストエンジニアリングって何?
生成AIが登場した当初、AI絡みのスキルといえば「プロンプトエンジニアリング」でした。AIにどう指示を出すかという話です。それが最近では「コンテクストエンジニアリング」、つまりAIにどんな文脈を渡すかという設計の話にシフトしてきています。
これはわりと当たり前の話で、汎用的なLLMはユーザーのことを何も知りません。
非常に優秀な知能ではあるのですが、「今何が起きていて、どういう状況で、何をしてほしいのか」という文脈を共有してあげないと、意図通りの結果は返ってきません。
単に「何をしてほしいか」だけでなく、そこに至るまでの情報を適切に渡す必要があるわけです。
それはそう、って感じですが、僕らはこういうことにかっこいい名前をつけるのが好きなので、コンテクストエンジニアリングとか呼んで盛り上がってるわけです。私も保育園で娘の友だちのお父さんに「何されてるんですか?」と聞かれたら「最近は主にコンテクストエンジニアリングですね」って言います。嘘です。
さて、いざこれを実践しようとすると、全部の情報を闇雲に与えるわけにはいかないことに気づきます。LLMにはコンテクストウィンドウというものがあり、扱える情報量に上限があるからです。
どの情報を優先して与えるのか、どんな順番で与えるのか、そのコンテクストをどうやって更新していくのか。こうしたことをユースケースごとに考えるのが、ざっくり「コンテクストエンジニアリング」と呼ばれているものです。
じつは人間関係でも同じじゃないの
さて、ここからが本題です。
このコンテクストエンジニアリングの話、AIを使う時のコツとして語られることが多いのですが、冷静に考えると人間同士のコミュニケーションにおいても全く同じことが言えます。
AIがこちらのコンテクストを知らないのと同様に、他人もまた自分のコンテクストを知りません。
どんなに仲の良い相手でも、毎日会っていても、その人がどんな人生を歩んできて今何を考えているのかを全部把握することが不可能です。なんなら、仕事や「このプロジェクト」みたいなスコープを限定したって相手が考えていることや関連情報を正確に把握した状態でコミュニケーションが開始することはまずありません。
それが出来るとしたら、どちらかが「サトラレ」であるか、ニュータイプであるか、いずれかの場合です。あるいは人類が補完されたあとか。
AIの場合、「教えていない情報は知らないはずだ」ということが物理的な事実として直感的にわかります。AIに自分の仕事内容を伝えていなければ、AIがそれを知らないのは当たり前。誰もそこに文句は言いません。
ところが人間相手になると、なぜか次のようなバイアスが勝手に生まれます。
「みんなが同じコンテクストを共有しているのではないか」
「相手が自分の状況を察してくれているのではないか」
心理学には「フォールス・コンセンサス効果」という概念があります。自分の常識が世間一般でも当たり前だと勘違いしてしまうバイアスのことです。
「自分の常識は世間の非常識」なんて言葉もありますが、あれは精神論ではなくて、実際に人間の認知構造としてそういうバイアスが存在するという話なんですね。
つまり、人間同士のコミュニケーションでは「コンテクストが共有されていない」という前提がそもそも認識されにくい。ここがAI相手のコミュニケーションとの大きな違いです。
「モデルが悪い」と思ってしまう問題
AIを使っていて期待通りのアウトプットが出なかった時、みなさんどうしてますか?
モデルの性能が足りない場合ももちろんありますが、大抵はまずプロンプトを直してみたり、渡すコンテクストの設計を見直したり、いろいろ工夫するはずです。
つまり「自分の伝え方に問題があったのかも」という発想が自然に出てくる。
ところが、人間相手だとどうでしょうか。
コミュニケーションがうまくいかなかった時、「モデルが悪い」、つまり「相手が悪い」と思ってしまいがちです。
AI相手であれば、コンテクストエンジニアリングを全くせずに分かり合えないのは当たり前だと誰もが理解できるのに、人間同士だとなぜか相手のモデル性能が低いと断じてしまう。
これは非常にもったいないことだと思うんです。
だって、問題の所在がそこじゃないかもしれないわけです。
というか、人間の知能の性能なんてAI様に比べたら誤差みたいなもんです。大差ないです。
問題は相手の理解力ではなく、そもそも自分が相手に適切なコンテクストを渡せていなかった可能性がある。
必要な前提情報が共有されていなかったり、情報を渡す順番が悪かったり、相手にとって意味のある形に変換できていなかったり。
AIの時には自然にやっている「コンテクストの設計を見直す」というアプローチが、人間相手だとすっぽり抜けてしまうのです。
まずは課題の所在を認識すること
人間同士のコミュニケーションにもコンテクストエンジニアリングが必要だよね、というのは言われてみれば当たり前の話です。実際にどうやるのかという具体的な手法はいろいろあると思いますし、それこそ仕事の種類や相手との関係性によっても変わってきます。
ただ、手法の前にまず大事なのは、課題の本質がそこにあるのだと認識することです。
コミュニケーションがうまくいかない時、「相手が悪い」で止まらずに「自分が渡しているコンテクストに問題があるのかもしれない」と一歩引いて考えてみる。それだけで、見えてくるものがかなり変わるはずです。
ちなみにこのあたりの話、エンジニアと営業の間で起きるすれ違いとか、職種間のコミュニケーションギャップみたいな文脈で、今度出る本にがっつり書きました。
人間同士の「コンテクストの非共有」が構造的にどう問題を引き起こすのか、そしてそれをどう乗り越えるのかという話です。
興味がある方はぜひ(宣伝)
おしまい。
