modal-labs/autoinference-realtime-mix-v1
收藏资源简介:
这是一个用于real_time_generation服务基准测试的提示集,模拟中等上下文、单次交互流量:大约3000个输入标记和100个输出标记,每次请求独立,无共享上下文。与使用固定长度的随机标记ID不同,该数据集保持相同的输入和输出形状,但使用真实提示。真实文本很重要,因为随机标记会使推测解码看起来比实际更差,且无法反映真实流量的标记化方式。数据集包含450个请求,平均分为三类(每类150个),覆盖从结构化到非结构化文本:humaneval(代码,基于openai/openai_humaneval提示,包装在“完成这些函数”指令下)、cnn_dailymail(提取式QA,基于abisee/cnn_dailymail 3.0.0文章,包装在“总结”指令下)和wildchat(开放聊天,基于英语allenai/WildChat-1M对话轮次,扁平化处理)。每个请求使用真实文本块填充至约3000个标记,无跨请求的系统提示,以保持独立请求形态。如果文本超出范围,会在标记级别截断,确保所有请求在2700到3300个标记之间。WildChat部分仅保留标记为英语的对话,并删除包含CJK字符的内容。输入长度基于Qwen2.5标记器统计,不同模型可能略有差异。输出长度未包含在数据中,需通过基准测试限制(如100个标记)来匹配目标。数据格式为JSON,包含source、conversations(角色为user和assistant的对话列表)和input_tokens_qwen25字段。注意:HumanEval部分因只有164个问题而大量重用,但打包顺序随机化以避免前缀共享;如需更多代码多样性,可替换更大来源。构建脚本为autoinference仓库中的tools/build_realtime_dataset.py。
This is a prompt set for the real_time_generation serving benchmark. That profile stands in for medium-context, single-shot interactive traffic: roughly 3000 input tokens, 100 output tokens, one request at a time with no shared context between requests. The usual way to run it feeds the server random token IDs of a fixed length. This dataset keeps the same input and output shape but uses real prompts. The reason real text matters: random tokens make speculative decoding look worse than it is, because no draft model can predict noise, and they dont tokenize the way real traffic does. So a recipe with EAGLE3 or MTP can look identical to one without when you benchmark on random IDs. Real prompts give you a realistic acceptance length and a realistic token mix while staying in the same length band. The dataset contains 450 requests, split evenly three ways (150 each). The three sources span structured to unstructured text: humaneval (code, based on openai/openai_humaneval prompts packed under a complete these functions instruction), cnn_dailymail (extractive QA, based on abisee/cnn_dailymail 3.0.0 articles packed under a summarize instruction), and wildchat (open chat, based on English allenai/WildChat-1M conversation turns, flattened). Each request is its own block of real text packed up to about 3000 tokens. There is no system prompt shared across requests, which keeps the independent-request shape that real_time_generation is meant to model. When a piece of text would push a request past the band, it gets truncated at the token level so everything lands between 2700 and 3300 tokens. WildChat is multilingual, so this build keeps only conversations tagged English and drops anything that still contains CJK characters. Input length statistics are provided using the Qwen2.5 tokenizer, with variations expected for different models. Output length is not part of the data and should be capped by the benchmark (e.g., 100 tokens). The format is JSON with fields: source, conversations (a list of role-user and assistant dialogues), and input_tokens_qwen25. Note: HumanEval section reuses problems due to limited count (164 problems), but packing order is shuffled; for more code variety, swap in a larger source. The build script is tools/build_realtime_dataset.py in the autoinference repo.




