ChatGPTやClaude、Geminiのような大規模言語モデル(LLM)は、膨大な量の言語データを使った訓練によって、音声による自然な会話をすでに実現しています。しかし、これらのAIに語学の教師になってもらうのは、簡単な話ではありません。「この学習者とスペイン語で話してくださいね、よろしく!」と言えばいいというわけではないのです。
リリーとのビデオ通話のようなAI機能の開発には、モデルをただ育てるだけでは十分ではありません。そこで開発チームは、より目的に特化した指示や予測可能な構造を使って、スピーキングの練習をしながらもリリーとの会話を楽しみ、気分転換できるような工夫をしています。
ビデオ通話のデザイン
リアルな通話体験を設計するには、以下をはじめとする複数の優先事項の間でバランスを取っていく必要があります。
- 適切なCEFRレベルで会話をすること。
- ストーリーを語り聞かせる、ユーザーに意見を求める、何かを教える、雑談をするなどの目的にかなった行動を取る。
- 単なるAIチャットボットではなく、リリーという、皮肉屋でありながらかわいげのあるティーンエイジャーのキャラクターを演じる。
この「適切なバランス」の実現には、LLMに渡すプロンプト(多数の指示のセット)が鍵となります。プロンプトについては、次の3人の登場人物による会話のようなものとイメージしていただければわかりやすいでしょう。
- アシスタント:これがAIボットのリリーに相当し、システムからの指示に従い、ユーザーであるあなたの発言に反応します。
- システム: アシスタントのコーチのようなものです。 Duolingoのラーニングデザイナーは、システムがアシスタント(リリー)に対し出す指示を書き、彼女がどのように行動し、何を言うべきかを指定します。
- ユーザー:アシスタント(リリー)と対話する学習者に相当します。
開発側では、通話におけるあらゆる状況を想定し、リリーがどのように振る舞うべきかについて、詳細な指示をシステムに与えています。これらの指示には、リリーの性格やこれまでの人生に関する情報や、あなたが困ったときにどのように助ければよいか、適切な語学レベルで話すために必要な情報などが含まれているのです。
また、会話の基本パターンも指示します。実はこれが非常に重要で、リリーとの会話は一回一回が違うように見えても、実際は次のような一定の形式に従っているのです。
パート1:会話の開始システムがリリーに、最初に何を言うべきか指示します。これはほとんどの場合、学習する言語での挨拶となります。Duolingoのエンジニアは、リリーがユーザーのCEFRレベルにあわせて挨拶するようなサイクルを作っています。
パート2:最初の質問最初の質問は、通話中の話題を決める大事なステップです。これによって、リリーがあなたの近況について尋ねるのか、以前の話題を再び取り上げるのか、それとも学習中の言語にまつわる文化について教えるのかが決まります。
パート3:会話の展開ここから、リリーとユーザーは、会話の中で自由なやりとりを展開します。システムはリリーに対し、あなたが言ったことに反応し、自然に会話を続けるように指示を出しています。
パート4:会話の終了ある一定回数のやりとりの後、あらかじめ組まれたプログラムによって、システムはリリーの耳に「そろそろ切り上げてください」とささやきます。これによって通話を適当なタイミングで終えることができます。
ビデオ通話の裏側で起こっていること
リリーの記憶
何度かビデオ通話をしたことがある人は、リリーが以前の通話の内容に基づいて話を切り出すのを見て「リリーはいったいどうやって、私のことを覚えているんだろう?」と不思議に思うかもしれません。これは、リリーが電話を切った後、アプリが通話の書き起こしをLLM(大規模言語モデル)に送り、「この会話の中でユーザーについての大事な情報は何?」と尋ね、そこで得られた情報を「List of Facts(事実のリスト)」というリストに追加しているからです。この常にアップデートされているリストが、次の通話でシステムがリリーに与える指示の一部となります。
つまり、リリーが話し始める前に、システムは「このユーザーを覚えていますか?『List of Facts』によると、この人は犬を2匹飼っていて、建築を勉強しており、好きな食べ物はタコスだそうです。」というインプットをするわけです。これによってリリーは「あなたの犬は元気?」「最近おいしいタコスを食べた?」などの質問を発し、まるであなたのことを本当に知っているかのように振る舞うことができるのです。
最初の質問が肝心
最初の質問は、会話を方向づける重要な鍵となります。学習内容に関連した内容であること、適切な難易度であること、そして会話をはずませるようなものでなければなりません。そのため、最初の質問については特に念を入れた指示を別途作成しているのです!
実は、ビデオ通話の呼び出し音が鳴っている最中に、システムが最初の質問を作成しています。
会話の準備 | |
---|---|
![]() |
入力:LLMさん、アシスタント(リリー)がユーザーに尋ねるのにふさわしい質問を教えてください。条件は次のとおりです。
|
![]() |
出力:この条件にふさわしい質問は次のとおりです。
「What kind of music do you like listening to?(どんな音楽を聴くのが好き?)」 |
そして、この質問は「会話の準備」から「メインの会話」に取り込まれ、システムがリリーに会話の進め方を指示します。
メインの会話 | |
---|---|
![]() |
LLM:あなたの名前はリリーで、次のようなプロフィールの人物です。
そして「What kind of music do you like listening to?(どんな音楽を聴くのが好き?)」という最初の質問をしてください。 |
![]() |
リリー:了解。これから学習者と会話を始めます。
「Hey!」 |
「ビデオ通話」機能の改良を重ねるうちに、最初の質問には、LLMに対し独立した指示を書くことが必要であることが分かってきました。最初の質問に対する指示を残りの通話に対する指示と一緒にしてしまうと、LLMに過度の負荷がかかり、複雑すぎる文章を出力してしまったり、会話の準備で提供した語彙を忘れてしまったりという問題が起こるのです。そのあたりは人間とよく似ています。一日の始めに50個の「やること」を指示されたら、そのうちのいくつかを忘れてしまったり、50個全部を雑にこなしてしまったりするものですよね。何事も「最初が肝心」なので、最初の質問にはそれだけに特化した指示を出しているわけです。
会話を評価する
重要なのは最初の質問だけではありません。開発チームは、リリーが通話中ずっと、臨機応変に反応してくれるような工夫をこらしています!
実は今年の初め、リリーが提示したテーマをユーザーが無視し、「リリー、聞いて!スペイン語のコースをとうとうコンプリートしたの! 信じられないでしょう?」 と言ったところ、リリーは「よかったね。スイスの民族音楽について聞いたことある?」と答えてしまったのです 🫣
そこで私たちは、ユーザーのほうからも会話をリードできるように、「学習者はこの会話の主導権を取りたがっていますか? もしそうなら、予定していた話題は無視してください」という指示を追加しました。LLMはビデオ通話中でも働き続けているため、このような通話中の「中間評価」によるフィードバックを加えることによって、ユーザーエクスペリエンスの向上が期待できます。
通話の中間評価では、システムはあなたが話した内容をふまえ、会話をよりスムーズに、楽しくするための質問をリリーにします。
通話の中間評価 | |
---|---|
![]() |
LLM:やあ、リリー!学習者がさっきあなたに言ったことについて、次のように考えてみてください。
|
![]() |
リリー:了解! 学習者は今、ギターを弾くのがとても上手だと言いました。よって私はこう反応します。
「Wow, I'm actually impressed. What’s your favorite song to play?(ワオ、それ、すごいじゃん。あなたがよく演奏するお気に入りの曲は何?)」 |
スピーキング練習法はこれで決まり!
今回は、複雑なしくみについてのちょっと難しいお話でした。
Duolingoのチームの試行錯誤と、AIの日進月歩の進化にあわせて、リリーも常に学び続けています。そう、あなたに合ったレベルで楽しく効果的にスピーキングの練習をさせてくれる、理想の先生を目指しているのです!