【个人开发】cuda12.6安装vllm安装实践【内含踩坑经验】
1. 背景
vLLM是一个快速且易于使用的LLM推理和服务库。企业级应用比较普遍,尝试安装相关环境,尝试使用。
2. 环境
模块 | 版本 |
---|---|
python | 3.10 |
CUDA | 12.6 |
torch | 2.5.1 |
xformers | 0.0.28.post3 |
flash_attn | 2.7.4 |
vllm | 0.6.4.post1 |
2.1 安装flash_attn
具体选择什么版本,可参考:flash-attention保姆级安装教程
基于cuda跟torch的版本考虑,笔者选择如下版本
flash_attn-2.7.4.post1+cu12torch2.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.post1+cu12torch2.5cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
MAX_JOBS=4
pip install flash_attn-2.7.4.post1+cu12torch2.5cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
2.2 安装vllm
参考:vLLM环境安装与运行实例【最新版(0.6.4.post1)】
pip3 install vllm==0.6.4.post1 --extra-index-url https://download.pytorch.org/whl/cu121 -i https://pypi.tuna.tsinghua.edu.cn/simple
2.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-len=2048
3.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']='True'def get_completion(prompts, model, tokenizer=None, max_tokens=512, temperature=0.8, top_p=0.95, max_model_len=2048):stop_token_ids = [151329, 151336, 151338]# 创建采样参数。temperature 控制生成文本的多样性,top_p 控制核心采样的概率sampling_params = SamplingParams(temperature=temperature, top_p=top_p, max_tokens=max_tokens, stop_token_ids=stop_token_ids)# 初始化 vLLM 推理引擎llm = LLM(model=model, tokenizer=tokenizer, max_model_len=max_model_len,trust_remote_code=True)outputs = llm.generate(prompts, sampling_params)return outputsif __name__ == "__main__": # 初始化 vLLM 推理引擎model='/root/Qwen2.5-7B-Instruct' # 指定模型路径# model="qwen/Qwen2-7B-Instruct" # 指定模型名称,自动下载模型tokenizer = None# 加载分词器后传入vLLM 模型,但不是必要的。# tokenizer = AutoTokenizer.from_pretrained(model, use_fast=False) text = ["你好,帮我介绍一下什么是大语言模型。","可以给我将一个有趣的童话故事吗?"]# messages = [# {"role": "system", "content": "你是一个有用的助手。"},# {"role": "user", "content": prompt}# ]# 作为聊天模板的消息,不是必要的。# text = tokenizer.apply_chat_template(# messages,# tokenize=False,# add_generation_prompt=True# )outputs = get_completion(text, model, tokenizer=tokenizer, max_tokens=512, temperature=1, top_p=1, max_model_len=2048)# 输出是一个包含 prompt、生成文本和其他信息的 RequestOutput 对象列表。# 打印输出。for output in outputs:prompt = output.promptgenerated_text = output.outputs[0].textprint(f"Prompt: {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 部署调用
以上,结束。
相关文章:

【个人开发】cuda12.6安装vllm安装实践【内含踩坑经验】
1. 背景 vLLM是一个快速且易于使用的LLM推理和服务库。企业级应用比较普遍,尝试安装相关环境,尝试使用。 2. 环境 模块版本python3.10CUDA12.6torch2.5.1xformers0.0.28.post3flash_attn2.7.4vllm0.6.4.post1 2.1 安装flash_attn 具体选择什么版本&…...
ASP.NET Core SignalR身份验证
在需要登录才能访问的集线器类上或者方法上添加[Authorize]。也支持角色等设置,可以设置到Hub或者方法上。 配置好User、Role、MyDbContext、JWTSettings、IdentityHelper Program.cs using SignaIR的基本使用; using Scalar.AspNetCore; using Identity框架; us…...
微信小程序(第一集)
app.json {// 定义小程序的所有页面路径,数组中的第一个页面是首页"pages": ["pages/index/index", // 首页"pages/logs/logs" // 日志页面],// 设置小程序的全局窗口外观(比如导航栏和背景颜色)"wind…...
为什么细胞是圆的?
从受力方面分析 以细胞重心 O O O为原点,建立平面直角坐标系 x O y xOy xOy, x 、 y x、y x、y正半轴交细胞于A,B 设 f θ ∑ ∀ P ∈ C , ∠ P O A θ P O ∑ ∀ P ∈ C , ∠ P O A θ 1 f_\theta\dfrac{\sum_{\forall P\in C\ \ , \an…...

游戏引擎学习第96天
讨论了优化和速度问题,以便简化调试过程 节目以一个有趣的类比开始,提到就像某些高端餐厅那样,菜单上充满了听起来陌生或不太清楚的描述,需要依靠服务员进一步解释。虽然这听起来有些奇怪,但实际上,它反映…...

本地优先的分布式锁实现
本地优先分发锁旨在通过使用本地锁优先来减少分发锁服务器的并发压力。如图1所示,当请求想要获取分发锁时,该请求必须首先获取JVM锁(本地锁)。通过这样做,对于特定的锁密钥,分布式锁服务器将只承载固定数量…...

基于知乎平台的“开源AI智能名片2 + 1链动模式S2B2C商城小程序”引流策略研究
摘要:本文聚焦于如何借助知乎平台的高权重及优质用户特性,对“开源AI智能名片2 1链动模式S2B2C商城小程序”进行有效引流。通过深入分析知乎平台的用户特点、引流规则,并结合具体的引流方法,旨在为相关项目在知乎平台实现高效用户…...
DeepSeek-Coder系列模型:智能编程助手的未来
文章目录 一、模型架构与核心功能1. 模型架构2. 核心功能 二、多语言支持与代码生成1. Python代码生成2. Java代码生成3. C代码生成4. JavaScript代码生成 三、仓库级代码理解1. 代码结构分析2. 上下文理解 四、FIM填充技术1. 函数自动填充2. 代码补全 五、应用场景1. 代码补全…...

FPGA开发技能(10)热电偶测温ADS1118方案
文章目录 1.热电偶原理2.ADS1118方案2.1ADS介绍2.2原理设计2.3实物连接图2.4测温原理 3.误差校准3.1查表法3.2冷端补偿法 4.SPI操作时序5.传送门 1.热电偶原理 两个不同材料的金属线一端在同一结点连接,另一端放在被测温点,则二者会产生一定的压差&…...
如何优化网站结构以促进快速收录?
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/104.html 优化网站结构以促进快速收录,可以从以下几个方面入手: 一、合理规划页面结构 扁平化结构:采用扁平化的网站结构,减少层级…...

算法-动态规划-0-1背包问题(二维0-1背包,背包求方案数,求背包具体方案)
概念 背包问题(Knapsack Problem)是算法领域的经典组合优化问题,在资源分配等场景有广泛应用,以下从定义、常见类型、解决方法等方面介绍: 定义 给定一组物品,每个物品都有自己的重量和价值,…...

位运算算法篇:位运算实现加减乘除
位运算算法篇:位运算实现加减乘除 那么我们想必对加减乘除这些数学计算并不陌生,但是对于我们的计算机来说,由于机器只能识别二进制的语言,那么我们底层的数据都是以二进制的形式存在,那么我们CPU的计算器的加减乘除运…...

【故障处理】ORA-19849 ORA-19612 0RA-17627 ORA-03114
【故障处理】ADG duplicate 异常中断ORA-19849 ORA-19612 0RA-17627 ORA-03114 Corrupt block 84629 found during reading backup piece 一、概述二、报错信息三、报错原因四、解决方法五、其他类似报错5.1 报错信息 一、概述 部署adg执行duplicate异常中断,RMAN过…...

【MQ】Spring3 中 RabbitMQ 的使用与常见场景
一、初识 MQ 传统的单体架构,分布式架构的同步调用里,无论是方法调用,还是 OpenFeign 难免会有以下问题: 扩展性差(高耦合,需要依赖对应的服务,同样的事件,不断有新需求࿰…...

jupyterLab插件开发
jupyter lab安装、配置: jupyter lab安装、配置教程_容器里装jupyterlab-CSDN博客 『Linux笔记』服务器搭建神器JupyterLab_linux_布衣小张-腾讯云开发者社区 Jupyter Lab | 安装、配置、插件推荐、多用户使用教程-腾讯云开发者社区-腾讯云 jupyterLab插件开发教…...

拯救者Y9000P双系统ubuntu22.04安装4070显卡驱动
拯救者Y9000P双系统ubuntu22.04安装4070显卡驱动 1. 前情: 1TB的硬盘,分了120G作ubuntu22.04。/boot: 300MB, / : 40GB, /home: 75G, 其余作swap area。 2. 一开始按这个教程:对我无效 https://blog.csdn.net/Eric_xkk/article/details/1…...
QT-常见问题
1. C(特别是 Qt)开发中,内存优化的方法 1. 合理管理对象生命周期,使用智能指针 Qt 提供了 QScopedPointer 和 QSharedPointer 来管理对象生命周期,避免手动 delete 导致的内存泄漏。 2. 减少内存占用 QString、QBy…...
如何通过腾讯 ima.copilot 训练自己的知识库
如何通过腾讯 ima.copilot 训练自己的知识库 在信息爆炸的时代,拥有一个专属的知识库,能让我们在学习、工作中快速获取所需信息,极大地提升效率。腾讯推出的 AI 智能工作台 ima.copilot,为我们打造个人知识库提供了便利。今天&am…...
关于近期我的交流之深度思考DeepSeek归纳总结
以下内容我摘自昨天 2025-2-9 群里的讨论,只涉及我的观点内容,会让DeepSeek进行深度思考 抢财猫: 能提出一个好问题不容易的,问题边界包含了所有认知,提问题需要能力的 抢财猫: 每个人都相当于一个大模型,自己给自己投入了多少算力,训练了多少数据参数,自己心里有数…...
智能生鲜配送管理系统:生鲜及快消品行业的数字化转型利器
在生鲜及快消品行业,高效的供应链管理是企业成功的关键。随着科技的不断进步,越来越多的企业开始采用智能化管理软件来提升运营效率、降低成本并优化客户体验。今天,我们就来了解一下这类智能生鲜配送管理系统的核心功能和技术优势࿰…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...

【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...