用 ollama 训练 DeepSeek—R1
背景
最近在学习如何从0到1生成一个自己独有的AI模型,主要是对未来市场的观望:
在未来,每个岗位都有一个独有的AI模型作为辅助,类似assistant的存在,它可以以宿主的思维来帮助解决大多数杂糅重复的工作。
那么如何训练这样的专有模型,就是一件非常值得深入了解的事情。
探索
目前我了解到市面上有两个模型管理平台,类似github管理代码一样,一个是:Ollama、一个是Huggingface。
而Ollama有自己的客户端可以使用,并且界面看上去更加符合我的审美,虽然 huggingface看上去更加庞大点儿,它们的区别就像facebook和Instagram,很遗憾,我喜欢Instagram,所以我选择了 Ollama深入了解。
训练步骤
1. 下载Ollama客户端
进入官网 Ollama下载适合自己的客户端文件。并且安装。
2. 按提示安装 model
在安装完之后,ollama会提醒用户执行两个操作:一个是全局安装 ollama 命令行工具、另一个是安装 llama3.2 模型。我们按步骤执行即可。
3. 安装想要的model
因为本篇文章目的是训练 deepseek-R1 模型,所以我们可以进入官方模型页面进行下载:我这里选择的是 5b蒸馏版本。
ollama run deepseek-r1:1.5b
4. 微调前的准备
这一步需要执行两个步骤,一个是把ollama服务跑起来,另一个是创建训练任务。
1 | ollama serve // 运行服务 |
my_finetuned_model:微调任务名称
/path/to/data.txt:微调模型保存路径
5. 开始训练
开始训练上文创建的训练任务
1 | ollama train my_finetuned_model |
- Ollama 会自动处理模型的加载、数据的读取和训练过程。
- 训练过程中,你可以通过 Ollama 的日志查看进度。
6. 模型评估
在训练任务结束之后,我们可以通过以下命令来测试训练结果是否符合预期,如果结果不理想的话可以调整训练参数,如:学习率、训练轮数等,然后重新训练。
1 | ollama run my_finetuned_model "Your test prompt here" |
7. 保存并导出模型
由于平时使用的场景 tensorflow偏多,这里就以 SavedModel 格式或 Keras 模型格式作为范本来讲解。
a. 安装必要的依赖库
1 | pip install tensorflow tensorflowjs |
b. 导出脚本编写
1 | import torch |
c. 将tensorflow模型转换为 tensorflowjs模型
使用 tensorflowjs_converter 工具将 TensorFlow SavedModel 转换为 TensorFlow.js 格式。运行以下命令:
1 | tensorflowjs_converter --input_format=tf_saved_model /path/to/tf_model /path/to/tfjs_model |
8. 在tensorflowjs中使用导出的模型
a. 在浏览器中运行
1 | ... more code |
b. 在nodejs 中运行
1 | const tf = require('@tensorflow/tfjs-node'); |
参考文档
用 ollama 训练 DeepSeek—R1