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

政安晨的AI大模型训练实践 六 - open-webui vLLM 运行

政安晨的个人主页:政安晨

欢迎 👍点赞✍评论⭐收藏

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

简单微调出来一个大语言模型后,需要运行它,虽然ollama很方便,也适合部署。但本地测试的话,还可以使用open-webui 和 vLLM这两个工具。

为了不取悦读者,请自己去查这两个工具是干啥用的,我这里只记录一些命令,做个自己运行的备忘即可。

创建一个虚拟环境方便安装:


conda create -n webtools python=3.11.5 -y

激活环境: 

conda activate webtools

安装 vLLM:

pip install vllm

安装完毕,运行。

还是简单介绍一下vLLM:

vLLM 是一款专为大语言模型(LLMs)推理设计的高效开源库,由 UC Berkeley 的研究人员开发。它致力于在保证推理质量的同时,显著提升推理速度,以下从多方面对其进行简单介绍:

核心特性

  1. 高速推理
    • vLLM 通过采用 PagedAttention 算法,有效解决了传统注意力机制中的内存碎片化问题。该算法将注意力计算过程进行分页处理,使得 GPU 内存的使用更加高效,从而在推理速度上取得了显著提升。与传统推理方式相比,vLLM 能够将推理速度提高 20 倍以上,大大缩短了模型响应时间。
  2. 服务优化
    • 支持连续 batching 技术,能够动态地对输入请求进行批处理。在处理多个用户请求时,vLLM 可以实时将这些请求组合成一个批次进行处理,充分利用 GPU 的并行计算能力,提高系统的整体吞吐量。
    • 提供了高效的推理服务接口,方便用户将其集成到各种应用中。无论是构建聊天机器人、智能客服还是其他基于大语言模型的应用,都可以借助 vLLM 快速搭建高性能的推理服务。
  3. 广泛的模型支持
    • vLLM 支持多种主流的大语言模型,如 LLaMA、LLaMA 2、Falcon、GPT - NeoX 等。这使得用户可以根据自己的需求选择合适的模型,并使用 vLLM 进行高效推理。

工作原理

  1. PagedAttention 算法:传统的注意力计算在处理变长序列时会产生大量的内存碎片化,导致 GPU 内存利用率低下。PagedAttention 算法将输入序列和注意力计算过程进行分页管理,使得每个页面可以独立地进行内存分配和计算,避免了内存碎片化问题,提高了 GPU 内存的使用效率。
  2. 连续批处理:vLLM 在运行时会不断监控输入请求队列,当有新的请求到来时,会动态地将其加入到当前正在处理的批次中。通过实时调整批次大小,充分利用 GPU 的计算资源,提高推理效率。

使用方式

  1. 安装:可以使用 pip 命令进行安装,具体命令为 pip install vllm
  2. 推理示例:以下是一个简单的使用示例,展示了如何使用 vLLM 进行文本生成:

python

from vllm import LLM, SamplingParams

# 创建 LLM 实例,指定要使用的模型
llm = LLM(model="facebook/opt - 125m")

# 定义采样参数,如温度、最大生成长度等
sampling_params = SamplingParams(temperature=0.8, top_p=0.95, max_tokens=100)

# 输入文本列表
prompts = ["Once upon a time", "In a far - away land"]

# 生成文本
outputs = llm.generate(prompts, sampling_params)

# 输出结果
for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")

应用场景

  • 聊天机器人:能够快速响应用户的提问,提供流畅的对话体验。
  • 智能写作辅助:在写作过程中,实时为用户生成相关的文本内容,提高写作效率。
  • 信息检索与问答系统:快速从大量文本中提取相关信息,回答用户的问题。

工具安装好之后,可以加载运行我上面文章训练的本地模型,并提供api服务:

vllm serve /home/tongyuzhou/aigc2/LlamaWork/DS-R1-1.5B-train

接着,使用该接口进行测试:

curl http://localhost:8000/v1/models

可以看到数据,也可在浏览器里进行(把自己的主机地址放上):

http://xxx.xxx.xx.x:8000/v1/models

可以得到模型数据。 

接下来,我们安装 open-webui

pip install open-webui

安装之后,你会发现,两个工具装在一个虚拟环境中,会有库存在冲突。

所以,重新建立虚拟环境,然后安装open-webui工具。

conda create -n openwebui python=3.12.6 -y

好,至此,安装完毕,没有报库的兼容错误了。


尝试把这两个工具组合起来使用:

1. 启动vllm(参照我上面的操作)

2. 启动open-webui

open-webui serve

深入玩法大家自己尝试吧。


http://www.kler.cn/a/543174.html

相关文章:

  • JWT(1)
  • 如何在 GitHub 上写博客
  • 视频理解新篇章:Mamba模型的探索与应用
  • 集成学习(一):从理论到实战(附代码)
  • 大数据系列 | 白话讲解大数据技术生态中Hadoop、Hive、Spark的关系介绍
  • AJAX XML技术详解
  • python自动化测试之Pytest断言及Allure报告定制
  • 跟着李沐老师学习深度学习(七)
  • 三角测量——用相机运动估计特征点的空间位置
  • JavaSE基本知识补充 -Map集合
  • DeepSeek与核货宝订货系统的协同进化:智能商业范式重构
  • AI大模型介绍yolo
  • P5:使用pytorch实现运动鞋识别
  • 碰一碰发视频源码技术开发,支持OEM
  • 蓝桥杯 Java B 组之排序算法(冒泡、选择、插入排序)
  • 如何在VSCode中免费使用DeepSeek R1:本地大模型编程助手全攻略
  • Visual Studio 使用 “Ctrl + /”键设置注释和取消注释
  • 【问】强学如何支持 迁移学习呢?
  • 使用Python爬虫获取淘宝Custom API接口数据
  • 极坐标 径向位置
  • DataBase【MySQL基础夯实使用说明(中)】
  • 数据集笔记:SINPA 新加坡停车场数量数据集
  • 国产编辑器EverEdit - 书签功能介绍
  • 大促备战中稳定性建设策略与总结
  • ffmpeg -buildconf
  • AI前端开发:赋能开发者,提升解决实际问题的能力