Ollama:本地LLM运行利器
--- title: "Ollama:本地LLM运行利器" description: "详细介绍Ollama的安装、使用和高级配置,轻松运行本地大语言模型" tags: ["Ollama", "本地部署", "LLM", "开源"] category: "llm" icon: "🧠"
Ollama:本地LLM运行利器
Ollama简介
Ollama是一个轻量级的本地LLM运行工具,支持一键下载和运行多种开源大语言模型。它简化了本地部署流程,让每个人都能轻松使用大语言模型。
安装Ollama
Windows/Mac
访问 https://ollama.com/download 下载安装包。
Linux
curl -fsSL https://ollama.com/install.sh | sh
验证安装
ollama --version
基础使用
下载和运行模型
# 下载并运行Llama 3
ollama run llama3
# 下载并运行Qwen 2
ollama run qwen2:7b
# 下载并运行Mistral
ollama run mistral
管理模型
# 列出已下载的模型
ollama list
# 查看模型详情
ollama show llama3
# 删除模型
ollama rm llama3
# 拉取特定版本
ollama pull llama3:8b
ollama pull llama3:70b
Python API调用
基础对话
import requests
import json
def ollama_generate(prompt, model="llama3", stream=False):
url = "http://localhost:11434/api/generate"
payload = {
"model": model,
"prompt": prompt,
"stream": stream
}
response = requests.post(url, json=payload)
return response.json()["response"]
response = ollama_generate("用Python写一个快速排序算法")
print(response)
流式输出
def ollama_stream(prompt, model="llama3"):
url = "http://localhost:11434/api/generate"
payload = {
"model": model,
"prompt": prompt,
"stream": True
}
response = requests.post(url, json=payload, stream=True)
full_response = ""
for line in response.iter_lines():
if line:
data = json.loads(line)
if "response" in data:
chunk = data["response"]
print(chunk, end="", flush=True)
full_response += chunk
print()
return full_response
多轮对话
def ollama_chat(messages, model="llama3"):
url = "http://localhost:11434/api/chat"
payload = {
"model": model,
"messages": messages,
"stream": False
}
response = requests.post(url, json=payload)
return response.json()["message"]["content"]
conversation = [
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "什么是Docker?"}
]
response = ollama_chat(conversation)
print(response)
conversation.append({"role": "assistant", "content": response})
conversation.append({"role": "user", "content": "Docker和虚拟机有什么区别?"})
response = ollama_chat(conversation)
print(response)
模型选择指南
models = {
"轻量级(4GB显存)": ["qwen2:1.5b", "phi3:3.8b", "gemma2:2b"],
"中等(8GB显存)": ["llama3:8b", "qwen2:7b", "mistral:7b"],
"高性能(16GB+显存)": ["llama3:70b", "qwen2:72b", "mixtral:8x7b"]
}
for tier, model_list in models.items():
print(f"\n{tier}:")
for m in model_list:
print(f" - {m}")
Modelfile自定义
FROM llama3
SYSTEM "你是一个专业的Python编程助手。"
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 4096
# 创建自定义模型
ollama create my-assistant -f Modelfile
# 运行自定义模型
ollama run my-assistant
性能优化
# 使用GPU加速
# Ollama会自动检测并使用可用的GPU
# 调整并行请求
OLLAMA_NUM_PARALLEL=4 ollama serve
# 设置上下文长度
OLLAMA_CONTEXT_LENGTH=8192 ollama serve
集成到应用
# 使用LangChain集成
from langchain_community.llms import Ollama
llm = Ollama(model="llama3")
response = llm.invoke("解释什么是机器学习")
print(response)
常见问题
# 模型下载慢?使用镜像
OLLAMA_HOST=0.0.0.0 ollama serve
# 显存不足?
# 1. 使用更小的模型
# 2. 减小上下文长度
总结
Ollama是本地运行LLM最简单的方式,支持多种主流模型,提供Python API,适合快速搭建本地AI应用。