中文 ▾

无审查的 OpenAI 兼容 API

获取 API 密钥
每 1M 输入 token
$0.15
输出 token / 1M
$0.50
token 上下文
100,000
试用额度
$0.50
每分钟请求数
300

如何运行 Dolphin LLM:本地部署与托管 API 对比

更新于

本页面介绍如何在本地计算机或通过托管接口运行 dolphin llm,以及如何在这两者之间做出选择。简而言之:本地运行无需按 token 付费,但需要内存和耐心,托管运行只需一个 API 密钥。

通过光之桥连接的桌面电脑与云服务器,对比本地与托管 LLM 部署
一罐硬币的插图,旁边是流入终端的 token 流

要点

  • 本地运行需要足够的 RAM 或 VRAM 来容纳量化文件及上下文缓存。
  • Ollama 是最快的入门方式;llama.cpp 允许更精细地控制量化和命令行参数。
  • 两者都提供 OpenAI 风格的服务器,因此相同的客户端代码可以指向本地或托管端。
  • 托管接口按 1M 输入 token 收取 $0.15,按 1M 输出 token 收取 $0.50,设置只需几分钟。

首先决定:你拥有什么硬件?

内存决定一切。语言模型是一组非常大的数字,生成过程中整个集合必须驻留在快速内存中。量化会缩小这些数字。4-bit 量化模型每个参数约占 0.5 字节,因此 80 亿参数的模型约为 5 GB,700 亿参数的模型约为 40 GB。由于确切大小取决于量化格式,请将这些视为粗略数字。

除了权重外,你还需要为上下文缓存留出空间。它随提示词长度增长,因此长角色扮演历史或大文档比短问题消耗更多内存。在适度上下文下计划几 GB 的额外空间,如果追求长提示词则需更多。

  • 8 GB 笔记本无 GPU:仅小型模型,输出缓慢。
  • 16 至 32 GB Apple Silicon Mac:中型模型运行良好,因为 CPU 和 GPU 共享内存。
  • 单张消费级 GPU 12 至 24 GB VRAM:中型模型,速度良好。
  • 更大规模:多 GPU 或租用服务器。

方法 1:通过几条命令使用 Ollama

Ollama 是最短路径。它会下载量化模型,启动后台服务并提供聊天提示符。从您操作系统的官方网站安装它,然后查看 Ollama 模型库当前列出了哪些 Dolphin 标签,因为名称和大小在发布之间会发生变化。

# replace <tag> with a Dolphin tag from the Ollama library
ollama pull <tag>
ollama run <tag>

第一个命令下载文件,在慢速连接上可能需要一段时间。第二个命令在终端中打开交互式聊天。Ollama 还在你的机器上提供 HTTP API,包括 /v1 下的 OpenAI 风格路由,以便其他程序使用它。

如果生成非常慢,模型可能未完全放入 VRAM,部分在 CPU 上运行。选择较小的标签或更低比特的量化。

方法 2:使用 llama.cpp 获得更多控制

llama.cpp 是许多其他工具构建的基础 C++ 引擎。你下载模型的 GGUF 文件,然后启动其服务器。这比 Ollama 需要更多步骤,但允许你设置上下文长度、放置在 GPU 上的层数以及所需的量化。

# after building llama.cpp and downloading a GGUF file
llama-server -m ./model.gguf -c 8192 -ngl 99 --port 8080

这里 -c 设置上下文长度,-ngl 设置多少层进入 GPU,--port 选择端口。查看项目的 README 以获取您版本中的参数,因为它们会更新。较大的 -c 使用更多内存,因此仅在需要时提高它。

对于图形化使用,Open WebUI 等前端可以与任一服务器通信。我们的 Open WebUI API 接口 说明如何添加自定义接口。

从代码调用本地服务器

这两种工具都可以使用 OpenAI 聊天格式,因此你只需编写一次客户端,并通过两个设置切换目标。此脚本并排显示两个目标。本地目标使用 Ollama 默认使用的端口;如果你在 8080 上启动了 llama.cpp,请更改它。

from openai import OpenAI

TARGETS = {
    "local": {"base_url": "http://localhost:11434/v1", "key": "not-needed", "model": "your-local-tag"},
    "hosted": {"base_url": "https://api.dolphinllm.com/v1", "key": "YOUR_KEY", "model": "uncensored"},
}

t = TARGETS["hosted"]
client = OpenAI(base_url=t["base_url"], api_key=t["key"])

resp = client.chat.completions.create(
    model=t["model"],
    messages=[{"role": "user", "content": "Summarize what a GGUF file is."}],
)
print(resp.choices[0].message.content)

本地服务器通常忽略密钥,但 SDK 需要非空字符串。本地服务器的模型名称是你加载的任何标签或别名,而托管模型 ID 始终是 uncensored。

方法 3:跳过设置并使用托管接口

如果硬件计算表现不佳,或者您希望每台机器行为一致,托管接口更简单。该服务提供一个开放权重模型,由独立提供商运行,并针对合法成人用途进行调优,以无内容审查的方式回答。它不是任何模型供应商的官方 API,也不允许您选择其他模型。您获得的是一个稳定的 URL、一个密钥和按 token 计费。

步骤很简单。使用 Google 或电子邮件和密码注册,打开 API 密钥页面,并一键领取 $0.50 试用额度。无需绑定银行卡,有效期 7 天,每人限领一次。然后使用托管目标运行上面的 Python 脚本。如果你更喜欢 curl:

curl https://api.dolphinllm.com/v1/chat/completions   -H "Authorization: Bearer YOUR_KEY"   -H "Content-Type: application/json"   -d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}],"stream":false}'

上下文窗口为 100,000 token,这比大多数笔记本电脑能舒适缓存的要多。提示词不用于训练。

成本和精力对比

本地感觉免费,但并非如此。你支付硬件、电力和你自己的时间的费用。托管按请求收费,但数字很小。每 1M 输入 token $0.15,每 1M 输出 token $0.50,一次包含 3,000 输入 token 和 700 输出 token 的聊天轮次成本为:

  • 输入:3,000 x $0.15 / 1,000,000 = $0.00045
  • 输出:700 x $0.50 / 1,000,000 = $0.00035
  • 总计:每轮 $0.0008,即每 1,000 轮 $0.80

即使是每月发送 5,000 次此类交互的重度用户,花费也约为 $4。一台价值数百美元的 GPU 需要数年的使用才能在同等用量下收回成本。当您拥有持续的高用量、需要特定的微调模型,或无法将数据发送到外部时,比较结果会反转。

完整的价格详情,包括 +5%、+10% 和 +15% 的充值奖励,位于 定价页面,文档 涵盖了限制和参数。

选择的一个简单规则

如果您想尝试多种微调模型、离线工作,或将所有提示词保留在自己的磁盘上,请本地运行。如果您正在构建他人将使用的产品、硬件有限,或想要拥有 100,000 token 的长上下文而无需管理内存,请使用托管接口。许多开发者两者都用:本地模型用于私下折腾,托管接口用于需要保持在线的服务。由于客户端代码相同,切换成本仅为一行。

问答

运行 Dolphin 模型需要多少 RAM?

作为粗略参考,4-bit 量化模型每个参数需要约 0.5 字节,加上上下文缓存所需的内存。80 亿参数的模型大约需要 5 到 8 GB 内存,700 亿参数的模型则需要 40 GB 或更多。

我可以不使用 GPU 运行它吗?

是的,在拥有足够 RAM 的 CPU 上可以运行,但对于超出小型模型的任何情况,输出速度都较慢。Apple Silicon Mac 表现更好,因为内存是共享的。

本地和托管模式使用相同的客户端代码吗?

大部分相同。两者都接受 OpenAI 风格的聊天请求,因此你只需更改 base URL、密钥和模型名称。

有免费方式尝试托管选项吗?

新用户注册后只需一键即可领取 $0.50 的试用额度。无需信用卡,有效期为 7 天。

只需填写一个表单即可获取密钥

创建账户,复制密钥,更改基础 URL。这就是全部设置。

获取 API 密钥