🌐

ドキュメント要約アプリケーション

2024/12/09に公開

大規模言語モデル (LLM) は、テキストとの相互作用に変革を起こしました。このタイプのモデルは、ニュース記事、リサーチの報告、技術ドキュメント、法的文書といったテキスト類の要約に活用できます。PDF、概要ページ、顧客からの質問事項など、内容を要約したいドキュメントがいくつもあるとしましょう。ここで例として挙げるユースケースでは、要約手順の実装に LangChain を使用し、テキスト生成推論によってスムーズに処理できるようにしています。

【ドキュメント要約サービスの実装】
ドキュメント要約サービスはインテル® Gaudi® 2 アクセラレーターとインテル® Xeon® スケーラブル・プロセッサーどちらでも簡単に実装することができます。Docker または Kubernetes のいずれをベースとするかによって、以下の手順を進めてください。現在サポートしているのは Docker Compose を使用した実装方法です。

<必要なモデル>
デフォルトは "Intel/neural-chat-7b-v3-3" モデルに設定しました。ほかのモデルを使いたい場合は、"set_env.sh" の "LLM_MODEL_ID" を変更してください。

ゲート付きモデルの場合は、Hugging Face トークンを "HUGGINGFACEHUB_API_TOKEN" 環境変数に渡す必要があります。
https://huggingface.co/docs/hub/security-tokens

【環境変数の設定】
ドキュメント要約サービスを実装するための環境変数の設定は、以下の手順で行います。

1.必要な環境変数を設定する

2.プロキシー環境の場合は、プロキシー関連の環境変数も設定する

3.その他の環境変数を設定する

【Docker を使用した実装】
<インテル® Gaudi® アクセラレーターへの実装>
ソースから Docker イメージをビルドする方法については、インテル® Gaudi® アクセラレーターのガイドを参照してください。イメージのビルドが完了したら、以下のコマンドを実行してサービスを開始します。
https://github.com/opea-project/GenAIExamples/blob/main/DocSum/docker_compose/intel/hpu/gaudi/README.md

該当の compose.yaml を検索します。
https://github.com/opea-project/GenAIExamples/blob/main/DocSum/docker_compose/intel/hpu/gaudi/compose.yaml

注: 現時点では Habana Driver 1.16.x のみインテル® Gaudi® アクセラレーターに対応しています。

【インテル® Xeon® プロセッサーへの実装】
ソースから Docker イメージをビルドする詳しい手順については、インテル® Xeon® プロセッサーのガイドを参照してください。イメージのビルドが完了したら、以下のコマンドを実行してサービスを開始します。
https://github.com/opea-project/GenAIExamples/blob/main/DocSum/docker_compose/intel/cpu/xeon/README.md

該当の compose.yaml を検索します。
https://github.com/opea-project/GenAIExamples/blob/main/DocSum/docker_compose/intel/cpu/xeon/compose.yaml

【Kubernetes を使用した実装 (GMC あり)】
Kubernetes での実装を参照
https://github.com/opea-project/GenAIExamples/blob/main/DocSum/kubernetes/intel/README_gmc.md

【Kubernetes を使用した実装 (GMC なし)】
Kubernetes での実装を参照
https://github.com/opea-project/GenAIExamples/blob/main/DocSum/kubernetes/intel/README.md

【Helm Chart を使用し DocSum を Kubernetes に実装】
まずは Helm (v3.15 以降) をインストールします。詳しくは、Helm インストール・ガイドを参照してください。
https://helm.sh/docs/intro/install/
Kubernetes を使用して DocSum をインテル® Xeon® プロセッサー / インテル® Gaudi® アクセラレーターに実装する手順については、DocSum helm chart を参照してください。
https://github.com/opea-project/GenAIInfra/blob/main/helm-charts/docsum/README.md

【実装したドキュメント要約サービスのワークフロー】
こちらは GenAIComps で定義されているコンポーネント・レベルのマイクロサービスを使用して実装した DocSum の例です。以下のフローチャートは、この実装例でのマイクロサービス間の情報の流れを示しています。
https://github.com/opea-project/GenAIComps

【ドキュメント要約サービスの利用】
2 パターンのドキュメント要約サービス利用方法:

1.Terminal で cURL コマンドを実行する
テキスト

curl リクエストによる音声 / 動画ファイルのアップロードには対応していません。Gradio-UI を使用してください。
音声

動画

2.フロントエンド経由でアクセスする
フロントエンドにアクセスするには、ブラウザーで以下の URL を開放します。
http://{host_ip}:5173
デフォルトの場合 UI は内部的に ポート 5173 で起動します。
【トラブルシューティング】

1.「アクセスが拒否されました」といったエラーが表示される場合、まずはマイクロサービスを確認してください。簡単な例を示します。
https://github.com/opea-project/GenAIExamples/blob/main/DocSum/docker_compose/intel/cpu/xeon/README.md#validate-microservices

2.(Docker のみ) すべてのマイクロサービスが問題なく起動している場合、ポート ${host_ip}:8888 を確認。ポートがほかのユーザーによって割り当てられていることもあるため、compose.yaml を修正します。

3.(Docker のみ) 「指定されたコンテナ名は使用中です」などのエラーが表示される場合は、compose.yaml 内のコンテナ名を変更。

Discussion