[Python/GPT/AI] Ollama: LLM私有化部署工具

目录

概述:Ollama

基本介绍: Ollama

  • Ollama是一个由Meta公司(原Facebook公司)开发的、支持在WindowsLinuxMacOS本地运行的、轻量且高效的、【大语言模型】框架。

它旨在帮助研究人员和开发人员更轻松地在自己的硬件上部署和运行LLM,而无需依赖专门的云计算资源。
它允许用户非常方便地运行和使用各种大语言模型,比如Qwen模型等。
用户只需一行命令就可以启动大语言模型

框架的核心特点‌:Ollama提供了一个简单直观的界面,用于加载、运行和评估LLM,极大地简化了在本地运行大型语言模型的过程。

  • url

主要特点

  • 跨平台支持Windows、Linux、MacOS系统。

  • 提供了丰富的AI模型库,包括Qwen、Llama等1700+大语言模型,可以在官网model library中直接下载使用。

  • 支持用户上传自己的模型。

用户可以将huggingface等地方的ggml格式模型导入到ollama中使用。
也可以将基于pytorch等格式的模型转换为ggml格式后导入。

  • 允许用户通过编写modelfile配置文件来自定义模型的推理参数,如temperature、top_p等,从而调节模型生成效果。
  • 支持多GPU并行推理加速。

在多卡环境下,可以设置环境变量来指定特定GPU。

  • 强大的技术团队支持,很多模型开源不到24小时就能获得支持。

总的来说,Ollama降低了普通开发者使用大语言模型的门槛,使得本地部署体验大模型变得简单易行。
对于想要搭建自己的AI应用,或者针对特定任务调优模型的开发者来说,是一个非常有用的工具。
它的一些特性,如允许用户自定义模型参数,对模型进行个性化适配提供了支持。

安装/部署篇

安装 on Windows

Step1 下载安装包

  • download url

curl -o %USERPROFILE%\Desktop https://github.com/ollama/ollama/releases/download/v0.5.4/ollama-windows-amd64.zip -v

Step2 安装 Ollama

  • 解压即安装

D:\Program\Ollama\ollama-windows-amd64
D:\Program\Ollama\ollama-windows-amd64\ollama.exe

  • 补充:OllamaSetup.exe 安装包的安装 【不推荐】

  • 添加ollama.exe到环境变量Path

便于可以通过 cmd : ollama快捷启动

  • 配置OLLAMA的模型目录到环境变量(必须)

Ollama默认模型存储路径一般在:C:\Users\%username%.ollama\models
无论 C 盘空间大小,需要安装多少模型,都建议换一个存放路径到其它盘,否则会影响电脑运行速度。

  • 打开「系统环境变量」,新建一个系统变量OLLAMA_MODELS ,然后设置ollama模型的存储路径。
  • 变量名:OLLAMA_MODELS
  • 变量值(路径):D:\Program-Data\Ollama-Models

  • 配置Ollama的运行端口(可选):
  • Ollama API默认访问地址侦听端口: http://localhost:11434
  • 只能在装有 Ollama 的系统中直接调用。
  • 如果要在网络中提供服务,请修改 API 的侦听地址和端口(在系统环境变量里设置):
  • 变量名:OLLAMA_HOST (要监听的地址)
  • 变量值(端口)::80000.0.0.0
  • 只填写端口号可以同时侦听(所有) IPv4 和 IPv6 的 :8000 端口。(变量值的端口前号前有个冒号:)

注:要使用 IPv6,需要 Ollama 0.0.20 或更高版本。
另外,可能需要在 Windows 防火墙中开放相应端口的远程访问。

  • 允许浏览器跨域请求(可选):

Ollama 默认只允许来自127.0.0.10.0.0.0跨域请求
如果你计划在其它前端面板中调用 Ollama API,比如Open WebUI,建议放开跨域限制:

  • 变量名:OLLAMA_ORIGINS
  • 变量值:*

Step3 启动 Ollama 服务

  • 基于 CMD or Git Bash 启动 Ollama
ollama serve

这个命令也会启动Ollama服务,适用于没有配置systemd的情况
如果是 centos ,则可以使用此方式启动: sudo systemctl start ollama

若前面没有修改监听端口时,可直接访问: http://localhost:11434 ,可查看其运行状态

Step4 下载模型

  • 下载LLM模型

https://ollama.com/search

# ollama pull qwen
ollama pull qwen2

Y Ollama 常用命令

帮助手册

C:\Users\XXX> ollama
Usage:
  ollama [flags]
  ollama [command]

Available Commands:
  serve       Start ollama
  create      Create a model from a Modelfile
  show        Show information for a model
  run         Run a model
  stop        Stop a running model
  pull        Pull a model from a registry
  push        Push a model to a registry
  list        List models
  ps          List running models
  cp          Copy a model
  rm          Remove a model
  help        Help about any command

Flags:
  -h, --help      help for ollama
  -v, --version   Show version information

Use "ollama [command] --help" for more information about a command.

常用命令

docker 命令非常类似

启动ollama服务

ollama serve

从注册仓库中拉取模型

ollama pull {modelName}[:{tag}]

如:
ollama pull qwen
ollama pull qwen2:7b
ollama pull llama3:70b

如:

C:\Users\xxx> ollama pull qwen2
pulling manifest
pulling 43f7a214e532... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████▏ 4.4 GB
pulling 77c91b422cc9... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████▏ 1.4 KB
pulling c156170b718e... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████▏  11 KB
pulling f02dd72bb242... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████▏   59 B
pulling 75357d685f23... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████▏   28 B
pulling 648f809ced2b... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████▏  485 B
verifying sha256 digest
writing manifest
success

C:\Users\xxx> ollama list
NAME            ID              SIZE      MODIFIED
qwen2:latest    dd314f039b9d    4.4 GB    About a minute ago

列出已下载模型

ollama list  

C:\Users\xxx> ollama list
NAME            ID              SIZE      MODIFIED
qwen2:latest    dd314f039b9d    4.4 GB    About a minute ago


列出正在运行的模型

C:\Users\xxx>ollama ps
NAME            ID              SIZE      PROCESSOR    UNTIL
qwen2:latest    dd314f039b9d    5.5 GB    100% CPU     3 minutes from now

从模型文件创建模型

ollama create 

显示模型信息

ollama show {模型名称}

如:

C:\Users\xxx>ollama show qwen2:latest
  Model
    architecture        qwen2
    parameters          7.6B
    context length      32768
    embedding length    3584
    quantization        Q4_0

  Parameters
    stop    "<|im_start|>"
    stop    "<|im_end|>"

  System
    You are a helpful assistant.

  License
    Apache License
    Version 2.0, January 2004

运行模型 : 实际运行前,会先自动下载模型

ollama run {modelName}[:{tag}]

如:

C:\Users\xxx> ollama list
NAME            ID              SIZE      MODIFIED
qwen2:latest    dd314f039b9d    4.4 GB    About a minute ago

C:\Users\xxx> ollama run qwen2:latest
>>>
>>>
>>> hello
Hello! How can I assist you today?
>>> 
>>>
Use Ctrl + d or /bye to exit.
>>> /?
Available Commands:
  /set            Set session variables
  /show           Show model information
  /load <model>   Load a session or model
  /save <model>   Save your current session
  /clear          Clear session context
  /bye            Exit
  /?, /help       Help for a command
  /? shortcuts    Help for keyboard shortcuts

Use """ to begin a multi-line message.

>>> /bye
C:\Users\xxx>

将模型推送到注册仓库

ollama push  

复制模型

ollama cp

删除模型

ollama rm

K Ollama 模型库

类似 Docker 托管镜像的 Docker Hub,Ollama 也有个 Library 托管支持的大模型。
从0.5B 到 236B,各种模型应有尽有,大家可以根据自己的机器配置,选用合适的模型。

同时,官方也贴心地给出了不同 RAM 推荐的模型大小,以及命令:

J Ollama API 调用

  • Ollama API 调用文档

curl 方式

主要描述通过 curl 调用 ollama web api

  • 本地调用 Ollama API
  • curl http://127.0.0.1:11434/api/generate -d "{\"model\": \"qwen2\",\"prompt\": \"who are you?\",\"stream\":false}"
  • Windows 系统:
C:\Users\xxx>curl http://localhost:11434/api/generate -d "{\"model\": \"qwen2\",\"prompt\": \"who are you?\",\"stream\":false}"
{"model":"qwen2","created_at":"2025-02-11T01:20:57.7827609Z","response":"I am a large language model created by Alibaba Cloud. I'm called Qwen, which stands for \"Question Answering through Wenxuan.\" My primary function is to provide information and assistance in various fields including technology, science, culture, history, language, mathematics, education, etc., with the goal of being helpful and informative.","done":true,"done_reason":"stop","context":[151644,8948,198,2610,525,264,10950,17847,13,151645,198,151644,872,198,14623,525,498,30,151645,198,151644,77091,198,40,1079,264,3460,4128,1614,3465,553,54364,14817,13,358,2776,2598,1207,16948,11,892,13352,369,330,14582,21806,287,1526,61223,87,10386,1189,3017,6028,729,374,311,3410,1995,323,12994,304,5257,5043,2670,5440,11,8038,11,7674,11,3840,11,4128,11,37596,11,6731,11,4992,2572,448,279,5795,315,1660,10950,323,38219,13],"total_duration":17983050900,"load_duration":6139956100,"prompt_eval_count":23,"prompt_eval_duration":1518000000,"eval_count":68,"eval_duration":10309000000}
  • Linux / Mac 系统

Windows 电脑,可用Git Bash命令行终端模拟 Linux CLI

> curl http://127.0.0.1:11434/api/generate -d '{"model": "qwen2","prompt": "who are you?","stream":false}'
{"model":"qwen2","created_at":"2025-02-11T01:29:15.6099964Z","response":"I am Qwen, an AI model created by Alibaba Cloud. I'm designed to assist and interact with users lik
e you, providing information and help based on the tasks you need. Whether it's answering questions, assisting with research, or helping with other inquiries, my goal is to
 make your experience smooth and efficient.","done":true,"done_reason":"stop","context":[151644,8948,198,2610,525,264,10950,17847,13,151645,198,151644,872,198,14623,525,498
,30,151645,198,151644,77091,198,40,1079,1207,16948,11,458,15235,1614,3465,553,54364,14817,13,358,2776,6188,311,7789,323,16282,448,3847,1075,498,11,8241,1995,323,1492,3118,3
89,279,9079,498,1184,13,13139,432,594,35764,4755,11,45827,448,3412,11,476,10476,448,1008,43883,11,847,5795,374,311,1281,697,3139,10876,323,11050,13],"total_duration":152499
96900,"load_duration":3603213300,"prompt_eval_count":23,"prompt_eval_duration":1537000000,"eval_count":64,"eval_duration":10099000000}

> curl http://127.0.0.1:11434/api/chat -d '{
  "model": "qwen2",
  "messages": [
    {
      "role": "user",
      "content": "who are you?"
    }
  ],
  "stream": false
}'
{"model":"qwen2","created_at":"2025-02-11T01:30:42.5858066Z","message":{"role":"assistant","content":"I am an AI (artificial intelligence) designed to assist with various t
asks, provide information, answer questions, and help users navigate through different kinds of inquiries or problems. I'm here to make things easier for you by sharing my
knowledge base, engaging in conversation, and helping organize your thoughts or ideas. How can I assist you today?"},"done_reason":"stop","done":true,"total_duration":11189
009900,"load_duration":22564900,"prompt_eval_count":23,"prompt_eval_duration":151000000,"eval_count":69,"eval_duration":11012000000}

在LangChain中使用Ollama

# 引入ollama
from langchain_community.chat_models import ChatOllama
 
# 加载llama3模型
ollama_llm = ChatOllama(model="llama3")
 
# 构造Message
from langchain_core.messages import HumanMessage
 
messages = [
    HumanMessage(
        content="你好,请你介绍一下你自己",
    )
]
 
# 发送Message
chat_model_response = ollama_llm.invoke(messages)
 
# 输入Message
chat_model_response
> python ollama_on_langchain.py

参考文献

U 热门大模型的模型参数及硬件规格需求

选择模型规模 根据你的电脑硬件配置选择合适的模型规模。以下是一个模型大小配置参考表格:

DeepSeek-R1

ollama pull deepseek-r1:1.5b
ollama run deepseek-r1:1.5b

ollama run deepseek-r1:7b
ollama run deepseek-r1:8b

ollama run deepseek.r1:14b
ollama run deepseek-r1:32b
ollama run deepseek-r1:70b

ollama run deepseek-r1:671b

模型参数 Windows配置要求 Mac配置要求 适用场景
1.5B RAM: 4GB, GPU: 集成显卡/现代CPU, 存储: 5GB RAM: 8GB, 存储: 5GB 简单文本生成、基础代码补全
7B RAM: 8-10GB, GPU: GTX 1680 (4-bit量化), 存储: 8GB RAM: 16GB, 存储: 8GB 中等复杂度问答、代码调试
14B RAM: 24GB, GPU: RTX 3090 (24GB VRAM), 存储: 20GB RAM: 32GB, 存储: 20GB 复杂推理、技术文档生成

DeepSeek-V3

  • url

Qwen 系列

Qwen2

  • url

Qwen2.5

  • url

llama 系列

llama3.3

  • url
  • 支持的参数规模: 70b
> ollama pull llama3.3
> ollama run llama3.3

llama3.2

  • url
  • 支持的参数规模: 1b / 3b
ollama pull llama3.2
ollama run llama3.2

llama3

  • url
  • 支持的参数规模: 8b / 70b
> ollama pull llama3
> ollama run llama3

K Ollama FAQ

Q: 如何配置远程 Ollama 服务?

  • 默认情况下,Ollama 服务仅在本地运行,不对外提供服务。要使 Ollama 服务能够对外提供服务,你需要设置以下两个环境变量:
OLLAMA_HOST=0.0.0.0
OLLAMA_ORIGINS=*

在 MacOS 上配置

  • 打开命令行终端,输入以下命令:
launchctl setenv OLLAMA_HOST "0.0.0.0"
launchctl setenv OLLAMA_ORIGINS "*"
  • 重启 Ollama 应用,使配置生效。

在 Windows 上配置

在 Windows 上,Ollama 会继承你的用户和系统环境变量。

  • 通过任务栏退出 Ollama。
  • 打开设置(Windows 11)或控制面板(Windows 10),并搜索“环境变量”。
  • 点击编辑你账户的环境变量。
  • 为你的用户账户编辑或创建新的变量 OLLAMA_HOST,值为 0.0.0.0; 为你的用户账户编辑或创建新的变量 OLLAMA_ORIGINS,值为 *
  • 点击确定/应用以保存设置。
  • 从 Windows 开始菜单启动 Ollama 应用程序。

在 Linux 上配置

如果 Ollama 作为 systemd 服务运行,应使用 systemctl 设置环境变量:

  • 调用 systemctl edit ollama.service 编辑 systemd 服务配置。这将打开一个编辑器。

  • [Service] 部分下为每个环境变量添加一行 Environment

[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"
  • 保存并退出。

  • 重新加载 systemd 并重启 Ollama:

systemctl daemon-reload
systemctl restart ollama

Y 推荐文献

  • 计算巢 - 阿里云
  • DeepSeek-R1 (私有化部署)

X 参考文献

  • Ollama
posted @   千千寰宇  阅读(1374)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
历史上的今天:
2022-12-29 [Java SE] 核心源码精讲:java.util.Optional(JDK1.8-)
点击右上角即可分享
微信分享提示