楼主可以试试看amd集成显卡跑directML pytorch,这个能比cpu快一些
先来列举几个可供本地使用与微调的大模型:
1:qwen2/qwen/qwen2.5:有0.5B,1B,2B,4B,7B等。
2:llama3/llama2:有2B,7B,8B,32B,70B等。
3:gemma2/gemma:有2B,7B,8B等。
再来说说B这个概念:
大模型的参数单位一般用“B”来表示,1B代表10亿参数。
普通家庭电脑(本人电脑举例:ddr4 8gb内存 i3 10105f cpu)来说,带动0.5B到2B没问题,到7B,8B变卡在往上....就带不动了。
不微调大模型只使用的话不吃gpu,更看重内存与cpu的性能。
进入主题:如何使用大模型
在github有一个开源软件:ollam
官网:奥拉马
选择linux使用命令行安装或者windows下载安装使用。
本人电脑为windows则以windows为示列:
首先是下载安装,这一点就不用多说了。
使用大模型这一步非常简单:
只需要在linux/windows命令行中输入: ollama run xxx(参照qwen2.5:1.5b "ollama run qwen2.5:1.5b")
带它下载完成便可以在命令行中对话了
其它包括web页面,网络接口等请看github ollama页面,这里只进行简单示列不做展示
GitHub - ollama/ollama:启动并运行 Llama 3.2、Mistral、Gemma 2 和其他大型语言模型。
顺带一提:以上要修改大模型存储地址(windows)需要修改环境变量
(标蓝处)
下一步:微调大模型,也是我当时摸索好久的困难的一步,稍有不对找错整天。
先不谈微调的工具...先配置环境(需要电脑带python环境)。
首先英伟达有一个开发工具:cuda toolkit
这东西.....需要读者自己去找了时间太久远搞忘了。(但大致是在官网根据自己cuda版本下载,需要梯子或者国外访问)
cmd键入:NVIDIA-smi 查看
接下来是安装: pytorch(pip安装)
好了....这一步足够你找半天问题详细解释和具体操作....实在是太长但简单来说:
上面这货有gpu 和 cpu两种,通过镜像站安装的大部分为cpu版。
检查方法为以下:
import torch print(torch.cuda.is_available()) # 是否可以用gpu False不能,True可以 print(torch.cuda.device_count()) # gpu数量, 0就是没有,1就是检测到了 print(torch.__version__) #结果X.X.X+cpu不行
安装为cpu的解决方法大致为:进入官网Start Locally | PyTorch下载pytorch。
不过具体的解决方法读者可以参考别人的博客:XXXXXXXXXXXXX_available()返回false——解决办法_cuda available false-CSDN博客
ok当以上顺利....下一步开始用LLaMA-Factory-main微调大模型
进入github 下载LLaMA-Factory-main:XXXXXXXXXXXXXXXXXX/hiyouga/LLaMA-Factory
不过....在:安装 - LLaMA Factory这上能找到LLaMA-Factory-main使用方法以及微调大模型环境配置的方法。
这里要说明的是:ollama中下载的大模型只能使用不能训练。
所以读者要去huggingface或者首页 · 魔搭社区上下载
在安装了LLaMA-Factory-main文件夹下(带有XXXXXXXX的文件夹)cmd输入:llamafactory-cli webui
等待一会会自动跳转进页面
如上,模型路径为你存放模型的路径
数据集选择一个自带的数据集使用默认参数点击开始按钮便可以开始微调了。
微调完可以在chat页面下加载模型并与它对话。
然后.....如何自定义数据集呢?
## Alpaca 格式
### 指令监督微调数据集
- [样例数据集](alpaca_zh_demo.json)
在指令监督微调时,`instruction` 列对应的内容会与 `input` 列对应的内容拼接后作为人类指令,即人类指令为 `instruction\ninput`。而 `output` 列对应的内容为模型回答。
如果指定,`system` 列对应的内容将被作为系统提示词。
`history` 列是由多个字符串二元组构成的列表,分别代表历史消息中每轮对话的指令和回答。注意在指令监督微调时,历史消息中的回答内容**也会被用于模型学习**。
```json
[
{
"instruction": "人类指令(必填)",
"input": "人类输入(选填)",
"output": "模型回答(必填)",
"system": "系统提示词(选填)",
"history": [
["第一轮指令(选填)", "第一轮回答(选填)"],
["第二轮指令(选填)", "第二轮回答(选填)"]
]
}
]
```
对于上述格式的数据,`dataset_info.json` 中的*数据集描述*应为:
```json
"数据集名称": {
"file_name": "data.json"
}
```
(摘自data路径下 README_XXXXX)
没错,就是在一个json文件中保存
[
{
"instruction": "你的名字",
"input": "",
"output": "cs1"
},
{
"instruction": "你的作用",
"input": "",
"output": "语言部分"
},
{
"instruction": "微调你的办法",
"input": "",
"output": "在data下保存json文件"
}
]
这样的文件(放在data路径下),并在dataset_info.json(data路径下)中添加
"你刚刚保存的json文件": {
"file_name": "data.json"
}
好了,接下来你就能在数据集列表中看到你保存的数据集并使用他了。
必须要注意的一点是:python不能读取(处理)带bom(带签名)的json文件。
你需要使用emedtior等文本工具保存无bom(签名)的编码格式。
(以后有时间在详细研究研究微调中参数和大模型的原理之类的吧,本篇到此结束。)
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。