LLM大模型本地部署与预训练微调

以通义千问-1_8B-Chat为例,按照官方教程,简单介绍如何将模型进行本地CPU部署以及预训练微调:
1、环境条件:Linux 24G内存左右
2、本地部署:
提前安装好git跟git lfs,否则可能拉取不到模型文件,git lfs主要用于大文件拉取。
拉取项目文件:

git clone https://github.com/QwenLM/Qwen.git

创建环境,建议单独创建一个新环境,避免与现有环境冲突,创建后要先安装pytorch,再安装项目依赖模块。

# 创建环境
conda create -n llm python==3.10.4
# 激活环境
conda activate llm 
# 安装pytorch 因为没有GPU 安装CPU版本即可
conda install pytorch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 cpuonly -c pytorch
# 再安装项目依赖
pip install -r requirements.txt 

项目文件以及环境安装好后,继续拉取模型文件,由于内存有限,拉取1.8B即可
拉取模型:

git clone https://www.modelscope.cn/qwen/Qwen-1_8B-Chat.git qwen_model

调用官方给的web_demo.py 进行本地推理,由于没有GPU使用CPU即可:

python web_demo.py --server-name 0.0.0.0 -c qwen_model --cpu-only

运行成功后出现模型对话地址:
在这里插入图片描述
打开地址,如果0.0.0.0无法打开,更换为主机的地址或者自定义的域名,比如我的主机域名为:node1,在浏览器输入:node1:8000即可:
在这里插入图片描述
至此本地化简单部署结束,此时我们使用还是官方训练好的模型,接下来,我们使用自定义数据,对模型进行微调,使其变为我们自己想要训练的模型:
参照官方文档:https://github.com/QwenLM/Qwen/blob/main/README_CN.md
Qwen模型的训练数据格式为:

[{"id": "identity_0","conversations": [{"from": "user","value": "你好"},{"from": "assistant","value": "我是一个语言模型,我叫通义千问。"}]}
]

按照模型的数据格式构建好自己的数据集,这里,我们将回答替换为是我们创造了Qwen模型,让它按照预设输出回答:
在这里插入图片描述
数据集构建后,使用项目文件:finetune/finetune_lora_single_gpu.sh 进行lora微调:
在这里插入图片描述

# 使用自定义数据集对模型进行微调bash finetune/finetune_lora_single_gpu.sh -m qwen_model/ -d train_data_law.json

模型微调过程会使用CPU,且占用内存大概22G左右;如果遇到内存不足,重启主机释放内存后再尝试训练,模型训练完会在当前路径生成一个 output_qwen文件夹,直接运行可能会报错,需要把原来模型里面的generation_config.json文件复制到output_qwen文件夹下面:在这里插入图片描述
调用微调好的模型:

python web_demo.py --server-name 0.0.0.0 -c output_qwen/ --cpu-only

再次跟它对话,可以正常返回微调结果:
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

SQL面试题练习 —— 求连续段的起始位置和结束位置

目录 1 题目2 建表语句3 题解 题目来源:拼多多。 1 题目 有一张表t_id记录了id,id不重复,但是会存在间断,求出连续段的起始位置和结束位置。 样例数据 ----- | id | ----- | 1 | | 2 | | 3 | | 5 | | 6 | | 8 | | …

【教程】DPW 325T FPGA板卡程序下载与固化全攻略

到底什么是固化??? 在开发板领域,"固化"通常指的是将软件或操作系统的镜像文件烧录(Flash)到开发板的存储介质上,使其成为开发板启动时加载的系统。这个过程可以确保开发板在启动时能…

从单点到全景:视频汇聚/安防监控EasyCVR全景视频监控技术的演进之路

在当今日新月异的科技浪潮中,安防监控领域的技术发展日新月异,全景摄像机便是这一领域的杰出代表。它以其独特的360度无死角监控能力,为各行各业提供了前所未有的安全保障,成为现代安防体系中的重要组成部分。 一、全景摄像机的技…

【SpringMVC】第1-7章

第1章 初始SpringMVC 1.1 学习本套教程前的知识储备 JavaSEHTMLCSSJavaScriptVueAJAX axiosThymeleafServletMavenSpring 1.2 什么是MVC MVC架构模式相关课程,在老杜的JavaWeb课程中已经详细的讲解了,如果没有学过的,可以看这个视频&…

抖音微短剧小程序平台:源码搭建与广告回传技术详解

抖音微短剧小程序平台:源码搭建与广告回传技术详解 在数字化时代,短视频已成为大众娱乐生活的重要组成部分。抖音微短剧小程序平台,作为这一趋势的佼佼者,不仅为用户提供了丰富多样的短视频内容,还为创作者和广告主提…

当下为什么越来越多的企业选择产业园区,而不是写字楼?

随着经济形势的变化和各行业的升级转型,我们发现越来越多的企业选择扎根产业园而非传统的写字楼,这一现象背后真正的原因是什么呢?今天我们就站在企业自身发展的角度,全维度对比一下产业园与传统写字楼的区别,看是否能…

参加六西格玛绿带培训是投资未来,还是花冤枉钱?

是否值得花费资金参加六西格玛绿带培训,取决于多个因素。 从积极的方面来看,参加六西格玛绿带培训具有以下潜在价值: 1. 提升专业技能:使您掌握一套系统的问题解决方法和流程改进工具,有助于在工作中更高效地解决复杂…

代码随想录算法训练营:14/60

非科班学习算法day14 | LeetCode266:翻转二叉树 ,Leetcode101: 对称二叉树,Leetcode100:相同的的树 ,LeetCode572:另一颗树的子树,LeetCode104:二叉树的最大深度,LeetCode559:N叉树的最大深度 目…

CesiumJS【Basic】- #017 精灵动画的渲染

文章目录 精灵动画的渲染1 目标2 实现3 资源文件精灵动画的渲染 1 目标 完成动画精灵图(Animated Sprite Sheet)的渲染 2 实现 import * as Cesium from "cesium";const viewer = new Cesium.

SDK 程序卡在 AXI DMA 配置 (XAxiDma_CfgInitialize)的解决方法

在进行 AXI DMA 配置 时候代码一直卡在XAxiDma_CfgInitialize函数出不来,也没有打印报错。 /* Initialize the XAxiDma device.*/CfgPtr XAxiDma_LookupConfig(DeviceId);if (!CfgPtr) {xil_printf("No config found for %d\r\n", DeviceId);return XST_…

Ubuntu安装指定内核版本教程

Ubuntu安装内核 1.查看当前os已安装的内核 $sudo dpkg --get-selections |grep linux-image linux-image-5.10.0-1013-oem install linux-image-5.11.0-27-generic install linux-image-5.11.0-41-generic install …

ResNet-50算法

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、理论知识储备 1.CNN算法发展 AlexNet是2012年ImageNet竞赛中,由Alex Krizhevsky和Ilya Sutskever提出,在2012年ImageNet竞赛中&a…

头歌——机器学习——支持向量机案例

第1关:基于支持向量机模型的应用案例 任务描述 本关任务:编写一个基于支持向量机模型的应用案例。 相关知识 在本应用案例中,我们借助一个具体的实际问题,来完整地实现基于支持向量机模型的开发应用。在此训练中,我…

运筹系列93:VRP精确算法

1. MTZ模型 MTZ是Miller-Tucker-Zemlin inequalities的缩写。除了定义是否用到边 x i j x_{ij} xij​外,还需要定义一个 u i u_i ui​用来表示此时车辆的当前载货量。注意这里x变量需要定义为有向。 这里定义为pickup问题,代码为: using Ju…

数据库系统概论-第11章并发控制

允许多个用户同时使用同一个数据库的数据库系统称为多用户数据库系统。 事务可以一个一个地中行执行,即每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行。 单处理机系统中,事务的并行执行实际上是这些并行事务的并行操…

windows下载jdk并安装步骤(保姆级教程)

一、下载jdk 下载地址: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二、双击下载好的jdk 更改安装目录然后点击下一步 然后会弹出jre的安装,需要选择路径(注意:这里的路径必须跟前面的jdk在…

ocr数据不够,怎么造数据

1.确定特定字体类型; 2.收集合适的图片作为背景 3.在背景图上填写特定字体的字符内容 1)字体无法确认时怎么办? 方法一:可以将文本行裁剪出来去网站上确认,网站链接:字体识别-在线扫一扫图片找字体-搜字…

将huggingface的大模型转换为safetensor格式

很多huggingface的大语言模型都是pytorch的格式,但是mindie需要safetensor格式,另外mindieservice加载原始的baichuan2-13b的模型出错,后来排查是bfloat16数据格式的问题,所以这次转换要一次性转为float16的格式。 上代码&#x…

计算机网络:如何隐藏真实的IP和MAC地址?

目录 一、什么是MAC地址二、什么是IP地址三、如何隐藏真实的MAC地址四、如何隐藏真实的IP地址 一、什么是MAC地址 MAC地址,全称为媒体访问控制地址(Media Access Control Address),是一种用于网络通信的唯一标识符。它是由IEEE 8…

PLC网关如何选择?plc网关作用-天拓四方

一、PLC网关在工业自动化领域的重要性和作用 PLC网关在工业自动化领域的重要性和作用不言而喻。作为工业自动化系统的重要组成部分,PLC网关起到了关键的桥梁作用,实现了PLC与其他设备、系统之间的数据传输和通信。 首先,PLC网关的重要性体现…