一、 大模型本地部署及界面配置
1、Ollama安装
进入Ollama官网,安装Windows版本
安装成功后,在终端界面输出ollama按回车键,可以看到安装成功

另外,ollama默认安装在C盘,安装过程无法修改安装目录,然而它的大小有4个多GB。这里我们可以在从官网下载exe安装文件后,在安装文件夹下使用.\OllamaSetup.exe /DIR="D:\Program Files\Ollama"指令安装在指定位置,避免C盘爆满。
2、通过ollama下载deepseek-r1
进入Ollama官网,找到deepseek-r1的1.5b模型,找到对应的模型下载命令
在终端界面输入安装命令:ollama run deepseek-r1:1.5b
安装成功后可以在终端与deepseek-r1进行对话

3、安装anythingllm
进入anythingllm官网,安装Windows版本
安装成功后进行配置,选择ollama和对应的ollama model。
创建工作区,进去即可和大模型进行图形化对话。

二、 大模型优化方法
基于 transformers、peft 等框架,对 DeepSeek-r1 模型进行 Lora 微调。Lora 是一种高效微调方法。
1、环境配置
安装环境需要的包
pip install -r requirements.txt
2、数据准备
使用的微调数据形如:
将所构造的全部指令数据集huanhuan.json存放在根目录下

3、模型下载
下载待微调的大模型。因电脑无gpu,在服务器上搭建微调环境,所以无法使用本地ollama的大模型进行微调。需要进行模型的下载。
利用download.py脚本通过modelscope社区进行deepseek-r1大模型的下载。下载成功后,保存在dir文件夹。
4、LoRA微调
利用train.py进行lora微调。
训练流程:加载基础模型、数据集处理、配置LoRA参数、使用Trainer进行训练、保存LoRA模型。
得到训练好的lora模型

5、模型合并与转换
(1)模型合并
通过mergemod.py调用已经保存的lora模型与基座模型进行融合并保存,得到完整训练出的模型,保存在merge文件夹下。

(2)转换为gguf格式
下面将完整模型转换为可以部署在ollama的模型文件
下载llama.cpp工具
从https://github.com/ggml-org/llama.cpp下载好压缩包,上传到对应文件夹。
创建conda环境,这里注意python版本要大于3.10,下载requirements中需要的依赖。
利用工具将模型转换为gguf格式
python convert_hf_to_gguf.py /path/to/merge --outfile /path/to/output.gguf --outtype q8_0
(3)ollama本地部署微调模型
有了gguf格式的文件后,就可以利用它导入到ollama进行本地部署。
首先创建Modelfile文件,输入FROM ./output.gguf即可。
然后利用ollama创建模型,
ollama create 模型名称 -f Modelfile文件路径
使用ollama list可以看到刚刚创建的微调模型

三、 对话效果评估
通过基于原版小说剧本构建的数据集对模型进行微调,打造一个契合角色的个性化ai。利用《甄嬛传》剧本中所有关于转的台词和语句,基于deepseek-r1:1.5b进行LoRA微调得到模仿甄嬛语气的聊天语言模型。
使用deepseek-r1:1.5b得到的回答如下图:

使用微调后的大模型得到的回答如下图:

通过对比微调前后的模型回答可以看出,基于《甄嬛传》剧本进行LoRA微调后的模型显著提升了角色语气的契合度。原版模型(deepseek-r1:1.5b)的回答偏向通用政治性表述,缺乏角色个性;而微调后的模型则成功模仿了甄嬛的宫廷语境,用词委婉谦卑(如“臣妾”“无心之辈”),贴合剧中人物身份与情节设定。
四、 结论与展望
虽然看过各种各样的大模型微调论文,但一直没有自己动手试过。我想这次调优任务也不仅是一次作业,更是让我动手实践的好机会。
在面对众多的大模型调优方法时,我选择先从基础的有监督微调(Supervised Fine-Tuning,SFT)开始。首先第一个问题搭建环境,因为电脑没有GPU,所以我需要用组里的云服务器。第一次用这个服务器也遇到许多问题,比如文件上传失败,关闭作业环境又得重新搭建等等,在不断询问师兄和客服和各种尝试后最终才能完整的跑通计划中的每一步。在查阅各种资料的过程中,我也学到了很多,比如模型的下载可以用huggingface、本地ollama和modelscope社区等许多方法,LORA方法在代码上的实际体现,ubuntu命令的一些技巧和方法,远程ssh与pycharm连接等等。最终小模型的微调并没有取得多亮眼的表现,但这次尝试也让我可以背上这次的经验更有勇气去挑战后面的难关。
五、参考资料
1616

被折叠的 条评论
为什么被折叠?



