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

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)

你可以使用可以输出 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

这包括导入基础模型以及任何与基础模型进行过 融合 (fused) 的微调模型。

导入 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

量化模型

模型量化可以让你以更快的速度运行模型并降低内存消耗,但会降低精度。这使得你可以在配置较低的硬件上运行模型。

Ollama 可以使用 ollama create 命令中的 -q/--quantize 标志,将基于 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

支持的量化方式

  • q8_0

K-means 量化

  • q4_K_S
  • q4_K_M

在 ollama.com 上分享你的模型

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

首先,使用浏览器访问 Ollama 注册 (Sign-Up) 页面。如果你已经有账号,可以跳过此步骤。

Sign-Up

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

创建账号并登录后,前往 Ollama Keys Settings 页面。

按照页面上的说明查找你的 Ollama 公钥 (Public Key) 位置。

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