Skip to content

导入模型

目录

从 Safetensors 权重导入微调适配器

首先,创建一个 Modelfile,其中包含一个指向你用于微调的基础模型的 FROM 命令,以及一个指向你的 Safetensors 适配器目录的 ADAPTER 命令:

dockerfile
FROM <base model name>
ADAPTER /path/to/safetensors/adapter/directory

确保你在 FROM 命令中使用与创建适配器时相同的基模型,否则你会得到不一致的结果。大多数框架使用不同的量化方法,因此最好使用非量化(即非 QLoRA)适配器。如果适配器与你的 Modelfile 在同一目录中,使用 ADAPTER . 来指定适配器路径。

现在从创建 Modelfile 的目录中运行 ollama create

bash
ollama create my-model

最后,测试模型:

bash
ollama run my-model

Ollama 支持基于几种不同的模型架构导入适配器,包括:

  • Llama(包括 Llama 2、Llama 3、Llama 3.1 和 Llama 3.2);
  • Mistral(包括 Mistral 1、Mistral 2 和 Mixtral);和
  • Gemma(包括 Gemma 1 和 Gemma 2)

你可以使用能够输出 Safetensors 格式适配器的微调框架或工具来创建适配器,例如:

从 Safetensors 权重导入模型

首先,创建一个 Modelfile,其中包含一个指向包含你的 Safetensors 权重的目录的 FROM 命令:

dockerfile
FROM /path/to/safetensors/directory

如果你在权重文件所在的同一目录中创建了 Modelfile,你可以使用命令 FROM .

现在从你创建 Modelfile 的目录中运行 ollama create 命令:

shell
ollama create my-model

最后,测试模型:

shell
ollama run my-model

Ollama 支持导入多种不同架构的模型,包括:

  • Llama(包括 Llama 2、Llama 3、Llama 3.1 和 Llama 3.2);
  • Mistral(包括 Mistral 1、Mistral 2 和 Mixtral);
  • Gemma(包括 Gemma 1 和 Gemma 2);以及
  • Phi3

这包括导入基础模型以及任何与基础模型 融合 的微调模型。

导入基于 GGUF 的模型或适配器

如果你有一个基于 GGUF 的模型或适配器,可以将其导入 Ollama。你可以通过以下方式获取 GGUF 模型或适配器:

  • 使用 Llama.cpp 中的 convert_hf_to_gguf.py 脚本将 Safetensors 模型转换为 GGUF 模型;
  • 使用 Llama.cpp 中的 convert_lora_to_gguf.py 脚本将 Safetensors 适配器转换为 GGUF 适配器;或
  • 从 HuggingFace 等地方下载模型或适配器

要导入 GGUF 模型,创建一个 Modelfile,内容包括:

dockerfile
FROM /path/to/file.gguf

对于 GGUF 适配器,创建 Modelfile,内容如下:

dockerfile
FROM <model name>
ADAPTER /path/to/file.gguf

在导入 GGUF 适配器时,重要的是使用与创建适配器时所用的相同基础模型。你可以使用:

  • Ollama 中的模型
  • GGUF 文件
  • 基于 Safetensors 的模型

一旦你创建了 Modelfile,请使用 ollama create 命令来构建模型。

shell
ollama create my-model

量化模型

量化模型可以让你以更快的速度和更少的内存消耗运行模型,但精度会有所降低。这使得你可以在更 modest 的硬件上运行模型。

Ollama 可以使用 -q/--quantize 标志与 ollama create 命令将基于 FP16 和 FP32 的模型量化为不同的量化级别。

首先,创建一个包含你希望量化的 FP16 或 FP32 基础模型的 Modelfile。

dockerfile
FROM /path/to/my/gemma/f16/model

使用 ollama create 来创建量化模型。

shell
$ ollama create --quantize q4_K_M mymodel
transferring model data
quantizing F16 model to Q4_K_M
creating new layer sha256:735e246cc1abfd06e9cdcf95504d6789a6cd1ad7577108a70d9902fef503c1bd
creating new layer sha256:0853f0ad24e5865173bbf9ffcc7b0f5d56b66fd690ab1009867e45e7d2c4db0f
writing manifest
success

支持的量化方式

  • q4_0
  • q4_1
  • q5_0
  • q5_1
  • q8_0

K-means 量化方式

  • q3_K_S
  • q3_K_M
  • q3_K_L
  • q4_K_S
  • q4_K_M
  • q5_K_S
  • q5_K_M
  • q6_K

在 ollama.com 上分享你的模型

你可以通过将模型推送到 ollama.com 来分享你创建的任何模型,以便其他用户可以尝试使用。

首先,使用浏览器访问 Ollama 注册 页面。如果你已经有账户,可以跳过这一步。

Sign-Up

用户名 字段将作为你模型名称的一部分(例如 jmorganca/mymodel),因此请确保你对所选的用户名感到满意。

现在你已经创建了帐户并登录,请前往 Ollama Keys 设置 页面。

按照页面上的说明确定你的 Ollama 公钥的位置。

Ollama Keys

点击 Add Ollama Public Key 按钮,将你的 Ollama 公钥内容复制并粘贴到文本框中。

要将模型推送到 ollama.com,首先确保模型名称正确包含你的用户名。你可能需要使用 ollama cp 命令将模型复制并重命名。一旦你对模型的名称满意,使用 ollama push 命令将其推送到 ollama.com

shell
ollama cp mymodel myuser/mymodel
ollama push myuser/mymodel

一旦你的模型被推送后,其他用户可以通过以下命令拉取并运行它:

shell
ollama run myuser/mymodel