简介
Ollama 是一个轻量级的开源工具,允许你在本地或服务器上运行和管理大型语言模型(LLMs)。通过 Ollama,你可以轻松地将各种 LLMs 部署为 API 服务,并通过命令行或其他客户端进行调用。
本手册旨在为您提供在 Windows 11 系统下使用 Ollama 部署和发布大语言模型服务的完整技术指南。内容涵盖从安装配置到优化部署的所有步骤,帮助您快速上手并高效管理 LLMs 服务。
硬件与环境要求
在 Windows 11 系统中运行 Ollama 和大语言模型需要满足以下最低硬件和软件要求:
硬件要求
- 处理器:建议使用支持 Intel AVX2 或更高版本的 CPU,以更好地加速推理。
- 内存:至少 8GB RAM;部署较大模型(如 LLaMA、Vicuna 等)需 16GB+ RAM。
- 存储:至少 50GB 可用存储空间(取决于所选模型大小)。
软件要求
- Windows 11 或更高版本。
- 安装 .NET SDK(用于 Ollama 的依赖项)。
- 安装 Git(用于从 Git 仓库克隆代码)。
- 安装 Python 和 pip(部分插件可能需要 Python 环境)。
安装与配置
1. 安装 .NET SDK
确保您的系统已经安装了 .NET SDK。Ollama 依赖于 .NET 运行时环境才能正常运行。
命令安装(建议)
在 Windows 命令提示符下(以管理员权限打开)输入以下命令:
# 下载并安装最新的 .NET SDK
dotnetSdkVersion=6.0.101
Invoke-WebRequest -Uri https://aka.ms/dotnet/ installerScriptUrl -OutFile dotnet-installer.ps1
powershell -ExecutionPolicy RemoteSigned -File dotnet-installer.ps1 --version $dotnetSdkVersion
2. 安装 Ollama
通过以下步骤安装 Ollama:
使用 NuGet 包管理器安装
打开命令提示符,运行以下命令:
# 全局安装 Ollama CLI 工具
dotnet tool install --global dotnet-ollama
# 验证是否安装成功
ollama --version
另一种方式(从源码编译)
如果需要最新的功能或修复,可以选择从 GitHub 仓库 克隆代码并进行本地编译。这将需要 .NET SDK,以及一些额外的构建工具。
3. 配置环境变量
确保 C:\Users\<username>\AppData\Roaming\npm
或全局 .NET 工具目录被添加到系统路径中,以便后续在任何位置都可以直接使用 ollama
命令。
模型下载与管理
Ollama 提供了多个现成的大语言模型,您可以通过以下步骤进行下载和管理:
1. 使用提供的模型
Ollama 预集成了一些开源 LLMs 模型(如 Alpaca、Llama、Mistral 等)。你可以通过以下命令下载其中任意一个:
# 列出所有可用的模型及其版本号
ollama list models --all
# 下载并安装特定模型(例如,deepseek-r1:8b 模型)
ollama install deepseek-r1:8b
# 验证模型是否正确下载
ollama info deepseek-r1:8b
2. 使用自定义模型
如果你已经拥有一个本地训练或下载的模型,并希望在 Ollama 中运行它,可以按照以下步骤操作:
- 将模型文件(如
.gguf
)复制到C:\Users\<username>\.ollama\models
目录下。 - 使用以下命令注册自定义模型:
ollama register --name my-custom-model --type llama --path C:\Users\<username>/.ollama/models/model.gguf
服务发布与 API 调用
1. 启动 Ollama 服务
默认情况下,Ollama 会在你执行命令时以非交互式方式运行模型推理。若要启动一个长期服务(特别是为了对外提供 API),可以按如下步骤进行:
# 在命令提示符中以管理员权限运行以下代码创建 Ollama 服务:
$serviceName = "OllamaService"
$binaryPath = "C:\path\to\ollama.exe"
New-ServiceManager $serviceName -BinaryPath $binaryPath -Verbose
Start-Service $serviceName
如果需要配置 Ollama 监听特定端点或设置其他参数,可以在启动命令中添加相应的选项。例如:
# 设置 Ollama 监听在 localhost:11434 端口,并限制每秒处理的最大请求数:
ollama serve --port 11434 --max-concurrent 5
2. 创建 HTTP API 接口
为了方便调用,可以将 Ollama 集成到一个简单的 Web 服务中。
Docker 方案(推荐)
使用 Docker 容化可以在不同平台上实现服务的标准化部署。以下是基于 .NET Core 的一个示例:
-
创建一个新的 ASP.NET Core 控制台项目以便处理 HTTP 请求。
-
在
Program.cs
中添加以下代码以配置 Kestrel 服务器:var builder = WebApplication.CreateBuilder(args); // 添加 CORS 支持(根据需求) builder.Services.AddCors(); app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.MapGet("/api/v1/completions", async (HttpContext context) => { var input = await new StreamReader(context.Request.Body).ReadToEndAsync(); // 调用 Ollama 进行推理 var completion = await RunOllama(input); context.Response.ContentType = "application/json"; var response = JsonSerializer