下拉查看上一篇

LocalAI v3.10:免费开源的 OpenAI 替代方案,消费级硬件本地运行 AI 模型


将 AI 能力集成到应用中时,大多数开发者的第一反应是调用 OpenAI 或 Anthropic 的 API。这固然方便,但也意味着数据会离开你的控制范围、每次调用都产生费用,且在网络不稳定的环境下无法工作。LocalAI 提供了另一条路径——它是一个完全兼容 OpenAI API 格式的本地推理服务,让你在自己的硬件上运行开源 AI 模型,甚至不需要 GPU。最新的 v3.10.0 版本更是新增了 Anthropic API 兼容、视频生成能力和统一 GPU 后端,功能覆盖面进一步扩大。

LocalAI 是什么?

LocalAI 是一个自托管的 AI 推理引擎,其核心设计理念是做 OpenAI API 的本地替身。它实现了与 OpenAI API 完全兼容的 REST 接口,这意味着你只需要将 API 地址从 api.openai.com 改为 localhost:8080,现有代码无需任何其他修改就能切换到本地模型。

import openai

# 只需修改 base_url,其他代码完全不变
client = openai.OpenAI(
    base_url="http://localhost:8080/v1",  # 指向本地 LocalAI
    api_key="not-needed"                   # 本地运行无需 API Key
)

# 文本生成
response = client.chat.completions.create(
    model="llama-3.2-3b",
    messages=[{"role": "user", "content": "用 Python 写一个快速排序算法"}]
)

print(response.choices[0].message.content)

LocalAI 支持的功能覆盖了 OpenAI API 的所有主要端点:

API 端点 功能 支持的模型格式
/v1/chat/completions 文本对话 gguf, transformers
/v1/completions 文本补全 gguf, transformers
/v1/embeddings 文本嵌入 gguf, transformers
/v1/images/generations 图片生成 diffusers
/v1/audio/transcriptions 语音识别 whisper
/v1/audio/speech 语音合成 piper, bark

安装与快速启动

LocalAI 提供了多种安装方式,最简单的是使用 Docker:

# 拉取最新版本
docker pull localai/localai:v3.10.0

# 启动服务(CPU 模式)
docker run -d \
  --name localai \
  -p 8080:8080 \
  -v localai-models:/build/models \
  localai/localai:v3.10.0

# 如果有 NVIDIA GPU,使用 GPU 版本
docker run -d \
  --name localai \
  --gpus all \
  -p 8080:8080 \
  -v localai-models:/build/models \
  localai/localai:v3.10.0-cublas-cuda12

启动后,可以通过内置的 Web UI 或 API 来下载和管理模型:

# 通过 API 安装模型
curl http://localhost:8080/models/apply -H "Content-Type: application/json" \
  -d '{"id": "llama-3.2-3b-instruct"}'

# 查看已安装的模型列表
curl http://localhost:8080/v1/models

# 测试文本生成
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama-3.2-3b-instruct",
    "messages": [{"role": "user", "content": "你好,请介绍一下你自己"}]
  }'

LocalAI 项目标识

v3.10.0 新特性详解

Anthropic API 兼容

v3.10.0 最令人兴奋的新特性是增加了对 Anthropic Messages API 的兼容。现在,使用 Anthropic SDK 的应用也可以直接切换到 LocalAI:

import anthropic

# 将 Anthropic API 指向本地 LocalAI
client = anthropic.Anthropic(
    base_url="http://localhost:8080",
    api_key="not-needed"
)

message = client.messages.create(
    model="llama-3.2-3b-instruct",
    max_tokens=1024,
    messages=[{"role": "user", "content": "解释一下什么是 Transformer 架构"}]
)

print(message.content[0].text)

这意味着 LocalAI 现在同时兼容 OpenAI 和 Anthropic 两大主流 API 格式,开发者可以用同一个本地服务替代两家供应商的 API。

视频生成(LTX-2)

v3.10.0 集成了 LTX-Video 2 模型,支持文本到视频的本地生成:

# 通过 API 生成视频
curl http://localhost:8080/v1/videos/generations \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ltx-video-2",
    "prompt": "一只猫在花园里追蝴蝶,阳光明媚",
    "size": "512x320",
    "duration": 4
  }'

视频生成对硬件要求较高,建议至少使用 12GB 显存的 GPU。生成一段 4 秒 512x320 分辨率的视频,在 RTX 4090 上约需 2-3 分钟。

统一 GPU 后端

之前版本的 LocalAI 需要为不同的 GPU 品牌选择不同的 Docker 镜像(CUDA 版、ROCm 版、Vulkan 版)。v3.10.0 引入了统一 GPU 后端,自动检测并使用可用的 GPU 加速:

# 统一 GPU 后端 - 自动检测 NVIDIA/AMD/Intel GPU
docker run -d \
  --name localai \
  --device /dev/dri \
  --gpus all \
  -p 8080:8080 \
  localai/localai:v3.10.0-gpu

无 GPU 也能运行

LocalAI 最大的卖点之一是不需要 GPU 也能运行。通过 llama.cpp 后端的 CPU 优化(AVX2/AVX-512 指令集),即使在纯 CPU 环境下也能达到可用的推理速度。

以下是不同硬件配置下的性能参考(使用 Llama 3.2 3B Q4_K_M 量化模型):

硬件 推理速度 适用场景
Apple M3 (CPU) ~25 tokens/s 个人开发、测试
i7-13700K (CPU) ~18 tokens/s 个人开发、测试
RTX 4060 8GB ~60 tokens/s 个人/小团队
RTX 4090 24GB ~120 tokens/s 团队/生产
2x A100 80GB ~200 tokens/s 生产(大模型)

对于 7B 以下的量化模型,现代 CPU 完全可以提供可用的体验。但如果需要运行 13B 以上的模型或需要较高的并发,GPU 仍然是必要的。

模型管理与配置

LocalAI 支持通过 YAML 配置文件精细控制每个模型的行为:

# models/llama-3.2-3b.yaml
name: llama-3.2-3b-instruct
backend: llama-cpp
parameters:
  model: llama-3.2-3b-instruct-Q4_K_M.gguf
  context_size: 4096
  threads: 8
  temperature: 0.7
  top_p: 0.9
  gpu_layers: 35 # 将前 35 层放到 GPU

template:
  chat_message: |
    <|start_header_id|>{{.RoleName}}<|end_header_id|>
    {{.Content}}<|eot_id|>
  chat: |
    {{.Input}}
    <|start_header_id|>assistant<|end_header_id|>

你也可以使用 LocalAI 的模型画廊(Model Gallery)一键安装社区预配置的模型,省去手动编写配置的麻烦:

# 查看可用模型列表
curl http://localhost:8080/models/available

# 安装预配置模型
curl http://localhost:8080/models/apply \
  -d '{"id": "huggingface://TheBloke/Llama-3.2-3B-Instruct-GGUF/llama-3.2-3b-instruct.Q4_K_M.gguf"}'

与 Ollama 的对比

LocalAI 最常被拿来与 Ollama 对比。两者的定位有显著差异:

特性 LocalAI Ollama
API 兼容 OpenAI + Anthropic 自有 API + OpenAI
模型类型 LLM + 图片 + 语音 + 视频 主要是 LLM
配置灵活性 高(YAML 精细配置) 低(Modelfile 简单配置)
上手难度 中等 非常简单
GPU 支持 NVIDIA/AMD/Intel NVIDIA/AMD/Apple
分布式推理 支持 不支持

简单来说:如果你只需要在本地跑 LLM 对话,Ollama 更简单易用;如果你需要一个全功能的本地 AI 推理平台,覆盖文本、图片、语音、视频多个模态,LocalAI 是更好的选择。

总结

LocalAI v3.10.0 的发布标志着本地 AI 推理平台的成熟度又上了一个台阶。同时兼容 OpenAI 和 Anthropic API 的能力降低了从云端 API 迁移到本地部署的门槛,视频生成和统一 GPU 后端的加入进一步丰富了其功能版图。

对于关注数据隐私、希望控制 AI 成本、或者需要在离线环境中使用 AI 能力的开发者来说,LocalAI 提供了一个功能全面且持续活跃的开源方案。消费级硬件即可运行的特性,意味着你不需要昂贵的 GPU 服务器就能开始本地 AI 之旅。

参考来源

评论

上滑查看下一篇