从GGUF到Prompt的Ollama自定义导入模型

在使用Ollama运行本地语言模型时,支持自定义导入模型是它的一大亮点。本文将详细介绍如何通过Ollama导入不同格式的模型(如GGUF、Pytorch或Safetensors),完成模型量化,并通过自定义Prompt实现个性化对话。

一、从GGUF导入模型

1.1 什么是GGUF?

GGUF(GPT-Generated Unified Format)是一种文件格式,用于保存经过微调的语言模型。它支持多种量化格式,能够有效减少模型文件大小,同时保持模型的推理性能。

Ollama支持直接从GGUF文件导入模型,以下是具体步骤:

1.2 下载GGUF文件

我们以Qwen2-0.5B模型为例,下载链接如下:

    
https://huggingface.co/RichardErkhov/Qwen_-_Qwen2-0.5B-gguf/resolve/main/Qwen2-0.5B.Q3_K_M.gguf?download=true

将下载的.gguf文件复制到根目录。

1.3 创建Modelfile文件

在根目录下创建一个名为Modelfile的文件,内容如下:

    
FROM ./Qwen2-0.5B.Q3_K_M.gguf

1.4 使用Ollama创建模型

运行以下命令创建模型:

    
ollama create mymodel -f Modelfile

1.5 运行模型

在终端中运行模型:

    
ollama run mymodel

此时,Ollama会加载并运行模型,如果出现对话界面,说明模型导入成功。

ai_tutorial_ollama_basic_customize_import_model_1

二、从Pytorch或Safetensors导入模型

2.1 什么是Safetensors?

Safetensors是一种专为深度学习模型设计的文件格式,具有高效、安全的特点。Ollama支持直接从Safetensors文件导入模型,或者将其转换为GGUF格式后导入。

2.2 下载模型

以Llama-3模型为例,使用以下代码从HuggingFace下载:

    
python
!pip install huggingface_hub
from huggingface_hub import snapshot_download

model_id = "unsloth/llama-3-8b-bnb-4bit"
snapshot_download(
  repo_id=model_id, 
  local_dir="llama-3-8b-bnb-4bit",
  local_dir_use_symlinks=False,
  revision="main",
  use_auth_token="<YOUR_ACCESS_TOKEN>")

2.3 创建Modelfile文件

在根目录下创建一个名为Modelfile的文件,内容如下:

    
FROM ./llama-3-8b-bnb-4bit

2.4 使用Ollama创建模型

运行以下命令创建模型:

    
ollama create mymodel2 -f Modelfile

2.5 运行模型

通过以下命令运行模型:

    
ollama run mymodel2

三、通过llama.cpp量化模型并导入

对于无法直接通过Ollama导入的模型,可以使用llama.cpp工具进行转换和量化。

3.1 下载模型

使用以下代码从HuggingFace下载Qwen-0.5B模型(记得把<YOUR_ACCESS_TOKEN>替换成你的TOKEN):

ai_tutorial_ollama_basic_customize_import_model_2

    
!pip install huggingface_hub
    
python
from huggingface_hub import snapshot_download

model_id = "Qwen/Qwen1.5-0.5B"
snapshot_download(
    repo_id=model_id, 
    local_dir="Qwen-0.5b",
    local_dir_use_symlinks=False,
    revision="main",
    use_auth_token="<YOUR_ACCESS_TOKEN>")

3.2 使用llama.cpp转换为GGUF格式

克隆llama.cpp仓库:

    
git clone https://github.com/ggerganov/llama.cpp.git

进入目录并安装依赖:

    
cd llama.cpp
pip install -r requirements.txt

运行以下脚本将模型转换为GGUF格式:

    
python convert_hf_to_gguf.py ../Qwen-0.5b --outfile Qwen_instruct_0.5b.gguf --outtype f16

3.3 使用llama.cpp进行模型量化

将转换后的Qwen_instruct_0.5b.gguf移动到根目录,并创建Modelfile文件,内容如下:

    
FROM ./Qwen_instruct_0.5b.gguf

运行以下命令进行量化并创建模型:

    
ollama create -q Q4_K_M mymodel3 -f ./Modelfile

3.4 运行模型

通过以下命令运行量化后的模型:

    
ollama run mymodel3

四、自定义Prompt

Ollama支持通过自定义Prompt来调整模型的行为,使其生成更符合需求的文本。

4.1 创建Modelfile文件

在根目录下创建一个名为Modelfile的文件,内容如下:

    
FROM llama3.1
# 设置温度参数,值越高生成内容越随机
PARAMETER temperature 1
# 设置上下文窗口大小,控制LLM生成的上下文长度
PARAMETER num_ctx 4096

# 设置自定义系统消息,指定聊天助手的行为
SYSTEM You are Mario from super mario bros, acting as an assistant.

4.2 创建模型

运行以下命令创建模型:

    
ollama create mymodel -f ./Modelfile

4.3 运行模型

通过以下命令运行模型:

    
ollama run mymodel

此时,模型会根据自定义Prompt生成文本。例如,如果你设置了Mario的身份,模型会以Mario的语气进行对话。

最后

通过Ollama自定义导入模型的过程虽然涉及多个步骤,但每一步都非常清晰。无论是直接导入GGUF文件,还是通过llama.cpp进行转换和量化,甚至是自定义Prompt,都体现了Ollama的灵活性和强大功能。如果你对本地语言模型有个性化需求,不妨试试这些方法,探索更多可能性!

阅读全文
付费
AI爆文训练营
图文变现友好赛道,低门槛、高上限,教你从0到1做个赚钱的公众号!
立即查看
躺着赚钱
¥149/年
何老师陪你做副业
这里聚焦AI副业、个人IP、自媒体运营、写作、赚钱案例。不哔哔,只分享有价值的副业项目。
立即查看
AI赚钱案例
限免
DeepSeek进阶教程
带你全面掌握DeepSeek应用技巧。提升工作、学习效率
立即查看
100万人学过
付费
网盘拉新实战教程
每周花费一小时,手把手教你赚网盘平台佣金
立即查看
500人学过
限时优惠
AiPPT
结合最新AI技术,为用户提供一键生成高质量PPT的解决方案。
立即查看
一键生成 PPT
免费
豆包MarsCode
一款免费的AI编程助手,全新支持DeepSeek R1/V3、豆包大模型1.5自由切换,免部署、更准确、更强大!
立即查看
AI编程助手
免费
Monica AI
Monica AI满血复活DeepSeek【免费】,提升您的聊天、搜索、写作和编程体验。
立即查看
一站式 AI 助手
云服务
腾讯云
综合性的云计算服务平台,现已接入DeepSeek,提供多样化的云解决方案
立即查看
高效可靠
云服务
阿里云
全球领先的云计算与数据服务平台,提供云服务器、存储、数据库、安全等多种服务
立即查看
多样化
DeepSeek企业微信码
免费领取DeepSeek资料