被指派把一个大模型放到全公司背后,选模型往往是那场最短的会。真正拖成长工单的,是密钥、队列、告警和账单。一场演示把这件事摆了出来:五十个团队共用一个私有对话服务,配的是五十把密钥、一个兼容 OpenAI 接口格式的端点、十台 GPU 服务器,以及一块能按密钥拆分小时账单的成本屏。
先说一个前提,它决定了后面所有结论的边界:那十台标着“H100”(英伟达高端 GPU)的机器,其实是一台普通主机上的测试模式进程,返回的是填充文本,并没有真正跑模型。面板、密钥、队列和计费是真实产品。所以这次跑通说明的是管理侧的事,跟真实模型答得多快没有关系。
每把密钥只对准一个端点
演示给每个团队发一把密钥,很多时候是按用途发:路线图、竞品情报、安全政策问答、董事会汇报。一共五十把,每一把只被允许访问一个端点 nexora-private-gpt/enterprise-chat。
这么做有两个理由。密钥一旦泄露,能碰到的只有公司对话服务,碰不到项目里跑的别的东西。另一层是密钥就是计费单位,按用途发密钥,才能告诉财务“董事会汇报”才是重度用户,而不是笼统的“财务部”。一个团队离职,取消勾选它的密钥就行。因为端点接受和 OpenAI 相同的请求格式,现有客户端只需要改一个基础地址和一把密钥。
让工作节点自己来取,不要做路由
在面板里,被服务的模型是一个工作负载,每台服务它的机器是一个工作节点。十个节点服务一个工作负载,每个节点同时最多接 8 个请求(也就是它的并发数),整个集群因此有 80 个槽位。五十把密钥全部汇入一个队列,哪个节点有空槽,就领走下一个任务。你决定哪些机器来服务这个模型,队列决定某个请求由哪台机器回答。
扩容时这一点很省事:挑一台已注册的机器或一台新的云端 GPU,设好它的并发数,没有任何团队需要改密钥或地址。流量跑着的时候,没有人点过“添加节点”,五十团队演示的记录里,这件事和“节点在负载中途挂掉”一起,被列进了还没拍过的场景。
看积压的趋势,不要看积压本身
积压是等着空槽的请求数,吞吐是每分钟完成的请求数。单看积压 20 说明不了什么,一直往上爬才是该加机器的信号。抽屉面板把这个判断变成了标签:只要吞吐大于零,且积压按最近几个完整分钟(最多五分钟)比较,涨幅不超过 25% 或 2 个任务(取两者中较大者),它就停在“Healthy flow”。积压下降、吞吐上升显示“Recovering”;积压上升显示“At risk”;吞吐同时下滑则是“Critical”。
同一屏上有个坑:页头的每分钟任务计数器,只统计你当前打开的标签页在过去一分钟里看到的完成数,每次刷新页面都从零开始。演示里它从 0 爬到约 3,700。真实负载要看抽屉里的五分钟均值,每分钟完成 4,252 个,来自一个每秒推约 70 个请求的脚本。
账单是两行算术
没有任何一项按字数计价。面板给预留的节点时间定价,只用 token(模型读写文本的片段,大约四分之三个单词)来拆分总额:
- 项目成本 = 预留小时数 × 小时单价,即 134.53 小时 × 2.4306 美元/小时 = 326.97 美元
- 密钥成本 = 该密钥 token 数 / 项目 token 数 × 项目成本,即 17.37M / 93.07M = 18.7%,对应“财务-董事会汇报”61.03 美元
小时单价来自每月 1,750 美元除以 720 小时。十个节点每小时 24.31 美元,如果从不停机,一个月约 17,500 美元。节点只要还挂在这个项目上就累计小时数,忙不忙都算。总额大约每 1.5 秒变动一美分,相隔几秒截的图会差上几分钱,别写一个指望它们相等的测试。
别拿每 token 单价去对外报价
面板显示每百万 token 3.51 美元。不要把它和公开 API 的价格并排放。每个节点预留了约 13.5 小时,按它的稳定速率,测试流量只填满其中约 72 分钟,所以这个数字主要衡量的是机器在空等。按小时付费时,集群越忙,这个单位成本越低;放到真实 GPU 上,它取决于每台机器每秒能产出多少 token。
在真实 GPU 上还需要测的东西:
- 你的模型、你的回答长度下,每台机器每秒的 token 数
- 在延迟变难看之前,能跑到多接近 80 个槽位(脚本同时最多只发了 32 个)
- 出错时的行为,因为 0 错误和 250 毫秒的 p95 延迟(95% 的请求至少这么快得到回答)都来自测试模式
- 每个团队的真实占比,因为脚本的大部分流量来自少数几把密钥,token 也是在填充文本上数的
这就像音响已经通电、台上却没有乐队的试音:它告诉你线缆和调音台是好的,不会告诉你房间能有多吵。
热门跟贴