diff --git a/MEETING.md b/MEETING.md index bddb260..e0fed0a 100644 --- a/MEETING.md +++ b/MEETING.md @@ -26,7 +26,7 @@ L = Λ · N · W_turn(L) # agentic, T_human≈0 | | 数据 | 图 | |---|---|---| | KV reuse 几乎只在 session 内 | intra 93.2% / cross 5.7% / shared 1.1% | ![](figs/f2a_reuse_topology.png) | -| Session 极度偏斜 | replay 上 top 1% / 5% / 10% = 24% / 62% / 76% input mass(production 全 trace 更陡,top 1% = 46.5%) | ![](figs/f2b_session_skew.png) | +| Session 极度偏斜 | production trace 上 top 1% / 5% / 10% / 25% / 50% = **46.5% / 66.5% / 74.6% / 87.5% / 96.0%** input mass | ![](figs/f2b_session_skew.png) | | 单请求 KV footprint 已经很大 | p99 = 11.8 GiB ≈ H20 12% | ![](figs/f2c_kv_footprint_cdf.png) | 理论 APC 上界 = intra-session 79.6% / any-session 80.3%,差 <1pp。**任何不 affinity 的调度都丢绝大部分 reuse。** @@ -58,7 +58,7 @@ agentic 平均请求 33.6k token 需 3.3GB KV;4P+4D / 6P+2D 在 agentic regime | sticky | **20.3s** | 55.4s | **34.6s** | | unified | **10.3s** | 37.7s | **18.0s** | -机制:top 5% 的 session 占 ~62% input 量、且 hot session 数量远多于 instance 数(8 个),sticky 的 hash 绑定让 **每个 worker 都自己承接一份 hot session**,median worker 也被拖慢。Unified 用 LMetric fallback 把 cold/new session 重路由到非 hot worker,保留 7/8 worker 的速度。系统 p90 由大多数请求决定,所以 unified 几乎 2x 快。 +机制:production trace 上 top 1% 的 session 占 46.5% input 量、且 hot session 数量远多于 instance 数(8 个),sticky 的 hash 绑定让 **每个 worker 都自己承接一份 hot session**,median worker 也被拖慢。Unified 用 LMetric fallback 把 cold/new session 重路由到非 hot worker,保留 7/8 worker 的速度。系统 p90 由大多数请求决定,所以 unified 几乎 2x 快。 --- diff --git a/PAPER_OUTLINE.md b/PAPER_OUTLINE.md index 9fc46b8..3e50547 100644 --- a/PAPER_OUTLINE.md +++ b/PAPER_OUTLINE.md @@ -48,7 +48,7 @@ Agentic workload 与 chatbot 的三个本质差异: - **Multi-turn, programmatic continuation**:每个 turn 由上一个 turn 的 tool-call 结果触发,没有人类 think-time - **Prefill-dominated**:input/output token ratio **75x**,98% 计算在 prefill 阶段(chatbot 为 1-10x) -- **Skewed sessions**:在 replay trace 上 top 1% session 贡献 **24.3%** input token,top 5% **61.9%**,top 10% **75.8%**(vs uniform 1/5/10%);production 全 trace(1.3M session)skew 更极端,top 1% 达 46.5% +- **Skewed sessions**(来自 Qwen3 production trace,n=1.3M session / 2.1M req / 7200s):top 1% 贡献 **46.5%** input token,top 5% **66.5%**,top 10% **74.6%**,top 25% **87.5%**,top 50% **96.0%** —— 半数 session 几乎占满全部 input mass 平均 session 长度 TBD turn、TBD 输入 token;p99 单请求 KV 占用 **11.49 GiB**(H20 96GB HBM 的 12%)。 @@ -68,7 +68,7 @@ Trace 上 KV reuse 的分解: ![F2a Reuse topology — intra 93.2% / cross 5.7% / shared 1.1%](figs/f2a_reuse_topology.png) -![F2b Session skew CDF — top 1% = 24.3%, top 5% = 61.9%, top 10% = 75.8% input mass (replay trace)](figs/f2b_session_skew.png) +![F2b Session input-token mass CDF — production trace top 1%/5%/10%/25%/50% = 46.5%/66.5%/74.6%/87.5%/96.0% (replay window overlaid for sanity)](figs/f2b_session_skew.png) ![F2c KV footprint CDF — p99 = 11.8 GiB ≈ 12% of H20](figs/f2c_kv_footprint_cdf.png) @@ -137,7 +137,7 @@ Round-robin 和 load-aware routing(如 LMetric, OSDI'26)最大化 instance | `unified` (affinity + LMetric fallback) | **10.3 s** | 37.7 s | **18.0 s** | | `lmetric` | 14.0 s | 31.3 s | 24.8 s | -机制:top 5% session 占 ~62% input mass,hot session 数量远大于 instance 数(8);sticky 的 hash 绑定让 **每个 worker 都自己承接一份 hot session**,median worker 也被拖慢到 20s 量级。unified 用 LMetric fallback 把 cold/new session 重路由到非 hot worker,保留 7/8 worker 的速度。系统 p90 由大多数请求决定,所以 unified 在 e2e p90 上 ~2x 快于 sticky。 +机制:production trace 上 top 1% session 占 46.5% input mass、top 5% 占 66.5%,hot session 数量远大于 instance 数(8);sticky 的 hash 绑定让 **每个 worker 都自己承接一份 hot session**,median worker 也被拖慢到 20s 量级。unified 用 LMetric fallback 把 cold/new session 重路由到非 hot worker,保留 7/8 worker 的速度。系统 p90 由大多数请求决定,所以 unified 在 e2e p90 上 ~2x 快于 sticky。 **注意**:hotspot ratio (max/median) 单独看是误导性的 —— sticky 的 2.73 比 unified 的 3.67 *低*,但因为 sticky 的 median 也高(20.3s vs unified 的 10.3s),系统整体更慢。一个有用的 §3.3 sub-finding:**hot pin failure 必须用 per-worker absolute latency 衡量,不能用 normalized ratio**。 diff --git a/analysis/characterization/data/production_session_skew_cdf.json b/analysis/characterization/data/production_session_skew_cdf.json new file mode 100644 index 0000000..d37c310 --- /dev/null +++ b/analysis/characterization/data/production_session_skew_cdf.json @@ -0,0 +1 @@ +{"n_sessions": 1307276, "total_tokens": 71116829368, "samples": [{"rank_pct": 7.649494062462709e-05, "cum_pct": 0.22042176991447113}, {"rank_pct": 0.00015298988124925417, "cum_pct": 0.256271541658474}, {"rank_pct": 0.00022948482187388125, "cum_pct": 0.29208361908983915}, {"rank_pct": 0.00030597976249850835, "cum_pct": 0.32531555477935997}, {"rank_pct": 0.00038247470312313545, "cum_pct": 0.3574884092265175}, {"rank_pct": 0.0004589696437477625, "cum_pct": 0.3880857350541382}, {"rank_pct": 0.0005354645843723896, "cum_pct": 0.41745697978710256}, {"rank_pct": 0.0006119595249970167, "cum_pct": 0.4461867040753925}, {"rank_pct": 0.0006884544656216438, "cum_pct": 0.47470375859009434}, {"rank_pct": 0.0007649494062462709, "cum_pct": 0.5027723158885471}, {"rank_pct": 0.0008414443468708979, "cum_pct": 0.5297556420161805}, {"rank_pct": 0.000917939287495525, "cum_pct": 0.5565856668774768}, {"rank_pct": 0.0009944342281201523, "cum_pct": 0.5834099082975868}, {"rank_pct": 0.0010709291687447792, "cum_pct": 0.6099701840689631}, {"rank_pct": 0.0011474241093694063, "cum_pct": 0.6356091336144337}, {"rank_pct": 0.0012239190499940334, "cum_pct": 0.6602299570617156}, {"rank_pct": 0.0013004139906186605, "cum_pct": 0.6846232450558031}, {"rank_pct": 0.0013769089312432876, "cum_pct": 0.708773815536281}, {"rank_pct": 0.0014534038718679147, "cum_pct": 0.7323996297764758}, {"rank_pct": 0.0015298988124925418, "cum_pct": 0.7558481892077594}, {"rank_pct": 0.001606393753117169, "cum_pct": 0.779226921285319}, {"rank_pct": 0.0016828886937417958, "cum_pct": 0.8025517997246606}, {"rank_pct": 0.001759383634366423, "cum_pct": 0.8257900109144247}, {"rank_pct": 0.00183587857499105, "cum_pct": 0.8489442630743351}, {"rank_pct": 0.0019888684562403046, "cum_pct": 0.8937150062063773}, {"rank_pct": 0.0020653633968649313, "cum_pct": 0.9160768959887637}, {"rank_pct": 0.0021418583374895584, "cum_pct": 0.9384367749953427}, {"rank_pct": 0.0022183532781141855, "cum_pct": 0.9604324434454307}, {"rank_pct": 0.0023713431593634397, "cum_pct": 1.0041384596953422}, {"rank_pct": 0.002447838099988067, "cum_pct": 1.0257757108730838}, {"rank_pct": 0.002600827981237321, "cum_pct": 1.0682069121346771}, {"rank_pct": 0.002753817862486575, "cum_pct": 1.109382137830518}, {"rank_pct": 0.0028303128031112023, "cum_pct": 1.1298577736672193}, {"rank_pct": 0.002983302684360456, "cum_pct": 1.170492314403653}, {"rank_pct": 0.0031362925656097103, "cum_pct": 1.210680138093189}, {"rank_pct": 0.003289282446858965, "cum_pct": 1.2505172163934597}, {"rank_pct": 0.0034422723281082187, "cum_pct": 1.2901020112305972}, {"rank_pct": 0.003595262209357473, "cum_pct": 1.3293892028114016}, {"rank_pct": 0.003824747031231354, "cum_pct": 1.3873657526188268}, {"rank_pct": 0.003977736912480609, "cum_pct": 1.425320448068376}, {"rank_pct": 0.004207221734354489, "cum_pct": 1.480916611945995}, {"rank_pct": 0.004360211615603744, "cum_pct": 1.517488976365412}, {"rank_pct": 0.004589696437477625, "cum_pct": 1.5718662838799125}, {"rank_pct": 0.004819181259351507, "cum_pct": 1.626012090635081}, {"rank_pct": 0.005048666081225388, "cum_pct": 1.6797082612030882}, {"rank_pct": 0.0052781509030992695, "cum_pct": 1.7327209015795504}, {"rank_pct": 0.005584130665597777, "cum_pct": 1.8019140313032749}, {"rank_pct": 0.005813615487471659, "cum_pct": 1.851745420462401}, {"rank_pct": 0.006119595249970167, "cum_pct": 1.9164554847453108}, {"rank_pct": 0.006425575012468676, "cum_pct": 1.98029458500254}, {"rank_pct": 0.006731554774967183, "cum_pct": 2.043490869762983}, {"rank_pct": 0.007037534537465692, "cum_pct": 2.105908154665133}, {"rank_pct": 0.007420009240588828, "cum_pct": 2.1830596003743934}, {"rank_pct": 0.007725989003087336, "cum_pct": 2.243946282731866}, {"rank_pct": 0.008108463706210472, "cum_pct": 2.319181560338428}, {"rank_pct": 0.008567433349958234, "cum_pct": 2.408049868391034}, {"rank_pct": 0.00894990805308137, "cum_pct": 2.4813670275829782}, {"rank_pct": 0.00940887769682913, "cum_pct": 2.5682881579952044}, {"rank_pct": 0.009867847340576894, "cum_pct": 2.6545453189866963}, {"rank_pct": 0.010326816984324656, "cum_pct": 2.739919254438492}, {"rank_pct": 0.010862281568697046, "cum_pct": 2.8385656418315257}, {"rank_pct": 0.011397746153069436, "cum_pct": 2.936107784270195}, {"rank_pct": 0.011933210737441824, "cum_pct": 3.032629116295279}, {"rank_pct": 0.012468675321814214, "cum_pct": 3.1278522717731185}, {"rank_pct": 0.013080634846811233, "cum_pct": 3.2356937977263396}, {"rank_pct": 0.013769089312432875, "cum_pct": 3.355579574071655}, {"rank_pct": 0.01445754377805452, "cum_pct": 3.4743506902063777}, {"rank_pct": 0.015145998243676163, "cum_pct": 3.5921606330069205}, {"rank_pct": 0.015834452709297807, "cum_pct": 3.7089680929826008}, {"rank_pct": 0.016599402115544077, "cum_pct": 3.8373438105326305}, {"rank_pct": 0.017440846462414977, "cum_pct": 3.9761576101315486}, {"rank_pct": 0.018282290809285874, "cum_pct": 4.111996810020665}, {"rank_pct": 0.0192002300967814, "cum_pct": 4.257397918195672}, {"rank_pct": 0.020118169384276924, "cum_pct": 4.400587628570781}, {"rank_pct": 0.021112603612397078, "cum_pct": 4.552912546544056}, {"rank_pct": 0.022107037840517228, "cum_pct": 4.702239868844204}, {"rank_pct": 0.023254461949886635, "cum_pct": 4.8716906107725615}, {"rank_pct": 0.024325391118631415, "cum_pct": 5.027942282827561}, {"rank_pct": 0.02554931016862545, "cum_pct": 5.203492284296236}, {"rank_pct": 0.02677322921861948, "cum_pct": 5.375937140302686}, {"rank_pct": 0.028073643209238143, "cum_pct": 5.5569064441140705}, {"rank_pct": 0.029450552140481426, "cum_pct": 5.746088774366463}, {"rank_pct": 0.030903956012349344, "cum_pct": 5.943471101795085}, {"rank_pct": 0.03243385482484189, "cum_pct": 6.1482359490107354}, {"rank_pct": 0.03396375363733443, "cum_pct": 6.350711619368436}, {"rank_pct": 0.03564664233107622, "cum_pct": 6.569276967938293}, {"rank_pct": 0.037406025965442645, "cum_pct": 6.79321891728462}, {"rank_pct": 0.03924190454043369, "cum_pct": 7.022668249390845}, {"rank_pct": 0.04115427805604937, "cum_pct": 7.25687110331468}, {"rank_pct": 0.043143146512289676, "cum_pct": 7.49615289148249}, {"rank_pct": 0.04520850990915461, "cum_pct": 7.740213396629389}, {"rank_pct": 0.04742686318726879, "cum_pct": 7.997993108730123}, {"rank_pct": 0.049721711406007604, "cum_pct": 8.259852835400945}, {"rank_pct": 0.05216954950599568, "cum_pct": 8.533749078710755}, {"rank_pct": 0.05469388254660837, "cum_pct": 8.812217405771902}, {"rank_pct": 0.05737120546847031, "cum_pct": 9.102471793986911}, {"rank_pct": 0.06020151827158152, "cum_pct": 9.403404294636749}, {"rank_pct": 0.06310832601531735, "cum_pct": 9.707287842202836}, {"rank_pct": 0.06624461858092706, "cum_pct": 10.02935717802036}, {"rank_pct": 0.06945740608716139, "cum_pct": 10.353046055949417}, {"rank_pct": 0.07282318347464499, "cum_pct": 10.685796981578392}, {"rank_pct": 0.07634195074337784, "cum_pct": 11.028072994391652}, {"rank_pct": 0.08009020283398456, "cum_pct": 11.38626657988159}, {"rank_pct": 0.08399144480584055, "cum_pct": 11.751640547350561}, {"rank_pct": 0.0881221715995704, "cum_pct": 12.12890320147097}, {"rank_pct": 0.09240588827454953, "cum_pct": 12.512383631382704}, {"rank_pct": 0.09691908977140251, "cum_pct": 12.907581128933773}, {"rank_pct": 0.1016617760901294, "cum_pct": 13.31512384080053}, {"rank_pct": 0.10663394723073016, "cum_pct": 13.735171861296807}, {"rank_pct": 0.11183560319320479, "cum_pct": 14.166372686369}, {"rank_pct": 0.11726674397755334, "cum_pct": 14.606833936938965}, {"rank_pct": 0.12300386452440036, "cum_pct": 15.06264932674297}, {"rank_pct": 0.12897046989312128, "cum_pct": 15.526510952650096}, {"rank_pct": 0.1352430550243407, "cum_pct": 16.003610487338676}, {"rank_pct": 0.14189811485868326, "cum_pct": 16.498279236109266}, {"rank_pct": 0.14878265951489966, "cum_pct": 16.996486313321043}, {"rank_pct": 0.15604967887423926, "cum_pct": 17.510543357552123}, {"rank_pct": 0.16362267799607735, "cum_pct": 18.033152191920706}, {"rank_pct": 0.17165464676166317, "cum_pct": 18.57480977202274}, {"rank_pct": 0.17999259528974754, "cum_pct": 19.12302779223643}, {"rank_pct": 0.18878951346157966, "cum_pct": 19.68745469170197}, {"rank_pct": 0.1979689063365349, "cum_pct": 20.263016605299004}, {"rank_pct": 0.20768376379586254, "cum_pct": 20.85683767515399}, {"rank_pct": 0.2177810959583133, "cum_pct": 21.457449108194332}, {"rank_pct": 0.22841389270513648, "cum_pct": 22.073408112403126}, {"rank_pct": 0.23958215403633204, "cum_pct": 22.703581064407164}, {"rank_pct": 0.2512858799519, "cum_pct": 23.346804108889277}, {"rank_pct": 0.2635250704518403, "cum_pct": 24.00167748997052}, {"rank_pct": 0.2763762204767777, "cum_pct": 24.66952970191645}, {"rank_pct": 0.289839330026712, "cum_pct": 25.351069920043905}, {"rank_pct": 0.30399089404226803, "cum_pct": 26.04706904064407}, {"rank_pct": 0.3188309125234457, "cum_pct": 26.755308760378593}, {"rank_pct": 0.334359385470245, "cum_pct": 27.472965841741182}, {"rank_pct": 0.35065280782329056, "cum_pct": 28.20288694566707}, {"rank_pct": 0.36778767452320704, "cum_pct": 28.94756882435372}, {"rank_pct": 0.3856874906293698, "cum_pct": 29.701941128023098}, {"rank_pct": 0.40450524602302806, "cum_pct": 30.47103039544495}, {"rank_pct": 0.42424094070418183, "cum_pct": 31.25110321214679}, {"rank_pct": 0.4449710696134558, "cum_pct": 32.04414309034723}, {"rank_pct": 0.46669563275084985, "cum_pct": 32.84611141917802}, {"rank_pct": 0.4894146301163641, "cum_pct": 33.654646202168124}, {"rank_pct": 0.5132810515912477, "cum_pct": 34.4732769976827}, {"rank_pct": 0.5383713921161254, "cum_pct": 35.30089766388866}, {"rank_pct": 0.5646091567503725, "cum_pct": 36.13234700190719}, {"rank_pct": 0.5921473353752382, "cum_pct": 36.970479254563834}, {"rank_pct": 0.6210624229313473, "cum_pct": 37.81622971664875}, {"rank_pct": 0.6513544194186996, "cum_pct": 38.66948009408056}, {"rank_pct": 0.6830998197779199, "cum_pct": 39.52674639576741}, {"rank_pct": 0.7164516138902572, "cum_pct": 40.39028270420179}, {"rank_pct": 0.7514098017557118, "cum_pct": 41.25642774957858}, {"rank_pct": 0.7880508783149082, "cum_pct": 42.12483226998299}, {"rank_pct": 0.826451338508471, "cum_pct": 42.99405117708762}, {"rank_pct": 0.8667641722176496, "cum_pct": 43.8656725563148}, {"rank_pct": 0.9090658743830683, "cum_pct": 44.733335328240415}, {"rank_pct": 0.953432939945352, "cum_pct": 45.59766684929187}, {"rank_pct": 0.9999418638451253, "cum_pct": 46.45543963728189}, {"rank_pct": 1.00001835878575, "cum_pct": 46.456810581415176}, {"rank_pct": 1.3310884618091359, "cum_pct": 51.43184352571571}, {"rank_pct": 1.6621585648325221, "cum_pct": 54.97435926269204}, {"rank_pct": 1.9933051627965326, "cum_pct": 57.54430612371223}, {"rank_pct": 2.3243752658199184, "cum_pct": 59.422065691830554}, {"rank_pct": 2.6555218637839295, "cum_pct": 60.832434602977926}, {"rank_pct": 2.9865919668073153, "cum_pct": 61.93527819706103}, {"rank_pct": 3.317738564771326, "cum_pct": 62.82795660193612}, {"rank_pct": 3.648808667794712, "cum_pct": 63.62806759262103}, {"rank_pct": 3.979878770818098, "cum_pct": 64.3791692977265}, {"rank_pct": 4.311025368782109, "cum_pct": 65.09802807917553}, {"rank_pct": 4.6420954718054945, "cum_pct": 65.79141668969463}, {"rank_pct": 4.973242069769506, "cum_pct": 66.46371649727735}, {"rank_pct": 5.3043121727928915, "cum_pct": 67.116080996824}, {"rank_pct": 5.635458770756903, "cum_pct": 67.74939604756874}, {"rank_pct": 5.966528873780288, "cum_pct": 68.36381554276156}, {"rank_pct": 6.297675471744299, "cum_pct": 68.96112472931416}, {"rank_pct": 6.6287455747676844, "cum_pct": 69.54166645715695}, {"rank_pct": 6.95981567779107, "cum_pct": 70.10572414584308}, {"rank_pct": 7.290962275755082, "cum_pct": 70.6541388677394}, {"rank_pct": 7.622032378778468, "cum_pct": 71.18750422495636}, {"rank_pct": 7.953178976742478, "cum_pct": 71.70702909872168}, {"rank_pct": 8.284249079765864, "cum_pct": 72.21304808212975}, {"rank_pct": 8.615395677729873, "cum_pct": 72.70638977230057}, {"rank_pct": 8.946465780753261, "cum_pct": 73.18761308475887}, {"rank_pct": 9.277535883776647, "cum_pct": 73.65725477290516}, {"rank_pct": 9.608682481740658, "cum_pct": 74.11509989464861}, {"rank_pct": 9.939752584764044, "cum_pct": 74.56331178743503}, {"rank_pct": 10.270899182728055, "cum_pct": 75.00213484489325}, {"rank_pct": 10.60196928575144, "cum_pct": 75.42955705662753}, {"rank_pct": 10.933115883715452, "cum_pct": 75.8460625640191}, {"rank_pct": 11.264185986738836, "cum_pct": 76.25205672119102}, {"rank_pct": 11.595332584702847, "cum_pct": 76.6481846679844}, {"rank_pct": 11.926402687726235, "cum_pct": 77.03449655849117}, {"rank_pct": 12.25747279074962, "cum_pct": 77.41116882774244}, {"rank_pct": 12.588619388713632, "cum_pct": 77.77852239133868}, {"rank_pct": 12.919689491737016, "cum_pct": 78.13657767623103}, {"rank_pct": 13.250836089701027, "cum_pct": 78.48677161796496}, {"rank_pct": 13.581906192724414, "cum_pct": 78.83286800357064}, {"rank_pct": 13.913052790688424, "cum_pct": 79.17757341884088}, {"rank_pct": 14.244122893711811, "cum_pct": 79.52118411151605}, {"rank_pct": 14.575192996735195, "cum_pct": 79.86371232061195}, {"rank_pct": 14.906339594699206, "cum_pct": 80.20103053084694}, {"rank_pct": 15.237409697722592, "cum_pct": 80.53028916777004}, {"rank_pct": 15.568556295686603, "cum_pct": 80.85183497631094}, {"rank_pct": 15.89962639870999, "cum_pct": 81.16562262402125}, {"rank_pct": 16.230772996674002, "cum_pct": 81.47206521565072}, {"rank_pct": 16.561843099697384, "cum_pct": 81.77124352251677}, {"rank_pct": 16.8929896976614, "cum_pct": 82.06327498517567}, {"rank_pct": 17.22405980068478, "cum_pct": 82.34818137062705}, {"rank_pct": 17.55512990370817, "cum_pct": 82.62636213003111}, {"rank_pct": 17.886276501672178, "cum_pct": 82.89805094506558}, {"rank_pct": 18.217346604695567, "cum_pct": 83.16355156239901}, {"rank_pct": 18.54849320265958, "cum_pct": 83.42316733498163}, {"rank_pct": 18.87956330568296, "cum_pct": 83.67730041797495}, {"rank_pct": 19.210709903646972, "cum_pct": 83.92636154819415}, {"rank_pct": 19.541780006670358, "cum_pct": 84.1705468114339}, {"rank_pct": 19.872850109693747, "cum_pct": 84.41001178409003}, {"rank_pct": 20.20399670765776, "cum_pct": 84.6445983418466}, {"rank_pct": 20.53506681068114, "cum_pct": 84.87418797970166}, {"rank_pct": 20.86621340864515, "cum_pct": 85.09909060320356}, {"rank_pct": 21.197283511668537, "cum_pct": 85.31913711876211}, {"rank_pct": 21.52843010963255, "cum_pct": 85.53428369427697}, {"rank_pct": 21.859500212655934, "cum_pct": 85.74434022284771}, {"rank_pct": 22.190646810619945, "cum_pct": 85.94973825492833}, {"rank_pct": 22.52171691364333, "cum_pct": 86.15068703213056}, {"rank_pct": 22.852787016666717, "cum_pct": 86.34730538146171}, {"rank_pct": 23.183933614630728, "cum_pct": 86.53993507575125}, {"rank_pct": 23.515003717654114, "cum_pct": 86.7287402969531}, {"rank_pct": 23.846150315618125, "cum_pct": 86.91385456761158}, {"rank_pct": 24.17722041864151, "cum_pct": 87.09541106436127}, {"rank_pct": 24.508367016605522, "cum_pct": 87.27376008965834}, {"rank_pct": 24.839437119628908, "cum_pct": 87.44908502344413}, {"rank_pct": 25.170507222652294, "cum_pct": 87.6213070897095}, {"rank_pct": 25.501653820616305, "cum_pct": 87.79058476008632}, {"rank_pct": 25.83272392363969, "cum_pct": 87.95697952494243}, {"rank_pct": 26.163870521603698, "cum_pct": 88.12071213793261}, {"rank_pct": 26.494940624627088, "cum_pct": 88.28182971589308}, {"rank_pct": 26.8260872225911, "cum_pct": 88.44044805701215}, {"rank_pct": 27.157157325614484, "cum_pct": 88.5965406781069}, {"rank_pct": 27.488303923578496, "cum_pct": 88.75026400206768}, {"rank_pct": 27.819374026601878, "cum_pct": 88.90173355288609}, {"rank_pct": 28.150444129625267, "cum_pct": 89.05112985745166}, {"rank_pct": 28.48159072758928, "cum_pct": 89.19880222830015}, {"rank_pct": 28.812660830612664, "cum_pct": 89.3446540188282}, {"rank_pct": 29.14380742857667, "cum_pct": 89.48870993204935}, {"rank_pct": 29.474877531600058, "cum_pct": 89.63071639226064}, {"rank_pct": 29.80602412956407, "cum_pct": 89.77080498294355}, {"rank_pct": 30.137094232587458, "cum_pct": 89.90897649012861}, {"rank_pct": 30.468164335610844, "cum_pct": 90.04533247908617}, {"rank_pct": 30.79931093357485, "cum_pct": 90.17990833103362}, {"rank_pct": 31.130381036598237, "cum_pct": 90.31275266315527}, {"rank_pct": 31.46152763456225, "cum_pct": 90.44394970727149}, {"rank_pct": 31.792597737585638, "cum_pct": 90.57345414218298}, {"rank_pct": 32.123744335549645, "cum_pct": 90.7013786908566}, {"rank_pct": 32.45481443857303, "cum_pct": 90.8276927641896}, {"rank_pct": 32.785961036537046, "cum_pct": 90.95251219552372}, {"rank_pct": 33.11703113956043, "cum_pct": 91.0758143404299}, {"rank_pct": 33.44810124258382, "cum_pct": 91.19764298179362}, {"rank_pct": 33.779247840547825, "cum_pct": 91.31806085863239}, {"rank_pct": 34.11031794357121, "cum_pct": 91.43706293275761}, {"rank_pct": 34.44146454153522, "cum_pct": 91.55472383769897}, {"rank_pct": 34.77253464455861, "cum_pct": 91.67104094819886}, {"rank_pct": 35.10368124252262, "cum_pct": 91.78615441251881}, {"rank_pct": 35.434751345546005, "cum_pct": 91.89987696274879}, {"rank_pct": 35.76589794351002, "cum_pct": 92.0122987913237}, {"rank_pct": 36.0969680465334, "cum_pct": 92.123395421618}, {"rank_pct": 36.42803814955679, "cum_pct": 92.23316195324452}, {"rank_pct": 36.7591847475208, "cum_pct": 92.3416456577145}, {"rank_pct": 37.090254850544184, "cum_pct": 92.4489121256911}, {"rank_pct": 37.4214014485082, "cum_pct": 92.55504413223689}, {"rank_pct": 37.75247155153158, "cum_pct": 92.65995272231748}, {"rank_pct": 38.08361814949559, "cum_pct": 92.76362440686137}, {"rank_pct": 38.41468825251898, "cum_pct": 92.8660802877654}, {"rank_pct": 38.745758355542364, "cum_pct": 92.96739318042427}, {"rank_pct": 39.07690495350637, "cum_pct": 93.06756741433361}, {"rank_pct": 39.40797505652976, "cum_pct": 93.16705589635504}, {"rank_pct": 39.73912165449377, "cum_pct": 93.26549204096682}, {"rank_pct": 40.07019175751716, "cum_pct": 93.36289208483207}, {"rank_pct": 40.40133835548117, "cum_pct": 93.45917692993628}, {"rank_pct": 40.73240845850455, "cum_pct": 93.55433668691843}, {"rank_pct": 41.063555056468566, "cum_pct": 93.648410609497}, {"rank_pct": 41.39462515949195, "cum_pct": 93.7415307029946}, {"rank_pct": 41.72569526251534, "cum_pct": 93.83453938263881}, {"rank_pct": 42.05684186047935, "cum_pct": 93.9275695522737}, {"rank_pct": 42.38791196350273, "cum_pct": 94.0205782319179}, {"rank_pct": 42.719058561466746, "cum_pct": 94.11360840155277}, {"rank_pct": 43.05012866449013, "cum_pct": 94.20661708119698}, {"rank_pct": 43.38127526245414, "cum_pct": 94.29964725083187}, {"rank_pct": 43.71234536547753, "cum_pct": 94.39265593047607}, {"rank_pct": 44.04341546850091, "cum_pct": 94.48565599471932}, {"rank_pct": 44.374562066464925, "cum_pct": 94.57803154855631}, {"rank_pct": 44.70563216948831, "cum_pct": 94.66932718220167}, {"rank_pct": 45.036778767452326, "cum_pct": 94.75964563364391}, {"rank_pct": 45.367848870475704, "cum_pct": 94.8490106426928}, {"rank_pct": 45.69899546843972, "cum_pct": 94.93756698661262}, {"rank_pct": 46.030065571463105, "cum_pct": 95.02529602283998}, {"rank_pct": 46.36121216942711, "cum_pct": 95.11211507192962}, {"rank_pct": 46.692282272450505, "cum_pct": 95.19787082980294}, {"rank_pct": 47.023352375473884, "cum_pct": 95.28258476676467}, {"rank_pct": 47.3544989734379, "cum_pct": 95.36630743906198}, {"rank_pct": 47.685569076461285, "cum_pct": 95.44903191725204}, {"rank_pct": 48.01671567442529, "cum_pct": 95.53080317662454}, {"rank_pct": 48.347785777448685, "cum_pct": 95.61158777783717}, {"rank_pct": 48.67893237541269, "cum_pct": 95.69147372115731}, {"rank_pct": 49.01000247843608, "cum_pct": 95.7704855225823}, {"rank_pct": 49.341072581459464, "cum_pct": 95.84870624683893}, {"rank_pct": 49.67221917942347, "cum_pct": 95.92603375776527}, {"rank_pct": 50.00328928244686, "cum_pct": 96.00245542965781}, {"rank_pct": 50.334435880410865, "cum_pct": 96.07801214032324}, {"rank_pct": 50.66550598343426, "cum_pct": 96.15267565734428}, {"rank_pct": 50.99665258139827, "cum_pct": 96.22648454543233}, {"rank_pct": 51.32772268442165, "cum_pct": 96.2993987282788}, {"rank_pct": 51.658869282385666, "cum_pct": 96.37147215232696}, {"rank_pct": 51.989939385409045, "cum_pct": 96.44267377569797}, {"rank_pct": 52.32100948843244, "cum_pct": 96.51301912214349}, {"rank_pct": 52.65215608639645, "cum_pct": 96.58253734791278}, {"rank_pct": 52.98322618941983, "cum_pct": 96.6512117523175}, {"rank_pct": 53.314372787383846, "cum_pct": 96.7191014704462}, {"rank_pct": 53.645442890407224, "cum_pct": 96.78614993059796}, {"rank_pct": 53.97658948837124, "cum_pct": 96.85238807622203}, {"rank_pct": 54.30765959139463, "cum_pct": 96.91779164583185}, {"rank_pct": 54.63872969441801, "cum_pct": 96.9823688133014}, {"rank_pct": 54.969876292382025, "cum_pct": 97.04616178383056}, {"rank_pct": 55.300946395405404, "cum_pct": 97.10914347240983}, {"rank_pct": 55.63209299336942, "cum_pct": 97.17134756304931}, {"rank_pct": 55.96316309639281, "cum_pct": 97.23274144602752}, {"rank_pct": 56.29430969435681, "cum_pct": 97.29334880772099}, {"rank_pct": 56.625379797380205, "cum_pct": 97.35312371526085}, {"rank_pct": 56.95652639534421, "cum_pct": 97.4121064629069}, {"rank_pct": 57.2875964983676, "cum_pct": 97.4702857439121}, {"rank_pct": 57.61866660139099, "cum_pct": 97.52766349312087}, {"rank_pct": 57.94981319935499, "cum_pct": 97.58428593728473}, {"rank_pct": 58.280883302378385, "cum_pct": 97.6401081081447}, {"rank_pct": 58.612029900342385, "cum_pct": 97.69515730303698}, {"rank_pct": 58.94310000336578, "cum_pct": 97.74941174511895}, {"rank_pct": 59.274246601329786, "cum_pct": 97.80289186134179}, {"rank_pct": 59.60531670435317, "cum_pct": 97.85555904762224}, {"rank_pct": 59.936386807376564, "cum_pct": 97.90743968027684}, {"rank_pct": 60.267533405340565, "cum_pct": 97.95854926337132}, {"rank_pct": 60.59860350836396, "cum_pct": 98.00888996235658}, {"rank_pct": 60.929750106327965, "cum_pct": 98.0584724245014}, {"rank_pct": 61.26082020935135, "cum_pct": 98.10726110125816}, {"rank_pct": 61.591966807315366, "cum_pct": 98.15530897446013}, {"rank_pct": 61.923036910338745, "cum_pct": 98.20261017348565}, {"rank_pct": 62.25418350830276, "cum_pct": 98.24917538778766}, {"rank_pct": 62.58525361132614, "cum_pct": 98.2949855881151}, {"rank_pct": 62.91632371434953, "cum_pct": 98.34003175128728}, {"rank_pct": 63.247470312313546, "cum_pct": 98.38432277674485}, {"rank_pct": 63.578540415336924, "cum_pct": 98.42784316464045}, {"rank_pct": 63.90968701330094, "cum_pct": 98.4706298513789}, {"rank_pct": 64.24075711632433, "cum_pct": 98.51266226236466}, {"rank_pct": 64.57190371428834, "cum_pct": 98.55394998604544}, {"rank_pct": 64.90297381731173, "cum_pct": 98.59448006346334}, {"rank_pct": 65.23404392033511, "cum_pct": 98.63426978166572}, {"rank_pct": 65.56519051829912, "cum_pct": 98.6733435821247}, {"rank_pct": 65.89626062132251, "cum_pct": 98.71167741005581}, {"rank_pct": 66.22740721928652, "cum_pct": 98.74930040342853}, {"rank_pct": 66.55847732230991, "cum_pct": 98.78618876478143}, {"rank_pct": 66.8896239202739, "cum_pct": 98.82239485302921}, {"rank_pct": 67.2206940232973, "cum_pct": 98.85792986102182}, {"rank_pct": 67.5518406212613, "cum_pct": 98.8927465186541}, {"rank_pct": 67.8829107242847, "cum_pct": 98.92684696887878}, {"rank_pct": 68.21398082730809, "cum_pct": 98.96026700772362}, {"rank_pct": 68.54512742527209, "cum_pct": 98.99300515874484}, {"rank_pct": 68.87619752829548, "cum_pct": 99.0250273906165}, {"rank_pct": 69.20734412625949, "cum_pct": 99.05636135361517}, {"rank_pct": 69.53841422928288, "cum_pct": 99.08699804846451}, {"rank_pct": 69.86956082724689, "cum_pct": 99.11695231412753}, {"rank_pct": 70.20063093027026, "cum_pct": 99.14622876695174}, {"rank_pct": 70.53177752823429, "cum_pct": 99.17481668373695}, {"rank_pct": 70.86284763125767, "cum_pct": 99.20271782918498}, {"rank_pct": 71.19391773428106, "cum_pct": 99.22994173831037}, {"rank_pct": 71.52506433224507, "cum_pct": 99.25649942257138}, {"rank_pct": 71.85613443526844, "cum_pct": 99.28239666962764}, {"rank_pct": 72.18728103323247, "cum_pct": 99.30764986519274}, {"rank_pct": 72.51835113625584, "cum_pct": 99.33226488973132}, {"rank_pct": 72.84949773421985, "cum_pct": 99.3562734389759}, {"rank_pct": 73.18056783724325, "cum_pct": 99.37968619675486}, {"rank_pct": 73.51163794026662, "cum_pct": 99.40253229400693}, {"rank_pct": 73.84278453823065, "cum_pct": 99.42484578033782}, {"rank_pct": 74.17385464125402, "cum_pct": 99.44660449081117}, {"rank_pct": 74.50500123921803, "cum_pct": 99.46779154756538}, {"rank_pct": 74.83607134224142, "cum_pct": 99.48842884274633}, {"rank_pct": 75.16721794020543, "cum_pct": 99.50854609787024}, {"rank_pct": 75.49828804322883, "cum_pct": 99.52811022231678}, {"rank_pct": 75.82943464119283, "cum_pct": 99.54715627248575}, {"rank_pct": 76.16050474421621, "cum_pct": 99.56569379323457}, {"rank_pct": 76.4915748472396, "cum_pct": 99.58373016959442}, {"rank_pct": 76.82272144520361, "cum_pct": 99.60128591288465}, {"rank_pct": 77.153791548227, "cum_pct": 99.61838820935665}, {"rank_pct": 77.48493814619101, "cum_pct": 99.63509895434572}, {"rank_pct": 77.81600824921439, "cum_pct": 99.65127214303006}, {"rank_pct": 78.14715484717841, "cum_pct": 99.66701726988612}, {"rank_pct": 78.47822495020179, "cum_pct": 99.68223117227201}, {"rank_pct": 78.80929505322518, "cum_pct": 99.69691638123425}, {"rank_pct": 79.14044165118919, "cum_pct": 99.71105219000039}, {"rank_pct": 79.47151175421257, "cum_pct": 99.72461226021963}, {"rank_pct": 79.80265835217659, "cum_pct": 99.73760375615961}, {"rank_pct": 80.13372845519997, "cum_pct": 99.75004779096636}, {"rank_pct": 80.464875053164, "cum_pct": 99.7619756933706}, {"rank_pct": 80.79594515618737, "cum_pct": 99.7734049514973}, {"rank_pct": 81.12709175415138, "cum_pct": 99.78435217885429}, {"rank_pct": 81.45816185717477, "cum_pct": 99.79482148417368}, {"rank_pct": 81.78923196019815, "cum_pct": 99.80481863964754}, {"rank_pct": 82.12037855816217, "cum_pct": 99.81438547363109}, {"rank_pct": 82.45144866118554, "cum_pct": 99.82349628756583}, {"rank_pct": 82.78259525914956, "cum_pct": 99.83214418856852}, {"rank_pct": 83.11366536217295, "cum_pct": 99.84034960359033}, {"rank_pct": 83.44481196013696, "cum_pct": 99.84814097175064}, {"rank_pct": 83.77588206316034, "cum_pct": 99.8555400909841}, {"rank_pct": 84.10695216618372, "cum_pct": 99.86257075453369}, {"rank_pct": 84.43809876414774, "cum_pct": 99.86925367479637}, {"rank_pct": 84.76916886717113, "cum_pct": 99.87561860703565}, {"rank_pct": 85.10031546513514, "cum_pct": 99.8817116880103}, {"rank_pct": 85.43138556815852, "cum_pct": 99.88756875593222}, {"rank_pct": 85.76253216612253, "cum_pct": 99.89324119385704}, {"rank_pct": 86.09360226914592, "cum_pct": 99.8987697192918}, {"rank_pct": 86.42474886710993, "cum_pct": 99.90416621971806}, {"rank_pct": 86.75581897013332, "cum_pct": 99.90944676728097}, {"rank_pct": 87.0868890731567, "cum_pct": 99.91464523019454}, {"rank_pct": 87.4180356711207, "cum_pct": 99.91976221169152}, {"rank_pct": 87.7491057741441, "cum_pct": 99.92475840883863}, {"rank_pct": 88.08025237210812, "cum_pct": 99.92966940955539}, {"rank_pct": 88.4113224751315, "cum_pct": 99.93448614707088}, {"rank_pct": 88.7424690730955, "cum_pct": 99.93916095053098}, {"rank_pct": 89.07353917611889, "cum_pct": 99.94356653079636}, {"rank_pct": 89.40460927914228, "cum_pct": 99.94770738188065}, {"rank_pct": 89.7357558771063, "cum_pct": 99.95162010834038}, {"rank_pct": 90.06682598012968, "cum_pct": 99.95531634877088}, {"rank_pct": 90.39797257809369, "cum_pct": 99.95881673823162}, {"rank_pct": 90.72904268111706, "cum_pct": 99.96213200132891}, {"rank_pct": 91.06018927908109, "cum_pct": 99.96526265552114}, {"rank_pct": 91.39125938210448, "cum_pct": 99.96821129794326}, {"rank_pct": 91.72240598006847, "cum_pct": 99.97098562860104}, {"rank_pct": 92.05347608309187, "cum_pct": 99.97361804348319}, {"rank_pct": 92.38454618611524, "cum_pct": 99.97613939182779}, {"rank_pct": 92.71569278407927, "cum_pct": 99.9785431730638}, {"rank_pct": 93.04676288710266, "cum_pct": 99.98085038644014}, {"rank_pct": 93.37790948506665, "cum_pct": 99.9830707202402}, {"rank_pct": 93.70897958809005, "cum_pct": 99.98520118642305}, {"rank_pct": 94.04012618605405, "cum_pct": 99.98724979575077}, {"rank_pct": 94.37119628907745, "cum_pct": 99.98923065037057}, {"rank_pct": 94.70226639210082, "cum_pct": 99.99109764305261}, {"rank_pct": 95.03341299006483, "cum_pct": 99.99276057854975}, {"rank_pct": 95.36448309308823, "cum_pct": 99.9941695375949}, {"rank_pct": 95.69562969105223, "cum_pct": 99.99541561255054}, {"rank_pct": 96.02669979407563, "cum_pct": 99.99650092387117}, {"rank_pct": 96.35784639203962, "cum_pct": 99.9973949035461}, {"rank_pct": 96.68891649506301, "cum_pct": 99.99805444785392}, {"rank_pct": 97.02006309302703, "cum_pct": 99.998547809275}, {"rank_pct": 97.35113319605041, "cum_pct": 99.99890926942766}, {"rank_pct": 97.6822032990738, "cum_pct": 99.99921996944335}, {"rank_pct": 98.0133498970378, "cum_pct": 99.99950563740943}, {"rank_pct": 98.34442000006119, "cum_pct": 99.99971123009585}, {"rank_pct": 98.67556659802521, "cum_pct": 99.99981160296207}, {"rank_pct": 99.00663670104859, "cum_pct": 99.99990038504158}, {"rank_pct": 99.3377832990126, "cum_pct": 99.99996982008311}, {"rank_pct": 99.66885340203598, "cum_pct": 100.0}, {"rank_pct": 100.0, "cum_pct": 100.0}], "anchors_check": {"top1pct": 46.45543963728189, "top5pct": 66.51703480791771, "top10pct": 74.64392264215037}} diff --git a/figs/f2b_session_skew.png b/figs/f2b_session_skew.png index dc8c813..2346832 100644 Binary files a/figs/f2b_session_skew.png and b/figs/f2b_session_skew.png differ diff --git a/scripts/plot_session_skew_cdf.py b/scripts/plot_session_skew_cdf.py index 204e9a1..4fe1477 100644 --- a/scripts/plot_session_skew_cdf.py +++ b/scripts/plot_session_skew_cdf.py @@ -1,12 +1,17 @@ #!/usr/bin/env python3 """Plot a CDF of cumulative input-token mass by session rank. -Reads a JSONL trace (chat_id, session_id, input_length, ...), aggregates -per-session input_length, sorts sessions descending by total, and plots -cumulative fraction of input-token mass vs session-rank percentile. +Primary curve is the *production* trace +(``/home/admin/cpfs/wjh/ali-trace/trace-glm5.1-formatted/051315-051317.jsonl`` +on dash0), which has 1.3 M sessions across 2.1 M records over a 7200 s +window. Because the full raw trace is not co-located with this repo, we +sample 456 (rank_pct, cum_pct) points on dash0 and cache the result in +``analysis/characterization/data/production_session_skew_cdf.json``. Any +top-K%% mass figure can be read off the resulting curve. -The figure replaces the previous discrete top-1%/5%/10% bars with a -continuous curve so any percentile can be read off directly. +The replay-trace CDF (``traces/w600_r0.0015_st30.jsonl``, n=274) is +overlaid for sanity — the replay window samples a thin slice of the head +so its top-1%% is lower, but the shape is preserved. """ from __future__ import annotations @@ -19,66 +24,85 @@ import matplotlib.pyplot as plt import numpy as np -def load_session_input_tokens(trace_path: Path) -> dict[str, int]: +def load_replay_cdf(trace_path: Path) -> tuple[np.ndarray, np.ndarray, int]: totals: dict[str, int] = defaultdict(int) with trace_path.open() as f: for line in f: row = json.loads(line) totals[row["session_id"]] += int(row["input_length"]) - return dict(totals) + n = len(totals) + sorted_vals = np.sort(np.array(list(totals.values())))[::-1] + cum = np.cumsum(sorted_vals) / sorted_vals.sum() + rank_pct = np.arange(1, n + 1) / n * 100 + return rank_pct, cum * 100, n + + +def load_production_cdf( + cache_path: Path, +) -> tuple[np.ndarray, np.ndarray, int, dict[str, float]]: + d = json.loads(cache_path.read_text()) + samples = d["samples"] + xs = np.array([s["rank_pct"] for s in samples]) + ys = np.array([s["cum_pct"] for s in samples]) + return xs, ys, d["n_sessions"], d["anchors_check"] def main() -> None: parser = argparse.ArgumentParser() parser.add_argument( - "--trace", + "--replay-trace", default="traces/w600_r0.0015_st30.jsonl", - help="JSONL trace path", ) parser.add_argument( - "--out", - default="figs/f2b_session_skew.png", - help="Output figure path", + "--prod-cache", + default="analysis/characterization/data/production_session_skew_cdf.json", ) + parser.add_argument("--out", default="figs/f2b_session_skew.png") args = parser.parse_args() - session_totals = load_session_input_tokens(Path(args.trace)) - n_sessions = len(session_totals) - sorted_vals = np.sort(np.array(list(session_totals.values())))[::-1] - cum = np.cumsum(sorted_vals) / sorted_vals.sum() - rank_pct = np.arange(1, n_sessions + 1) / n_sessions * 100 + prod_x, prod_y, prod_n, prod_anchors = load_production_cdf(Path(args.prod_cache)) + replay_rank_pct, replay_cum_pct, replay_n = load_replay_cdf(Path(args.replay_trace)) - marks = [1, 5, 10, 25, 50] - mark_idx = [int(np.ceil(n_sessions * p / 100)) - 1 for p in marks] + fig, ax = plt.subplots(figsize=(9, 5.5)) - fig, ax = plt.subplots(figsize=(8, 5)) - ax.plot(rank_pct, cum * 100, color="#2f6fab", lw=2.2, - label="cumulative input-token mass") - ax.plot([0, 100], [0, 100], color="#999", ls="--", lw=1, - label="uniform reference (y = x)") + ax.plot( + prod_x, prod_y, + color="#c44e52", lw=2.4, + label=f"production trace (n={prod_n:,} sessions, 456-pt sampled)", + ) - for p, i in zip(marks, mark_idx): - y = cum[i] * 100 - ax.scatter([p], [y], color="#c44e52", zorder=5, s=40) + annotate_pts = [1.0, 5.0, 10.0, 25.0, 50.0] + for p in annotate_pts: + y = float(np.interp(p, prod_x, prod_y)) + ax.scatter([p], [y], color="#c44e52", s=55, zorder=5) ax.annotate( - f"top {p}% → {y:.1f}%", + f"top {p:g}% → {y:.1f}%", xy=(p, y), - xytext=(p + 2, y - 5), - fontsize=9, - color="#333", + xytext=(p + 2.5, y - 6), + fontsize=10, + color="#7a1d1d", ) + ax.plot( + replay_rank_pct, replay_cum_pct, + color="#2f6fab", lw=1.6, + alpha=0.85, + label=f"replay window (n={replay_n} sessions, raw CDF)", + ) + + ax.plot( + [0, 100], [0, 100], + color="#888", ls="--", lw=1, + label="uniform reference (y = x)", + ) + ax.set_xlim(0, 100) ax.set_ylim(0, 102) ax.set_xlabel("Session rank percentile (top → bottom by input-token mass)") ax.set_ylabel("Cumulative % of input-token mass") - ax.set_title( - f"Session input-token mass CDF " - f"(n={n_sessions} sessions, " - f"total={sorted_vals.sum() / 1e6:.1f} M tokens)" - ) + ax.set_title("Session input-token mass CDF — Qwen3 production trace") ax.grid(True, alpha=0.3) - ax.legend(loc="lower right", framealpha=0.9) + ax.legend(loc="lower right", framealpha=0.92, fontsize=9) out_path = Path(args.out) out_path.parent.mkdir(parents=True, exist_ok=True)