南开天津网站建设,网站html下载器,wordpress主题dux主题5.2版,用户界面设计案例1. 背景
vLLM是一个快速且易于使用的LLM推理和服务库。企业级应用比较普遍#xff0c;尝试安装相关环境#xff0c;尝试使用。
2. 环境
模块版本python3.10CUDA12.6torch2.5.1xformers0.0.28.post3flash_attn2.7.4vllm0.6.4.post1
2.1 安装flash_attn
具体选择什么版本尝试安装相关环境尝试使用。
2. 环境
模块版本python3.10CUDA12.6torch2.5.1xformers0.0.28.post3flash_attn2.7.4vllm0.6.4.post1
2.1 安装flash_attn
具体选择什么版本可参考flash-attention保姆级安装教程 基于cuda跟torch的版本考虑笔者选择如下版本
flash_attn-2.7.4.post1cu12torch2.5cxx11abiFALSE-cp310-cp310-linux_x86_64.whl安装命令
wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.4.post1/flash_attn-2.7.4.post1cu12torch2.5cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
MAX_JOBS4
pip install flash_attn-2.7.4.post1cu12torch2.5cxx11abiFALSE-cp310-cp310-linux_x86_64.whl2.2 安装vllm
参考vLLM环境安装与运行实例【最新版0.6.4.post1】
pip3 install vllm0.6.4.post1 --extra-index-url https://download.pytorch.org/whl/cu121 -i https://pypi.tuna.tsinghua.edu.cn/simple2.2.1 坑1: 报错libcudart.so.11.0: cannot open shared object file: No such file or directory 这个文件应该指向的是cuda的文件。到cuda的路径看看【笔者cuda的路径为/usr/local/cuda/lib64】 发现确实只有libcudart.so.12。没有libcudart.so.11。 那么这里只有两种解决方案要么重装cuda要么重装vllm。
借鉴楼上大佬的经验参考将vllm 版本降至0.6.4.post1即可解决。
3. 启动服务
3.1 vllm启动服务
使用vllm启动模型/root/Qwen2.5-7B-Instruct。
参考文章使用 vllm 搭建推理加速大模型服务
python -m vllm.entrypoints.openai.api_server --model /root/Qwen2.5-7B-Instruct --served-model-name Qwen2.5-7B-Instruct --max-model-len20483.2 vllm一次性调用
# vllm_model.py
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
import os
import json# 自动下载模型时指定使用modelscope。不设置的话会从 huggingface 下载
os.environ[VLLM_USE_MODELSCOPE]Truedef get_completion(prompts, model, tokenizerNone, max_tokens512, temperature0.8, top_p0.95, max_model_len2048):stop_token_ids [151329, 151336, 151338]# 创建采样参数。temperature 控制生成文本的多样性top_p 控制核心采样的概率sampling_params SamplingParams(temperaturetemperature, top_ptop_p, max_tokensmax_tokens, stop_token_idsstop_token_ids)# 初始化 vLLM 推理引擎llm LLM(modelmodel, tokenizertokenizer, max_model_lenmax_model_len,trust_remote_codeTrue)outputs llm.generate(prompts, sampling_params)return outputsif __name__ __main__: # 初始化 vLLM 推理引擎model/root/Qwen2.5-7B-Instruct # 指定模型路径# modelqwen/Qwen2-7B-Instruct # 指定模型名称自动下载模型tokenizer None# 加载分词器后传入vLLM 模型但不是必要的。# tokenizer AutoTokenizer.from_pretrained(model, use_fastFalse) text [你好帮我介绍一下什么是大语言模型。,可以给我将一个有趣的童话故事吗]# messages [# {role: system, content: 你是一个有用的助手。},# {role: user, content: prompt}# ]# 作为聊天模板的消息不是必要的。# text tokenizer.apply_chat_template(# messages,# tokenizeFalse,# add_generation_promptTrue# )outputs get_completion(text, model, tokenizertokenizer, max_tokens512, temperature1, top_p1, max_model_len2048)# 输出是一个包含 prompt、生成文本和其他信息的 RequestOutput 对象列表。# 打印输出。for output in outputs:prompt output.promptgenerated_text output.outputs[0].textprint(fPrompt: {prompt!r}, Generated text: {generated_text!r})效果如下
4. 模型调用
curl http://localhost:8000/v1/completions \-H Content-Type: application/json \-d {model: Qwen2.5-7B-Instruct,prompt: 请基于如下的知识点帮忙总结一下该病例的关键信息点。,max_tokens: 50,temperature: 0} 参考文章 1.flash-attention保姆级安装教程 2.vLLM环境安装与运行实例【最新版0.6.4.post1】 3.使用 vllm 搭建推理加速大模型服务 4.[大模型]Qwen2-7B-Instruct vLLM 部署调用
以上结束。