Skip to content
🗂️ 文章分类: AI  
🏷️ 文章标签: AI  
📝 文章创建时间: 2026-03-11
🔥 文章最后更新时间:2026-03-11

[toc]

Ollama笔记

ollama_2026-03-11_144710_612.png

Ollama 介绍

Ollama官网 https://ollama.com/

Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。

Ollama 核心功能和特点

  1. 多种语言模型支持 Ollama 提供了多种开箱即用的模型,包括常见的 GPT、BERT 等大型语言模型。用户可以轻松加载并使用这些模型。
  2. 本地部署与离线使用 Ollama 允许开发者在本地计算环境中运行模型。这意味着可以脱离对外部服务器的依赖,保证数据隐私。
  3. 支持模型微调和自定义 用户还可以在Ollama上进行模型微调。根据自己的特定需求,开发者可以使用自己收集的数据对模型进行再训练,从而优化模型的性能和准确度。
  4. 跨平台支持 Ollama 支持在多个操作系统上运行,包括 Windows、macOS 和 Linux。这样无论是开发者在本地环境调试,还是企业在生产环境部署,都能得到一致的体验。
  5. 开放源码与社区支持 Ollama 是一个开源项目,这意味着开发者可以查看源代码,进行修改和优化,也可以参与到项目的贡献中。此外,Ollama 有一个活跃的社区,开发者可以从中获取帮助并与其他人交流经验。

Ollama 的使用场景

  1. 内容创作:帮助作家、记者、营销人员快速生成高质量的内容,例如博客文章、广告文案等。
  2. 编程辅助:帮助开发者生成代码、调试程序或优化代码结构。
  3. 教育和研究:辅助学生和研究人员进行学习、写作和研究,例如生成论文摘要或解答问题。
  4. 跨语言交流:提供高质量的翻译功能,帮助用户打破语言障碍。
  5. 个人助手:作为一个智能助手,帮助用户完成日常任务,例如撰写邮件、生成待办事项等。

简而言之,Ollama本身不是一个大语言模型,而是一个大语言模型管理平台。Ollama提供了方便的界面和 API,从而让用户能够轻松地在本地运行、管理和与各种大型语言模型进行交互。类如 Docker 之于容器,Ollama 之于大语言模型。

Ollama 安装

Ollama 支持多种操作系统,包括 macOS、Windows、Linux 以及通过 Docker 容器运行。

Ollama 对硬件要求不高,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。

windows 安装

直接登录 Ollama官网 https://ollama.com/ ,下载 Windows 版本的安装程序。

下载完成后,双击安装程序并按照提示完成安装即可。

安装完成后的运行截图 ollama_2026-03-11_151707_819.png 安装完成后的命令行验证截图 ollama_2026-03-11_151834_840.png

docker 安装

也可以通过 Docker 安装 Ollama。

官方 Docker 镜像 ollama/ollama 可在 Docker Hub 上获取:https://hub.docker.com/r/ollama/ollama

sh
# 下载 ollama 镜像
docker pull ollama/ollama
# 运行 ollama 容器
docker run -p 11434:11434 ollama/ollama

ollma 基本概念

模型(Model)

模型通常是由大量参数构成的神经网络,通过对大量文本数据进行训练,能够学习语言规律并进行高效的推理。

在 Ollama 中,模型是核心组成部分。它们是经过预训练的机器学习模型,能够执行不同的任务,例如文本生成、文本摘要、情感分析、对话生成等。

Ollama 支持多种流行的预训练模型,常见的模型有:

  • deepseek-v3:深度求索提供的大型语言模型,专门用于文本生成任务。
  • LLama2:Meta 提供的大型语言模型,专门用于文本生成任务。
  • GPT:OpenAI 的 GPT 系列模型,适用于广泛的对话生成、文本推理等任务。
  • BERT:用于句子理解和问答系统的预训练模型。
  • 其他自定义模型:用户可以上传自己的自定义模型,并利用 Ollama 进行推理。

Ollama模型库

Ollama 模型库是一个集中存储和管理大型语言模型的平台。它提供了一个统一的界面,让用户能够方便地浏览、下载、上传和管理各种模型。

用户可以在 Ollama 模型库中查找并选择适合自己任务的模型。例如,用户可以根据模型的大小、性能和任务类型来筛选模型。

Ollama 模型库还提供了模型的元数据信息,例如模型的训练数据、模型的参数数量、模型的性能指标等。这些信息对于用户选择和评估模型非常有帮助。

任务(Task)

用户可以在Ollama中加载不同的模型来完成各种任务。

每个任务对应模型的不同应用场景,主要包括但不限于以下几种:

  • 对话生成:通过与用户交互生成自然的对话回复。
  • 文本生成:根据给定的提示生成自然语言文本,例如写文章、生成故事等。
  • 情感分析:分析给定文本的情感倾向(如正面、负面、中立)。
  • 文本摘要:将长文本压缩为简洁的摘要。
  • 翻译:将文本从一种语言翻译成另一种语言。

推理(Inference)

推理是指在已训练的模型上进行输入处理,生成输出的过程。

推理过程

  • 输入:用户向模型提供文本输入,可以是一个问题、提示或者对话内容。
  • 模型处理:模型通过内置的神经网络根据输入生成适当的输出。
  • 输出:模型返回生成的文本内容,可能是回复、生成的文章、翻译文本等。

微调(Fine-tuning)

Ollama 支持微调功能,用户可以使用自己的数据集对预训练模型进行微调,来定制模型的输出。

微调有助于模型在处理特定领域问题时表现得更加精确和高效。

微调过程

  • 准备数据集:用户准备特定领域的数据集,数据格式通常为文本文件或 JSON 格式。
  • 加载预训练模型:选择一个适合微调的预训练模型,例如 LLama2 或 GPT 模型。
  • 训练:使用用户的特定数据集对模型进行训练,使其能够更好地适应目标任务。
  • 保存和部署:训练完成后,微调过的模型可以保存并部署,供以后使用。

Ollama 相关命令

当我们成功安装好ollama后,除了通过界面来进行操作,也可以通过命令行来进行操作。

下面是常用的ollama命令

sh
# 查询ollama版本
ollama v
ollama --version

# 显示本地所有已下载的模型。
ollama list  或者  ollama ls

# 查询进程。显示当前正在运行的模型及显存占用
ollama ps

# 查看任何命令的帮助信息。
ollama help

# 从ollama的远程仓库中下载模型到本地环境中,但不运行。
ollama pull <model-name>
# 例如 下载 llama3 模型
ollama pull llama3

# 删除模型
ollama rm <model-name>  或者  ollama remove <model-name>
# 例如 删除 llama3 模型
ollama rm llama3

# 运行本地环境的模型。如果本地不存在模型,则先下载后运行
# run 会在运行后,自动进入模型交互模式
ollama run <model-name>
# 例如 运行 llama3 模型
ollama run llama3

# 复制本地环境的模型并重命名,主要用于测试
ollama cp <model-name> <new-model-name>
# 例如 复制 llama3 模型并重命名为 llama3-test
ollama cp llama3 llama3-test

# 查看模型元数据
ollama show <model-name>
# 例如 查看 llama3 模型元数据
ollama show llama3

# 根据 Modelfile文件 创建自定义模型(高级)。
ollama create <model-name> -f <Modelfile>
# 例如 创建一个基于 Modelfile文件 的自定义模型 my-bot
ollama create my-bot -f ./Modelfile

模型交互

Ollama 提供了多种方式与模型进行交互,其中最常见的就是通过命令行进行交互操作。

使用 ollama run 命令启动模型并进入交互模式。

sh
# 例如 运行 llama3 模型,并进入命令行交互模式
> ollama run llama3
>>> 你好,我是一个基于ollama的模型 ...............

在命令行交互模式中,用户可以输入文本并按下回车键来与模型进行交互。模型会根据输入生成相应的输出。

如果想要退出命令行交互模式,用户可以输入 /bye 或按下 Ctrl+d 退出。

命令行交互模式下的交互命令

  • /bye:退出命令行交互模式。
  • /clear:清空当前的上下文记忆(开启一段新的对话)。
  • /help:显示帮助信息,包括可用的交互命令。
  • /show info:查看当前模型的详细参数信息。

通过 Modelfile文件 创建自定义模型

通过 Modelfile文件 定义自定义提示词或系统指令,可以使模型在交互中遵循特定规则。

  1. 创建一个 Modelfile 文件
FROM llama3
SYSTEM "你是一个编程助手,专门帮助用户编写代码。"
  1. 使用 ollama create 命令创建自定义模型
sh
# 例如 创建一个基于 Modelfile文件 的自定义模型 ollama-coder
ollama create ollama-coder -f ./Modelfile
  1. 运行自定义模型
sh
# 例如 运行 ollama-coder 模型,并进入命令行交互模式
> ollama run ollama-coder
>>> 你好,我是一个基于ollama的编程助手 ...............

Modelfile文件指令

FROM <model>:基础模型
SYSTEM "xxx":设定系统提示
PARAMETER key=value:设定默认参数
TEMPLATE "xxx":自定义 Chat 模板
LICENSE "xxx":设置 License
ADAPTER <file> / WEIGHTS <file>:加载 LoRA 或额外权重

Ollama API接口

当Ollama 运行在服务器端时,用户可以通过 API接口 来与Ollama进行交互。

启动 Ollama 服务

在使用 Ollama API 之前,需要确保 Ollama 服务正在运行。可以通过以下命令启动Ollama服务

# 启动 Ollama 服务
ollama serve

默认情况下,Ollama 成功安装后,服务会默认运行在 http://localhost:11434

Ollama API 文档

具体的API文档可以参考Ollama的官方文档:Ollama API 文档

下面给出一个简单的示例。

Python 使用 requests 库与 Ollama API 交互。

python
import requests

## 生成文本
def generate_text():
    response = requests.post(
        "http://localhost:11434/api/generate",
        json={
            "model": "deepseek-coder",
            "prompt": "你好,你能帮我写一段代码吗?",
            "stream": False
        }
    )
    print(response.json())

# 多轮对话
def multi_round_dialogue():
    response = requests.post(
    "http://localhost:11434/api/chat",
    json={
            "model": "deepseek-coder",
            "messages": [
                {
                    "role": "user",
                    "content": "你好,你能帮我写一段 Python 代码吗?"
                }
            ],
            "stream": False
        }
    )
    print(response.json())