プライベート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のハイライト - 対話システムの技術的原理を素早く習得

ブログ    
ブログ    
ブログ    

推薦する

スマートシティ交通ソリューションへのテクノロジーの影響

インテリジェントな交通管理システムは、スマートシティの開発に欠かせない要素です。具体的には、スマート...

博士課程の学生がランキングの不正行為を識別するオープンソースのAI数学「魔法の鏡」をリリースした

最近の大物モデルの多くは数学が得意だと主張していますが、本当に才能があるのは誰でしょうか?テスト問題...

2020 年の最後の 1 か月間に発生した 1,694 件の AI インシデントを包括的にレビューします。ハイライトは何ですか?

今月、ニュースイベント分析、マイニング、検索システム NewsMiner のデータによると、図 1 ...

人工知能開発の重要な要素と気候変動への影響

人工知能は世界的な流行語となり、ほぼすべての企業のデジタル変革計画に不可欠な要素となっています。 A...

Googleがまた新しいことを始める: 視覚言語モデルに空間推論をさせる

視覚言語モデル (VLM) は、画像の説明、視覚的な質問応答 (VQA)、具体化された計画、アクショ...

ライブチャットとチャットボット: どちらの顧客サービス方法が優れているのでしょうか?

[[267030]] [51CTO.com クイック翻訳] ビジネスの世界は大きな変化を遂げてきま...

Baidu Create 2018 ディープラーニング フロンティア テクノロジーと産業応用公開コースのハイライト

[51CTO.com からのオリジナル記事] 中国の開発者が集まる毎年恒例の盛大な集まりである Ba...

人工知能による画像認識では、データのラベル付けはどのように機能するのでしょうか?

画像処理技術の急速な発展に伴い、画像認識技術が生まれ、発展し、徐々に人工知能分野の重要な部分となり、...

最大65万ドル! 2021年の米国大手企業のプログラマーの収入をみる

アメリカのテクノロジー大手は、この流行に対して全力で対応し、その力は衰えるどこ​​ろか増した。これら...

...

LeCunは再び自己回帰LLMを批判:2つの論文で証明されているように、GPT-4の推論能力は非常に限られている

「自己回帰型 LLM が人間レベルの AI に近い、あるいは人間レベルのパフォーマンスに達するにはス...

米メディア:なぜソフトロボットは科学者を魅了するのか?

[[374766]]米フォーチュン誌のウェブサイトは1月1日、「なぜ『ソフトロボット』はNASAや...

...

ジェネレーティブ AI: 職場の CIO にとって未知の要素

組織のエンドユーザーとますますインテリジェントになるソフトウェア ツールとの間の生産的なパートナーシ...