อังกฤษ 中文
ข่าว
- [2024/06] เรากำลังเปิดตัว rtp-llm เวอร์ชันใหม่ล่าสุด ซึ่งมีเฟรมเวิร์กการกำหนดเวลาและการจัดกลุ่มที่ปรับโครงสร้างใหม่ใน c++ การจัดการหน่วยความจำ GPU ที่สมบูรณ์และการติดตามการจัดสรร และแบ็กเอนด์อุปกรณ์ใหม่ ตรวจสอบข้อมูลการเปิดตัวเพื่อดูรายละเอียดเพิ่มเติม!
- [2024 / 06] ขณะนี้เรากำลังดำเนินการสนับสนุนแบ็กเอนด์ฮาร์ดแวร์หลายตัวโดยความร่วมมืออย่างกว้างขวางกับผู้ผลิตฮาร์ดแวร์ การรองรับ AMD ROCm, Intel CPU และ ARM CPU กำลังอยู่ในระหว่างดำเนินการ คอยติดตามการเปิดตัวที่กำลังจะมาถึง!
เกี่ยวกับ
- rtp-llm คือกลไกเร่งการอนุมานโมเดลภาษาขนาดใหญ่ (LLM) ที่พัฒนาโดยทีมงาน Foundation Model Inference ของอาลีบาบา มีการใช้กันอย่างแพร่หลายภายใน Alibaba Group โดยสนับสนุนบริการ LLM ในหน่วยธุรกิจต่างๆ รวมถึง Taobao, Tmall, Idlefish, Cainiao, Amap, Ele.me, AE และ Lazada
- โปรเจ็กต์ rtp-llm เป็นโปรเจ็กต์ย่อยของ havenask
คุณสมบัติ
พิสูจน์การผลิตแล้ว
นำไปใช้ในสถานการณ์ LLM มากมาย เช่น:
- เถาเป่า เหวินเหวิน
- Aidge แพลตฟอร์ม AI ระดับนานาชาติของอาลีบาบา
- OpenSearch LLM ฉบับถามตอบอัจฉริยะ
- การเขียนแบบสอบถามหางยาวตามโมเดลภาษาขนาดใหญ่ใหม่ในการค้นหา Taobao
ประสิทธิภาพสูง
- ใช้เคอร์เนล CUDA ประสิทธิภาพสูง รวมถึง PagedAttention, FlashAttention, FlashDecoding เป็นต้น
- ใช้ WeightOnly INT8 Quantization พร้อมการหาปริมาณอัตโนมัติ ณ เวลาที่โหลด รองรับการวัดปริมาณ WeightOnly INT4 ด้วย GPTQ และ AWQ
- การหาปริมาณ KVCache ที่ปรับเปลี่ยนได้
- การเพิ่มประสิทธิภาพโดยละเอียดของค่าใช้จ่ายในการจัดชุดแบบไดนามิกในระดับเฟรมเวิร์ก
- ปรับให้เหมาะสมเป็นพิเศษสำหรับ V100 GPU
ความยืดหยุ่นและใช้งานง่าย
- บูรณาการอย่างราบรื่นกับรุ่น HuggingFace รองรับรูปแบบน้ำหนักหลายรูปแบบ เช่น SafeTensors, Pytorch และ Megatron
- ปรับใช้บริการ LoRA หลายรายการด้วยอินสแตนซ์โมเดลเดียว
- จัดการอินพุตหลายรูปแบบ (รวมรูปภาพและข้อความ)
- เปิดใช้งานการทำงานแบบขนานเทนเซอร์หลายเครื่อง/หลาย GPU
- รองรับรุ่น P-tuning
เทคนิคการเร่งความเร็วขั้นสูง
- โหลดโมเดลที่ผิดปกติที่ถูกตัดแต่งแล้ว
- แคชคำนำหน้าตามบริบทสำหรับบทสนทนาแบบหลายเทิร์น
- แคชพร้อมท์ระบบ
- การถอดรหัสเก็งกำไร
- Medusa สำหรับกลยุทธ์การขนานขั้นสูง
วิธีใช้
ความต้องการ
- ระบบปฏิบัติการ: ลินุกซ์
- หลาม: 3.10
- NVIDIA GPU: ความสามารถในการคำนวณ 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}} '
หมายเหตุการเปิดตัวนักเทียบท่า
- บันทึกประจำรุ่นนักเทียบท่า
คำถามที่พบบ่อย
libcufft.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 build) โปรดตรวจสอบว่าไดเร็กทอรีปัจจุบันของคุณไม่ใช่ rtp-llm ไม่เช่นนั้น python จะใช้แพ็คเกจเส้นทางสัมพันธ์แทน whl ที่ติดตั้ง
Bazel สร้างหมดเวลา
บันทึกข้อผิดพลาด : ERROR: no such package '@pip_gpu_cuda12_torch//': rules_python_external failed: (Timed out)
ปณิธาน :
- เปลี่ยนที่เก็บ pip mirror ใน open_source/deps/pip.bzl เพิ่ม extra_pip_args=["--index_url=xxx"]
- ข้อกำหนดการติดตั้ง pip ด้วยตนเอง โดยเฉพาะอย่างยิ่งสำหรับ pytorch สำหรับ bazel build นั้นมีการหมดเวลา 600s ตามค่าเริ่มต้น ซึ่งอาจไม่เพียงพอสำหรับการดาวน์โหลด 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-Runner
- ตัวอย่างไลบรารี Python
- การใช้ RTP-LLm ใน Aliyun Ecs
- พารามิเตอร์การกำหนดค่า
- การสร้างซอร์สโค้ด
- รูปแบบคำขอ
- การอนุมานหลาย GPU
- โลรา
- พีจูนนิ่ง
- ระบบพร้อมท์
- ใช้KVCache ซ้ำ
- ต่อเนื่องหลายรูปแบบ
- การฝัง / การปรับใช้โมเดล Reranker
- การตัดแต่งกิ่งแบบมีโครงสร้าง
- การหาปริมาณ
- การสุ่มตัวอย่างแบบเก็งกำไร
- แผนการทำงาน
- มีส่วนร่วม
- เกณฑ์มาตรฐานและประสิทธิภาพ
รับทราบ
โปรเจ็กต์ของเราอิง FasterTransformer เป็นหลัก และด้วยพื้นฐานนี้ เราได้ผสานรวมการใช้งานเคอร์เนลบางส่วนจาก TensorRT-LLM FasterTransformer และ TensorRT-LLM ให้การรับประกันประสิทธิภาพที่เชื่อถือได้แก่เรา Flash-Attention2 และมีดสั้นยังให้ความช่วยเหลืออย่างมากในกระบวนการเพิ่มประสิทธิภาพอย่างต่อเนื่องของเรา การแบทช์และการถอดรหัสที่เพิ่มขึ้นอย่างต่อเนื่องของเรานั้นอาศัยการนำ vllm ไปใช้ การสุ่มตัวอย่างใช้หม้อแปลงไฟฟ้า โดยมีการสุ่มตัวอย่างแบบเก็งกำไรที่รวมการใช้งานของ Medusa และส่วนที่ต่อเนื่องหลายรูปแบบรวมการใช้งานจาก llava และ qwen-vl เราขอขอบคุณโครงการเหล่านี้สำหรับแรงบันดาลใจและความช่วยเหลือของพวกเขา
สถานการณ์การใช้งานภายนอก (อัปเดตอย่างต่อเนื่อง)
- เถาเป่า เวนด้า
- Aidge แพลตฟอร์ม AI ระหว่างประเทศของอาลีบาบา
- OpenSearch LLM ฉบับถามตอบอัจฉริยะ
- การเขียนแบบสอบถามหางยาวตามโมเดลภาษาขนาดใหญ่ใหม่ในการค้นหา Taobao
รายการรุ่นที่รองรับ
นิติศาสตร์มหาบัณฑิต
- 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)
- บลูม (bigscience/bloom, bigscience/bloomz)
- 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 (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 ฯลฯ)
- MPT (mosaicml/mpt-30b-chat ฯลฯ)
- พี (microsoft/phi-1_5 ฯลฯ)
- คิวเวน (คิวเวน, คิวเวน1.5, คิวเวน2 ฯลฯ)
- InternLM (internlm/internlm-7b, internlm/internlm-chat-7b ฯลฯ)
- เจมม่า (google/gemma-it ฯลฯ)
- มิกซ์ทรัล (มิสทราไล/มิกซ์ทรัล-8x7B-v0.1 ฯลฯ)
LLM + ต่อเนื่องหลายรูปแบบ
- ลาวา (liuhaotian/llava-v1.5-13b, liuhaotian/llava-v1.5-7b)
- คิวเวน-VL (คิวเวน/คิวเวน-VL)
ติดต่อเรา
กลุ่มติงทอล์ค
วีแชต กรุ๊ป