ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-indent: 2em;letter-spacing: 0.1em;color: rgb(63, 63, 63);">在文章 《大模型基础知识扫盲篇(中)--工具篇》中我们简单介绍了Ollama的使用,本文给出详细的使用方法。包括安装、启动、自定义、命令、API以及配置参数表。ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;display: table;padding: 0.3em 1em;color: rgb(255, 255, 255);background: rgb(0, 152, 116);border-radius: 8px;box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px;">1、概述ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-indent: 2em;letter-spacing: 0.1em;color: rgb(63, 63, 63);">Ollama 是一个开源的框架,旨在简化大型语言模型的部署和管理。它提供了一个轻量级的 HTTP 服务,允许用户通过 API 接口与模型进行交互。然而,由于其默认配置可能不够安全,尤其是在网络暴露和访问控制方面,Ollama 服务可能成为潜在的攻击目标。ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-indent: 2em;letter-spacing: 0.1em;color: rgb(63, 63, 63);">本文就 ollama 安装、使用、API 等方面进行详细的阐述,希望对你有所帮助!ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-indent: 2em;letter-spacing: 0.1em;color: rgb(63, 63, 63);">ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: inherit;color: rgb(0, 152, 116);">注意: Ollama 默认开放 11434 端口,且无任何鉴权机制。如果不加以防护,Ollama 私有化部署的方式存在数据泄露、算力盗取、服务中断等安全风险,极易引发网络和数据安全事件。ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;display: table;padding: 0.3em 1em;color: rgb(255, 255, 255);background: rgb(0, 152, 116);border-radius: 8px;box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px;">2、安装与启动ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;padding-left: 12px;color: rgb(63, 63, 63);">2.1 WindowsingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-indent: 2em;letter-spacing: 0.1em;color: rgb(63, 63, 63);">下载地址:https://ollama.com/download/OllamaSetup.exe
下载之后双击直接进行安装ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;padding-left: 12px;color: rgb(63, 63, 63);">2.2 Mac OS下载地址: https://ollama.com/download/Ollama-darwin.zip
下载完成之后解压进行安装即可
2.3 Linux
使用下面命令进行安装:
curl-fsSLhttps://ollama.com/install.sh|sh
如果没有curl,请使用对应操作系统的安装命令(如yum)安装之后再执行上面的命令
2.4 Docker方式
2.4.1、仅仅使用CPU
执行命令:
dockerrun-d-vollama:/root/.ollama-p11434:11434--nameollamaollama/ollama
2.4.2、使用Nvidia GPU
1、安装Nvidia Toolkit
参照:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installation 进行安装
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
(1.2)、安装
sudoapt-getinstall-ynvidia-container-toolkit
- • (2)、使用yum或dnf安装
(2.1)、配置仓库
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
| sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
(2.2)、安装
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
| sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
2、让Docker使用Nvidia GPU
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
| sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
3、启动容器
docker run -d \
--gpus=all \
-v ollama:/root/.ollama \
-p 11434:11434 \
--name ollama \
ollama/ollama
3、使用AMD GPU
3.1 启动
为了使用AMD GPU,只需要在启动容器时使用rocm:tag即可
docker run -d \
--device /dev/kfd \
--device /dev/dri \
-v ollama:/root/.ollama \
-p 11434:11434\
--name ollama \
ollama/ollama:rocm
2.5 启动
使用下面命令即可自动下载gemma3模型并运行。
ollamarungemma3
3、支持的模型
ollama支持的模型可以在官网上查看:(https://ollama.com/search)
3、自定义Ollama
ollama支持导入Safetensors与GGUF两种格式的本地模型导入,还支持对模型进行量化与自定义提示词。
3.1 从GGUF导入模型
- • GGUF (GPT-Generated Unified Format):
一种主要用于在 CPU 或混合设备(CPU+GPU)上高效运行量化的大型语言模型的文件格式,它是 llama.cpp 及其生态(如 Ollama)的原生格式,其核心优势在于对模型量化的出色支持和将模型信息打包成单一文件。
-1、创建Modelfile文件,并使用FROM指令指明你需要导入的本地模型路径
FROM./vicuna-33b.Q4_0.gguf
ollamacreateexample-fModelfile
ollamarunexample
3.2 从Safetensors导入
- • Safetensors:
一种专注于安全性和加载速度的文件格式,用于存储深度学习模型的权重(张量数据),由 Hugging Face 团队开发,旨在解决传统格式(如 PyTorch 的 .bin)使用 pickle 带来的安全风险(反序列化时可执行任意代码),其主要特点是安全反序列化和利用零拷贝实现的极快加载速度,与 Hugging Face 生态(transformers 库、Hub)深度集成。
导入Safetensors时,有多种方式
3.2.1、从 Safetensors 权重导入经过微调的适配器
首先,创建一个Modelfile指向FROM用于微调的基础模型的命令,以及一个ADAPTER指向 Safetensors 适配器目录的命令:
FROM <base model name>
ADAPTER /path/to/safetensors/adapter/directory
请确保在FROM命令中使用与创建适配器时相同的基础模型,否则您将得到不稳定的结果。大多数框架使用不同的量化方法,因此最好使用非量化(即非 QLoRA)适配器。如果您的适配器与您的 位于同一目录中Modelfile,请使用ADAPTER .指定适配器路径。
ollama create现在从创建的目录运行Modelfile:
ollamacreatemy-model
最后,测试模型:
ollamarunmy-model
Ollama 支持基于几种不同的模型架构导入适配器,包括:
- • Llama (including Llama 2, Llama 3, Llama 3.1, and Llama 3.2);
- • Mistral (including Mistral 1, Mistral 2, and Mixtral); and
- • Gemma (including Gemma 1 and Gemma 2)
3.2.2、从 Safetensors 权重导入模型
首先,Modelfile使用指向FROM包含 Safetensors 权重的目录的命令创建一个:
FROM/path/to/safetensors/directory
如果您在与权重相同的目录中创建 Modelfile,则可以使用该命令FROM .。
ollama create现在从您创建的目录运行命令Modelfile:
ollamacreatemy-model
最后,测试模型:
ollamarunmy-model
Ollama 支持导入几种不同架构的模型,包括:
- • Llama (including Llama 2, Llama 3, Llama 3.1, and Llama 3.2);
- • Mistral (including Mistral 1, Mistral 2, and Mixtral);
- • Gemma (including Gemma 1 and Gemma 2); and
3.3、量化模型
量化模型可以让你以更快的速度运行模型,减少内存消耗,但准确率会降低。这使得你可以在更普通的硬件上运行模型。
Ollama 可以使用命令-q/--quantize中的标志将基于 FP16 和 FP32 的模型量化为不同的量化级别ollama create。
首先,创建一个包含您想要量化的基于 FP16 或 FP32 的模型的 Modelfile。
FROM/path/to/my/gemma/f16/model
然后使用ollama create来创建量化模型。
$ 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
4、自定义提示词
Ollama支持对模型进行自定义提示词,以便更好的适应项目的需求,如自定义模型llama3.2:
4.1 下载模型
ollamapullllama3.2
4.2 建立Modelfile
FROM llama3.2
# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1
# set the system message
SYSTEM """
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
"""
4.3 创建并支持模型
ollama create mario -f ./Modelfile
ollama run mario
>>> hi
Hello! It's your friend Mario.
关于Modelfile中的指令,详情请参见:https://github.com/ollama/ollama/blob/main/docs/modelfile.md
4、常用命令
4.1 常用命令
| | |
| ollama create mymodel -f ./Modelfile | |
| | |
| | |
| ollama cp llama3.2 my-model | |
| | |
| | |
| | |
| | |
| | |
4.2 使用技巧
4.2.1 多行输入
使用三个引号"""可以支持模型时使用多行输入,如:
>>> """Hello,
... world!
... """
I'm a basic program that prints the famous "Hello, world!" message to the console.
4.2.2 多模态使用方法
ollamarunllava"What'sinthisimage?/Users/jmorgan/Desktop/smile.png"
4.2.3 通过参数传递提示词:
ollamarunllama3.2"Summarizethisfile
(catREADME.md)"
输出内容:
Output: Ollama is a lightweight, extensible framework for building and running language models on the local machine. It provides a simple API for creating, running, and managing models, as well as a library of pre-built models that can be easily used in a variety of applications.
4、Restful API
ollama支持api,用于运行与管理模型。详细的API参考手册见:https://github.com/ollama/ollama/blob/main/docs/api.md
4.1 获取响应
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"prompt":"Why is the sky blue?"
}'
4.2 与模型对话
curl http://localhost:11434/api/chat -d '{
"model": "llama3.2",
"messages": [
{ "role": "user", "content": "why is the sky blue?" }
]
}'
4、Ollama配置参数表
OLLAMA_MODELS:模型文件存放目录,默认目录为当前用户目录
OLLAMA_HOST:Ollama 服务监听的网络地址,默认为127.0.0.1,如果允许其他电脑访问 Ollama(如:局域网中的其他电脑),建议设置成0.0.0.0,从而允许其他网络访问
OLLAMA_PORT:Ollama 服务监听的默认端口,默认为11434,如果端口有冲突,可以修改设置成其他端口(如:8080等)
OLLAMA_ORIGINS:HTTP 客户端请求来源,半角逗号分隔列表,若本地使用无严格要求,可以设置成星号,代表不受限制
OLLAMA_KEEP_ALIVE:大模型加载到内存中后的存活时间,默认为5m即 5 分钟(如:纯数字如 300 代表 300 秒,0 代表处理请求响应后立即卸载模型,任何负数则表示一直存活);我们可设置成24h,即模型在内存中保持 24 小时,提高访问速度
OLLAMA_NUM_PARALLEL:请求处理并发数量,默认为1,即单并发串行处理请求,可根据实际情况进行调整
OLLAMA_MAX_QUEUE:请求队列长度,默认值为512,可以根据情况设置,超过队列长度请求被抛弃
OLLAMA_DEBUG:输出 Debug 日志标识,应用研发阶段可以设置成1,即输出详细日志信息,便于排查问题
OLLAMA_MAX_LOADED_MODELS:最多同时加载到内存中模型的数量,默认为1,即只能有 1 个模型在内存中
5、总结
5.1 ollama应用场景
本地开发与测试: 开发者可在个人电脑上离线运行、调试和微调开源大模型(如LLaMA系列、Mistral等),无需依赖云端API,提升效率并保护隐私。
私有化部署: 适用于对数据安全要求高的场景(如金融、医疗、企业内部),将模型完全部署在本地服务器或私有云,确保敏感数据不出本地。
定制化模型应用: 结合自定义提示模板和参数调整,打造特定领域(客服、写作辅助、代码生成)的专属AI工具。
研究与学习: 方便研究人员和学生低成本探索大模型原理、行为及微调技术。
资源受限环境探索: 在特定硬件(如配备GPU的工作站)上体验大模型能力。
5.2 注意事项
硬件要求: 需较强计算资源(尤其是显存),模型越大要求越高,需根据硬件选择合适的模型。
模型选择与管理: 需自行寻找、下载和管理模型文件(Modelfile),依赖社区生态,中文等非英语模型支持可能有限。
性能限制: 本地运行性能通常低于大型云服务,响应速度及并发能力受硬件制约。
安全与合规: 使用开源模型需遵守其特定许可协议;本地部署虽提升数据安全,但仍需自行负责模型内容安全及合规风险。
运维成本: 私有化部署需承担模型更新、维护及服务器运维成本。