ollama
| curl -fsSL https://ollama.com/install.sh | sudo bash
usermod -aG ollama $USER # 添加用户权限
systemctl start ollama # 启动服务
|
运行模型
ollama run deepseek-r1
修改模型内容
将原模型配置文件内容输出到自定义文件 deepseek
1、ollama show deepseek:32b –modelfile >> deepseek
2、修改配置文件
3、重新创建模型
ollama create deepseek:32b -f ./deepseek
模型文件详述
选择基础模型:使用FROM指令指定起始模型,可以是 Ollama 库中的模型或自定义bin文件。
定制参数:通过PARAMETER指令根据需求调整模型行为,不断尝试不同设置以找到最佳配置。
定义交互模板:利用TEMPLATE指令设计模型与提示(包括系统消息和用户查询)的交互方式。
可参考dockerfile
- FROM:
定义: 该字段用来指定模型的基础模型(base model)。这是构建自定义模型的起点。
必要性: 这是必填项,因为没有基础模型,AI无法执行任务或者进行任何推理工作。基础模型决定了AI的核心能力和知识结构,类似于搭建一个大厦时需要有坚固的地基。
- PARAMETER:
定义: 这个字段允许你自定义模型的行为。通过调整不同的参数,你可以控制模型的输出特性、工作方式等。
应用: 比如你可以设置模型生成的文本长度、温度(控制随机性)、置信度等。
必要性: 这允许你根据具体应用场景灵活调整AI模型的表现,从而使其适应不同的需求。
- TEMPLATE:
定义: 这是定义发送给模型的“提示模板”(prompt template)。该模板可以包含动态变量,这些变量在运行时可以根据实际情况替换,以获得定制化的响应。
应用: 比如你可以创建一个模板,模板内容可能是“请生成关于{{topic}}的文章”,在运行时,{{topic}}会被替换成用户提供的具体话题。
必要性: 这种方式增加了模型生成响应的灵活性和多样性,使其能够适应不同的输入和上下文。
- SYSTEM, ADAPTER, LICENSE, MESSAGE:
这些指令用来进一步细化模型的操作,涵盖了以下内容:
SYSTEM: 系统消息,通常用于向模型提供额外的上下文或指示,指引其执行特定任务。例如,可能告诉模型“你是一个医学专家,请根据医学知识生成答案”。
ADAPTER: 适配器,尤其是针对像QLoRA(Quantized Low-Rank Adaptation)这种技术。QLoRA是用于微调大型语言模型的一种方法,通过适配器可以在不改动整个模型的情况下,让模型更好地适应特定领域的任务。
LICENSE: 法律许可,规定模型的使用条款和版权问题。这样可以确保在模型使用过程中遵守相关的法律和规定。
MESSAGE: 预设的消息历史,通常用于保存和管理用户和模型之间的对话历史。可以用来维持上下文或根据之前的交流做出更加连贯的响应。
使用示例
| 禁止使用GPU
PARAMETER num_gpu 0
只使用两个cpu
PARAMETER num_thread 2
1. mirostat
功能: 控制AI回应的创造性。开启时,AI的回答会变得更加不可预测。
示例:
PARAMETER mirostat 1(开启,适度的创造性)
PARAMETER mirostat 2(开启,创造性更强)
2. mirostat_eta
功能: 调节AI从当前对话中学习的速度。值越低,AI越谨慎;值越高,AI学习并适应得越快。
示例:PARAMETER mirostat_eta 0.1(较为谨慎的学习)
3. mirostat_tau
功能: 决定AI是否紧跟话题(较低值)或稍微探索更具创意的内容(较高值)。
示例:PARAMETER mirostat_tau 5.0(允许较多的创意探索)
4. num_ctx
功能: 设置AI能记住多少前文对话。数值越大,AI记忆的对话上下文越多。
示例:PARAMETER num_ctx 4096(AI能记住更多的上下文)
5. num_gqa
功能: 调整AI一次能处理多少个任务,适用于非常复杂的模型。
示例:PARAMETER num_gqa 8(AI可以同时处理8个任务)
6. num_gpu
功能: 设置AI使用多少个图形处理单元(GPU)。更多的GPU能加速计算或生成更详细的响应。
示例:PARAMETER num_gpu 50(使用50个GPU)
7. num_thread
功能: 设置AI能够同时处理多少个对话或任务。类似于高速公路上的车道,更多车道意味着更多任务可以并行处理。
示例:PARAMETER num_thread 8(AI能同时处理8个任务)
8. repeat_last_n
功能: 设置AI避免重复之前对话的多少内容。数值较大时,AI会尽量避免重复。
示例:PARAMETER repeat_last_n 64(避免重复过去64个词)
9. repeat_penalty
功能: 如果AI开始重复自己,这个参数会鼓励它生成新的内容。
示例:PARAMETER repeat_penalty 1.1(稍微增加惩罚,避免重复)
10. temperature
功能: 控制AI回答的“自由度”或“安全度”。较高的温度值会使回答更加多样、富有创意。
示例:PARAMETER temperature 0.7(适度创意,回答较为多样)
11. seed
功能: 设置生成回应的起始点。相同的种子和相同的提示会产生相同的回应。
示例:PARAMETER seed 42(设置种子为42,保证生成一致的回应)
12. stop
功能: 告诉AI何时停止生成回应,通常是基于特定的提示词或条件。
示例:PARAMETER stop "AI assistant:"(当模型生成“AI assistant:”时停止)
13. tfs_z
功能: 控制AI回答的随机性,较低的值可以让回应更加聚焦,减少无关内容。
示例:PARAMETER tfs_z 2.0(较低的随机性,回应更聚焦)
14. num_predict
功能: 限制AI每次生成的回应长度。通过设置此参数,可以控制AI的输出字数。
示例:PARAMETER num_predict 128(每次最多生成128个字符)
15. top_k
功能: 限制AI选择的词汇范围,帮助保持话题集中和回应合理。
示例:PARAMETER top_k 40(限制选择的前40个最可能的词汇)
16. top_p
功能: 与top_k一起工作,用来调整AI回应的多样性,平衡回应的可预测性和多样性。
示例:PARAMETER top_p 0.9(控制词汇选择的多样性,鼓励创造性)
|