英語 中国語
ニュース
- [2024 / 06] C++ でリファクタリングされたスケジューリングとバッチ処理フレームワーク、完全な GPU メモリ管理と割り当てトラック、新しいデバイス バックエンドを備えた rtp-llm の新しいバージョンをリリースします。詳細はリリース情報をチェックしてください!
- [2024 / 06] 現在、ハードウェア メーカーとの広範な協力のもと、複数のハードウェア バックエンドのサポートに取り組んでいます。 AMD ROCm、Intel CPU、および ARM CPU のサポートは準備中です。今後のリリースにご期待ください。
について
- rtp-llm は、Alibaba の Foundation Model Inference チームによって開発された Large Language Model (LLM) 推論加速エンジンです。これはアリババ グループ内で広く使用されており、タオバオ、天猫、アイドルフィッシュ、カイニアオ、Amap、Ele.me、AE、Lazada を含む複数の事業部門にわたる LLM サービスをサポートしています。
- rtp-llm プロジェクトは、havenask のサブプロジェクトです。
特徴
実証済みの生産
次のような多数の LLM シナリオに適用されます。
- 淘宝文文
- アリババの国際AIプラットフォーム「Aidge」
- OpenSearch LLM スマート Q&A エディション
- タオバオ検索における大規模言語モデルベースのロングテールクエリ書き換え
高性能
- PagedAttendant、FlashAttendant、FlashDecoding などの高性能 CUDA カーネルを利用します。
- ロード時に自動量子化を行う WeightOnly INT8 量子化を実装します。 GPTQ および AWQ による WeightOnly INT4 量子化をサポート
- 適応型 KVCache 量子化
- フレームワークレベルでの動的バッチ処理のオーバーヘッドの詳細な最適化
- V100 GPU 向けに特別に最適化
柔軟性と使いやすさ
- HuggingFace モデルとのシームレスな統合、SafeTensors、Pytorch、Megatron などの複数の重み形式をサポート
- 単一のモデル インスタンスで複数の LoRA サービスをデプロイします
- マルチモーダル入力を処理します (画像とテキストを組み合わせる)
- マルチマシン/マルチ GPU テンソル並列処理を有効にします
- Pチューニングモデルをサポート
高度な加速技術
- 枝刈りされた不規則なモデルをロードします
- マルチターンダイアログ用のコンテキストプレフィックスキャッシュ
- システムプロンプトキャッシュ
- 投機的デコード
- 高度な並列化戦略のための Medusa
使用方法
要件
- オペレーティングシステム: Linux
- Python: 3.10
- NVIDIA GPU: Compute Capability 7.0 以降 (例: RTX20xx、RTX30xx、RTX40xx、V100、T4、A10/A30/A100、L4、H100 など)
起動例
- 港湾労働者
cd rtp-llm/docker
# IMAGE_NAME =
# if cuda11: registry.cn-hangzhou.aliyuncs.com/havenask/rtp_llm:deploy_image_cuda11
# if cuda12: registry.cn-hangzhou.aliyuncs.com/havenask/rtp_llm:deploy_image_cuda12
sh ./create_container.sh < CONTAINER_NAME > < IMAGE_NAME >
sh CONTAINER_NAME/sshme.sh
cd ../
# start http service
TOKENIZER_PATH=/path/to/tokenizer CHECKPOINT_PATH=/path/to/model MODEL_TYPE=your_model_type FT_SERVER_TEST=1 python3 -m maga_transformer.start_server
# request to server
curl -XPOST http://localhost:8088 -d ' {"prompt": "hello, what is your name", "generate_config": {"max_new_tokens": 1000}} '
- うーん
# Install rtp-llm
cd rtp-llm
# For cuda12 environment, please use requirements_torch_gpu_cuda12.txt
pip3 install -r ./open_source/deps/requirements_torch_gpu.txt
# Use the corresponding whl from the release version, here's an example for the cuda11 version 0.1.0, for the cuda12 whl package please check the release page.
pip3 install maga_transformer-0.1.9+cuda118-cp310-cp310-manylinux1_x86_64.whl
# start http service
cd ../
TOKENIZER_PATH=/path/to/tokenizer CHECKPOINT_PATH=/path/to/model MODEL_TYPE=your_model_type FT_SERVER_TEST=1 python3 -m maga_transformer.start_server
# request to server
curl -XPOST http://localhost:8088 -d ' {"prompt": "hello, what is your name", "generate_config": {"max_new_tokens": 1000}} '
Docker リリースノート
よくある質問
リブカフト.so
エラー ログ: OSError: libcufft.so.11: cannot open shared object file: No such file or directory
解決策: cuda と rtp-llm のバージョンが一致しているかどうかを確認してください。
libth_transformer.so
エラー ログ: OSError: /rtp-llm/maga_transformer/libs/libth_transformer.so: cannot open shared object file: No such file or directory
解決策: whl または docker (Bazel ビルドではないことを意味します) 経由でインストールされている場合は、現在のディレクトリが rtp-llm ではないことを確認してください。そうしないと、Python はインストールされた whl の代わりに相対パス パッケージを使用します。
Bazel ビルドのタイムアウト
エラー ログ: ERROR: no such package '@pip_gpu_cuda12_torch//': rules_python_external failed: (Timed out)
解決:
- open_source/deps/pip.bzl の pip ミラー リポジトリを変更し、extra_pip_args=["--index_url=xxx"] を追加します
- 特に pytorch の場合、pip インストール要件を手動でインストールします。その bazel ビルドにはデフォルトで 600 秒のタイムアウトがあり、pytorch のダウンロードには十分ではない可能性があります。
Curl エラーエラー ログ: thread '<unnamed>' panicked at 'index out of bounds: the len is 1 but the index is 1', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.8.1/src/dfa.rs:1415:45
解決策: tiktoken を 0.7.0 にアップグレードします。
ドキュメント
- Deploy Docker でのテスト
- 盛り付け例
- RWKV-ランナーの例
- Python ライブラリの例
- Aliyun Ecs での RTP-LLm の使用
- 設定パラメータ
- ソースコードのビルド
- リクエストフォーマット
- マルチ GPU 推論
- LoRA
- Pチューニング
- システムプロンプト
- KVCache を再利用する
- マルチモーダル
- 埋め込み/リランカー モデルのデプロイメント
- 構造化された枝刈り
- 量子化
- 投機的サンプリング
- ロードマップ
- 貢献する
- ベンチマークとパフォーマンス
謝辞
私たちのプロジェクトは主に FasterTransformer に基づいており、これに基づいて TensorRT-LLM のカーネル実装をいくつか統合しました。 FasterTransformer と TensorRT-LLM により、信頼できるパフォーマンスが保証されます。 Flash-Attendance2 と Cutlass も、継続的なパフォーマンス最適化プロセスに多くの助けを提供してくれました。継続的なバッチ処理とインクリメント デコードは vllm の実装を利用しています。サンプリングはトランスフォーマーを利用し、投機的サンプリングは Medusa の実装を統合し、マルチモーダル部分は llava と qwen-vl の実装を統合します。これらのプロジェクトのインスピレーションと支援に感謝いたします。
外部アプリケーションのシナリオ (継続的に更新)
- タオバオ・ウェンダ
- アリババの国際 AI プラットフォーム Aidge
- OpenSearch LLM スマート Q&A エディション
- タオバオ検索における大規模言語モデルベースのロングテールクエリ書き換え
対応機種一覧
LLM
- Aquila および Aquila2 (BAAI/AquilaChat2-7B、BAAI/AquilaChat2-34B、BAAI/Aquila-7B、BAAI/AquilaChat-7B など)
- Baichuan および Baichuan2 (baichuan-inc/Baichuan2-13B-Chat、baichuan-inc/Baichuan-7B)
- ブルーム (ビッグサイエンス/ブルーム、ビッグサイエンス/ブルームズ)
- ChatGlm (THUDM/chatglm2-6b、THUDM/chatglm3-6b、GLM4 など)
- ファルコン (tiiuae/falcon-7b、tiiuae/falcon-40b、tiiuae/falcon-rw-7b など)
- GptNeox (EleutherAI/gpt-neox-20b)
- GPT BigCode (ビッグコード/スターコーダー、ビッグコード/スターコーダー2)
- LLaMA および LLaMA-2 (メタ-ラマ/ラマ-2-7b、メタ-ラマ/ラマ-2-13b-hf、メタ-ラマ/ラマ-2-70b-hf、lmsys/vicuna-33b-v1.3、 01-ai/Yi-34B、xverse/XVERSE-13Bなど)
- MPT (mosaicml/mpt-30b-chat など)
- ファイ (microsoft/phi-1_5 など)
- Qwen (Qwen、Qwen1.5、Qwen2 など)
- InternLM (internlm/internlm-7b、internlm/internlm-chat-7b など)
- Gemma (google/gemma-it など)
- Mixtral (mistralai/Mixtral-8x7B-v0.1 など)
LLM + マルチモーダル
- LLAVA (liuhaotian/llava-v1.5-13b、liuhaotian/llava-v1.5-7b)
- クウェン-VL (クウェン/クウェン-VL)
お問い合わせ
ディントークグループ
WeChatグループ