使用 vllm 部署 Llama3-8b-Instruct
一、使用 vllm 部署 Llama3-8b-Instruct
- 交互式建模(PAI-DSW)资源地址:
https://github.com/vllm-project/vllm
vLLM 是一个用于大型语言模型(LLM)推理和服务的快速且易于使用的库。
vLLM 的快速特性包括:
- 先进的服务吞吐量
- 使用 PagedAttention 高效管理注意力机制的键和值内存
- 对传入请求进行持续批处理
- 使用 CUDA/HIP 图快速执行模型
- 量化技术:GPTQ、AWQ、SqueezeLLM、FP8 KV 缓存
- 优化的 CUDA 内核
二、下载llama3模型文件
/mnt/workspace路径下执行
mkdir models
/mnt/workspace/models路径下执行
pip install modelscope
git clone https://www.modelscope.cn/LLM-Research/Meta-Llama-3-8B-Instruct.git
使用 SHA-256 算法检查文件(可选)
shasum -a 256 model-00001-of-00004.safetensors
shasum -a 256 model-00002-of-00004.safetensors
shasum -a 256 model-00003-of-00004.safetensors
shasum -a 256 model-00004-of-00004.safetensors
2.1 安装vLLM
conda create -n vllm python=3.10
conda activate vllm
pip install vllm
pip install modelscope
2.2 模型推理
completion模式
- 服务部署
python -m vllm.entrypoints.openai.api_server --model /mnt/workspace/Meta-Llama-3-8B-Instruct --dtype auto --api-key 123456
- 服务测试 (vllm_completion_test.py
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1",api_key="123456",)
print("服务连接成功")
completion = client.completions.create(model="/mnt/workspace/Meta-Llama-3-8B-Instruct",prompt="北京是",max_tokens=128,
)
print("### 北京是: ")
print("Completion result: ", completion)
另外一个terminal窗口执行
conda activate vllm
python vllm_completion_test.py
2.3 chat模式
- 服务部署
python -m vllm.entrypoints.openai.api_server --model /mnt/workspace/Meta-Llama-3-8B-Instruct --dtype auto --api-key 123456
- 服务测试(vllm_chat_test.py)
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="123456",
)
print("服务连接成功")
completion = client.chat.completions.create(model="/mnt/workspace/models/Meta-Llama-3-8B-Instruct",messages=[{"role": "system", "content": "你是一位智能助手."},{"role": "user", "content": "中国的首都是哪里?"}],max_tokens = 128,
)
print(completion.choices[0].message)
另外一个terminal窗口执行
python vllm_chat_test.py