在本地运行大语言模型:使用 Ollama 导入模型详解

在本地运行大语言模型:使用 Ollama 导入模型详解 🚀

原文整理自:ollama导入本地模型(发布于 2025‑04‑10)


1. 什么是 Ollama?

Ollama 是一个开源的大语言模型(LLM)本地管理工具,它提供:

  • 本地运行:支持 DeepSeek、Qwen2、Llama3、Phi3、Gemma2 等多种开源大型语言模型;
  • 环境统一:通过命令行和 API,简化模型的下载、导入、管理和部署流程;
  • 开发者友好:适合研究人员、开发者、AI 爱好者进行本地测试与项目构建。

2. 安装与环境配置

2.1 安装步骤

  1. Ollama 官网 下载支持 Windows/Mac/Linux 的安装包;
  2. 常规安装即可,无需额外配置。

2.2 环境变量设置建议

配置建议如下,以提升本地使用体验:

变量名称 功能说明
OLLAMA_MODELS 模型文件存放目录,避免塞满系统盘
OLLAMA_HOST 设置为 0.0.0.0 可接收局域网访问
OLLAMA_PORT 默认端口 11434,冲突时可替换
OLLAMA_ORIGINS 设置访问权限,如 * 支持任意来源
OLLAMA_KEEP_ALIVE 模型缓存存活时间(如 24h
OLLAMA_NUM_PARALLEL 并发请求数量,建议 >1
OLLAMA_MAX_QUEUE 最大请求队列长度,默认 512
OLLAMA_DEBUG 调试模式开关,输出详细日志
OLLAMA_MAX_LOADED_MODELS 最大同时加载模型数,避免超载

3. 常用命令指南

ollama --version                   # 查看版本
ollama serve                      # 启动服务(默认本地 11434 端口)
ollama list                       # 显示已下载模型
ollama ps                         # 列出运行中的模型
ollama pull <模型名称>[:规格]     # 从仓库下载模型
ollama run <模型名称>            # 启动模型
ollama stop <模型名称>           # 停止模型运行
ollama show <模型名称>           # 查看模型信息
ollama create <名称> -f <文档>    # 导入自定义模型
ollama rm <模型名称>             # 删除本地模型
ollama cp <旧名> <新名>           # 复制并重命名模型

4. 三种本地模型导入方式

4.1 方式一:直接从远程仓库拉取(推荐)

ollama pull qwen2:0.5b
ollama pull qwen2     # 默认同等于 qwen2:latest

将完整模型下载到本地,或者更新已存在模型。

4.2 方式二:从 GGUF 权重文件导入

适用于手头已下载 GGUF 权重(如 Meta‑Llama‑3‑8B‑Instruct.Q4_K_M.gguf):

  1. 在模型目录创建 Modelfile 文件,内容:
    FROM ./Meta‑Llama‑3‑8B‑Instruct.Q4_K_M.gguf
    
  2. 执行导入:
    ollama create Llama‑3‑8B -f ./Modelfile
    ollama list
    

4.3 方式三:从 safetensors 文件导入

适用于来自 HuggingFace/ModelScope 的 safetensors 文件(如量化后的 Mistral):

  1. 转换并量化成 bin 格式:
    python convert.py … –outfile Mistral‑7B‑v0.3.bin
    llama.cpp/quantize … Mistral‑7B‑v0.3_Q4.bin q4_0
    
  2. 模型目录创建 Modelfile
    FROM Mistral‑7B‑v0.3_Q4.bin
    
  3. 导入执行:
    ollama create Mistral‑7B‑v0.3 -f ./Modelfile
    

导入后可通过 ollama list 查看。


5. Web 可视化界面部署

默认 CLI 界面较简陋,可使用第三方 WebUI 提升体验:

git clone https://github.com/ollama-webui/ollama-webui-lite
cd ollama-webui
npm config set registry http://mirrors.cloud.tencent.com/npm/
npm install
npm run dev

浏览器访问 http://localhost:3000/ 即可使用 Web 对话界面。


6. API 使用示例

6.1 HTTP 接口

  • generate
    curl http://localhost:11434/api/generate     -d '{"model":"qwen:0.5b","prompt":"为什么天空是蓝色的?"}'
    
  • chat
    curl http://localhost:11434/api/chat     -d '{"model":"qwen:7b","messages":[{"role":"user","content":"为什么天空是蓝色的?"}]}'
    

6.2 Python 接入

import ollama

# 流式输出方式
def api_generate(text: str):
    print(f"提问:{text}")
    stream = ollama.generate(stream=True, model='qwen:7b', prompt=text)
    for chunk in stream:
        if not chunk['done']:
            print(chunk['response'], end='', flush=True)
        else:
            print("\n【耗时】", chunk['total_duration'])

# 非流式调用
response = ollama.generate(model='qwen:0.5b', prompt='天空为什么是蓝色的?')

6.3 OpenAI SDK 调用

from openai import OpenAI

# 创建 OpenAI 客户端,指向 Ollama 本地服务
client = OpenAI(
    base_url="http://localhost:11434/v1",  # Ollama 本地服务地址
    api_key="ollama-local"                 # 必填,但随便填(Ollama 不验证)
)

response = client.chat.completions.create(
    model="qwen:7b",  # 替换为你本地已有的模型名称
    messages=[
        {"role": "user", "content": "讲一个程序员的冷笑话"}
    ]
)
print(response.choices[0].message.content)

⚠️ 注意事项

  • base_url 一定要写成 http://localhost:11434/v1,注意结尾的 /v1;
  • api_key 虽然是必填字段,但 Ollama 并不会验证,随便写即可;
  • 模型名请确保是 ollama list 中可用的本地模型;
  • 该方式适合已有使用 OpenAI SDK 的项目快速适配本地部署场景。
posted @ 2025-06-16 10:27  SIo_2  阅读(5684)  评论(0)    收藏  举报