通过ollama(modelfile)微调deepseek,制作自己的大模型

Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。

这个是之前发过的博文,ollama的基础使用

本地部署deepseek (ollama简单使用方法,含网盘下载链接)-CSDN博客

ollama下载网盘链接(访问密码:7360)

https://url57.ctfile.com/f/45223957-1454403034-07c955?p=7360

deepseek现在是非常火爆,相信大家应该也都尝试本地部署了。部署完之后,想要开源模型有更高的定制化,该怎么办呢?这下可以用到ollmam终端modelfile。

操作方法:

首先可以先执行指令查看模型的modelfile的信息(以deepseek-r1:1.5为例)
ollama show deepseek-r1:1.5b --modelfile
 如图,图片上半部分上面给出了modelfile的模板,下半部分LICENSE是许可证信息。 

我们在D盘根目录下下创建名为Modelfile的空白文件

接下来就是在空白文件内写配置信息 (用记事本就可以)
下面这个是我写的一个示例模板
FROM deepseek-r1:1.5b
TEMPLATE """[INST] <>{
  
  { .System }}<>

{
  
  { .Prompt }} [/INST]
"""
PARAMETER temperature 0.7
PARAMETER top_k 60
PARAMETER top_p 0.5
PARAMETER stop "[INST]"
PARAMETER stop "[/INST]"
PARAMETER stop "<>"
PARAMETER stop "<>"
SYSTEM """
你的名字叫鹤年同学,专精编程领域解决问题。
"""
  • FROM:指定使用 DeepSeek-r1:1.5b 版本。
  • TEMPLAT:定义了生成文本的模板格式。(便于下面定义SYSTEM)
  • [INST] <>{ { .System }}<>:这部分表示在生成的文本开头插入一个 [INST] 标记,然后插入系统指令(.System),最后插入一个 <> 分隔符。
  • { { .Prompt }} [/INST]:这部分表示插入用户提供的提示(.Prompt),并在结尾插入一个 [/INST] 标记。

  • temperature: 含义:控制生成文本的随机性。 值:0.7,表示生成的文本有一定的随机性,但不会过于离谱。

  • top_k: 含义:在生成文本时,只从概率最高的 k 个词中选择下一个词。 值:60,表示从概率最高的 60 个词中选择下一个词。

  • top_p: 含义:在生成文本时,只从累积概率达到 p 的词中选择下一个词。 值:0.5,表示从累积概率达到 50% 的词中选择下一个词。

  • PARAMETER stop :定义了生成文本时的停止标记。

  • [INST][/INST]:这两个标记用于指示指令的开始和结束。

  • <>:这个标记可能用于分隔不同的部分或表示结束。

  • SYSTEM:定义了系统指令,用于设置模型的初始行为和角色.

 写完之后,打开cmd 进入D盘生成我们的模型。(demo换为你要起的名字)
输入下面指令:
D:

ollama create demo -f Modelfile

创建完成之后我们查询一下模型列表验证一下
ollama list
有我们创建的模型就是成功了
运行模型 ollama run demo 进行模型测试,可以看到我们定义初始行为和角色的效果达到了。

接下来就可以进行愉快的对话了!!!

最后如果需要删除模型可以运行rm指令(demo替换为要删除的模型)

ollama rm demo

这次分享就到这里了!如果文章存在什么错误,欢迎各位大佬指正!!

<think>好的,用户想了解如何使用Ollama和Anaconda这两个工具来微调DeepSeek模型。首先,我需要确认自己对这两个工具的理解是否正确。 Ollama是一个用于本地运行和部署大型语言模型的工具,支持多种模型,包括Llama、Mistral等。而Anaconda是Python的环境管理工具,常用于管理依赖和虚拟环境。微调模型通常需要准备数据集、调整参数、训练和评估这些步骤。 接下来,我需要考虑用户可能的需求。用户可能已经有一定的技术背景,想在自己的机器上微调DeepSeek模型,但可能对具体步骤不太清楚。需要分步骤说明,确保每个环节都清晰。 首先,安装Ollama和Anaconda是基础步骤。Ollama的安装比较简单,官网提供了不同系统的安装命令。Anaconda的安装也是常规流程,安装后需要创建虚拟环境,避免依赖冲突。 然后,准备微调数据。用户可能需要指导如何格式化数据集,比如使用JSON文件,并给出示例结构。这部分需要具体,让用户知道数据应该包含指令和回复。 接下来是模型下载。Ollama支持直接拉取模型,但DeepSeek可能需要特定的模型文件,比如gguf格式。需要确认DeepSeek是否有现成的模型可供Ollama使用,或者是否需要转换。如果用户需要转换,可能需要使用llama.cpp等工具,但这里可能需要简化步骤,避免用户困惑。 然后是微调部分。使用Transformers库和Peft库进行参数高效微调。需要提到加载模型、准备训练参数、使用Trainer进行训练。这里需要确保代码示例正确,比如模型名称、数据集路径等是否正确替换。 保存和合并模型是后续步骤,需要指导用户如何保存适配器并合并到基础模型中,以便后续使用。 最后,使用Ollama部署微调后的模型。需要说明如何创建Modelfile,并加载合并后的模型文件。可能遇到的问题,比如模型格式是否兼容Ollama,需要提醒用户注意。 可能的误区包括:Ollama是否直接支持微调后的模型,或者是否需要转换为支持的格式。此外,数据集的准备可能需要更多细节,比如数据清洗和格式转换工具。用户可能没有GPU资源,需要提到是否可以使用CPU训练,但可能会很慢。 需要验证步骤是否正确,比如检查Ollama的模型加载是否成功,训练过程中的损失是否下降。此外,提醒用户根据任务调整超参数,比如学习率、训练轮数等。 总结来说,步骤分为环境准备、数据准备、模型下载、微调、部署。需要确保每个步骤的指令准确,并给出示例代码,帮助用户逐步操作。同时,指出可能的注意事项,比如资源要求、模型兼容性等,确保用户能够顺利执行。</think>以下是使用Ollama和Anaconda微调DeepSeek模型的简明指南(分步说明): ------------------- ### 一、环境准备 1. **安装Ollama** ```bash curl -fsSL https://ollama.com/install.sh | sh ``` 2. **配置Anaconda环境** ```bash conda create -n deepseek_fine_tune python=3.10 conda activate deepseek_fine_tune pip install transformers datasets peft accelerate ``` ------------------- ### 二、数据准备(示例) 创建`dataset.json`文件: ```json [ {"instruction": "解释量子纠缠", "input": "", "output": "量子纠缠是指..."}, {"instruction": "写一首春天的诗", "input": "要求押韵", "output": "春风拂面桃花笑..."} ] ``` ------------------- ### 三、模型获取 ```bash ollama pull deepseek-7b # 根据实际模型名称调整 ``` ------------------- ### 四、微调实现(关键代码) ```python from transformers import AutoModelForCausalLM, TrainingArguments, Trainer model = AutoModelForCausalLM.from_pretrained("deepseek-ai/deepseek-7b") trainer = Trainer( model=model, args=TrainingArguments( output_dir="./results", per_device_train_batch_size=4, num_train_epochs=3, learning_rate=2e-5 ), train_dataset=load_dataset("json", data_files="dataset.json")["train"] ) trainer.train() ``` ------------------- ### 五、模型部署 1. 创建`Modelfile`: ```dockerfile FROM ./merged_model PARAMETER num_ctx 4096 ``` 2. 部署模型: ```bash ollama create my-deepseek -f Modelfile ollama run my-deepseek ``` ------------------- ### 注意事项 1. **硬件要求**:建议至少16GB显存(如RTX 3090) 2. **量化选择**:内存不足时可尝试`ollama pull deepseek-7b:q4_0` 3. **数据质量**:训练数据需保持500-1000条高质量样本 4. **参数调优**:初始学习率建议2e-5~5e-5,batch_size根据显存调整 完整流程约需1-3小时(取决于数据集大小),建议先用小样本测试后再进行全量训练。训练完成后可通过`ollama list`验证模型加载状态。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值