プライベートUNIT学習ノート - 対話システムの構築を簡単に始めることができます

プライベートUNIT学習ノート - 対話システムの構築を簡単に始めることができます

対話システムの構築は比較的専門的で複雑なプロセスであり、通常は 3 つの主要な段階に分かれています。最初のステップは需要分析であり、次にプラットフォーム構築スキルを使用し、最後に継続的な最適化を行います。

需要分析

最後の段階は需要分析です。この段階には、製品マネージャーや需要アナリストなどの役割が関与する必要があります。

  • まず、ビジネスシナリオを分析する必要があります。
  • 次に、会話型ロボットの機能を定義します。
  • 次に、ビジネス シナリオのダイアログ ロジックを整理する必要があります。
  • ***シーン内の会話データを収集します。

以下では、電車のチケットを予約するシナリオを使用して、プロセス全体で何を行う必要があるかを説明します。

ビジネスシナリオ分析: 境界を決定し、目標を明確にする

まず、ビジネス シナリオを分析して、シナリオ内でロボットが何をすべきか、何をすべきでないかを確認します。

鉄道チケットのシナリオでは、予約、払い戻し、変更、問い合わせ、鉄道チケット関連の規則や規制など、よくある質問への回答を提供する必要があります。そして、目的のない世間話はすべきではありません。

機能定義: 優先順位と主要な情報要素を決定する

境界と目標を決定したら、次は電車の切符会話ロボットの機能を定義します。

機能定義段階では、まず各機能の優先順位を決定し、各機能に対応するエンティティ要素を決定する必要があります。明らかに、列車のチケットの場合、予約、払い戻し、変更、問い合わせが最適な機能です。

機能定義が完了したら、通常の会話ロジックと異常な会話ロジックを含む、ビジネス シナリオ内の会話ロジックを整理する必要があります。また、質疑応答形式の会話については、実際にはユーザーから一定の規則や規制について質問されるものであり、これらの質問には定型的で固定された回答があります。このタイプの対話ロジックの組み合わせは、実際には問題を分類したり、知識を分類したりするためのものです。

シナリオ データ収集: 実際のシナリオではユーザーはどのような質問をするでしょうか?

会話の論理的分析が完了したら、ニーズ分析の最後のステップはデータを収集することです。

タスクベースの会話では、実際のシナリオでユーザーがチケットを購入するときに尋ねるさまざまな質問を収集する必要があります。多ければ多いほど良いです。質疑応答の会話では、これまでの知識分類に基づいて、各カテゴリの質問と回答、つまり質疑応答のペアを収集する必要があります。

このフェーズで収集されたデータは、後のスキル構築の第 2 フェーズで使用されます。

スキルの構築

Baidu アカウントを登録し、(http://unit.baidu.com) を開いて、UNIT と入力します。

1. 新しいスキルを作成する

UNIT プラットフォーム上で会話スキルを構築する最初のステップは、スキルを作成することです。

2. カスタムスキルを定義する: 新しい会話/質問と回答のインテントを作成する

作成後はスキル定義段階に入ります。スキルはカスタムスキルとプリセットスキルに分かれます。

各スキルは複数の関連するインテントから構成されます。この段階で新しく作成されたインテントは、要件分析段階の機能定義に対応します。たとえば、チケット予約機能は、チケット予約インテント BOOK_TICKET に変換できます。チケット予約のキー情報は、チケット予約インテントを実現するための単語スロットとして定義できます。ここでは、シンプルに、出発時刻、出発駅、到着駅、列車番号の 4 つの単語スロットのみを定義します。これらは、それぞれ user_time、user_from、user_to、trainnumber という名前です。

具体的な手順は次のとおりです。

2.1 新しい会話の意図を作成する

[Train Ticket]スキルをクリックしてスキルモジュールに入り、カスタムスキルで[新しいダイアログインテントを作成する]をクリックします。

2.2 単語スロットの追加

最初のステップでは、 [メソッドの追加]を選択し、 「カスタムスロットの作成」を選択して、スロット名 (user_time) とスロットエイリアス (出発時刻) を設定します。

2番目のステップは、 [システムスロット辞書]のスイッチをオンにして、システム辞書sys_time(時間)を選択することです。

  • UNIT プラットフォームでの単語スロットの認識は、単語スロットに対応する辞書に依存します。カスタム辞書をサポートしており、システムプリセット辞書を選択することもできます。可能であれば、システム辞書を使用することをお勧めします。システム辞書に必要なタイプがない場合は、カスタム辞書を追加できます。

3 番目のステップは、単語スロットとインテントに関連付けられた属性を設定することです。ここでは、列車のチケットの出発時刻がチケット予約に必要な重要な情報であるため、[必須] を選択します。明確化言語は、チケット予約のニーズを表す文に出発時刻が欠落している場合に、ユーザーに積極的に明確にするよう求めるためにダイアログ スキルで使用される言語です。また、説明を求めるのをやめる前に、ユーザーに何回説明を求めるかを設定することもできます。デフォルトは 3 回です。

すべての単語スロットを追加すると、次の図が表示されます。

スロットの明確化の順序はスロット リストで調整できます。

2.3 返信の設定

スキル応答とは、スキルがユーザーの意図と必要なすべてのスロット値を認識したときにユーザーに提供されるフィードバックです。

応答方法は、 [返信]、[会話意図のガイド]、[質問と回答意図のガイド]の3つがあります。

2.4 新しい質問と回答の意図を作成する

3. トレーニングデータを追加する

スキル定義が完了したら、2 番目のステップに進み、モデルがユーザーのクエリの意図を理解できるように、スキルにトレーニング データを追加します。

3.1 ダイアログテンプレートの設定

最初のステップは、ダイアログ テンプレートを構成することです。ダイアログ テンプレートは、ユーザーのニーズを表現するためのルールの抽象化です。必須フィールドとオプション フィールド、前面フィールドと背面フィールドの順序、テンプレート フラグメントのしきい値サイズを構成することで、一定の一般化能力をすばやく獲得できます。

複数のダイアログ テンプレートがある場合、それらのテンプレート間には優先順位があります。リスト内の位置が前であるほど、優先順位が高くなります。ダイアログ テンプレートを選択して上下に移動すると、優先順位を調整できます。

3.2 対話サンプルの注釈付け

この部分では、需要分析の最初の段階で収集された会話データが UNIT プラットフォームに追加され、それらの意図と単語スロットが 1 つずつ注釈付けされます。ディープラーニング戦略のトレーニング後、対話モデルはより優れた対話理解能力を獲得でき、データが豊富であればあるほど、モデルの一般化効果は向上します。

次に、ダイアログ サンプル セットに新しい「電車のチケットを購入」サンプル セットを作成し、そこにデータを追加します。

データが豊富になればなるほど、機械学習の一般化能力はますます強くなります。しかし、大量の会話サンプルを集めるのが難しい場合はどうすればよいでしょうか。 UNIT プラットフォームは、会話サンプルを推奨するツールを提供します。実際のシナリオから 50 個の会話サンプルを収集し、それをシード サンプルとして使用して類似のサンプルを推奨するだけで済みます。シード サンプルの品質が高いほど、推奨されるサンプルの品質も高くなります。

3.3 質問と回答のペアの追加

需要分析フェーズで収集され、分類された質問と回答のデータは、質問と回答セットにインポートできます。

すべてのシナリオで、会話を有効にするために上記の 3 種類のトレーニング データを追加する必要はありません。これは、シナリオ内の会話の種類とデータ収集状況によって異なります。

  • シナリオがタスクベースでダイアログ サンプルが不足している場合は、最初にダイアログ テンプレートを構成して特定の効果をすばやく実現し、その後ログからさらに多くのダイアログ サンプルをフィルター処理できます。
  • 最初にダイアログ サンプルがある場合は、ダイアログ テンプレートとダイアログ サンプルを併用することで、より良い効果をすぐに実現できます。
  • 質問と回答を含む会話も行う場合は、質問と回答のペアを追加するだけです。これが最も簡単な方法です。

3.4 トレーニングモデル

スキルをトレーニングする方法は2つあります。1つは上記で設定したダイアログテンプレートをトレーニングする方法、もう1つはダイアログサンプルとダイアログテンプレートを同時にトレーニングする方法です。

ダイアログ テンプレートにラベルを付けたかどうかに関係なく、システムはデフォルトでダイアログ テンプレートをトレーニングする必要があります。迅速に効果を発揮する戦略を選択すると、モデルをトレーニングしてサンドボックスで効果を発揮させるまでに 15 ~ 30 秒かかります。

会話サンプルセットを選択して、ディープトレーニング戦略を使用することもできます。対応するバックエンドトレーニングでは、モデルのトレーニングにディープラーニング戦略が使用されます。このとき、トレーニング速度はラベル付けされた会話サンプルの数に比例します。ここでは、スキルの誤ったリコールを減らすために、つまり、どのクエリがチケット購入ではなくチャットであ​​るかをスキルに伝えるために、システムに組み込まれている「チャットネガティブサンプル」を選択することをお勧めします。

4. テスト経験

モデルのトレーニングが完了したら、テスト ウィンドウでスキルとチャットして最終的な効果を確認できます。

UNIT の使用に関するヒントと継続的な最適化

ドメインの問題を正確に理解する

  • タスクベースのシナリオは、タスクの目標があり、リクエストのパラメータ化が必要であり、パラメータは複数のダイアログ ラウンド間で継承できるという特徴があります。
  • タスク目標があり、リクエストのパラメータ化を必要としない質問と回答のシナリオ
  • チャットシーン、このシーンにはタスク目標はありません

効率的な建設現場のリソース

効率的な単語スロットの構築

まず、組み込みの単語スロットとカスタム辞書およびルールの関係を見てみましょう。

  • カスタム辞書とルールはシステムに組み込まれているものよりも優先されますが、システム単語スロットにカスタム単語が含まれている場合は、システム単語スロットに従って認識されます。
  • カスタムポイント間の優先順位は同じです。単語が複数の辞書に属している場合は、それに応じて複数の単語スロット候補が識別されます。したがって、テンプレートにすべてがカバーされているため、カスタム辞書間の競合や曖昧さについて心配する必要はありません。
  • ルールの形式は正規表現です。ワイルドカードのスコープ制御に注意し、キャプチャ機能をうまく活用して制限してください。制約のないワイルドカードは、不良ケースの主な原因です。

では、単語スロットをどのように定義し、システムに含まれていない単語スロットを効率的に拡張するにはどうすればよいでしょうか。

拡張方法:各単語スロット/特徴語に対して少なくとも 3 ~ 5 個のインスタンスが生成され、リソース (ツリー構造、構造化情報、オープン分類)、関連性 (コンテキストの類似性、単語の埋め込み)、およびコーパス (セット拡張アルゴリズム) に基づいて拡張できます。

マイニング方法:垂直 Web サイトの単語スロットをクロールするか、オフラインのナレッジ ベースにダンプすることができます。

もちろん、最初に単語スロットをマイニングしてから拡張するという、マイニング + 拡張の方法を採用することもできます。また、品質検査も非常に重要であり、マイニング量が多い場合はクラウドソーシングを利用するという選択肢もあります。

自然言語理解設定ダイアログテンプレートの設定のヒント

  • キーワードは文脈の表現を抽象化できる
  • テンプレートに基づく意図推論、単語スロットの曖昧さを解消する機能
  • テンプレートの一般化機能を強化するためにテンプレートフラグメントを有効活用する
  • テンプレートが定義される順序によって、インテントが解決される順序が決まります。

ダイアログサンプルの設定のヒント

  • データ量について: 100 はトレーニング可能、1000 は使用可能
  • ラベル付けされたサンプルはすべてKV辞書に入ります。KV辞書は、サンプルがラベル付けされた通りに解析されることを保証します。単語スロットの認識が不安定な場合は、サンプルに注意してください。

定期的な評価と最適化

定期評価とは、定期的にランダムにビジネス ログを記録し、その結果を手動で評価することを指し、次の点に重点を置きます。

  • インテント解析失敗/エラー、単語スロットがありません
  • 考えられる理由: これまでに見たことのない文が表示され、現在カバーされていない単語スロットが表示されました。
  • 解決策: 新しいテンプレートを追加し、サンプルに注釈を付け、単語スロットを拡張する
  • スロット解析エラー、正規化エラー
  • 考えられる理由: システム ワード スロットが大文字小文字になっている、ユーザー ワード スロットがあいまい、ユーザー辞書がシステム ワード スロットをカバーしている
  • 解決策: UNITに苦情を申し立て、辞書/テンプレートを調整し、少数のケースではサンプルに注釈を付けることで直接解決できます。
  • 満たすことができない新たな要求がある
  • 対応計画: サポートが必要かどうかを分析します - はい: 新しいスキルを追加します。いいえ: ユーザーの機能上の期待をガイドします。

<<:  ディスカッション | 人工知能は同時通訳に取って代わることができるか?

>>:  UNITのハイライト - 対話システムの技術的原理を素早く習得

ブログ    

推薦する

ビッグモデルが明らかに:ユーザーレビューから金脈を抽出する方法

著者 | 崔昊レビュー | Chonglouまとめこの論文では、大規模な言語モデルと LangCha...

ロボティック・プロセス・オートメーション(RPA)がCIOにとって優先課題である理由

自動化技術は企業ビジネスの発展を促進しており、ロボティック・プロセス・オートメーション (RPA) ...

手書き認識のための単層基本ニューラルネットワーク

[[214992]]まず、コードテンソルフローをインポートする tensorflow.example...

人工知能を客観的に見てみましょう。この記事では、AI が世界を変える 5 つの理由を紹介します。

人工知能 (AI) は、私たちがよく人工知能と呼んでいるものです。これは、コンピューター プログラム...

IoT、AI、ビッグデータが地球を救う方法

私たちは皆、モノのインターネット (IoT)、人工知能 (AI)、ビッグデータが業界の再編とビジネス...

さまざまな機械学習アルゴリズムの選択の考え方を説明する記事

序文これは Zhihu に関する質問です: k 近傍法、ベイズ法、決定木、SVM、ロジスティック回帰...

今後5年間の産業AIの8つの主要な発展トレンド

ChatGPT と生成型人工知能 (AI) が世間の注目を集めるようになり、突如として世界で最も議論...

AIは黄金時代を迎えているのか、それとも冬を迎えようとしているのか?

人工知能開発の世界的なブームは今も急速に進んでおり、止まる気配はありません。現在、数十カ国が経済成長...

2020年を振り返ると、我が国のドローンは4つの新たな変化を遂げた。

2020年は紆余曲折の多い年であり、ドローン開発にとっては革新と変化の年です。今年、我が国のドロー...

研究:AIが生成した顔は本物の顔よりも信頼性が高い

今週、米国科学アカデミー紀要に発表された新たな研究は、ディープフェイク技術がどれだけ進歩したかを示す...

AIが死海文書の秘密を解読:筆写者は1人だけではなかった

海外メディアの報道によると、フローニンゲン大学の研究者らが新たな筆跡分析法を開発した。この手法は死海...

パフォーマンスは 5000 個の H100 でトレーニングされた GPT-4 に近いです。 DeepMindが新世代の大規模モデルを共同開発

最近、InflectionAI は新しい AI モデルをリリースしました。さらに衝撃的なのは、Inf...

ああ、顔認識で同性愛を検出できるんですか?

[[236037]]顔認識は携帯電話のロックを解除したり逃亡者を捕まえたりできるだけでなく、あなた...

...

AIのおかげで、これら5つの業界の求人需要は大幅な成長傾向を示すだろう

編集者注: 人工知能と人間の仕事は、今日多くの人が話題にしているトピックであり、議論の焦点は主に、人...