Bahasa Inggris中文
Berita
- [2024/06] Kami merilis versi baru rtp-llm, yang menampilkan kerangka penjadwalan dan batching yang difaktorkan ulang dalam c++, manajemen memori GPU lengkap dan jalur alokasi, serta backend Perangkat baru. Periksa info rilis untuk lebih jelasnya!
- [2024/06] Saat ini kami sedang mengerjakan dukungan untuk beberapa backend perangkat keras melalui kolaborasi ekstensif dengan produsen perangkat keras. Dukungan AMD ROCm, CPU Intel, dan CPU ARM sedang dalam proses, nantikan rilis mendatang!
Tentang
- rtp-llm adalah mesin akselerasi inferensi Model Bahasa Besar (LLM) yang dikembangkan oleh Tim Inferensi Model Yayasan Alibaba. Ini banyak digunakan dalam Grup Alibaba, mendukung layanan LLM di berbagai unit bisnis termasuk Taobao, Tmall, Idlefish, Cainiao, Amap, Ele.me, AE, dan Lazada.
- Proyek rtp-llm adalah sub-proyek dari Havenask
Fitur
Produksi Terbukti
Diterapkan dalam berbagai skenario LLM, seperti:
- Taobao Wenwen
- Platform AI internasional Alibaba, Aidge
- Edisi Tanya Jawab Cerdas OpenSearch LLM
- Penulisan Ulang Kueri Ekor Panjang berbasis Model Bahasa Besar di Pencarian Taobao
Kinerja Tinggi
- Menggunakan kernel CUDA berkinerja tinggi, termasuk PagedAttention, FlashAttention, FlashDecoding, dll.
- Menerapkan Kuantisasi WeightOnly INT8 dengan kuantisasi otomatis pada waktu muat; Mendukung Kuantisasi WeightOnly INT4 dengan GPTQ dan AWQ
- Kuantisasi KVCache Adaptif
- Optimalisasi mendetail dari overhead batching dinamis pada tingkat kerangka kerja
- Dioptimalkan secara khusus untuk GPU V100
Fleksibilitas dan Kemudahan Penggunaan
- Integrasi yang mulus dengan model HuggingFace, mendukung berbagai format bobot seperti SafeTensors, Pytorch, dan Megatron
- Menyebarkan beberapa layanan LoRA dengan satu contoh model
- Menangani input multimodal (menggabungkan gambar dan teks)
- Mengaktifkan paralelisme tensor multi-mesin/multi-GPU
- Mendukung model penyetelan P
Teknik Akselerasi Tingkat Lanjut
- Memuat model tidak beraturan yang dipangkas
- Cache Awalan Kontekstual untuk dialog multi-putaran
- Cache Perintah Sistem
- Penguraian Kode Spekulatif
- Medusa untuk strategi paralelisasi tingkat lanjut
Cara Menggunakan
Persyaratan
- Sistem Operasi: Linux
- ular sanca: 3.10
- GPU NVIDIA: Kemampuan Komputasi 7.0 atau lebih tinggi (misalnya, RTX20xx, RTX30xx, RTX40xx, V100, T4, A10/A30/A100, L4, H100, dll.)
Contoh permulaan
- buruh pelabuhan
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}} '
- whl
# 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}} '
Catatan Rilis Docker
Pertanyaan Umum
libcufft.so
Log kesalahan : OSError: libcufft.so.11: cannot open shared object file: No such file or directory
Resolusi : Silakan periksa apakah versi cuda dan rtp-llm cocok
libth_transformer.so
Log kesalahan : OSError: /rtp-llm/maga_transformer/libs/libth_transformer.so: cannot open shared object file: No such file or directory
Resolusi : Jika diinstal melalui whl atau docker (yang berarti bukan build bazel), harap periksa bahwa direktori Anda saat ini bukan rtp-llm, atau python akan menggunakan paket jalur relatif alih-alih menginstal whl
Waktu pembuatan Bazel habis
Log kesalahan : ERROR: no such package '@pip_gpu_cuda12_torch//': rules_python_external failed: (Timed out)
Resolusi :
- ubah repositori pip mirror di open_source/deps/pip.bzl, tambahkan extra_pip_args=["--index_url=xxx"]
- persyaratan pemasangan pip secara manual, terutama untuk pytorch, untuk itu bazel build memiliki batas waktu 600 detik secara default, yang mungkin tidak cukup untuk mengunduh pytorch
Kesalahan ikal Log kesalahan: 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
Resolusi : upgrade tiktoken ke 0.7.0
Dokumentasi
- Uji di Deploy Docker
- Contoh Pelayanan
- Contoh Pelari RWKV
- Contoh Perpustakaan Python
- Menggunakan RTP-LLm di Aliyun Ecs
- Parameter Konfigurasi
- Pembuatan Kode Sumber
- Format Permintaan
- Inferensi Multi GPU
- LoRA
- Penyetelan
- Perintah Sistem
- Gunakan kembaliKVCache
- Multimoda
- Penerapan Model Penyematan/Peringkat Ulang
- Pemangkasan Terstruktur
- Kuantisasi
- Pengambilan Sampel Spekulatif
- Peta jalan
- Berkontribusi
- Tolok Ukur & Kinerja
Ucapan Terima Kasih
Proyek kami sebagian besar didasarkan pada FasterTransformer, dan atas dasar ini, kami telah mengintegrasikan beberapa implementasi kernel dari TensorRT-LLM. FasterTransformer dan TensorRT-LLM telah memberi kami jaminan performa yang andal. Flash-Attention2 dan cutlass juga telah memberikan banyak bantuan dalam proses optimalisasi kinerja berkelanjutan kami. Penguraian batching dan peningkatan berkelanjutan kami memanfaatkan implementasi vllm; pengambilan sampel menggunakan transformator, dengan pengambilan sampel spekulatif mengintegrasikan implementasi Medusa, dan bagian multimodal mengintegrasikan implementasi dari llava dan qwen-vl. Kami berterima kasih kepada proyek-proyek ini atas inspirasi dan bantuannya.
Skenario Aplikasi Eksternal (Terus Diperbarui)
- Taobao Wenda
- Bantuan Platform AI Internasional Alibaba
- Edisi Tanya Jawab Cerdas OpenSearch LLM
- Penulisan Ulang Kueri Ekor Panjang berbasis Model Bahasa Besar di Pencarian Taobao
Daftar Model yang Didukung
LLM
- Aquila dan Aquila2 (BAAI/AquilaChat2-7B, BAAI/AquilaChat2-34B, BAAI/Aquila-7B, BAAI/AquilaChat-7B, dll.)
- Baichuan dan Baichuan2 (baichuan-inc/Baichuan2-13B-Chat, baichuan-inc/Baichuan-7B)
- Mekar (ilmu besar/mekar, ilmu besar/mekarz)
- ChatGlm (THUDM/chatglm2-6b, THUDM/chatglm3-6b, GLM4, dll)
- Elang (tiiuae/falcon-7b, tiiuae/falcon-40b, tiiuae/falcon-rw-7b, dll.)
- GptNeox (EleutherAI/gpt-neox-20b)
- GPT BigCode (kode besar/starcoder, kode besar/starcoder2)
- LLaMA dan LLaMA-2 (meta-llama/Llama-2-7b, meta-llama/Llama-2-13b-hf, meta-llama/Llama-2-70b-hf, lmsys/vicuna-33b-v1.3, 01-ai/Yi-34B, xverse/XVERSE-13B, dll.)
- MPT (mosaicml/mpt-30b-chat, dll.)
- Phi (microsoft/phi-1_5, dll.)
- Qwen (Qwen, Qwen1.5, Qwen2, dll.)
- InternLM (internlm/internlm-7b, internlm/internlm-chat-7b, dll.)
- Gemma (google/gemma-it, dll)
- Mixtral (mistralai/Mixtral-8x7B-v0.1, dll)
LLM + Multimoda
- LLAVA (liuhaotian/llava-v1.5-13b, liuhaotian/llava-v1.5-7b)
- Qwen-VL (Qwen/Qwen-VL)
Hubungi kami
Grup DingTalk
Grup WeChat