首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
Token 调度器要算哪笔账:预留、结算与超时归还
📅 2026/10/28 22:59:59
✍️ 爱科研究院
👁 阅读 3,247
把高优先级任务先放进队列并不会让它凭空拥有 Token 配额。调度器需要先承认一个朴素事实已承诺给在途请求的预算也属于暂时不可用的资源。LangChain 10 月 1 日关于模型路由的文章把任务理解、评估与成本记录放在 harness 里讨论。本文只借鉴“调度决策要有任务与结果账本”的做法不复用其成本降幅也不实施模型切换。文章预留、结算、取消是三种事件请求开始前按上界预留完成后按可信 usage 结算取消时需要知道远端是否已经执行。若网络断了而结果未知不能立刻假定零消耗并把全部配额发给下一批请求。供应商的 RPM、TPM、并发和缓存计费也不是同一个桶。幂等键同样重要。一个超时回调和一个正常完成回调先后到达若都归还同一笔预留账本就会创造出不存在的预算。先把状态机写对再讨论竞价公式会更稳。一个不会双重退款的小账本例子只管理一个固定容量桶没有模拟供应商的滚动时间窗口。它能验证预算守恒与重复结算不声称可以根治所有 429。图中的容量 10、预留 6、实际 4 都是教学单位。图里的取消归还只能对应确认没有消耗的预留未知远端结果必须进入单独的待核状态不能沿用这个简化退款分支。class Budget: def __init__(self, capacity): self.capacity capacity self.available capacity self.jobs {} def reserve(self, request_id, amount): if request_id in self.jobs or amount 0 or amount self.available: raise ValueError(duplicate or insufficient reservation) self.available - amount self.jobs[request_id] {reserved: amount, settled: None} def settle(self, request_id, actual): job self.jobs[request_id] if job[settled] is not None: if job[settled] ! actual: raise ValueError(conflicting settlement) return if not 0 actual job[reserved]: raise ValueError(usage exceeds reserved upper bound) self.available job[reserved] - actual job[settled] actual budget Budget(10) budget.reserve(r1, 6) assert budget.available 4 budget.settle(r1, 4) assert budget.available 6 budget.settle(r1, 4) assert budget.available 6 try: budget.settle(r1, 0) except ValueError: pass else: raise AssertionError(second callback refunded twice) print(reserve 6, charge 4, balance 6; duplicate settlement changed nothing)例子跑通以后还要验证什么这段代码已在本地 macOS、CPython 3.9.6 下运行实际输出为reserve 6, charge 4, balance 6; duplicate settlement changed nothing。它验证的是例子中的数据约束与分支不包含线上服务的吞吐或延迟测量。未调用模型 API也未测试供应商配额、429、流式 usage 或计费。本地只验证有限状态账本真实实现要持久化、处理并发原子性、过期预算、usage 不完整和估计超上界并把优先级公平性与预算正确性分别评估。延伸阅读How to Build a Model Router in the Harness2026 年 10 月 1 日的一手工程案例其试验数据不移植为本文成绩。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/28 22:59:59
长上下文 U 型编排:让证据顺序成为可验证的假设
2026/10/28 22:59:59
Workerd如何成为边缘计算的类操作系统内核
2026/10/28 22:54:59
AI Harness工程:Agent运行层架构设计与优化实践
2026/10/28 23:55:08
Agent与LLM工程化实战:从架构设计到容错与并发
2026/10/28 23:55:08
Cocos安卓ANT打包:环境版本咬合、签名多渠道与避坑
2026/10/28 23:55:08
棋牌服务端6.6源码拆解:IOCP网络内核、存储过程与二次开发
2026/10/28 23:55:08
RSNetWorx ControlNet/DeviceNet组态与排故实践
2026/10/28 23:55:08
Ubuntu日志管理实战:rsyslog、journald与logrotate配置指南
2026/10/28 23:50:07
跨语言系统集成:核心挑战与主流解决方案
2026/10/28 0:00:12
Stable Diffusion文生图全解析:从CLIP到UNet的扩散模型原理与实战
2026/10/28 0:00:12
从 Notebook 到 Python 项目:如何重构量化行情获取代码?
2026/10/28 0:00:12
2026版人形机器人标准:具身智能与模块化设计解析
2026/10/28 12:27:10
全国计算机二级C语言真题PDF高效刷题指南
2026/10/28 15:37:16
requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南
2026/10/28 12:37:46
递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现
2026/10/28 15:37:16
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/28 15:37:15
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/28 15:37:15
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)