当前位置: 首页 > news >正文

小记大模型本地部署:vllm, lmdeploy, ollama

记录一下最近折腾的大模型本地部署。由于学校有部署deepseek的竞赛(觉得扯不?)所以首选ollama这种超级简单的来过关,但我最希望的还是用专门的推理工具部署,因为做应用开发推理速度一定最重要。所以先尝试自己想搞的vllm。在简单找了些资料以后,感觉A100可以搞定32B的模型,所以我直接下载了Qwen2.5-32B。当然过程并不顺利,用hf-mirror也下不下来,后来用modelscope更快,其实模型权重文件只要是一样的从哪下载都一样。

1. vllm 尝试

       由于上一个部署echomimicV2 已经找到的版本对应关系,因此这次应该只有vllm需要安装了,视频说qwen2.5系列 只要vllm>=0.4就可以。 直接装最新的0.7.2 是不行,pip会一直找适配系统的版本,一个一个下载,直到0.6.3。 但是这个依赖xformers-0.0.28.post3 装不上。所以还是得自己找版本。最后找到0.5.0 和torch的2.3.0能对应上。本以为一切顺利 结果用vllm 的启动服务报了个错:

ImportError: cannot import name 'build_regex_from_schema' from 'outlines.fsm.json_schema'

outlines库的问题,AI先让我更新到最新,发现已经是最新的0.1.26,于是只能试一下降版本,查了一下vllm在0.5.0时候是24年6月,于是在pypi找到outlines早于这个时间的,降到0.0.45。 再次启动这个错误没有,报了另外一个错。我没有心情调试了,放弃了。

2. lmdeploy

         只能再找其他的推理框架,确实还有很多,发现一个lmdeploy似乎不难,就是pip 安装一下就完了,当然也不顺利,因为lmdeploy的whl文件在github上,要下几个小时。剩下的库倒是不难,因为pip有缓存,已经安装过的依赖库都是免下载。用官方的命令,最后装起来torch的版本是2.5.1+cu118。启动命令较为友好,就是参数比较多,直接最简单就行了。默认使用的推理引擎是TurboMind,启动时候会先把模型权重进行转换。服务启动以后用它给的py代码测试了一下,感觉并没有特别快,完全出乎想象,不知道是不是模型太大了,还是什么参数没用上。

3. ollama

        早就听说ollama超级简单,但是官网下载很慢,好在国内找到一个软件下载地址。安装也差点被骗,就只有解压,然后闪退,以为是机器不支持。差点以为失败,后来发现可以用命令。于是直接测deepseek-r1-1.5B。 没想到模型下载倒是很快,顺便通过环境变量 OLLAMA_MODELS改变模型下载地址。启动以后回复速度飞快,不可思议。

deepseek-r1 多了一个<think>标签就是思考过程,也是提示词自动生成,因此聊天工具要支持解析这个标签才能比较好看,于是我找了一下支持最新标签的聊天界面工具:chatwise,在里面可以配置ollama,于是就有了下面的效果:点开那个"Thought of 8 seconds" 是思考内容

后面再弄知识库也就是接入大模型的问题而已,还有一个LMstudio似乎更简单,下次和知识库一起试一下。后面我又用lmdeploy试了一下deepseek-R1-14B ,吐字似乎比32B的快一点,是不是模型越小速度越快?

http://www.lryc.cn/news/536651.html

相关文章:

  • MySQL查看存储过程和存储函数
  • 从零到一:开发并上线一款极简记账本小程序的完整流程
  • 卷积神经网络实战人脸检测与识别
  • 【面试题系列】Java 多线程面试题深度解析
  • 【C语言】左旋字符串(三种实现方式)
  • 数论补充 之 前后缀分解问题
  • IoTDB 集群节点 IP 改变,如何更新集群
  • 【AI系列】从零开始学习大模型GPT (2)- Build a Large Language Model (From Scratch)
  • webshell通信流量分析
  • 数据可视化+SpringBoot+协同过滤推荐算法的美食点餐管理平台
  • DeepSeek 关联 Word 使用教程:解锁办公新效率
  • [极客大挑战 2019]Havefun1
  • 基于Swift实现仿IOS闹钟
  • Threadlocal的实现原理
  • 线程池处理异常
  • RabbitMQ配置SSL证书
  • .NET 9.0 的 Blazor Web App 项目,进度条 <progress> 组件使用注意事项
  • 第J7周:对于ResNeXt-50算法的思考
  • 【第2章:神经网络基础与实现——2.3 多层感知机(MLP)的构建与调优技巧】
  • 【Elasticsearch】keyword分析器
  • 重生之我在异世界学编程之C语言:深入预处理篇(上)目录)
  • MySQL数据库误删恢复_mysql 数据 误删
  • SpringAI集成DeepSeek实战
  • 解决 THC/THC.h: No such file or directory 报错
  • S4D480 S4HANA 基于PDF的表单打印
  • 数组_移除元素
  • Vue2/Vue3分别如何使用Watch
  • C++从入门到实战(四)C++引用与inline,nullptr
  • Linux库制作与原理:【静态库】【动态库】【目标文件】【ELF文件】【ELF从形成到假造轮廓】【理解链接和加载】
  • 项目BUG