Qwen2.5-0.5B-Instruct搭建

news/2024/11/19 16:17:00/文章来源:https://www.cnblogs.com/minseo/p/18555041

模型地址
https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct

  1. 简介
    通义千问新一代开源模型Qwen2.5,旗舰模型Qwen2.5-72B性能超越Llama 405B,再登全球开源大模型王座。Qwen2.5全系列涵盖多个尺寸的大语言模型、多模态模型、数学模型和代码模型,每个尺寸都有基础版本、指令跟随版本、量化版本,总计上架100多个模型,刷新业界纪录。
  2. 环境查看
    系统环境
# lsb_release -a
No LSB modules are available.
Distributor ID:Ubuntu
Description:Ubuntu 22.04.5 LTS
Release:22.04
Codename:jammy
# uname -a
Linux AiServer003187 6.8.0-47-generic #47~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Oct  2 16:16:55 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

软件环境

# nvidia-smi 
Tue Nov 19 15:36:19 2024       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.120                Driver Version: 550.120        CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4090        Off |   00000000:18:00.0 Off |                  Off |
| 30%   32C    P8             30W /  450W |   18580MiB /  24564MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA GeForce RTX 4090        Off |   00000000:3B:00.0 Off |                  Off |
| 30%   31C    P8             35W /  450W |    1366MiB /  24564MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   2  NVIDIA GeForce RTX 4090        Off |   00000000:86:00.0 Off |                  Off |
| 30%   32C    P8             19W /  450W |     524MiB /  24564MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------++-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A      2623      G   /usr/lib/xorg/Xorg                              4MiB |
|    0   N/A  N/A    954745      C   /root/anaconda3/bin/python                    808MiB |
|    0   N/A  N/A   1677511      C   /usr/local/bin/python                       17736MiB |
|    1   N/A  N/A      2623      G   /usr/lib/xorg/Xorg                              4MiB |
|    1   N/A  N/A     28363      C   python                                        492MiB |
|    1   N/A  N/A    954745      C   /root/anaconda3/bin/python                    852MiB |
|    2   N/A  N/A      2623      G   /usr/lib/xorg/Xorg                              4MiB |
|    2   N/A  N/A    954745      C   /root/anaconda3/bin/python                    506MiB |
+-----------------------------------------------------------------------------------------+
#  nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Feb_27_16:19:38_PST_2024
Cuda compilation tools, release 12.4, V12.4.99
Build cuda_12.4.r12.4/compiler.33961263_0
  1. 搭建
  • 创建conda虚拟环境
# conda create -n qwen python=3.12
  • 示例代码
# cat main_test.py
odel_name = "model/Qwen2.5-0.5B-Instruct"model = AutoModelForCausalLM.from_pretrained(model_name,torch_dtype="auto",device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)prompt = "Give me a short introduction to large language model."
#prompt = "你是谁"
messages = [{"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."},{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(messages,tokenize=False,add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)generated_ids = model.generate(**model_inputs,max_new_tokens=512
)
generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)

运行输出
运行会下载模型以及依赖
image

手动下载模型

# pip install modelscope
# modelscope download --model Qwen/Qwen2.5-0.5B-Instruct
  • 兼容OpenAI接口
    安装软件及依赖
# pip install fastapi
# pip install transformers
# pip install torch
# pip install 'accelerate>=0.26.0'

主程序

# cat main.py
rom fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
from typing import List# FastAPI 实例
app = FastAPI()# 定义请求体结构
class Message(BaseModel):role: strcontent: strclass RequestBody(BaseModel):model: strmessages: List[Message]max_tokens: int = 100# 本地模型路径
local_model_path = "model/Qwen2.5-0.5B-Instruct"  # 替换为你的本地模型路径# 加载本地模型和 tokenizer
model = AutoModelForCausalLM.from_pretrained(local_model_path,torch_dtype=torch.float16,  # 根据实际硬件环境调整device_map="auto"           # 根据设备自动分配
)
tokenizer = AutoTokenizer.from_pretrained(local_model_path)# 生成文本的 API 路由
@app.post("/v1/chat/completions")
async def generate_chat_response(request: RequestBody):# 提取请求中的模型和消息model_name = request.modelmessages = request.messagesmax_tokens = request.max_tokens# 构造消息格式(转换为 OpenAI 的格式)# 使用点语法来访问 Message 对象的属性combined_message = "\n".join([f"{message.role}: {message.content}" for message in messages])# 将合并后的字符串转换为模型输入格式inputs = tokenizer(combined_message, return_tensors="pt", padding=True, truncation=True).to(model.device)try:# 生成模型输出generated_ids = model.generate(**inputs,max_new_tokens=max_tokens)# 解码输出response = tokenizer.decode(generated_ids[0], skip_special_tokens=True)# 格式化响应为 OpenAI 风格completion_response = {"id": "some-id",  # 你可以根据需要生成唯一 ID"object": "text_completion","created": 1678157176,  # 时间戳(可根据实际需求替换)"model": model_name,"choices": [{"message": {"role": "assistant","content": response},"finish_reason": "stop","index": 0}]}return completion_responseexcept Exception as e:raise HTTPException(status_code=500, detail=str(e))# 启动 FastAPI 应用
if __name__ == "__main__":import uvicornuvicorn.run(app, host="0.0.0.0", port=8000)

启动

(qwen)root@# python main.py

image
curl 发送POST请求测试

# curl -X 'POST'   'http://127.0.0.1:8000/v1/chat/completions'   -H 'Content-Type: application/json'   -d '{"model": "Qwen/Qwen2.5-0.5B-Instruct","messages": [{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "你是谁"}],"max_tokens": 100
}'

响应
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/836859.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pod环境安装(Mac)

原文链接:https://blog.csdn.net/huwan12345/article/details/135088993 背景知识: 安装pods需要依赖 ruby 环境,而安装 ruby 需要借助能够管理不同版本的 ruby工具 rvm,安装 rvm 又需要借助工具 Homebrew,Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更…

CI配置项,IT服务的关键要素

随着现今数字经济的不断发展,逐渐成熟的IT 基础设施已不再是简单的竞争优势,而已成为企业生存和发展的基石。然而,仅仅拥有强大的基础设施是不够的。为了保障 IT 服务的平稳运行和持续交付,企业还需要重点关注 IT 服务的核心构建模块——配置项(Configuration Item,CI)。…

类的组合、继承、模板类、标准库

任务2 GradeCalc.hpp1 #include <iostream>2 #include <vector>3 #include <string>4 #include <algorithm>5 #include <numeric>6 #include <iomanip>7 8 using std::vector;9 using std::string;10 using std::cin;11 using std::cout;1…

cmu15545笔记-查询优化(Query Optimization)

目录概述Heuristics / RulesCost-based SearchSingle relationMutiple relationGenertive / Bottom-UpTransformation / Top-DownNested sub-queriesDecomposing QueriesExpression/Queries RewritingStatistics 概述 数据库系统的执行流程:从优化器到磁盘所设计的步骤:查询优…

构建企业级数据分析 Agent:架构设计与实现

引言 数据分析 Agent 是现代企业数据栈中的重要组件,它能够自动化数据分析流程,提供智能化的数据洞察。1. 数据处理工具链设计 数据处理工具链是整个分析系统的基础设施,它决定了系统处理数据的能力和效率。一个优秀的工具链设计应该具备:良好的可扩展性:能够轻松添加新的数据…

空间计算、物理计算、实时仿真与创造拥有「自主行为」的小狗 | 播客《编码人声》

「编码人声」是由「RTE开发者社区」策划的一档播客节目,关注行业发展变革、开发者职涯发展、技术突破以及创业创新,由开发者来分享开发者眼中的工作与生活。虚拟世界与现实世界的界限逐渐模糊,已然成为不争的事实。但究竟哪些曾经的幻想已然照进现实,又有哪些挑战依然横亘眼…

ABB机械手维修-运动控制

ABB机械手运动控制ABB机械手的运动控制主要通过其先进的控制系统实现。ABB机械手具有多种运动模式,包括单轴运动、线性运动和重定位运动。在进行手动操纵前,需要将工作模式档位切换至手动减速模式。 - 单轴运动:也称为关节运动,是对机器人的各个关节轴进行单独控制移动操作…

不可思议!7、8 年外包进了国企!!

大家好,我是R哥。 今天分享一个非常「难以置信」的辅导案例,一个「双非二本」的兄弟从毕业就开始干外包,一直干了 7、8 年外包,从外包离职后,经过我们几个月的面试辅导,最终去了某国企,还是待遇最好的 10 家国企之一。 这兄弟是 5 月份加入面试辅导的,距离他离职已经个…

制造业怎么用好仓库管理系统?仓库管理系统在制造业中的应用实例

随着科技的发展,制造企业对仓库管理的要求也越来越高。大家都在想,怎么能用智能化、自动化的方法来提高仓库的工作效率,减少库存积压,同时让客户更满意。这可是企业发展的一个很关键的问题。这篇文章会通过几个实际的例子,详细讲讲WMS在制造业里是怎么发挥作用的。目的就是…

如何快速推进项目?这些企业用了哪些项目管理工具?

在当今复杂的商业环境中,项目管理不仅仅是管理任务和时间的工具,它已经成为推动团队协作、提升企业执行力以及实现战略目标的核心环节。随着数字化转型的推进,越来越多的企业和团队开始借助智能化的项目管理软件来优化资源配置、提升工作效率、降低风险,最终实现项目的成功…

单变量微积分学习笔记:函数图像的伸缩变换(15)

平移 x:左加右减y:上加下减伸缩\(af(bx+c)+d\) \(x_2=bx+c\),相当于 \(x\) 轴变为原来的 \(\frac{1}{b}\) 后再向左移动 \(c\) \(x=\frac{x_2-c}{b}\) \(y_2=ay+d\),相当于 \(y\) 轴变为原来的 \(\frac{1}{a}\) 后再向上移动 \(d\) \(y=\frac{y_2-d}{c}\)

设置数据库环境变量 win10

方法 1: 使用系统设置界面打开系统属性:在桌面上,右键点击“此电脑”或“我的电脑”,选择“属性”。 在打开的窗口中,点击“高级系统设置”。打开环境变量设置:在“系统属性”窗口中,点击“高级”选项卡下的“环境变量”按钮。设置环境变量:在“环境变量”窗口中,你会看…