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

使用 vllm 部署 Llama3-8b-Instruct

一、使用 vllm 部署 Llama3-8b-Instruct

在这里插入图片描述

  1. 交互式建模(PAI-DSW)资源地址:
https://github.com/vllm-project/vllm

vLLM 是一个用于大型语言模型(LLM)推理和服务的快速且易于使用的库。

vLLM 的快速特性包括:

  • 先进的服务吞吐量
  • 使用 PagedAttention 高效管理注意力机制的键和值内存
  • 对传入请求进行持续批处理
  • 使用 CUDA/HIP 图快速执行模型
  • 量化技术:GPTQ、AWQ、SqueezeLLM、FP8 KV 缓存
  • 优化的 CUDA 内核

二、下载llama3模型文件

/mnt/workspace路径下执行

mkdir models

/mnt/workspace/models路径下执行

pip install modelscope
git clone https://www.modelscope.cn/LLM-Research/Meta-Llama-3-8B-Instruct.git

使用 SHA-256 算法检查文件(可选)

shasum -a 256 model-00001-of-00004.safetensors
shasum -a 256 model-00002-of-00004.safetensors
shasum -a 256 model-00003-of-00004.safetensors
shasum -a 256 model-00004-of-00004.safetensors

2.1 安装vLLM

conda create -n vllm python=3.10
conda activate vllm
pip install vllm
pip install modelscope

2.2 模型推理

completion模式

  1. 服务部署
python -m vllm.entrypoints.openai.api_server --model /mnt/workspace/Meta-Llama-3-8B-Instruct --dtype auto --api-key 123456
  1. 服务测试 (vllm_completion_test.py
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1",api_key="123456",)
print("服务连接成功")
completion = client.completions.create(model="/mnt/workspace/Meta-Llama-3-8B-Instruct",prompt="北京是",max_tokens=128,
)
print("### 北京是: ")  
print("Completion result: ", completion)

另外一个terminal窗口执行

conda activate vllm
python vllm_completion_test.py

2.3 chat模式

  1. 服务部署
python -m vllm.entrypoints.openai.api_server --model /mnt/workspace/Meta-Llama-3-8B-Instruct --dtype auto --api-key 123456
  1. 服务测试(vllm_chat_test.py)
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1",    api_key="123456",
)
print("服务连接成功")
completion = client.chat.completions.create(model="/mnt/workspace/models/Meta-Llama-3-8B-Instruct",messages=[{"role": "system", "content": "你是一位智能助手."},{"role": "user", "content": "中国的首都是哪里?"}],max_tokens = 128,
)
print(completion.choices[0].message)

另外一个terminal窗口执行

python vllm_chat_test.py
http://www.xdnf.cn/news/3933.html

相关文章:

  • 【C++】grpc(一):安装
  • 【Python】Python好玩的第三方库之二维码生成,操作xlsx文件,以及音频控制器
  • 从零开始学Flink:开启实时计算的魔法之旅
  • CSS知识总结
  • Socket 编程 TCP
  • OpenGl实战笔记(1)基于qt5.15.2+mingw64+opengl绘制三角形
  • 解决因字段过长使MYSQL数据解析超时导致线上CPU告警问题
  • 技术犯规计入个人犯规吗·棒球1号位
  • [C语言]第一章-初识
  • 【Linux】深入理解Linux基础IO:从文件描述符到缓冲区设计
  • Java求职面试:Spring Boot与微服务的幽默探讨
  • 架构思维:构建高并发读服务_异构数据的同步一致性方案
  • C语言:文件操作
  • Cognito
  • Android基于绑定的控件用法
  • 文献分享:CH-CL配对和VL结构域的完整性影响IgG1分泌过程
  • XGBoost算法原理及Python实现
  • K230的ISP(图像信号处理器)通常支持多通道输出,常见配置为3个独立通道
  • CATIA高效工作指南——曲面设计篇(一)
  • 49. 字母异位词分组
  • 高等数学-第七版-下册 选做记录 习题10-2
  • 【C++11】其他一些新特性 | 右值引用 | 完美转发
  • Allegro23.1新功能之如何设置高压爬电间距规则操作指导
  • AtCoder Beginner Contest 404 C-G(无F)题解
  • Linux之用户管理
  • SimpleLive 1.8.1 |聚合虎牙、斗鱼、哔哩哔哩及抖音直播
  • 胶合目录解释
  • 【with 在长难句中有哪几种翻译?】
  • 洛谷 P2866 [USACO06NOV] Bad Hair Day S
  • UNet 改进(22):结合Transformer结构