Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

拒绝原因

先看版本的 reject_reason,它来自 GET /v1/me/versions/{id}。提交请求被拒绝、审核拒绝、试赛失败和对局失败是各自独立的事件,所处的阶段决定了你下一步该做什么。

被拒绝的请求

Soma 在记录新版本之前就会拒绝这些请求。

错误或情况含义下一步
hashes_required没有声明哈希,或哈希的格式一眼就不对同时提供 weights_hash 和 manifest_hash,格式为 sha256:<64 hex>
unknown_game没有这个 slug 的游戏通过 GET /v1/games 查看各游戏的 slug
season_not_open你指定的赛季(未指定时为精选赛季)目前不接受提交用 season 指定你想要的赛季,或查看它的日期并等待提交窗口开放
not_a_participant该赛季仅限名单上的人参赛,而你不在参与者名单上;或者你登录所用的登录方式不被该赛季接受请赛季组织者把你加入名单,或用他们列出的身份登录
season_admin_cannot_enter你是本赛季的管理员,而赛季管理员不能参加自己管理的赛季参加其他赛季
weights_already_entered该赛季不接受重复的权重,而另一位参赛者的参赛模型(在 user 范围下则是任何其他模型)已经使用了这组权重查看该规则的范围,提交符合条件的模型
version_in_flight这个模型在本赛季已有一个候选版本在审核中(testing 或 verified)等那个候选版本出结果;你的其他模型,以及这个模型在其他赛季的参赛,都不受影响
unknown_model这个模型 id 不属于你先创建模型;提交从不会自动创建模型
model_retired这个模型不再接受新版本恢复它,或提交到另一个模型
too_many_in_flight你同时在审核中的版本数量已达本赛季的上限等其中一个出结果
too_many_versions你提交的版本数量已达本赛季的上限下个赛季会重新开始计数
cooling_down本赛季规定同一模型两次提交之间要有间隔响应中给出了你可以再次尝试的时刻
note_too_long、note_word_listed版本备注超过了长度限制,或含有本站不允许使用的词缩短备注,或不填备注
entries_max你在本赛季参赛的模型数量已达上限提交到已在本赛季参赛的模型,或让一个模型退役以空出名额
name_required创建请求没有带名称发送一个名称:一个参赛模型要声明的只有这一项
model_name_taken你已经有一个同名模型名称用来区分 你自己的 模型;其他参赛者可以使用相同的名称
name_invalid改名时用了本站不接受的名称换一个
reenter_invalid重新参赛的请求缺少 game、model、season 或 from四项都要发送
nothing_to_reenter你重新参赛的模型在 from 赛季中没有参赛中的版本检查 from 中的 slug,或改为直接提交文件
401 / session_revoked会话缺失、无效、过期或已被撤销重新登录

weights_already_entered 来自赛季的 unique_weights 规则,也是提交可能遇到的唯一一种唯一性冲突。版本没有可供重复的发布标签,所以不存在 duplicate_release 这个错误码。

cooling_down 是唯一取决于当前时间的拒绝,所以相隔一秒的两次调用可能得到不同的答复。因此它只报告你可以重试的时刻,而不给出是或否。

上传与收到的文件

原因含义下一步
ARTIFACT_MISSING三十分钟的上传窗口关闭时,存储桶中你这个版本的键下没有计算图你没有上传。重新提交以获得新版本和新的 URL,然后 PUT 两个文件
MANIFEST_MISSING窗口关闭时计算图已到达,清单还没有同样的修法,用在第二个文件上
MANIFEST_MISMATCH你上传的文件的哈希与 manifest_hash 不符对你发送的文件重新运行 shasum -a 256
MANIFEST_INVALID文档中没有 inputs 或没有 outputs把它写成 orion:model@1.0.0 清单,这种清单两者都带
RESULT_NOT_ALLOWED清单中带有 result 表达式策略头由平台来读。删掉这个表达式;见清单
DIGEST_FAILED节点重新对计算图做哈希,得到了另一个值与 MANIFEST_MISMATCH 同样的修法,用在 model.onnx 上

计算图与策略

原因含义下一步
PARSE_FAILEDONNX 能解析,但构建不出执行计划重新导出。自己计算索引的计算图无法声明命名的空间轴,所以请给它具体的维度
PROBE_FAILED能加载,但在你的 probe_dims 下无法运行检查声明的形状是否就是计算图所接受的形状
PROBE_TOO_SLOW探测的中位数(在你的 probe_dims 下推理五次)在每次尝试中都超过了游戏的回合时限(Ants 为 1,000 ms)让计算图在 probe_dims 下跑得更快。版本的 infer_us 是最后一次的中位数,tinybrains check 测的是同一个探测
TOO_LARGES'(两个文件的字节数)在本赛季的重量级表中找不到能容纳它的重量级测量两个文件的大小,缩小较大的那个
OPSET_UNSUPPORTEDopset 在本赛季的范围之外按赛季公布的范围导出
OP_NOT_ALLOWED计算图使用了本赛季不允许的算子检查导出的节点,包括 If/Loop/Scan 的子图,只使用支持的算子
CLASS_NOT_OFFERED它只能进入本赛季不开设的重量级缩到赛季开设的重量级。TOO_LARGE 是另一个原因,针对超出所有重量级的模型
PARAMS_EXCEEDED参数量超过本赛季的允许值除了字节数,也要减少参数量。参数量统计文档中携带的每一个数值,不论它在哪里
TOO_SLOW慢于本赛季的推理上限少见:大多数赛季不设此项。简化计算图

慢的计算图留在它自己的重量级;审核不会把它移到更大的重量级。见模型格式和重量级。

适配器与接口

原因含义下一步
ADAPTER_INVALID某个适配器没有产生计算图所接受的张量,或者对某个已声明的输入什么都没产生检查操作符、作用域、数据类型和形状。拼错的操作符在这里失败:加载时是接受它的
ADAPTER_OVER_BUDGET某个适配器在某条参考观测上超出了它的操作预算测量各个用例并减少工作量;见预算
HEAD_UNREADABLE策略输出的形状裁判读不了把它做成 2 阶或 4 阶:[N, 5] 或 [1, 5, H, W]。见两种策略头形状

ADAPTER_OVER_BUDGET 表示适配器开销太大,ADAPTER_INVALID 表示它是错的;平台有意把这两个词分开。这三个原因都可以用 tinybrains check 复现,它测量的正是审核所测量的,并指出失败的是哪条观测、哪个操作符。

版本只带着这一个词。平台不在它旁边存任何细节,所以要在你自己的机器上运行 check,才能知道是哪条观测或哪个节点出了问题。

记忆

这些只适用于声明了名为 memory 或 ant_memory 的输出的清单;见记忆。

原因含义下一步
MEMORY_NOT_ALLOWED清单声明了记忆输出,而它所在的重量级在本赛季不允许记忆删掉这个输出,或进入一个赛季给了记忆的重量级
MEMORY_TOO_LARGE在最小或最大的地图上,记忆的开销超过了该重量级的上限缩小它的形状或数据类型,或进入更大的重量级
MEMORY_SHAPE某个记忆输出命名了太多维度、把同一维度命名了两次,或缺少数据类型或形状memory 可以命名两个维度,ant_memory 一个
MEMORY_ROUND_TRIP在参考观测上喂入模型自己的记忆后,模型调用失败了让每个记忆输入恰好接受其对应输出所写的内容,并用 tinybrains 打一场对局

试赛与管理上的结果

原因含义下一步
FORFEIT候选版本在一场完整的试赛中达到了判罚上限(赛季未另行设定时为五次)检查超时和适配器故障,然后重新测试
UNPLAYABLE试赛用完了修复次数上限检查故障来自模型还是基础设施
RUNNER_UNAVAILABLE没有运行器能为试赛加载候选版本,次数达到了修复次数上限不是你的模型的问题。用同样的文件再提交一次
SEASON_CLOSED候选版本等待期间赛季结束了参加之后一个符合条件的赛季
TIMED_OUT审核用完了所有尝试次数,仍未完成验证不是你的模型的问题。检查服务是否可用,然后再提交一次

被撤回的排队中的对局在 withdrawn_reason 中带有自己的词,而不是拒绝原因:

  • SUPERSEDED:后继版本通过试赛并取代了某个席位的版本,successor 指明新版本。
  • REJECTED:平台拒绝了某个席位的版本。
  • BASELINE_DISABLED:管理员停用了占据某个席位的基线。
  • MAP_DISABLED:管理员停用了这场对局的地图。
  • ROUND_ENDED:对局开打之前,新一轮或决赛已经开始。
  • SEASON_CLOSED:赛季已结束。
  • ENGINE_RETIRED:赛季换到了另一个引擎。
  • SEAT_LEFT:某个席位的版本因其他原因离场。

被撤回的对局不算失利,也不改变评分;见版本的生命周期。

平台出故障时

平台一侧的故障会让候选版本留在 testing 状态并送回队列:对象存储无法访问、没有运行器在线、认领它的运行器没能取到模型文件、没能连上自己的节点或没能及时报告。版本等待运行器期间的故障不消耗任何东西。已认领它的运行器上的故障消耗三次尝试中的一次,三次尝试都用完则以 TIMED_OUT 结束。这些重试最终的超时说明不了你的网络有任何问题。你永远看不到中间的那些词:版本的 reject_reason 只会是本页上的某个词,不会是别的。

ARTIFACT_MISSING 和 MANIFEST_MISSING 看起来像平台故障,但不属于这一类。空的存储桶是你这次提交的状态,再多的重试也变不出字节来。

候选版本被拒绝后,你参赛中的版本保持不变。查明原因后,把修正后的文件及其哈希作为下一个版本提交。在你提交的任何报告中都保留失败版本和试赛的 ID:运维人员需要用它们来找证据。

赛季管理

赛季管理员会遇到几个他们专属的拒绝。其中请求的措辞说不清楚的有:

错误含义下一步
season_admin_only你不是本赛季的管理员请平台管理员把你指派为管理员
unknown_season没有这个赛季,或者它是你无权查看的私有赛季检查 slug
baseline_name_reserved另一个赛季已有同名基线。基线账户跨赛季共用,所以只有平台管理员才能为它添加版本为本赛季的基线另起一个名字,或导入那个基线

寻求帮助

当拒绝原因说得不够清楚,或者故障看起来出在我们这边时,到 Discord 上提问。平台某个部分的 bug 也可以提到该仓库在 GitHub 上的 issues。