大模型微调

今天简单进行一个大模型的微调。

首先在之前的项目部署上线的文章里,我们白嫖了一个阿里云的服务器,今天我们就要用到他,没有看我文章的小伙伴,先看看怎么获取到阿里云的一台云服务器吧

我们来到魔搭社区www.modelscope.cn/,

先登陆账号,来到我的Notebook,启动GPU环境

没有关联阿里云的要关联一下。

启动完成之后,查看Notebook

之后我们来到这个界面,jupyterLab,这是一个谷歌开源的一个在线的交互式开发环境

之后我们打开终端

接下来我们要把GitHub - hiyouga/LLaMA-Factory: Unified Efficient Fine-Tuning of 100+ LLMs & VLMs (ACL 2024)拉取下来,他是一个专门的大模型微调工具。

如果一次没拉取下来,多重试几次(可以挂个梯子尝试一下),博主此时就失败了。

拉取好之后就是这样,会多出一个文件

打开文件,里面有一个readme-zh的"说明书"

date文件夹里面有很多json文件,就是内置的一些数据集

好,接下来我们回到终端,cd去到 LLaMA-Factory/

来到这个目录下面,我们输入指令pip install -e ".[torch,metrics]",给这个项目装一个依赖

如果出现下面这个错误,是因为包管理工具版本不够,我们就运行一下pip install --upgrade pip,

然后再运行pip install -e ".[torch,metrics]"

安装成功之后就是这样的

我看可以运行llamafactory-cli version,查看版本来确保我们依赖安装成功

如果出现下面这种错误,是因为vllm是阿里云远程服务器内置的一个环境,他也是一个大模型的训练环境,魔搭平台给我们内置了这个环境,但现在我们不打算用这个环境,而是用huggingface这个环境,而有个环境就叫huggingface,所以现在有冲突。

那我们先运行 pip uninstall vllm,把环境卸载掉,再执行 pip install vllm (用于做高效推理的工具)

之后我们执行llamafactory-cli version可以查到版本就ok了

然后我们执行llamafactory-cli webui,进入给的地址,这个地址给我们提供了一个可视化微调界面

模型加载完毕可以发个消息测试一下。

现在开始,我们要微调他了

点击训练,里面有一个数据集选项

现在我们自己写入一个数据集

在图示data文件夹下创建一个json文件,点击new file

点击editor,在里面增加数据

json 复制代码
[     
    {       
        "instruction": "解释量子纠缠现象",
        "input": "",
        "output": "量子纠缠是量子力学中的一种现象,当两个或多个粒子相互作用后,它们的量子状态会相互关联,即使这些粒子被分隔到很远的距离,对一个粒子的测量会立即影响另一个粒子的状态。这种现象被爱因斯坦称为'鬼魅般的超距作用'。量子纠缠是现代量子计算和量子通信的基础。"     
    },
    {
        "instruction": "光合作用的基本过程是什么?",
        "input": "",
        "output": "光合作用是植物、藻类和某些细菌利用光能将二氧化碳和水转化为有机物(主要是葡萄糖)和氧气的过程。主要分为光反应和暗反应两个阶段:1) 光反应发生在叶绿体的类囊体膜上,通过光系统II和I捕获光能,分解水分子产生氧气,并生成ATP和NADPH;2) 暗反应(卡尔文循环)发生在叶绿体基质中,利用ATP和NADPH将二氧化碳固定并还原为葡萄糖。"
    }
]

保存之后能看到多了两条数据

接下来我们要让我们的数据生效,记得保存

此时我们就能在数据集里面找到我们的数据

不要停掉之前的终端,新开一个,粘贴改了之后的命令运行

成功之后长这样

出现以下错误,可能是去错了目录

要在下面这个目录下运行命令

然后开始

回到目录

这个lora就是训练出的大模型

接下来我们需要把我们的deepseek基座模型加上我们的微调模型合并一下,得到最终的模型。我们选择export

检查路径下是我们最近微调的模型,可以在chat和他们聊天

终端地址:

导出成功后,会出现一个merge文件夹

标蓝的就是合并之后的新模型

然后就可以将标蓝的文件上传到hugging face(因为我们是在远程服务器上面操作的,没法直接下载到本地),然后下载到本地,之后用ollama去启动它。

相关推荐
—Qeyser2 小时前
用 Deepseek 写的uniapp血型遗传查询工具
前端·javascript·ai·chatgpt·uni-app·deepseek
codingandsleeping2 小时前
HTTP1.0、1.1、2.0 的区别
前端·网络协议·http
小满blue2 小时前
uniapp实现目录树效果,异步加载数据
前端·uni-app
天天扭码4 小时前
零基础 | 入门前端必备技巧——使用 DOM 操作插入 HTML 元素
前端·javascript·dom
咖啡虫4 小时前
css中的3d使用:深入理解 CSS Perspective 与 Transform-Style
前端·css·3d
拉不动的猪5 小时前
设计模式之------策略模式
前端·javascript·面试
旭久5 小时前
react+Tesseract.js实现前端拍照获取/选择文件等文字识别OCR
前端·javascript·react.js
独行soc5 小时前
2025年常见渗透测试面试题-红队面试宝典下(题目+回答)
linux·运维·服务器·前端·面试·职场和发展·csrf
uhakadotcom5 小时前
Google Earth Engine 机器学习入门:基础知识与实用示例详解
前端·javascript·面试
麓殇⊙5 小时前
Vue--组件练习案例
前端·javascript·vue.js