HUOXIU

LLMハイブリッド大規模モデルに基づく高度な事実に基づく質問応答システムアーキテクチャの構築

出典: ホームテクノロジー


1. はじめに

従来の検索システムはキーワードマッチングに依存しており、ユーザーの質問を理解し、回答をより効果的に処理する能力が不足しています。 本稿では、大規模言語モデル(LLM)の自然言語理解(NLU)および自然言語生成(NLG)機能を活用し、ユーザーの意図をより深く理解する方法について考察します。さらに、LLMは生の知識ポイントを要約・統合することで、より関連性の高い回答を生成します。

大規模モデルは比較的普遍的な質問に答えることができますが、特定の専門分野に対応する場合、知識の深さ、精度、そしてタイムリーさに限界があります。自動車業界のニーズに応えるため、チームは堅牢な自動車知識ベースの構築に多大な時間と労力を費やしてきました。


2. スキーム分析


21

従来の検索技術を組み合わせて基本的な知識ベースを構築する

基本的な知識ベースを構築するには、従来の検索技術を用いてクエリを実行できます。この方法には以下の利点があります。

  • 質問と回答のより高度な制御:従来の検索技術を用いることで、質問と回答の精度をより適切に制御できます。正確な検索マッチングにより、より正確で信頼性の高い回答が提供されます。
  • 一般的なナレッジベースアプリケーションシナリオへの適応性:大規模データの処理、高速クエリの実現、タイムリーな更新など、従来の検索テクノロジーは、一般的なナレッジベースアプリケーションシナリオのニーズに対応できます。成熟したテクノロジースタックにより、安定したパフォーマンスと機能性が提供されます。
  • 低い技術的リスク: 従来の検索技術は広く使用されており、豊富な実践経験が蓄積されているため、技術的探索のリスクを軽減できます。

同時に、ユーザーと検索システム間のインタラクション媒体として言語モデル (LLM) を使用することで、その強力な自然言語処理機能を最大限に活用できます。

  • ユーザーの要求の理解: LLM は、エラー修正やキーポイント抽出などの前処理を実行できるため、ユーザーの意図や質問をより深く理解できます。
  • 検索結果のさらなる処理: LLM は、正確性を確保しながら、検索結果をさらに要約、分析、推論して、より包括的で詳細な回答を提供します。

これら 2 つを組み合わせることで、基本知識ベースの構築とクエリのプロセスを最適化し、ビジネス上の問題をより効率的に処理できるようになります。

2.2

スキーム設計

►2.3.1 法学修士
LLM (Large Language Model) には、主に次の機能があります。

  • ユーザーの質問の理解:LLMは、エラー修正やキーワード抽出など、ユーザーの質問を理解することができます。また、ユーザーの意図をより深く理解するために、ユーザーがより多くの情報を提供するよう誘導することもできます。
  • LLMは、ローカル検索結果の二次処理と統合を実行できます。つまり、ローカルで取得されたTopKの回答をさらに処理することができます。例えば、要約や推論といった操作を実行し、より包括的で詳細な回答を提供できます。
  • コンテキストインタラクション機能:LLMは、車両の比較、燃費、加速性能、その他の構成関連の問題など、様々なコンテキストインタラクションに対応できます。コンテキスト情報に基づいて、より正確でパーソナライズされた回答を提供できます。

►2.3.2 ローカル検索システム

  • ローカル検索システムはクエリのマッチング問題を解決し、次の機能を備えています。
  • ES 検索: Elasticsearch (ES) の機能を活用して、構造化データをシステムに統合し、車両シリーズ、キーワードなどのフルテキスト検索機能を提供します。
  • Embedding Search は、テキストベースのクエリ要求を数値ベクトルに変換し、Milvus などのベクトル データベースに接続して、オンライン類似性クエリ機能を提供します。
  • 重複除去:検索結果には重複コンテンツが存在する場合があります。重複除去により、大規模モデルが受け取る情報量が増加し、重複した回答を回避できます。
  • 関連性ランキング: 検索結果は関連性によってランク付けされ、より正確で有用な結果を提供するために、最も関連性の高い上位 K 件の回答が選択されます。

    3. ソリューションの実装

3.1

エンジニアリング建築

►3.1.1 一般モジュール

一般モジュールには次の機能が含まれています。

  • 質問と回答の書き換え: ユーザーの入力とコンテキスト履歴情報に基づいて入力を書き換え、ユーザーの意図をより深く理解します。
  • 質問応答理解: 書き換えられたユーザー入力を解釈し、ベクトル、キーワード、タグ、カテゴリなどの情報を生成して、後続の処理の基礎を提供します。
  • リコール モジュール: ユーザーの意図とエンティティ情報に基づいて、関連するコンテンツをリコールし、より多くの回答の可能性を提供します。
  • ランキング モジュール: 関連性モデルを使用して、思い出されたコンテンツがランク付けされ、質問と回答に最も関連性の高い上位 N 個のコンテンツが選択され、データが抽出されます。
  • プロンプト モジュール: ユーザー入力と処理フローに基づいて、さまざまなプロンプトが呼び出され、ダイアログ コンテンツの生成をガイドします。
  • LLM モデル: ソートによって生成されたプロンプトと関連データに基づいて、ユーザー向けのダイアログ コンテンツを生成します。
  • ログ モジュール: モデルのトレーニング、パフォーマンス分析、ケース クエリなどの目的で、リクエスト プロセス ログ全体を記録します。

►3.1.2 管理モジュール

管理モジュールには次の機能が含まれます。

  • 会話管理: 会話中のコンテキストを維持および参照するために、ユーザーの過去の質問と回答の情報を保存します。
  • プロンプト管理: さまざまなユーザーのニーズや使用シナリオに合わせて、さまざまなシナリオのプロンプト情報を構成します。
  • プラグイン管理:異なるチャネルのユーザーに対して、異なるプラグイン設定を使用できます。例えば、IMユーザーは製品ライブラリプラグインへのアクセスを許可するかどうかを選択できます。
  • ログ管理: 保存、取得、分析のために、要求ログ、パフォーマンス ログ、結果ログを管理します。


►3.1.3 知識入力

現在、構造化データのストレージサポートとしてElasticsearch(ES)が使用されており、全文検索機能を実現するためにESのIK単語分割プラグインが使用されています。

  • データのベクトル化には、大規模言語モデルによって生成されたベクトルを使用し、意味的関連性をより正確に捉えました。ベクトル化のプロセスは以下のとおりです。
  • データのインポート: データベース、PDF、Word 文書などのさまざまなデータ ソースに基づいてデータのインポート操作を実行します。
  • データ処理: 目次や無効な情報などを前処理し、ドキュメントをスライスして、意味的に関連するコンテンツを取得しやすくします (記事が長いほど、意味の粒度は粗くなります)。
  • 段落処理: コンテキストの関連性に基づいて段落情報を生成します。
  • モデル処理: 段落データをベクトル化するために適切なモデルを選択します。

ストレージに関しては、多くの従来型データベースやストレージミドルウェアが既にベクトル化をサポートしていますが、専門的なソリューションとしては、VearchやMilvusなどのベクトルデータベースを使用することです。この記事では、ベクトルインデックスのストレージとしてMilvusを選択しましたが、具体的なニーズに応じて適切なベクトルインデックスデータベースを選択できます。

3.2

検索

► 3.2.1 リコール

現在のリコール設計は 2 つのカテゴリに分類されます。

  • プレーンテキストリコール:まず、APIを介してユーザーの質問を解析し、キーワード(車種、ブランド、カテゴリーなど)を抽出します。次に、これらのキーワードを使用してElasticsearchインデックスから全文検索を実行し、最も一致するN件のレコードを検索します。
  • 非平文想起:この手法では、埋め込みモデルを用いてユーザーの質問を埋め込み、質問ベクトルを取得します。次に、この質問ベクトルを用いてMilvus内を検索し、最も一致するN件のレコードを見つけます。

この再現手法により、埋め込みモデルに基づく全文検索またはベクトル検索を実行し、ユーザーの質問に最も関連性の高いレコードを取得できます。この設計により、再現の精度と効率が向上し、後続の回答生成とランキング付けのためのより信頼性の高い基盤が提供されます。

►3.2.2 相関(TopK選択)

現在、関連性モデルとして、ブースティングアルゴリズムに基づくxgboostモデルを採用しています。これは、最終結果の安定性と制御性を確保することに重点を置いています。このモデルの実装は、従来の検索ロジックに似ています。

まず、クエリ特徴量、アイテム特徴量、関連性特徴量を組み合わせ、クエリとアイテム間の相互特徴量も考慮します。正規化や対数演算などの特徴量変換を行った後、これらの特徴量をXGBoostモデルに入力して予測スコアを算出します。そして、上位K個の予測結果を最終的なランキングとして選択します。

この最適化された設計により、xgboost モデルの強力な分類機能をより有効に活用し、結果の安定性と制御性を確保できます。

3.3

大型モデル

3.3.1 モデルの導入
私たちは自動車業界向けに、自動車の閲覧、購入、使用、そして買い替えに至るプロセス全体における課題解決を目指した大規模言語モデル「Cangjie(蒼傑)」を構築しました。高度な自然言語処理技術とディープラーニングアルゴリズムを基盤とするこのモデルは、強力な意味理解と情報処理能力を備えています。車両の性能理解、ブランドの長所と短所の比較、購入アドバイスの依頼、メンテナンスや修理に関する知識の習得など、あらゆる場面で正確かつ包括的な回答を提供します。
►3.3.2 モデルデータ
自動車業界のニーズに応えるため、チームは堅牢な自動車知識ベースの構築に多大な時間と労力を費やしました。以下は、モデルの学習に使用されたデータの一部です。

  • ユーザーレビュー:様々な自動車ブランドやモデルに関する評価やコメントを網羅した、多数のユーザーレビューを収集しています。これらの記事には、車の性能、外観、快適性など、さまざまな側面に関する消費者からの率直なフィードバックが含まれており、当社のモデルに関する貴重な参考情報となります。
  • Q&Aデータ:自動車分野における膨大なQ&Aデータを蓄積しており、消費者からの質問と専門家による回答が含まれています。これらのQ&Aは、自動車の購入、メンテナンス、修理に関する知識を網羅しており、当社の車種に関する広範かつ豊富な情報を提供しています。
  • 自動車部品データベース:様々なカーアクセサリーや構成に関する情報を収録した包括的な自動車部品データベースを構築しました。このデータは、ユーザーが様々な車種の構成オプションを理解し、より情報に基づいた購入決定を行うのに役立ちます。
  • 百科事典的知識:公開されている百科事典の高品質なコンテンツを含む、膨大な百科事典的知識データをクリーニングおよびフィルタリングしました。このデータは、自動車産業の歴史、技術、開発動向に関する知識を網羅しており、当社のモデルに包括的かつ正確な背景情報を提供します。
  • ウェブと書籍データ:自動車分野における専門知識と研究成果を含む、膨大なウェブデータと書籍データも収集しています。これらのデータは多様なソースから収集されており、自動車業界のあらゆる側面を網羅しており、モデルにとって多様な学習教材を提供しています。

上記のデータを徹底的にクリーニングおよびフィルタリングすることで、当社のモデルは優れた学習成果を達成しました。自動車に関する質問を正確に理解し、回答することで、ユーザーがビジネス上の問題をより効率的に処理するための有用な提案や情報を提供します。

►3.3.3 モデルのトレーニング

大規模言語モデルのトレーニングでは、LoRA、QLoRA、RoPE スケーリング補間、DPO トレーニング、データセット ストリーミングなどの一連の革新的な手法が採用されています。

まず、LoRAとQLoRAテクノロジーを採用しました。どちらもメモリとGPUの使用量を効果的に削減し、学習時間を短縮します。これにより、データ処理速度が向上し、貴重な時間とリソースを節約できます。

次に、RoPEスケーリング補間を用いてLLaMAモデルのコンテキスト長を拡張しました。これにより、モデルは複雑な言語コンテキストをより適切に理解・処理できるようになり、より正確な結果が得られます。

さらに、RLHFを簡素化するためにDPO学習技術を採用しました。DPOモデルのみを学習することで、RLHFの報酬モデルとPPO強化モデルを置き換えることに成功し、RLHFにおける学習の極度に不安定な問題、ハイパーパラメータへの敏感さ、そしてパラメータ調整の難しさといった問題を解決しました。これにより、モデルの学習プロセスはより安定し、パラメータ調整が容易になります。

最後に、データセットストリーミング技術を用いて大規模モデルのストリーミング学習を実現しました。この技術は、大規模モデルデータセットの読み込みに伴うメモリオーバーヘッドの問題を解決し、学習速度を大幅に向上させます。これにより、大量のデータをより高速に処理できるようになり、効率性が向上します。

3.4

効果評価

自動車業界特有の評価基準を満たすため、自動車分野に特化した専門的な評価セットを構築しました。当社が独自に開発した大規模モデルは、自動車分野におけるオープンソースモデルを大幅に上回り、一般分野における主流のオープンソースモデルと同等の性能を備えています。以下は、当社の評価基準の一部です。
►3.4.1 評価基準

►3.4.2 自動車評価コレクション

  • 試験:車のブランド、仕様などの情報を網羅し、関連する質問を正確に理解して回答する能力を評価します。
  • ドメインセンチメント:自動車分野におけるユーザーの感情表現に関する感情分析を判断し、情報フィードバックを提供する能力。
  • カテゴリ: 自動車分野のさまざまなカテゴリについて、候補者が幅広い知識と理解力を備えているかどうかを判断します。
  • auto_rc と qcr_rc: これら 2 つの評価項目は、自動車分野の読解タスクを判断するために使用されます。
  • ドメイン固有の Q&A: ドメイン内のさまざまな方向の質問をカバーします。

3.4.3 一般ドメイン評価セット
自動車レビューに加えて、汎用ベンチマークデータセットでも比較テストを実施しました。以下は、これらのベンチマークデータセットの例です。

  • afqmc: 2 つの文の関係を判断できる文ペアマッチングタスク。
  • ocnli: 自然言語推論タスク。与えられた前提と仮定に基づいて推論し、判断を下すことが含まれます。
  • weibo: Weibo の投稿内容を正確に分類・判定する、Weibo のテキスト分類タスク。
  • c3: 中国語の読解課題、関連する質問を理解して答える能力。
  • CMRC: 機械読解タスク、テキストを読んで理解する能力。
  • harder_rc: 複雑な問題やシナリオを処理する能力を評価する、より難しい読解タスク。
  • 一般的な Q&A: 知識ベースの質問、文章作成、推論、エンターテイメント、その他の Q&A トピックをカバーします。

自動車業界においては、重要な成果が得られました。もちろん、評価の過程でモデルの錯覚やフォーマットの異常といった問題も発生しましたが、モデルの継続的な改善と最適化に取り組んでいます。

3.5

結果の統合

結果の統合により、ローカル検索システムによって返された結果をさらに処理および最適化することができ、LLM の複数の機能を最大限に活用して記事の表現をより簡潔かつ明確にし、読みやすさと情報配信の有効性を向上させることができます。

  • 要約と一般化: 検索結果を要約して一般化し、重要な情報を抽出して、より読みやすく理解しやすいものにします。
  • 書式設定: テキストをより明確かつ一貫性のあるものにするために書式設定および整理し、ユーザーの読みやすさを向上させます。
  • 重複排除と翻訳:検索結果内の重複コンテンツを排除することで、ユーザーが確実に一意の回答を得られるようにします。LLMは翻訳もサポートしており、検索結果をユーザーが希望する言語に翻訳できるため、多言語環境のニーズにも対応します。
  • コンテキスト分析と処理:セッション履歴を分析し、コンテキスト情報を抽出することで、LLMはユーザーの意図をより深く理解し、結果の統合時にコンテキストの影響を考慮できます。これにより、生成される回答はより正確でパーソナライズされたものになります。

4. 表示例

次の構成シナリオを例に挙げます。

2023 年型メルセデス・ベンツ GLC260 の寸法はどれくらいですか?




BMW 3 シリーズの複合燃費はどのくらいですか?



GL8 のトランクにはスーツケースとベビーカーを収納できますか?


Lavida 1.2Tのパワーは十分ですか?



5. まとめ

LLM+検索アーキテクチャは、意図理解、インテリジェント検索、結果強化といったモジュールを統合しています。ユーザーコマンドを深く理解し、クエリ用語の検索を的確に推進するとともに、大規模言語モデル技術を組み合わせることで、モデル結果生成の信頼性を最適化します。これらの相乗効果により、大規模モデルはより正確でインテリジェントなモデル結果を実現し、モデルの錯覚を低減します。