news 2026/5/15 2:33:42

Ollama 基本概念

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ollama 基本概念

Ollama 核心概念解析

1. 核心架构

Ollama 服务 (Server)

  • 定义:Ollama 的后台守护进程,负责管理模型生命周期、处理 API 请求。
  • 端口:默认监听http://localhost:11434
  • 功能
    • 模型加载与卸载(内存管理)。
    • 推理引擎调度(CPU/GPU 自动切换)。
    • API 接口暴露(兼容 OpenAI 格式)。
  • 启动方式
    • 桌面应用自动启动。
    • 命令行ollama serve
    • 系统服务(systemd/launchd/Windows Service)。

模型 (Model)

  • 定义:经过训练的大语言模型权重文件,通常以GGUF格式存储。
  • 特点
    • 量化 (Quantization):Ollama 默认使用量化版本(如q4_0,q5_K_M),在保持性能的同时大幅减小体积。
    • 版本管理:同一模型可有不同版本(如llama3:8b,llama3:70b)。
  • 存储位置
    • Linux:~/.ollama/models
    • macOS:~/.ollama/models
    • Windows:C:\Users\<User>\.ollama\models

Modelfile

  • 定义:类似 Dockerfile 的配置文件,用于定义如何构建自定义模型。
  • 作用
    • 指定基础模型 (FROM)。
    • 设置推理参数 (PARAMETER)。
    • 定义系统提示词 (SYSTEM)。
    • 添加模板 (TEMPLATE)。
  • 示例
    FROM llama3 PARAMETER temperature 0.7 PARAMETER top_p 0.9 SYSTEM "你是一个乐于助人的 AI 助手,擅长用中文回答技术问题。"

2. 关键术语

GGUF (GPT-Generated Unified Format)

  • 定义:由llama.cpp社区开发的统一模型文件格式。
  • 优势
    • 跨平台:支持 CPU/GPU 推理。
    • 量化支持:支持多种精度(FP16, Q4_0, Q5_K_M 等)。
    • 高效加载:支持内存映射,启动速度快。
  • Ollama 中的角色:Ollama 内部使用 GGUF 格式存储和加载模型。

量化 (Quantization)

  • 定义:将模型权重从高精度(如 FP16)转换为低精度(如 INT4),以减少内存占用和加速推理。
  • 常见级别
    • q4_0/q4_1:4-bit 量化,平衡速度与质量(最常用)。
    • q5_K_M:5-bit 量化,质量更高,体积稍大。
    • q8_0:8-bit 量化,接近 FP16 质量,体积较大。
    • f16/f32:原始精度,体积巨大,极少使用。
  • 命名规则模型名:版本-量化级别(如llama3:8b-q4_0)。

上下文窗口 (Context Window)

  • 定义:模型一次能处理的输入 + 输出的最大 token 数。
  • 默认值:通常为 4096 或 8192,取决于模型。
  • 调整:通过PARAMETER num_ctx在 Modelfile 中设置,或运行时--num-context参数。
  • 影响
    • 越大:能处理更长文档,但显存/内存占用增加。
    • 越小:响应更快,但可能截断长文本。

Token

  • 定义:文本处理的基本单位(单词、子词或字符)。
  • 估算
    • 1 token ≈ 0.75 个英文单词。
    • 1 token ≈ 1.5 个中文字符。
  • 限制:模型的上下文窗口以 token 为单位计算。

3. 推理引擎

llama.cpp

  • 核心:Ollama 基于llama.cpp构建,这是一个用 C/C++ 编写的高效 LLM 推理库。
  • 优势
    • 纯 CPU 运行:无需 GPU 即可运行。
    • 硬件优化:自动利用 AVX2, AVX512, Metal (Mac), CUDA (NVIDIA), ROCm (AMD)。
    • 轻量级:二进制文件小,启动快。

硬件加速

  • CPU:自动使用指令集优化(AVX2 等)。
  • GPU (NVIDIA):通过 CUDA 加速,需安装驱动。
  • GPU (AMD):通过 ROCm 加速(Linux)。
  • GPU (Apple Silicon):通过 Metal 加速(M1/M2/M3)。
  • 自动切换:Ollama 自动检测硬件并分配计算任务。

4. API 接口

REST API

  • 地址http://localhost:11434
  • 主要端点
    • POST /api/generate:文本补全(类似completion)。
    • POST /api/chat:对话补全(类似chat/completions)。
    • POST /api/embeddings:生成向量嵌入。
    • GET /api/tags:列出已下载模型。
    • POST /api/pull:下载模型。
    • POST /api/create:创建模型。
    • POST /api/delete:删除模型。
    • POST /api/copy:复制模型。
    • POST /api/show:显示模型信息。

兼容性

  • OpenAI 兼容:部分 API 兼容 OpenAI 格式,可直接使用 OpenAI SDK(需修改 base_url)。
    fromopenaiimportOpenAI client=OpenAI(base_url="http://localhost:11434/v1",api_key="ollama"# 任意值)response=client.chat.completions.create(model="llama3",messages=[{"role":"user","content":"Hello"}])

5. 会话管理

状态保持

  • 默认行为:每次 API 调用是独立的,不保留上下文。
  • 保持会话
    • 通过keep_alive参数控制模型在内存中停留的时间。
    • 默认:5 分钟无操作后卸载。
    • 设置:"keep_alive": "30m""keep_alive": -1(永久)。

多轮对话

  • 实现方式:客户端需手动维护messages数组,将历史对话作为输入发送。
    {"model":"llama3","messages":[{"role":"user","content":"你好"},{"role":"assistant","content":"你好!有什么可以帮你的吗?"},{"role":"user","content":"介绍一下量子力学"}]}

6. 模型仓库

官方仓库

  • 地址:https://ollama.com/library
  • 内容:官方维护的模型列表,包含llama3,qwen2,mistral,gemma等。
  • 拉取命令ollama pull <模型名>

第三方模型

  • 来源:社区用户上传的模型。
  • 拉取方式ollama pull <用户名>/<模型名>(如ollama pull mxbai-embed-large)。

7. 性能指标

吞吐量 (Tokens/s)

  • 定义:模型每秒生成的 token 数。
  • 影响因素
    • 硬件性能(CPU/GPU)。
    • 模型大小(参数量)。
    • 量化级别。
    • 上下文长度。

显存/内存占用

  • 估算公式
    • 4-bit 量化:约 0.7GB / 10 亿参数。
    • 8-bit 量化:约 1.5GB / 10 亿参数。
    • 16-bit 量化:约 3GB / 10 亿参数。
  • 示例
    • llama3:8b(q4_0) ≈ 5GB 内存。
    • llama3:70b(q4_0) ≈ 40GB 内存。

8. 安全与隐私

本地运行

  • 数据不出域:所有推理在本地完成,数据不上传云端。
  • 适用场景:敏感数据处理、离线环境、合规要求高的场景。

网络隔离

  • 默认绑定:仅监听localhost,外部无法访问。
  • 开放访问:需手动设置OLLAMA_HOST=0.0.0.0,并配置防火墙。

理解这些基本概念有助于更好地使用 Ollama 进行模型部署、优化和开发。核心是:GGUF 格式 + llama.cpp 引擎 + 本地推理 + 简单 API

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 2:32:04

告别离线包!Qt 5.15+ 在线安装器保姆级图文教程(Linux/Windows通用)

Qt 5.15 在线安装器全平台实战指南&#xff1a;从困惑到精通的完整迁移方案 当Qt官方在5.15版本后彻底转向在线安装模式时&#xff0c;许多习惯了离线包的老开发者突然发现自己站在了一个陌生的十字路口。那种下载好几个GB的安装包、然后安静等待安装完成的日子一去不复返了。这…

作者头像 李华
网站建设 2026/5/15 2:31:06

交互式导览引擎:从原理到实现,打造用户引导最佳实践

1. 项目概述与核心价值最近在梳理手头的一些开源项目&#xff0c;发现一个挺有意思的仓库&#xff0c;叫EmpowerTours/fcempowertours。乍一看这个名字&#xff0c;可能会有点摸不着头脑&#xff0c;但拆解一下就能发现它的核心意图&#xff1a;“EmpowerTours” 直译是“赋能之…

作者头像 李华
网站建设 2026/5/15 2:30:08

EASYChatGPT:一键部署本地智能对话服务的开源解决方案

1. 项目概述&#xff1a;当“一键部署”遇上“智能对话”最近在折腾AI应用落地的朋友&#xff0c;可能都绕不开一个痛点&#xff1a;如何快速、低成本地拥有一个属于自己的、功能完整的智能对话服务&#xff1f;是去调用那些按Token计费的昂贵API&#xff0c;还是去啃动辄几十个…

作者头像 李华
网站建设 2026/5/15 2:25:13

同态加密优化与安全字符串匹配技术解析

1. 同态加密与安全字符串匹配技术概述在现代数据隐私保护领域&#xff0c;同态加密(Homomorphic Encryption, HE)技术因其独特的"加密数据可计算"特性而备受关注。这项技术允许第三方在不解密的情况下对加密数据进行特定计算&#xff0c;计算结果解密后与对明文直接计…

作者头像 李华
网站建设 2026/5/15 2:20:28

CircuitPython设备故障排查:从驱动器消失到文件系统修复全攻略

1. 项目概述&#xff1a;当你的CircuitPython设备“闹脾气”时搞嵌入式开发或者玩微控制器&#xff0c;最让人头疼的瞬间之一&#xff0c;大概就是插上设备&#xff0c;电脑上那个熟悉的CIRCUITPY盘符死活不出现&#xff0c;或者刚出现就闪退&#xff0c;再或者代码莫名其妙地不…

作者头像 李华
网站建设 2026/5/15 2:20:16

开源安全自动化工具seclawai:日志告警自动化处理实战指南

1. 项目概述与核心价值最近在整理一些开源项目时&#xff0c;发现了一个名为mksglu/seclawai的仓库。乍一看这个标题&#xff0c;可能会觉得有些神秘&#xff0c;甚至有点摸不着头脑。作为一名长期在安全、运维和自动化领域摸爬滚打的从业者&#xff0c;我本能地对这类看起来像…

作者头像 李华