最全的Ollama使用详解

img

1、概述

Ollama 是一个开源的框架,旨在简化大型语言模型的部署和管理。它提供了一个轻量级的 HTTP 服务,允许用户通过 API 接口与模型进行交互。然而,由于其默认配置可能不够安全,尤其是在网络暴露和访问控制方面,Ollama 服务可能成为潜在的攻击目标。

本文就 ollama 安装、使用、API 等方面进行详细的阐述,希望对你有所帮助!

注意: Ollama 默认开放 11434 端口,且无任何鉴权机制。如果不加以防护,Ollama 私有化部署的方式存在数据泄露、算力盗取、服务中断等安全风险,极易引发网络和数据安全事件。

2、安装与启动

2.1 Windows

下载地址:https://ollama.com/download/OllamaSetup.exe
下载之后双击直接进行安装

2.2 Mac OS

下载地址: https://ollama.com/download/Ollama-darwin.zip
下载完成之后解压进行安装即可

2.3 Linux

使用下面命令进行安装:

curl -fsSL https://ollama.com/install.sh | sh

如果没有curl,请使用对应操作系统的安装命令(如yum)安装之后再执行上面的命令

2.4 Docker方式

2.4.1、仅仅使用CPU

执行命令:

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
2.4.2、使用Nvidia GPU
1、安装Nvidia Toolkit

参照:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installation 进行安装

  • • (1)、使用APT安装
    (1.1)、配置仓库:
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)、安装

sudo apt-get install -y nvidia-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模型并运行。

ollama run gemma3

3、支持的模型

ollama支持的模型可以在官网上查看:(https://ollama.com/search)

img

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
  • • 2、使用Ollama命令建立模型
ollama create example -f Modelfile
  • • 3、运行模型模型
ollama run example

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:

ollama create my-model

最后,测试模型:

ollama run my-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:

ollama create my-model

最后,测试模型:

ollama run my-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
  • • Phi3

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
  • • 支持的量化:q8_0
  • • K均值量化:q4_K_S、q4_K_M

4、自定义提示词

Ollama支持对模型进行自定义提示词,以便更好的适应项目的需求,如自定义模型llama3.2:

4.1 下载模型

ollama pull llama3.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 ollama create mymodel -f ./Modelfile 创建模型
ollama pull ollama pull llama3.2 下载模型
ollama rm ollama rm llama3.2 删除模型
ollama cp ollama cp llama3.2 my-model 复制模型
ollama show ollama show llama3.2 显示一个模型的信息
ollama list ollama list 列出已下载的模型
ollama ps ollama ps 列出当前在运行的模型
ollama run ollama run llama3.2 加载(运行)一个模型
ollama stop ollama stop llama3.2 卸载(停止运行)一个模型

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 多模态使用方法
ollama run llava "What's in this image? /Users/jmorgan/Desktop/smile.png"
4.2.3 通过参数传递提示词:
ollama run llama3.2 "Summarize this file: $(cat README.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),依赖社区生态,中文等非英语模型支持可能有限。

性能限制: 本地运行性能通常低于大型云服务,响应速度及并发能力受硬件制约。

安全与合规: 使用开源模型需遵守其特定许可协议;本地部署虽提升数据安全,但仍需自行负责模型内容安全及合规风险。

运维成本: 私有化部署需承担模型更新、维护及服务器运维成本。

图片

零基础入门AI大模型

今天贴心为大家准备好了一系列AI大模型资源,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

5.免费获取

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码或者点击以下链接都可以免费领取【保证100%免费】

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

在这里插入图片描述

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐