Li YunlongとSheldonはプロのチャット仲間です!ロールプレイングシステム「ChatHaruhi」は人気があり、32の中国語と外国語のキャラクターをサポートし、54,000の対話データをオープンソース化しています。

Li YunlongとSheldonはプロのチャット仲間です!ロールプレイングシステム「ChatHaruhi」は人気があり、32の中国語と外国語のキャラクターをサポートし、54,000の対話データをオープンソース化しています。

「ロールプレイング」は、大規模言語モデルのより興味深い応用シナリオです。LLMは、指定されたロールの口調でユーザーと会話することができ、「スティーブ・ジョブズとソクラテス」のような時間的および空間的なコミュニケーションも実現できます。

Glow、Character.AIなど、多くの企業が言語モデルに基づいたロールプレイング製品をリリースしています。ユーザーは簡単に「サイバー妻」を作成でき、ゲーム、クリエイティブ産業などの分野で多くの潜在的な応用シナリオがあります。

最近、GitHub でオープンソース化された楽しいロールプレイングチャットシステム「Chat Haruhi Suzumiya」がリリースされました。これは中国語の言語モデル「Luotuo」に基づいており、32 種類の中国語および外国語のキャラクターの会話スタイルを模倣できます。また、54,000 を超える会話データセットも提供しています。

プロジェクトリンク: https://github.com/LC1332/ChatHaruhi-Suzumiya

論文リンク: https://arxiv.org/abs/2306.09479

プロジェクトはまだ進行中で、豊富なデモ方法を提供しています。

デモリンク: https://huggingface.co/spaces/chenxiYan/ChatHaruhi-OpenAI

ユーザーは自由に自分の名前を付けることができます(できればオリジナルに近いもの)、その後、質問を入力してコミュニケーションを開始できます。たとえば、「Xiuqin」の役割を演じてLi Yunlongと会話すると、モデルのマルチラウンドの回答が非常に効果的であり、シミュレートされた会話スタイルも非常に適切であることがわかります。


基本的な考え方

オープンソースのロールプレイング実装では、ユーザーは通常、プロンプトに次のように入力します。

{series} の {character} のように行動してください。{character} が使用する口調、態度、語彙を使用して、{character} のように応答して回答してください。説明は書かないでください。{character} のように回答するだけです。{character} に関する知識をすべて知っておく必要があります。私の最初の文は「こんにちは、{character}。

[テレビ番組]の[登場人物]のように演じてほしいです。 [登場人物] が使用する口調、態度、語彙を使用して、[登場人物] と同じように応答し、答えてください。説明は書かないでください。 [キャラクター]らしく答えてください。 [そのキャラクター]について知るべきことはすべて知っておく必要があります。私の最初の言葉は「こんにちは、[キャラクター]」でした。

この単純な方法では、言語モデルはいくつかのロールプレイング機能を発揮できますが、この方法は言語モデルの既存の知識に大きく依存しており、漠然と記憶されているロールやコーパス外のロールをプレイすることはできません。

また、プロンプトの「キャラクターのすべての知識を知っている」という定義は曖昧であり、モデルは依然として幻覚を抱くことになります。

プロンプトの内容が十分に明確であっても、テキスト生成プロセス中に基礎となる言語モデルの影響を受けます。プロンプトの単語を調整し続けると、この状況は緩和される可能性がありますが、文字数が多すぎると作業負荷が非常に大きくなる可能性があります。

1 つのアイデアは、キャラクターの会話データに基づいてモデルを微調整することですが、研究者は、微調整されたチャットボットでは幻覚の問題が増えることを発見しました。また、模倣したい二次キャラクターを微調整するのに十分なデータを収集することは困難です。

ChatHaruhi プロジェクトの目標は、言語モデルでアニメ、テレビシリーズ、小説などさまざまなジャンルのキャラクタースタイルをシミュレートできるようにすることです。開発者は、仮想キャラクターは主に次の 3 つのコンポーネントで構成されていると考えています。

1. 知識と背景

「ハリー・ポッター」の登場人物は魔法の世界に存在し、涼宮ハルヒは日本の高校に存在するなど、仮想キャラクターはそれぞれ独自の設定で存在します。

チャットボットを構築する際には、対応するストーリーの設定を理解できるようにする必要があります。これは言語モデルのメモリの主なテストでもあり、通常は外部の知識ベースが必要です。

2. 性格

登場人物の性格も文学作品の非常に重要な要素です。作品全体を通して一貫性を保たなければなりません。作家の中には、執筆を始める前に登場人物の性格を定義する人もいます。

3. 言語習慣

言語習慣は、文脈の中で適切な例が示される限り、最も簡単に真似ることができます。

このプロジェクトの重要なアイデアは、元のスクリプトを可能な限り抽出して、対象キャラクターのメモリ データベースを形成することでした。

ユーザーが新しい質問をすると、システムは関連する古典的なプロットを検索し、キャラクターに設定されたプロンプト語を組み合わせ、言語モデルを制御してキャラクターをよりよく模倣します。

研究者らはまた、オリジナルのセリフが少ないキャラクターであっても、キャラクターの性格に合ったセリフを自動的に生成し、微調整に十分なデータを生成するシステムを設計した。

チャットボットのデザイン

特定の役割 R とクエリ質問 q が与えられた場合、チャットタスクは次のようにモデル化できます。知識背景、性格、言語習慣の条件下で返信を生成する確率 Θ:

キャラクターRはヒントテキストで指定できます(シリーズのキャラクターのように行動してほしい...)。

文脈内学習と同様に、キャラクターの以前の会話シーケンスを確率の条件として使用できます。

より広い世界観を持つキャラクターの場合、最も関連性の高い会話シーケンスを最初にメモリバンクから取得する必要があります。

システムプロンプト

前述の ChatGPT に使用できる一般的なロールプレイング プロンプトには、改善が必要な領域が 2 つあります。

1. 行を繰り返さない

ChatGPT や LLaMA2 などのモデルは、人間のフィードバックからの強化学習 (RLHF) を使用してトレーニングされると、「m つの異なるオプションを提供」や「m 個のタイトルを生成」などのタスクに直面したときに、コンテキスト内のコンテンツを繰り返さないことを好みます。

登場人物を真似するときは、小説や映画の名セリフを再利用できることをプロンプトで強調します。

2. キャラクターの個性が十分に際立っていない

RLHF メカニズムにより、各言語モデルには独自の言語設定があり、それが模倣効果に影響します。プロンプト語の最後にキャラクターの性格の説明を追加すると、模倣効果が向上します。

改善されたプロンプトワードは次のとおりです。

{シリーズ}の{キャラクター}のように行動してほしいです。あなたは今{キャラクター}のコスプレをしています。他の人の質問が小説に関するものであれば、小説の元のセリフを再利用してみてください。{キャラクター}が使用する口調、態度、語彙を使用して、{キャラクター}のように応答して答えてほしいです。{キャラクター}に関する知識をすべて知っておく必要があります。{キャラクターの性格の補足説明}

[テレビ番組]の[登場人物]のように演じてほしいです。あなたは今、[キャラクター]のコスプレをしています。他の人の質問が小説に関連している場合は、小説の元のセリフを再利用してみてください。 [登場人物] が使用する口調、態度、語彙を使用して、[登場人物] と同じように応答し、答えてください。 [そのキャラクター]について知るべきことはすべて知っておく必要があります。 {キャラクターの性格についての補足説明}

キャラクターのセリフ

小説、テレビシリーズ、映画の登場人物の行動をより正確に再現するため、研究者らは古典の脚本から大量の抜粋を収集した。しかし、一部の登場人物(クロストークアーティストのYu Qianなど)を除いて、すべての対話が質問と回答の形式になっているわけではなく、歴史的記録は物語の形式で構成できる。

元の会話検索

クエリが入力されると、埋め込み類似度に基づいて、対話ライブラリ D から最も類似した M 個のサンプルが選択されます。M の具体的な数は、言語モデルのトークン制限によって異なります。

会話記憶を構築する際、研究者は、検索プロセス中に他のストーリーのスペースを占有しないように、各ストーリーを短くすることを推奨しています。

チャットメモリ

一定のメモリを確保するには、各ユーザーのクエリとチャットボットの応答を記録し、すべての対話シーケンスを言語モデルに入力して、対話の一貫性を確保する必要があります。

実際の実装では、このメモリから始めて、トークンの総数を前方に計算し、言語モデルの対話履歴入力は 1200 トークンに制限され、約 6 〜 10 ラウンドの対話を収容できます。

ダイアログ合成

現在、ChatHaruhi はロールプレイングを完了するために ChatGPT または Claude API のみを使用できます。ユーザーがこの機能をローカル モデルに移行する場合は、適切なデータセットを構築する必要があります。

質問から会話を生み出す

収集されたデータは厳密な質疑応答形式ではないため、研究者は収集されたストーリー内の対象キャラクターの最初の文の前のすべての対話を質問として扱い、それを言語モデルに入力して後続の対話を生成することを選択しました。

質問生成

一部の文字はデータが非常に限られており、言語モデルを微調整するには不十分であることに注意することが重要です。

既存のデータからキャラクターの質問のデータ拡張を実行するために、研究者は Alpaca などのモデルを使用して、最初に明確な質問と回答のペアを提供し、次に約 10 個のヒューリスティック出力を生成し、次に定義済みのプロンプトを使用してキャラクターのトレーニング データを再生成します。

研究者らは合計 22,752 件のオリジナル会話データと 31,974 件の模擬質問を収集し、これらを合わせて ChatHaruhi-v1 データセットを構成しました。

実験結果

現在、定量的な実験結果とユーザー調査はまだ進行中です。この記事では、さまざまなモデルを定性的に簡単に比較するだけです。

1. GPT Turbo 3.5、システムプロンプトのみを使用する

2. Turbo 3.5、入力補完プロンプト、会話履歴、質問など

3. ChatGLM2、システムプロンプトのみ入力

4. ChatGLM2、完全なプロンプトを出す

5. ChatGLM2、ChatHaruhiデータで微調整、フルプロンプト入力

<<:  人工知能、液体冷却、そして未来のデータセンター

>>:  Nougat: 科学文書の OCR 用トランスフォーマー モデル

ブログ    
ブログ    

推薦する

人工知能の専門家:ディープラーニングは行き止まりではない

ディープラーニングは機械学習手法の一種であり、人工知能を実現するための重要な基盤です。最近、一部の学...

...

フロントエンドの面接でよく聞かれるアルゴリズムに関する質問

ただし、フロントエンドでアルゴリズムに触れる機会はほとんどありません。ほとんどがインタラクティブな操...

人工知能は改めてすごいですね!科学者は偶然、死者を「蘇らせる」ことができることを発見した

マイクロソフトは現在、チャットボットを開発中との報道もある。将来的に実用化に成功すれば、デジタル技術...

...

通信事業者のRPAロボット活用事例紹介

国際・国内電話サービス、インターネット事業、通信ネットワーク資源・設備サービスなどを主力事業とする米...

AIの次の大きな課題:言語のニュアンスを理解すること

それは非常に奥深く、微妙なことです。同じ文でも、文脈によって意味が変わることがよくあります。人間でさ...

人工知能が私たちの日常生活を変える5つの方法

人工知能はもはや未来的な概念ではなく、私たちの日常生活に欠かせないものとなっています。私たちが目覚め...

高度な脅威検出における人工知能技術の応用

高度な持続的脅威は、その多様な形態、持続性、対立、隠蔽を特徴とし、現在、大手企業が脅威監視において直...

...

...

機械学習を使用してビデオ内の顔を再構築する

翻訳者 | 崔昊校正:孫淑娟導入 中国と英国の共同研究により、ビデオ内の顔を再現する新しい方法が考案...

...

4つの主要な機械学習プログラミング言語の比較: R、Python、MATLAB、Octave

この記事の著者は、R、Python、MATLAB、OCTAVE の 4 つの機械学習プログラミング言...