project
xLLM - JD.comのオープンソースのインテリジェント推論フレームワーク
xLLMは、JD.comがオープンソース化した高効率なインテリジェント推論フレームワークであり、国内生産チップ向けに最適化され、統合エッジクラウド展開をサポートしています。このフレームワークはサービス・エンジン分離アーキテクチャを採用しており、サービス層はリクエストスケジューリングとフォールトトレランスを処理し、エンジン層は計算最適化に特化しています。
xLLMとは何ですか?
xLLMは、JD.comがオープンソース化した高効率なインテリジェント推論フレームワークであり、国産チップ向けに最適化され、エッジクラウド統合展開をサポートしています。このフレームワークはサービス・エンジン分離アーキテクチャを採用しており、サービス層はリクエストスケジューリングとフォールトトレランスを担当し、エンジン層はマルチストリーム並列処理、グラフ融合、動的負荷分散などの機能を備えた計算最適化に重点を置いています。xLLMは、大規模モデル、マルチモーダルモデル、生成型レコメンデーションなど、さまざまなシナリオをサポートし、高性能かつ低コストの推論サービスを提供することで、インテリジェントな顧客サービス、リアルタイムレコメンデーション、コンテンツ生成などのビジネスの効率的な実装を促進し、国産チップ上での大規模言語モデルの大規模適用を推進します。
xLLMの主な機能
- フルマップ実行/マルチレイヤーパイプラインオーケストレーションフレームワーク層での非同期デカップリングスケジューリング、モデル層での非同期並列計算と通信、およびオペレータカーネル層でのディープパイプライン最適化を実装することにより、多層パイプライン実行のオーケストレーションが実現され、計算キャビテーションが低減され、推論全体の効率が向上します。
- 動的形状のグラフ実行最適化パラメータ化とマルチイメージキャッシング手法を用いることで、動的なサイズ適応を実現します。管理されたメモリプールとカスタムオペレータの統合を組み合わせることで、静止画像の柔軟性が向上し、メモリの安全な再利用が保証され、動的入力処理のパフォーマンスが最適化されます。
- MoE演算子の最適化MoEモデルでは、計算効率と長いシーケンス入力を処理する能力を向上させるために、GroupMatmul演算子とChunkedPrefill演算子を最適化し、それによってモデルの推論性能を向上させます。
- 高効率メモリ最適化離散的な物理メモリと連続した仮想メモリのマッピング管理を採用し、必要に応じてメモリ空間を割り当て、メモリページの再利用をインテリジェントにスケジュールし、メモリの断片化と割り当て遅延を削減し、国内のチップ事業者に対応し、ビデオメモリの利用効率を向上させます。
- グローバルなマルチレベルキーバリューキャッシュ管理これにより、マルチレベルキャッシュにおけるキーバリューペアのインテリジェントなオフロードとプリフェッチが可能になり、キーバリューキャッシュを中心とした分散ストレージアーキテクチャが構築され、複数のノード間でのキーバリューペアのインテリジェントな伝送ルーティングが最適化され、キャッシュ効率とデータ伝送性能が向上します。
- アルゴリズム最適化投機的推論を最適化し、MoEエキスパートの動的負荷分散を利用することで、マルチコア並列処理を実現し、効率性を向上させ、エキスパートの分布を動的に調整し、アルゴリズムのパフォーマンスを最適化し、推論スループットと負荷分散機能を強化します。
xLLMの使い方
- 環境準備:
- 画像をダウンロードハードウェアデバイス(例:A2、A3など)とアーキテクチャ(x86またはARM)に基づいて、適切なDockerイメージを選択してください。たとえば、A2デバイス(x86アーキテクチャ)の場合は、次のイメージをダウンロードできます...
xllm/xllm-ai:0.6.0-dev-hb-rc2-x86ミラーサイト。ダウンロードに失敗した場合は、別のソースをお試しください。quay.io/jd_xllm/xllm-ai:0.6.0-dev-hb-rc2-x86。 - コンテナを作成するコンテナを作成して起動する際には、コンテナがハードウェア リソースとデータにアクセスできるように、必要なデバイスとディレクトリをマウントする必要があります。これには、デバイス ファイル (... など) が含まれます。
/dev/davinci0、/dev/davinci_manager(など)、モデルファイルパス、ドライバパスなど。
- 画像をダウンロードハードウェアデバイス(例:A2、A3など)とアーキテクチャ(x86またはARM)に基づいて、適切なDockerイメージを選択してください。たとえば、A2デバイス(x86アーキテクチャ)の場合は、次のイメージをダウンロードできます...
- インストールとコンパイル:
- 依存関係をインストールします:
- リポジトリのクローン作成コンテナに入ったら、公式のxLLMリポジトリをクローンし、サブモジュールを初期化します。
- vcpkgを設定するイメージにvcpkgがプリインストールされていない場合は、vcpkgリポジトリを手動でクローンし、環境変数を設定してください。
VCPKG_ROOTvcpkgのインストールパスを指定します。 - Pythonの依存関係をインストールする清華大学のPythonミラーソースを使用して、xLLMに必要なPython依存関係をインストールし、それらをアップグレードしてください。
setuptoolsそしてwheel。
- コンピレーション:
- 実行可能ファイルを生成するためにコンパイルしますコンパイルコマンドを実行して実行可能ファイルを生成します。デフォルトでは、コンパイル対象はA2デバイスです。A3やMLUなどの他のデバイス向けにコンパイルする必要がある場合は、パラメータを追加してデバイスタイプを指定してください。
- whlパッケージを生成するPython whlパッケージを生成する必要がある場合は、対応するコンパイルコマンドを実行してください。生成されたwhlパッケージは[場所が不明]に保存されます。
dist/ディレクトリ内。
- 依存関係をインストールします:
- モデル読み込み中:
- モデルファイルを準備するモデルファイルを準備し、コンテナからアクセス可能なパスに配置します。例えば...
/mnt/cfs/9n-das-admin/llm_models。 - モデルxLLMが提供するインターフェースを使用してモデルをロードします。モデルがロードされた後、推論タスクを実行できます。
- モデルファイルを準備するモデルファイルを準備し、コンテナからアクセス可能なパスに配置します。例えば...
- 推論呼び出しxLLMが提供する推論インターフェースを使用すると、テキストやその他のデータを入力することで推論結果を取得できます。推論インターフェースは、読み込まれたモデルに基づいて計算を実行し、結果を返します。
xLLMプロジェクトのアドレス
- プロジェクト公式サイト:https://xllm.readthedocs.io/
- GitHubリポジトリ:https://github.com/jd-opensource
xLLMの応用シナリオ
- インテリジェントな顧客サービス私たちはユーザーからの問い合わせに迅速に対応し、正確な回答と提案を提供することで、顧客満足度と顧客サービスの効率性を向上させています。
- リアルタイムのおすすめ情報ユーザー行動データに基づいて、ユーザーエンゲージメントとコンバージョン率を向上させるために、パーソナライズされたおすすめ情報がリアルタイムで生成されます。
- コンテンツ生成xLLMは、ニュース記事、コラム、クリエイティブなコピーなど、高品質なテキストコンテンツを生成できるため、コンテンツ制作を支援します。
- マルチモーダルアプリケーションテキストと画像などを組み合わせたマルチモーダルモデルをサポートしており、画像の説明生成や視覚的な質問応答といったシナリオで使用できます。
- 生成型レコメンデーション生成技術を組み合わせることで、より豊富でパーソナライズされた推薦結果を生成でき、それによってユーザーエクスペリエンスを向上させることができます。