fastapi实现vllm离线推理

本次案例 vllm 结合 transformersAutoTokenizer 来加载本地模型进行推理。支持异步流式返回生成的文本

优化后的代码示例:

import logging
from fastapi import FastAPI, HTTPException
from fastapi.responses import StreamingResponse
from pydantic import BaseModel
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
import uvicorn
import asyncio

# 定义请求的数据模型
class PromptRequest(BaseModel):
    prompt: str

# 初始化 FastAPI 应用
app = FastAPI()

# 配置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

# 并发请求限制
MAX_CONCURRENT_REQUESTS = 10
# 等待队列最大长度
MAX_QUEUE_SIZE = 20

# 创建信号量和队列
semaphore = asyncio.Semaphore(MAX_CONCURRENT_REQUESTS)
request_queue = asyncio.Queue(MAX_QUEUE_SIZE)

# 本地模型路径
model_path = "path_to_your_model"  # 指定本地模型文件夹路径

### vllm离线部署DeepSeek教程 对于希望在本地环境中运行DeepSeek模型的情况,可以考虑通过`vllm`库来实现这一目标。为了确保能够顺利地进行离线部署并使`vllm`支持DeepSeek系列模型,下面提供了一个详细的指南。 #### 准备工作 确认环境已经配置好Python以及必要的依赖项,并且具备足够的硬件资源(如GPU)。由于DeepSeek模型可能较大,在准备阶段还需要特别注意磁盘空间是否充足[^2]。 #### 安装vllm及相关组件 首先需要获取到`vllm`及其所需的其他软件包: ```bash pip install vllm transformers torch ``` 考虑到某些大型语言模型会利用Git LFS存储权重文件,因此也需要保证机器上正确设置了Git Large File Storage: ```bash git lfs install ``` 接着克隆特定版本的DeepSeek仓库至本地计算机内以便后续加载模型参数[^1]: ```bash git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.git cd DeepSeek-R1-Distill-Qwen-7B ``` #### 配置与启动服务 创建一个新的Python脚本来初始化和调用`vllm`中的LLMEngine类实例化对象,同时指定所使用的预训练模型路径以及其他必要参数设置。这里给出一段简单的例子用于说明如何操作: ```python from vllm import LLM, SamplingParams model_path = './DeepSeek-R1-Distill-Qwen-7B' # 替换为实际保存位置 sampling_params = SamplingParams(temperature=0.8) llm_engine = LLM(model=model_path) prompt = "你好" output = llm_engine.generate(prompt=prompt, sampling_params=sampling_params) print(output.text) ``` 上述代码片段展示了怎样基于已有的DeepSeek模型执行推理任务的过程。需要注意的是,具体的应用场景可能会涉及到更复杂的输入处理逻辑或是不同的采样策略调整等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值