Add aligned missingness analyses and results
This commit is contained in:
@@ -1247,20 +1247,97 @@ Prediction
|
||||
|
||||
四种模式下 EarlyConcat 的 AURC-MAE 点估计均较低,但区间均跨零。
|
||||
|
||||
## 20.4 结论与边界
|
||||
## 20.4 缺失模态类型、缺失率与消融分析
|
||||
|
||||
题目要求分析局部缺失的模态类型、位置和持续长度。本节在官方 aligned 验证集上对已选定的两个检查点做受控推理消融,不重新拟合模型,也不读取官方测试集。
|
||||
|
||||
### 实验设计
|
||||
|
||||
- 验证集为 728 条样本、239 个 source-video 组;只使用 R03 训练集拟合的同一个 median/MAD scaler。
|
||||
- 50 个位置是附件提供的有序 wordpiece positions,不是 50 个等长物理时间段。因此下文的 start/middle/end 与缺失比例都指这条 50-position 序列中的位置,不换算成视频秒数。
|
||||
- 构造 7 种被遮蔽模态集合:T、A、V、TA、TV、AV、TAV;每种分别设 10%、30%、50%、70% 缺失率,共 28 个条件。
|
||||
- 每个被选模态遮蔽一个居中的连续块,其他模态保持原观测状态。比例按该模态原本有效的位置数计算,至少保留 20% 原有观测。实际平均遮蔽率约为请求值:10% 条件实测 10.0%,30% 为 29.8%,50% 为 49.7%,70% 为 69.5%。两个模型使用完全相同的样本级掩码。
|
||||
- 下表先对同一缺失率下的 7 种模态集合不加权平均。干净验证集参考值为 EarlyConcat:Accuracy 0.6154、Macro-F1 0.5746、MAE 0.6343、Pearson 0.6095;MoFE:0.6058、0.5626、0.6368、0.6043。
|
||||
|
||||
### 缺失率总体趋势
|
||||
|
||||
| 缺失率 | Early Acc | Early Macro-F1 | Early MAE | Early Pearson | MoFE Acc | MoFE Macro-F1 | MoFE MAE | MoFE Pearson |
|
||||
|---:|---:|---:|---:|---:|---:|---:|---:|---:|
|
||||
| 10% | 0.6142 | **0.5736** | **0.6336** | **0.6084** | 0.6032 | 0.5641 | 0.6366 | 0.6042 |
|
||||
| 30% | 0.6126 | **0.5725** | **0.6337** | **0.6024** | 0.6054 | 0.5627 | 0.6384 | 0.6009 |
|
||||
| 50% | 0.6085 | **0.5665** | **0.6416** | 0.5865 | 0.6068 | 0.5390 | 0.6452 | **0.5901** |
|
||||
| 70% | 0.5899 | **0.5470** | **0.6605** | 0.5442 | **0.5907** | 0.5147 | 0.6679 | 0.5558 |
|
||||
|
||||
随着遮蔽率从 10% 升到 70%,两模型的平均 Macro-F1 与 Pearson 都下降,MAE 上升。70% 时,EarlyConcat 的平均 Macro-F1 比 clean 低 0.0277、MAE 高 0.0257;MoFE 的 Macro-F1 低 0.0479、MAE 高 0.0310。总体退化在高缺失率更明显,且本轮点估计下 EarlyConcat 对缺失率增加更稳。
|
||||
|
||||
### 哪种模态缺失更有影响?
|
||||
|
||||
下表是相对同一模型 clean 验证结果的变化:
|
||||
|
||||
- \(\Delta F1=F1_{missing}-F1_{clean}\),负值表示 Macro-F1 下降;
|
||||
- \(\Delta MAE=MAE_{missing}-MAE_{clean}\),正值表示回归误差上升。
|
||||
|
||||
| 被遮蔽模态 | Early ΔF1(30% / 70%) | Early ΔMAE(30% / 70%) | MoFE ΔF1(30% / 70%) | MoFE ΔMAE(30% / 70%) |
|
||||
|---|---:|---:|---:|---:|
|
||||
| T | −0.021 / −0.080 | +0.003 / +0.060 | −0.037 / −0.128 | +0.019 / +0.103 |
|
||||
| A | +0.015 / +0.027 | −0.002 / −0.003 | −0.012 / −0.006 | +0.001 / +0.006 |
|
||||
| V | +0.001 / +0.002 | −0.003 / −0.002 | 0.000 / +0.011 | −0.005 / −0.010 |
|
||||
| TA | −0.007 / −0.062 | −0.003 / +0.053 | −0.041 / −0.120 | +0.012 / +0.040 |
|
||||
| TV | −0.014 / −0.089 | +0.001 / +0.073 | −0.034 / −0.121 | +0.008 / +0.075 |
|
||||
| AV | +0.009 / +0.010 | −0.003 / −0.003 | +0.009 / +0.023 | −0.006 / −0.006 |
|
||||
| TAV | +0.001 / −0.002 | 0.000 / +0.001 | +0.001 / +0.006 | +0.004 / +0.009 |
|
||||
|
||||
文本局部缺失的影响最大,尤其对 MoFE:只遮蔽 70% 的 T 时,Macro-F1 下降 0.128、MAE 上升 0.103;EarlyConcat 分别下降 0.080、上升 0.060。遮蔽 T+A 或 T+V 后也出现明显下降,说明这一训练结果对文本位置包含的信息较敏感。单独遮蔽 A 或 V 的影响较小;EarlyConcat 在 A-only 条件中的 F1 点估计甚至上升。该现象只能说明当前验证集上的局部遮蔽结果,不能据此断言 A/V 对任务无用。TAV 的变化也不呈简单单调关系,反映不同模态组合与上下文仍会影响结果。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 位置、连续块长度与跨模态错位
|
||||
|
||||
30% 单模态遮蔽的位置控制如下。这里 start/middle/end 是 wordpiece 序列位置:
|
||||
|
||||
| 模型 | T:start / middle / end | A:start / middle / end | V:start / middle / end |
|
||||
|---|---:|---:|---:|
|
||||
| EarlyConcat + BiGRU | 0.529 / 0.554 / 0.556 | 0.581 / 0.590 / 0.591 | 0.578 / 0.576 / 0.571 |
|
||||
| MoFE-7 + MLP Router | 0.507 / 0.526 / 0.524 | 0.569 / 0.551 / 0.555 | 0.571 / 0.563 / 0.559 |
|
||||
|
||||
T 的序列开头缺失是两个模型最差的位置;T 在中间或末尾缺失时 Macro-F1 较高。A/V 的位置效应较小且模型间方向不完全一致。
|
||||
|
||||
将 30% 缺失做成一个长块或多个短块,没有出现跨模态一致的赢家:
|
||||
|
||||
| 模型与模态 | 一个长块 Macro-F1 | 多个短块 Macro-F1 |
|
||||
|---|---:|---:|
|
||||
| Early T / A / V | 0.542 / 0.584 / 0.571 | 0.544 / 0.578 / 0.572 |
|
||||
| MoFE T / A / V | 0.518 / 0.557 / 0.573 | 0.522 / 0.564 / 0.566 |
|
||||
|
||||
T/A/V 同时缺失 30% 时,EarlyConcat 对 sync、partial、async 的 Macro-F1 分别为 0.570、0.568、0.567,差异较小;MoFE 分别为 0.568、0.542、0.567,partial 条件低约 0.025。当前结果提示 MoFE 对多模态缺失区间错位更敏感;单种子验证结果尚不足以确认这种差异能否稳定复现。
|
||||
|
||||

|
||||
|
||||
### 消融结论
|
||||
|
||||
1. **输入模态局部遮蔽消融:**固定 R03 检查点,逐一遮蔽 T/A/V 及其组合。七种集合、四档缺失率均纳入逐条件 CSV;总体上文本缺失最伤,视觉或音频单独缺失影响较弱。
|
||||
2. **融合架构消融:**在相同特征、训练掩码和 28 个条件上比较 EarlyConcat 与 MoFE。28 条件 Macro-F1 平均值为 0.5648 vs 0.5384,MAE 为 0.6421 vs 0.6485;参数量分别是 253,124 和 306,523。EarlyConcat 的点估计更好且参数更少,但只有一个 seed,不能将此差异表述为稳定或显著优势。
|
||||
|
||||
本节全部因素分析只在官方验证集和单个 seed 上进行,没有对 28 个单项条件逐一做显著性检验。结果适合描述趋势、定位敏感模态和选择后续实验,不应用来声称每个单项差异都具有统计显著性。
|
||||
|
||||
## 20.5 结论与边界
|
||||
|
||||
这次重训的点估计整体偏向 EarlyConcat + BiGRU:测试集 Macro-F1 和回归指标更高,验证集缺失情景的平均 Macro-F1、平均 MAE 与四种 AURC-MAE 也更好;MoFE-7 仅在测试 Accuracy 上略高。由于 Bootstrap 区间均跨零,且本次只使用一个 seed,不能声称 EarlyConcat 已被统计上确认优于 MoFE。当前应将 EarlyConcat 视为本轮较强候选,MoFE-7 继续保留比较,不宣称其具有总体优势。
|
||||
|
||||
数学汇总文件中的 C5 测试结果为 Accuracy 0.6740、Macro-F1 0.5861、MAE 0.6980、RMSE 0.9674、Pearson 0.6300。C5 的概率输出头与损失函数不同,该结果只作背景参考,不是与本节两个模型的严格同结构消融比较。
|
||||
|
||||
## 20.5 可复现产物
|
||||
## 20.6 可复现产物
|
||||
|
||||
运行入口:
|
||||
|
||||
```bash
|
||||
uv run python -m q2.train_math_protocol \
|
||||
--device auto \\
|
||||
--device auto \
|
||||
--output-dir outputs/followups/R04_math_protocol_retraining_replica
|
||||
|
||||
uv run python -m q2.analyze_aligned_missingness --device auto
|
||||
```
|
||||
|
||||
本次报告、检查点、scaler 和逐条件结果保存在独立目录:
|
||||
@@ -1271,6 +1348,11 @@ uv run python -m q2.train_math_protocol \
|
||||
- [controlled_metrics_by_scenario.csv](outputs/followups/R03_math_protocol_retraining/controlled_metrics_by_scenario.csv):42 个验证情景的逐项结果;
|
||||
- [aurc_mae_by_mode_seed.csv](outputs/followups/R03_math_protocol_retraining/aurc_mae_by_mode_seed.csv) 与 [aurc_mae_paired_bootstrap.csv](outputs/followups/R03_math_protocol_retraining/aurc_mae_paired_bootstrap.csv):AURC 与其区间;
|
||||
- [run_manifest.json](outputs/followups/R03_math_protocol_retraining/run_manifest.json):输入特征 hash、数据划分、训练配置、设备和评估规程。
|
||||
- [aligned_missingness_analysis/modality_rate_metrics.csv](outputs/followups/R03_math_protocol_retraining/aligned_missingness_analysis/modality_rate_metrics.csv):7 种缺失模态组合 × 4 档缺失率的全部指标;
|
||||
- [aligned_missingness_analysis/modality_rate_summary.csv](outputs/followups/R03_math_protocol_retraining/aligned_missingness_analysis/modality_rate_summary.csv):按缺失率跨 7 种模态集合的平均结果;
|
||||
- [aligned_missingness_analysis/architecture_ablation_deltas.csv](outputs/followups/R03_math_protocol_retraining/aligned_missingness_analysis/architecture_ablation_deltas.csv):逐条件的 MoFE − EarlyConcat 差值;
|
||||
- [aligned_missingness_analysis/location_span_synchrony_metrics.csv](outputs/followups/R03_math_protocol_retraining/aligned_missingness_analysis/location_span_synchrony_metrics.csv):位置、长短块和同步方式消融明细;
|
||||
- [analyze_aligned_missingness.py](q2/analyze_aligned_missingness.py):固定 R03 检查点,复现验证集因素分析的入口。
|
||||
|
||||
---
|
||||
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
missing_modalities,requested_missing_rate,delta_macro_f1_mofe_minus_earlyconcat,delta_accuracy_mofe_minus_earlyconcat,delta_mae_mofe_minus_earlyconcat,delta_pearson_mofe_minus_earlyconcat
|
||||
T,0.1,-0.02095009705080475,-0.009615384615384692,0.00852203369140625,-0.005681651266488563
|
||||
T,0.3,-0.028133566640441643,0.004120879120879106,0.018436014652252197,-0.002954990120306089
|
||||
T,0.5,-0.04881210290283683,0.005494505494505475,0.017650365829467773,0.014302013497001664
|
||||
T,0.7,-0.05954842620562689,0.004120879120879106,0.04524129629135132,0.033624461771018854
|
||||
A,0.1,-0.018956056299722857,-0.013736263736263798,0.0020334720611572266,-0.0048390986225514965
|
||||
A,0.3,-0.03875077521640857,-0.02472527472527475,0.004995882511138916,-0.006971030876656625
|
||||
A,0.5,-0.03584453157618295,-0.019230769230769273,0.009491026401519775,-0.01138265791254478
|
||||
A,0.7,-0.045841740098851225,-0.027472527472527486,0.012121021747589111,-0.014525578199591993
|
||||
V,0.1,-0.011695298349532313,-0.006868131868131955,0.0014849305152893066,-0.003985309920647939
|
||||
V,0.3,-0.013327333479364767,-0.006868131868131955,-0.00032466650009155273,-0.003624933900228333
|
||||
V,0.5,-0.002668511995976064,0.0,-0.0026485323905944824,-0.0022958514057371815
|
||||
V,0.7,-0.002630957737063011,0.0013736263736263687,-0.005600035190582275,-0.0020966615400528354
|
||||
TA,0.1,-0.026265724265911672,-0.013736263736263798,0.008427262306213379,-0.005800806967002581
|
||||
TA,0.3,-0.04662354001073421,-0.006868131868131955,0.01767963171005249,-0.0060187289468149885
|
||||
TA,0.5,-0.05710396573590909,0.0,0.006686747074127197,0.01054346034623066
|
||||
TA,0.7,-0.07014314498368496,0.008241758241758212,-0.011094510555267334,0.04033479271711726
|
||||
TV,0.1,-0.023928513187945644,-0.010989010989011061,0.0070122480392456055,-0.005857719325507049
|
||||
TV,0.3,-0.031557457777281805,-0.008241758241758212,0.009562134742736816,-0.002108631807369088
|
||||
TV,0.5,-0.030348347592560665,0.0,0.0017394423484802246,0.0146511242496975
|
||||
TV,0.7,-0.04408148904110509,0.006868131868131844,0.0040721893310546875,0.026398519121162978
|
||||
AV,0.1,-0.014584844773992689,-0.009615384615384692,0.0004057884216308594,-0.0030162821741148704
|
||||
AV,0.3,-0.011436803022078279,-0.004120879120879106,-0.0004349946975708008,-0.003119705036767728
|
||||
AV,0.5,-0.004888362161646009,0.0013736263736263687,0.0004119873046875,-0.0037323543516377677
|
||||
AV,0.7,0.0007305745069405845,0.006868131868131844,-0.0005033612251281738,-0.003279997987449046
|
||||
TAV,0.1,-0.022677145584270697,-0.01236263736263743,0.0049256086349487305,-0.004991126746561547
|
||||
TAV,0.3,-0.01242502791792277,-0.004120879120879217,0.006239771842956543,-0.0018800190930987615
|
||||
TAV,0.5,-0.012817167512626293,0.0,0.001982390880584717,0.0035557032831754487
|
||||
TAV,0.7,-0.004505570262365088,0.005494505494505475,0.010849595069885254,0.0006202338937486562
|
||||
|
BIN
Binary file not shown.
|
After Width: | Height: | Size: 101 KiB |
+37
@@ -0,0 +1,37 @@
|
||||
method,kind,variant,label,macro_f1,accuracy,mae,pearson,scenario
|
||||
B0_early_concat,location,start,T,0.5289423490769057,0.592032967032967,0.6485703587532043,0.58162843015804,0.3/location_start_T
|
||||
B0_early_concat,location,middle,T,0.5536695658136993,0.603021978021978,0.6376606822013855,0.5897726128244986,0.3/location_middle_T
|
||||
B0_early_concat,location,end,T,0.5556056212627483,0.6043956043956044,0.6402567625045776,0.5891006734385348,0.3/location_end_T
|
||||
B0_early_concat,span,long,T,0.5420906602882528,0.5989010989010989,0.6381194591522217,0.5853301068267182,0.3/span_long_T
|
||||
B0_early_concat,span,multi,short,0.5440495562446782,0.5975274725274725,0.6356171369552612,0.5876002847201148,0.3/span_multi_short_T
|
||||
B0_early_concat,location,start,A,0.5812912542814239,0.6167582417582418,0.6293162107467651,0.6114908900853474,0.3/location_start_A
|
||||
B0_early_concat,location,middle,A,0.5898724710749466,0.625,0.6324224472045898,0.6110184042952445,0.3/location_middle_A
|
||||
B0_early_concat,location,end,A,0.5905371029206817,0.6263736263736264,0.6318912506103516,0.6123387287503104,0.3/location_end_A
|
||||
B0_early_concat,span,long,A,0.583726857007959,0.6181318681318682,0.6294587254524231,0.6128556406770401,0.3/span_long_A
|
||||
B0_early_concat,span,multi,short,0.5775040835891835,0.6126373626373627,0.6295161247253418,0.6129813734377794,0.3/span_multi_short_A
|
||||
B0_early_concat,location,start,V,0.5784311415271869,0.6167582417582418,0.6317656636238098,0.6094092868851544,0.3/location_start_V
|
||||
B0_early_concat,location,middle,V,0.5758902475296572,0.6126373626373627,0.6318002343177795,0.6102280937754011,0.3/location_middle_V
|
||||
B0_early_concat,location,end,V,0.5710858841987924,0.6085164835164835,0.6308775544166565,0.6096283880242306,0.3/location_end_V
|
||||
B0_early_concat,span,long,V,0.5712207484964352,0.6098901098901099,0.6293761730194092,0.6119813338293026,0.3/span_long_V
|
||||
B0_early_concat,span,multi,short,0.5724471470092743,0.6112637362637363,0.6319549083709717,0.609626822827826,0.3/span_multi_short_V
|
||||
B0_early_concat,synchrony,sync,TAV,0.5695955472926512,0.6071428571428571,0.6377636194229126,0.6014507911006194,0.3/synchrony_sync
|
||||
B0_early_concat,synchrony,partial,TAV,0.5684426287766249,0.614010989010989,0.637352466583252,0.5966725971941069,0.3/synchrony_partial
|
||||
B0_early_concat,synchrony,async,TAV,0.5674224398503759,0.6126373626373627,0.6281272768974304,0.6032017513238488,0.3/synchrony_async
|
||||
B5_mofe_mlp,location,start,T,0.5074646922437304,0.5824175824175825,0.6651872396469116,0.5708209590446683,0.3/location_start_T
|
||||
B5_mofe_mlp,location,middle,T,0.5255359991732577,0.6071428571428571,0.6560966968536377,0.5868176227041925,0.3/location_middle_T
|
||||
B5_mofe_mlp,location,end,T,0.5241847210214233,0.6071428571428571,0.6566184759140015,0.5880970537326943,0.3/location_end_T
|
||||
B5_mofe_mlp,span,long,T,0.5179866041214112,0.592032967032967,0.6569079756736755,0.5832300823948291,0.3/span_long_T
|
||||
B5_mofe_mlp,span,multi,short,0.5217755256072807,0.5975274725274725,0.6542142033576965,0.5861358594281869,0.3/span_multi_short_T
|
||||
B5_mofe_mlp,location,start,A,0.5693105809612327,0.6153846153846154,0.6393567323684692,0.6030681972111498,0.3/location_start_A
|
||||
B5_mofe_mlp,location,middle,A,0.551121695858538,0.6002747252747253,0.6374183297157288,0.6040473734185878,0.3/location_middle_A
|
||||
B5_mofe_mlp,location,end,A,0.5553975345642012,0.6043956043956044,0.6361827850341797,0.6057378355308779,0.3/location_end_A
|
||||
B5_mofe_mlp,span,long,A,0.5568552904967875,0.6071428571428571,0.6383994817733765,0.603334225974666,0.3/span_long_A
|
||||
B5_mofe_mlp,span,multi,short,0.5639201931530282,0.6085164835164835,0.6405740976333618,0.6018797003793258,0.3/span_multi_short_A
|
||||
B5_mofe_mlp,location,start,V,0.5706553787814322,0.614010989010989,0.6286044120788574,0.607697827670399,0.3/location_start_V
|
||||
B5_mofe_mlp,location,middle,V,0.5625629140502925,0.6057692307692307,0.631475567817688,0.6066031598751728,0.3/location_middle_V
|
||||
B5_mofe_mlp,location,end,V,0.5591251566861323,0.6016483516483516,0.6326090097427368,0.6050984837070122,0.3/location_end_V
|
||||
B5_mofe_mlp,span,long,V,0.5732705025992542,0.6153846153846154,0.629095733165741,0.6077357791248426,0.3/span_long_V
|
||||
B5_mofe_mlp,span,multi,short,0.5658045462820314,0.6098901098901099,0.6311919093132019,0.6068331137272684,0.3/span_multi_short_V
|
||||
B5_mofe_mlp,synchrony,sync,TAV,0.5675933141063153,0.6085164835164835,0.6438319683074951,0.5957094024638004,0.3/synchrony_sync
|
||||
B5_mofe_mlp,synchrony,partial,TAV,0.542036764873725,0.6057692307692307,0.6417625546455383,0.5939879772923478,0.3/synchrony_partial
|
||||
B5_mofe_mlp,synchrony,async,TAV,0.5670250898329069,0.6153846153846154,0.6416157484054565,0.5924952604080301,0.3/synchrony_async
|
||||
|
BIN
Binary file not shown.
|
After Width: | Height: | Size: 180 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 138 KiB |
+57
@@ -0,0 +1,57 @@
|
||||
method,missing_modalities,selected_modalities,requested_missing_rate,missing_layout,realized_selected_modality_rate_mean,realized_selected_modality_rate_min,realized_selected_modality_rate_max,n_valid,accuracy,macro_f1,mae,rmse,pearson,delta_accuracy_vs_clean,delta_macro_f1_vs_clean,delta_mae_vs_clean,delta_pearson_vs_clean
|
||||
B0_early_concat,T,T,0.1,centered contiguous span per selected modality; other modalities unchanged,0.10076266369711513,0.0,0.16666666666666666,728,0.6098901098901099,0.5650784989965626,0.6360955834388733,0.8549598678294248,0.6046358533195865,-0.005494505494505475,-0.009568817766602566,0.0017796158790588379,-0.004824439656525237
|
||||
B5_mofe_mlp,T,T,0.1,centered contiguous span per selected modality; other modalities unchanged,0.10076266369711513,0.0,0.16666666666666666,728,0.6002747252747253,0.5441284019457578,0.6446176171302795,0.8618670310910008,0.5989542020530979,-0.005494505494505475,-0.018516360699004863,0.0077977776527404785,-0.005383235137570441
|
||||
B0_early_concat,T,T,0.3,centered contiguous span per selected modality; other modalities unchanged,0.2984805176440357,0.25,0.4,728,0.603021978021978,0.5536695658136993,0.6376606822013855,0.8514152889573482,0.5897726128244986,-0.01236263736263743,-0.020977750949465857,0.003344714641571045,-0.01968768015161315
|
||||
B5_mofe_mlp,T,T,0.3,centered contiguous span per selected modality; other modalities unchanged,0.2984805176440357,0.25,0.4,728,0.6071428571428571,0.5255359991732577,0.6560966968536377,0.8699031271111219,0.5868176227041925,0.0013736263736263687,-0.037108763471505046,0.019276857376098633,-0.017519814486475882
|
||||
B0_early_concat,T,T,0.5,centered contiguous span per selected modality; other modalities unchanged,0.5008753198971786,0.4,0.6666666666666666,728,0.5947802197802198,0.537518703471417,0.6532965898513794,0.8696734563178178,0.5548372878355661,-0.020604395604395642,-0.037128613291748214,0.01898062229156494,-0.05462300514054563
|
||||
B5_mofe_mlp,T,T,0.5,centered contiguous span per selected modality; other modalities unchanged,0.5008753198971786,0.4,0.6666666666666666,728,0.6002747252747253,0.4887066005685801,0.6709469556808472,0.8831707050458881,0.5691393013325677,-0.005494505494505475,-0.07393816207618259,0.034127116203308105,-0.03519813585810061
|
||||
B0_early_concat,T,T,0.7,centered contiguous span per selected modality; other modalities unchanged,0.7002531296610403,0.6666666666666666,0.8,728,0.5590659340659341,0.4942462340015856,0.6943759322166443,0.9257402370719978,0.46778124322131553,-0.05631868131868134,-0.08040108276157953,0.060059964656829834,-0.14167904975479617
|
||||
B5_mofe_mlp,T,T,0.7,centered contiguous span per selected modality; other modalities unchanged,0.7002531296610403,0.6666666666666666,0.8,728,0.5631868131868132,0.43469780779595873,0.7396172285079956,0.9570429898534563,0.5014057049923344,-0.04258241758241754,-0.12794695484880397,0.10279738903045654,-0.10293173219833396
|
||||
B0_early_concat,A,A,0.1,centered contiguous span per selected modality; other modalities unchanged,0.10093289445991736,0.0,0.16666666666666666,728,0.6181318681318682,0.5782422027002068,0.6336299180984497,0.8546216768515682,0.6098986851726621,0.0027472527472527375,0.003594885937041603,-0.0006860494613647461,0.00043839219655039674
|
||||
B5_mofe_mlp,A,A,0.1,centered contiguous span per selected modality; other modalities unchanged,0.10093289445991736,0.0,0.16666666666666666,728,0.6043956043956044,0.5592861464004839,0.6356633901596069,0.8551002649444466,0.6050595865501106,-0.0013736263736263687,-0.0033586162442788003,-0.001156449317932129,0.000722149359442259
|
||||
B0_early_concat,A,A,0.3,centered contiguous span per selected modality; other modalities unchanged,0.2993212718733642,0.0,0.5,728,0.625,0.5898724710749466,0.6324224472045898,0.8539363426497163,0.6110184042952445,0.009615384615384581,0.015225154311781397,-0.0018935203552246094,0.001558111319132749
|
||||
B5_mofe_mlp,A,A,0.3,centered contiguous span per selected modality; other modalities unchanged,0.2993212718733642,0.0,0.5,728,0.6002747252747253,0.551121695858538,0.6374183297157288,0.8570439020438321,0.6040473734185878,-0.005494505494505475,-0.011523066786224723,0.0005984902381896973,-0.0002900637720805177
|
||||
B0_early_concat,A,A,0.5,centered contiguous span per selected modality; other modalities unchanged,0.4975768705069514,0.0,0.6666666666666666,728,0.625,0.5917541955954291,0.6310378909111023,0.8525212341751632,0.6126362378077966,0.009615384615384581,0.017106878832263916,-0.003278076648712158,0.0031759448316849292
|
||||
B5_mofe_mlp,A,A,0.5,centered contiguous span per selected modality; other modalities unchanged,0.4975768705069514,0.0,0.6666666666666666,728,0.6057692307692307,0.5559096640192461,0.6405289173126221,0.8608981073301772,0.6012535798952519,0.0,-0.006735098625516578,0.003709077835083008,-0.0030838572954164922
|
||||
B0_early_concat,A,A,0.7,centered contiguous span per selected modality; other modalities unchanged,0.694666169256934,0.0,0.8,728,0.6318681318681318,0.6019899077417187,0.6310633420944214,0.8517077960729005,0.6140614919880888,0.016483516483516425,0.027342590978553516,-0.0032526254653930664,0.004601199011977086
|
||||
B5_mofe_mlp,A,A,0.7,centered contiguous span per selected modality; other modalities unchanged,0.694666169256934,0.0,0.8,728,0.6043956043956044,0.5561481676428675,0.6431843638420105,0.8637607330339965,0.5995359137884968,-0.0013736263736263687,-0.006496595001895256,0.0063645243644714355,-0.004801523402171548
|
||||
B0_early_concat,V,V,0.1,centered contiguous span per selected modality; other modalities unchanged,0.0981159123808491,0.0,0.16666666666666666,728,0.6126373626373627,0.5722385278601014,0.6324753165245056,0.852997227417173,0.6102436706088843,-0.0027472527472527375,-0.00240878890306373,-0.0018406510353088379,0.0007833776327725861
|
||||
B5_mofe_mlp,V,V,0.1,centered contiguous span per selected modality; other modalities unchanged,0.0981159123808491,0.0,0.16666666666666666,728,0.6057692307692307,0.5605432295105691,0.6339602470397949,0.8504630524505615,0.6062583606882364,0.0,-0.0021015331341935894,-0.0028595924377441406,0.0019209234975680056
|
||||
B0_early_concat,V,V,0.3,centered contiguous span per selected modality; other modalities unchanged,0.2971709107860721,0.0,0.5,728,0.6126373626373627,0.5758902475296572,0.6318002343177795,0.8514377607625061,0.6102280937754011,-0.0027472527472527375,0.0012429307664920675,-0.002515733242034912,0.0007678007992893976
|
||||
B5_mofe_mlp,V,V,0.3,centered contiguous span per selected modality; other modalities unchanged,0.2971709107860721,0.0,0.5,728,0.6057692307692307,0.5625629140502925,0.631475567817688,0.8447082164734656,0.6066031598751728,0.0,-8.184859447024628e-05,-0.005344271659851074,0.002265722684504423
|
||||
B0_early_concat,V,V,0.5,centered contiguous span per selected modality; other modalities unchanged,0.49385700700886837,0.0,0.6666666666666666,728,0.6126373626373627,0.576255066455031,0.6313949227333069,0.8512688576714347,0.6093962042792834,-0.0027472527472527375,0.001607749691865834,-0.0029210448265075684,-6.408869682827945e-05
|
||||
B5_mofe_mlp,V,V,0.5,centered contiguous span per selected modality; other modalities unchanged,0.49385700700886837,0.0,0.6666666666666666,728,0.6126373626373627,0.5735865544590549,0.6287463903427124,0.8396628606408898,0.6071003528735462,0.006868131868131955,0.010941791814292223,-0.00807344913482666,0.002762915682877898
|
||||
B0_early_concat,V,V,0.7,centered contiguous span per selected modality; other modalities unchanged,0.6888359014759997,0.0,0.8,728,0.6112637362637363,0.5764169279126207,0.6323723793029785,0.8524589369832155,0.6072935574867208,-0.004120879120879106,0.0017696111494555078,-0.0019435882568359375,-0.0021667354893909474
|
||||
B5_mofe_mlp,V,V,0.7,centered contiguous span per selected modality; other modalities unchanged,0.6888359014759997,0.0,0.8,728,0.6126373626373627,0.5737859701755577,0.6267723441123962,0.8375960323446534,0.6051968959466679,0.006868131868131955,0.01114120753079495,-0.010047495365142822,0.0008594587559995759
|
||||
B0_early_concat,TA,T+A,0.1,centered contiguous span per selected modality; other modalities unchanged,0.10084777907851622,0.0,0.14583333333333331,728,0.614010989010989,0.5717866205494326,0.6346916556358337,0.8532204193857846,0.6062922874472785,-0.0013736263736263687,-0.0028606962137325276,0.0003756880760192871,-0.0031680055288332287
|
||||
B5_mofe_mlp,TA,T+A,0.1,centered contiguous span per selected modality; other modalities unchanged,0.10084777907851622,0.0,0.14583333333333331,728,0.6002747252747253,0.545520896283521,0.6431189179420471,0.8585041835951804,0.6004914804802759,-0.005494505494505475,-0.017123866361241746,0.006299078464508057,-0.003845956710392451
|
||||
B0_early_concat,TA,T+A,0.3,centered contiguous span per selected modality; other modalities unchanged,0.29890089475869996,0.16666666666666666,0.4,728,0.614010989010989,0.5679903838930208,0.6313058137893677,0.8441793620883088,0.5974176946875417,-0.0013736263736263687,-0.00665693287014435,-0.0030101537704467773,-0.012042598288570017
|
||||
B5_mofe_mlp,TA,T+A,0.3,centered contiguous span per selected modality; other modalities unchanged,0.29890089475869996,0.16666666666666666,0.4,728,0.6071428571428571,0.5213668438822866,0.6489854454994202,0.857929852628108,0.5913989657407267,0.0013736263736263687,-0.04127791876247611,0.012165606021881104,-0.012938471449941646
|
||||
B0_early_concat,TA,T+A,0.5,centered contiguous span per selected modality; other modalities unchanged,0.49922609520206496,0.3333333333333333,0.5333333333333333,728,0.5947802197802198,0.5439482478748752,0.6471090912818909,0.8599323546064853,0.5673420265716562,-0.020604395604395642,-0.030699068888289993,0.012793123722076416,-0.042118266404455484
|
||||
B5_mofe_mlp,TA,T+A,0.5,centered contiguous span per selected modality; other modalities unchanged,0.49922609520206496,0.3333333333333333,0.5333333333333333,728,0.5947802197802198,0.4868442821389661,0.6537958383560181,0.858174960021945,0.5778854869178869,-0.01098901098901095,-0.07580048050579663,0.016975998878479004,-0.026451950272781466
|
||||
B0_early_concat,TA,T+A,0.7,centered contiguous span per selected modality; other modalities unchanged,0.6974596494589871,0.3333333333333333,0.7571428571428571,728,0.5631868131868132,0.512956821905402,0.6876201033592224,0.916818393085796,0.4825813355899393,-0.052197802197802234,-0.06169049485776312,0.05330413579940796,-0.1268789573861724
|
||||
B5_mofe_mlp,TA,T+A,0.7,centered contiguous span per selected modality; other modalities unchanged,0.6974596494589871,0.3333333333333333,0.7571428571428571,728,0.5714285714285714,0.4428136769217171,0.6765255928039551,0.8964248338262099,0.5229161283070566,-0.03434065934065933,-0.11983108572304563,0.039705753326416016,-0.08142130888361176
|
||||
B0_early_concat,TV,T+V,0.1,centered contiguous span per selected modality; other modalities unchanged,0.09953039599122232,0.0,0.14583333333333331,728,0.6112637362637363,0.5692943420216147,0.6340571641921997,0.851291298333614,0.6058901685375406,-0.004120879120879106,-0.005352974741550498,-0.0002588033676147461,-0.003570124438571076
|
||||
B5_mofe_mlp,TV,T+V,0.1,centered contiguous span per selected modality; other modalities unchanged,0.09953039599122232,0.0,0.14583333333333331,728,0.6002747252747253,0.545365828833669,0.6410694122314453,0.8558350566994001,0.6000324492120336,-0.005494505494505475,-0.01727893381109369,0.00424957275390625,-0.004304987978634767
|
||||
B0_early_concat,TV,T+V,0.3,centered contiguous span per selected modality; other modalities unchanged,0.297748643992044,0.1388888888888889,0.3970588235294118,728,0.6071428571428571,0.5603595289300786,0.6350727081298828,0.8462721956123026,0.5898738294264334,-0.008241758241758323,-0.014287787833086596,0.0007567405700683594,-0.0195864635496783
|
||||
B5_mofe_mlp,TV,T+V,0.3,centered contiguous span per selected modality; other modalities unchanged,0.297748643992044,0.1388888888888889,0.3970588235294118,728,0.5989010989010989,0.5288020711527968,0.6446348428726196,0.8541342721394217,0.5877651976190643,-0.006868131868131844,-0.03384269149196595,0.007815003395080566,-0.01657223957160403
|
||||
B0_early_concat,TV,T+V,0.5,centered contiguous span per selected modality; other modalities unchanged,0.49748261556907564,0.25,0.5964912280701754,728,0.5989010989010989,0.5442779698638324,0.6596295237541199,0.8729321363864293,0.5472611098864947,-0.016483516483516536,-0.030369346899332794,0.02531355619430542,-0.06219918308961703
|
||||
B5_mofe_mlp,TV,T+V,0.5,centered contiguous span per selected modality; other modalities unchanged,0.49748261556907564,0.25,0.5964912280701754,728,0.5989010989010989,0.5139296222712717,0.6613689661026001,0.8681901513761447,0.5619122341361922,-0.006868131868131844,-0.048715140373491006,0.024549126625061035,-0.04242520305447617
|
||||
B0_early_concat,TV,T+V,0.7,centered contiguous span per selected modality; other modalities unchanged,0.6945825961963391,0.3333333333333333,0.7571428571428571,728,0.5508241758241759,0.4855914601333487,0.7077130079269409,0.9367642058350819,0.44116908072554145,-0.06456043956043955,-0.08905585662981647,0.07339704036712646,-0.16829121225057025
|
||||
B5_mofe_mlp,TV,T+V,0.7,centered contiguous span per selected modality; other modalities unchanged,0.6945825961963391,0.3333333333333333,0.7571428571428571,728,0.5576923076923077,0.4415099710922436,0.7117851972579956,0.9348256749824289,0.46756759984670443,-0.04807692307692302,-0.1211347915525191,0.07496535778045654,-0.13676983734396392
|
||||
B0_early_concat,AV,A+V,0.1,centered contiguous span per selected modality; other modalities unchanged,0.09947856691252001,0.0,0.16666666666666666,728,0.6153846153846154,0.5780535586223784,0.6322883367538452,0.8538497515220613,0.6099004767461359,0.0,0.0034062418592132326,-0.0020276308059692383,0.00044018377002419395
|
||||
B5_mofe_mlp,AV,A+V,0.1,centered contiguous span per selected modality; other modalities unchanged,0.09947856691252001,0.0,0.16666666666666666,728,0.6057692307692307,0.5634687138483857,0.6326941251754761,0.8494563173128655,0.606884194572021,0.0,0.0008239512036229968,-0.004125714302062988,0.0025467573813526823
|
||||
B0_early_concat,AV,A+V,0.3,centered contiguous span per selected modality; other modalities unchanged,0.298476590661565,0.0,0.5,728,0.614010989010989,0.5835720646613662,0.63087397813797,0.8517257114056628,0.6112210355560509,-0.0013736263736263687,0.00892474789820108,-0.0034419894218444824,0.0017607425799391896
|
||||
B5_mofe_mlp,AV,A+V,0.3,centered contiguous span per selected modality; other modalities unchanged,0.298476590661565,0.0,0.5,728,0.6098901098901099,0.572135261639288,0.6304389834403992,0.8433678432673756,0.6081013305192832,0.004120879120879217,0.009490498994525254,-0.006380856037139893,0.00376389332861482
|
||||
B0_early_concat,AV,A+V,0.5,centered contiguous span per selected modality; other modalities unchanged,0.49572274120123827,0.0,0.6666666666666666,728,0.6126373626373627,0.5833420760220777,0.6297139525413513,0.8514289401246513,0.6113098633411715,-0.0027472527472527375,0.008694759258912499,-0.004602015018463135,0.0018495703650598383
|
||||
B5_mofe_mlp,AV,A+V,0.5,centered contiguous span per selected modality; other modalities unchanged,0.49572274120123827,0.0,0.6666666666666666,728,0.614010989010989,0.5784537138604317,0.6301259398460388,0.8399236596703874,0.6075775089895338,0.008241758241758323,0.015808951215668943,-0.006693899631500244,0.0032400717988654293
|
||||
B0_early_concat,AV,A+V,0.7,centered contiguous span per selected modality; other modalities unchanged,0.6916921691500518,0.0,0.8,728,0.6098901098901099,0.5849392724486678,0.6314220428466797,0.8550380162381634,0.6084118799755907,-0.005494505494505475,0.010291955685502674,-0.0028939247131347656,-0.0010484130005210535
|
||||
B5_mofe_mlp,AV,A+V,0.7,centered contiguous span per selected modality; other modalities unchanged,0.6916921691500518,0.0,0.8,728,0.6167582417582418,0.5856698469556084,0.6309186816215515,0.8389920551414928,0.6051318819881416,0.010989010989011061,0.02302508431084571,-0.005901157855987549,0.0007944447974732594
|
||||
B0_early_concat,TAV,T+A+V,0.1,centered contiguous span per selected modality; other modalities unchanged,0.09995224732741954,0.0,0.15277777777777776,728,0.6181318681318682,0.5794423437968373,0.6354190111160278,0.8559123939935158,0.6084679634558627,0.0027472527472527375,0.004795027033672183,0.001103043556213379,-0.000992329520248969
|
||||
B5_mofe_mlp,TAV,T+A+V,0.1,centered contiguous span per selected modality; other modalities unchanged,0.09995224732741954,0.0,0.15277777777777776,728,0.6057692307692307,0.5567651982125666,0.6403446197509766,0.8569256643596813,0.6034768367093012,0.0,-0.0058795644321960605,0.0035247802734375,-0.0008606004813671575
|
||||
B0_early_concat,TAV,T+A+V,0.3,centered contiguous span per selected modality; other modalities unchanged,0.2983753764707696,0.1111111111111111,0.4166666666666667,728,0.6126373626373627,0.5759539997421909,0.6346108913421631,0.8520219245986547,0.6074596971344204,-0.0027472527472527375,0.0013066829790256973,0.0002949237823486328,-0.0020005958416913217
|
||||
B5_mofe_mlp,TAV,T+A+V,0.3,centered contiguous span per selected modality; other modalities unchanged,0.2983753764707696,0.1111111111111111,0.4166666666666667,728,0.6085164835164835,0.5635289718242681,0.6408506631851196,0.8547594099461256,0.6055796780413216,0.0027472527472527375,0.0008842091795053797,0.004030823707580566,0.0012422408506532756
|
||||
B0_early_concat,TAV,T+A+V,0.5,centered contiguous span per selected modality; other modalities unchanged,0.4974771506574596,0.2222222222222222,0.5777777777777778,728,0.6208791208791209,0.5881070025731289,0.6351321935653687,0.849459474866674,0.6024236422566064,0.005494505494505475,0.013459685809963706,0.0008162260055541992,-0.007036650719505322
|
||||
B5_mofe_mlp,TAV,T+A+V,0.5,centered contiguous span per selected modality; other modalities unchanged,0.4974771506574596,0.2222222222222222,0.5777777777777778,728,0.6208791208791209,0.5752898350605026,0.6371145844459534,0.8494591941956995,0.6059793455397818,0.015109890109890167,0.012645072415739866,0.00029474496841430664,0.0016419083491134856
|
||||
B0_early_concat,TAV,T+A+V,0.7,centered contiguous span per selected modality; other modalities unchanged,0.6945781382684594,0.2222222222222222,0.7714285714285714,728,0.603021978021978,0.5727510362427203,0.6353143453598022,0.8534884241164965,0.5880249849999647,-0.01236263736263743,-0.0018962805204448818,0.000998377799987793,-0.02143530797614701
|
||||
B5_mofe_mlp,TAV,T+A+V,0.7,centered contiguous span per selected modality; other modalities unchanged,0.6945781382684594,0.2222222222222222,0.7714285714285714,728,0.6085164835164835,0.5682454659803552,0.6461639404296875,0.8649528510413363,0.5886452188937134,0.0027472527472527375,0.005600703335592483,0.009344100952148438,-0.015692218296954996
|
||||
|
+9
@@ -0,0 +1,9 @@
|
||||
method,requested_missing_rate,n_modality_sets,accuracy,macro_f1,mae,pearson,mean_macro_f1_drop_vs_clean,mean_mae_increase_vs_clean
|
||||
B0_early_concat,0.1,7,0.6142072213500784,0.5734480135067334,0.6340938551085336,0.6079041578982787,0.0011993032564317576,-0.00022211245128086636
|
||||
B0_early_concat,0.3,7,0.6126373626373626,0.5724726088064227,0.6333923935890198,0.6024273382427986,0.002174707956742366,-0.0009235739707946777
|
||||
B0_early_concat,0.5,7,0.6085164835164836,0.5664576088365416,0.6410448806626456,0.5864580531397964,0.008189707926623577,0.006728913102831159
|
||||
B0_early_concat,0.7,7,0.5898744113029827,0.5469845229122948,0.6599830218723842,0.5441890819981657,0.02766279385087033,0.025667054312569753
|
||||
B5_mofe_mlp,0.1,7,0.6032182103610675,0.553582630719279,0.6387811899185181,0.6030224443235824,0.009062131925483679,0.001961350440979004
|
||||
B5_mofe_mlp,0.3,7,0.6053767660910517,0.5464362510829611,0.641414361340659,0.5986161897026213,0.016208511561801635,0.0045945218631199426
|
||||
B5_mofe_mlp,0.5,7,0.6067503924646782,0.5389600389111505,0.6460896560123989,0.5901211156692516,0.023684723733612252,0.009269816534859794
|
||||
B5_mofe_mlp,0.7,7,0.5906593406593406,0.5146958437949012,0.6678524783679417,0.5557713348233022,0.04794891884986154,0.03103263889040266
|
||||
|
+54
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"experiment": "Factorial local missingness type x rate on supplied aligned_50 validation data",
|
||||
"feature_file": "/home/gloamxun/modeling_zhaocui/E\u9898\u6570\u636e/\u9644\u4ef62-\u6570\u636e\u96c6\u7279\u5f81\u6587\u4ef6/aligned_50.pkl",
|
||||
"feature_sha256": "66e867aa74bc70a844e806e5571e371c9abb4a35f9e2887ce9b4d97ff2cb8fcd",
|
||||
"representation": "aligned_50 ordered wordpiece positions, not physical-time bins",
|
||||
"split": "official validation only",
|
||||
"n_valid": 728,
|
||||
"source_video_groups": 239,
|
||||
"checkpoint_source": "/home/gloamxun/modeling_zhaocui/deep_learning/Q2/outputs/followups/R03_math_protocol_retraining/models",
|
||||
"seed": 20260924,
|
||||
"device": "cuda",
|
||||
"cuda_device": "NVIDIA GeForce RTX 5070 Ti",
|
||||
"missing_rate_grid": [
|
||||
0.1,
|
||||
0.3,
|
||||
0.5,
|
||||
0.7
|
||||
],
|
||||
"missing_modality_sets": {
|
||||
"T": [
|
||||
0
|
||||
],
|
||||
"A": [
|
||||
1
|
||||
],
|
||||
"V": [
|
||||
2
|
||||
],
|
||||
"TA": [
|
||||
0,
|
||||
1
|
||||
],
|
||||
"TV": [
|
||||
0,
|
||||
2
|
||||
],
|
||||
"AV": [
|
||||
1,
|
||||
2
|
||||
],
|
||||
"TAV": [
|
||||
0,
|
||||
1,
|
||||
2
|
||||
]
|
||||
},
|
||||
"factorial_design": "28 local-missingness conditions plus clean reference; each selected modality receives a centered contiguous span; other modalities remain unchanged",
|
||||
"missing_rate_definition": "newly hidden observed positions divided by originally observed positions, averaged over selected modalities; realized rate reported per condition",
|
||||
"preserve_at_least_fraction": 0.2,
|
||||
"scenario_seed": 20261833,
|
||||
"additional_existing_controls": "30% start/middle/end location, one-long/multiple-short span, and sync/partial/async controls imported from the R03 42-scenario audit",
|
||||
"test_split_read_or_evaluated": false,
|
||||
"label_usage": "validation labels used only for metric computation; no model fitting or checkpoint selection in this analysis"
|
||||
}
|
||||
@@ -0,0 +1,361 @@
|
||||
"""Factorial local-missingness analysis for the aligned Q2 checkpoints."""
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import csv
|
||||
import json
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
import torch
|
||||
|
||||
from .data import ATTACHMENT2, RobustStats, apply_robust_stats, load_aligned
|
||||
from .evaluate_math_protocol import (
|
||||
SCENARIO_SEED,
|
||||
continuous_mask,
|
||||
metrics,
|
||||
scenario_seed,
|
||||
sha256,
|
||||
write_csv,
|
||||
)
|
||||
from .models import AlignedFusionModel
|
||||
from .mofe import MixtureOfFusionExperts
|
||||
from .train_mofe import EARLYCONCAT, MODEL_CONFIG, MOFE7_MLP, _predict
|
||||
|
||||
|
||||
Q2_ROOT = Path(__file__).resolve().parents[1]
|
||||
RUN_DIR = Q2_ROOT / "outputs" / "followups" / "R03_math_protocol_retraining"
|
||||
OUTPUT_DIR = RUN_DIR / "aligned_missingness_analysis"
|
||||
SEED = 20260924
|
||||
BOOTSTRAP_SEED = 20260927
|
||||
MISSING_RATES = (0.1, 0.3, 0.5, 0.7)
|
||||
MODALITY_SETS: dict[str, tuple[int, ...]] = {
|
||||
"T": (0,),
|
||||
"A": (1,),
|
||||
"V": (2,),
|
||||
"TA": (0, 1),
|
||||
"TV": (0, 2),
|
||||
"AV": (1, 2),
|
||||
"TAV": (0, 1, 2),
|
||||
}
|
||||
METHODS = (EARLYCONCAT, MOFE7_MLP)
|
||||
METRICS = ("accuracy", "macro_f1", "mae", "pearson")
|
||||
|
||||
|
||||
def _device(name: str) -> torch.device:
|
||||
if name == "auto":
|
||||
return torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
||||
return torch.device(name)
|
||||
|
||||
|
||||
def _load_model(method: str, dims: tuple[int, int, int], device: torch.device) -> torch.nn.Module:
|
||||
checkpoint_path = RUN_DIR / "models" / method / f"seed_{SEED}" / "model_best.pt"
|
||||
state = torch.load(checkpoint_path, map_location=device, weights_only=False)
|
||||
if method == EARLYCONCAT:
|
||||
if state.get("kind") != "concat":
|
||||
raise ValueError(f"unexpected EarlyConcat checkpoint format: {checkpoint_path}")
|
||||
model: torch.nn.Module = AlignedFusionModel("concat", dims=dims).to(device)
|
||||
elif method == MOFE7_MLP:
|
||||
if state.get("config") != MODEL_CONFIG:
|
||||
raise ValueError(f"unexpected MoFE checkpoint configuration: {checkpoint_path}")
|
||||
model = MixtureOfFusionExperts(dims=dims, **MODEL_CONFIG).to(device)
|
||||
else:
|
||||
raise ValueError(f"unknown model: {method}")
|
||||
if int(state.get("seed", -1)) != SEED or tuple(state.get("dims", ())) != dims:
|
||||
raise ValueError(f"checkpoint metadata mismatch: {checkpoint_path}")
|
||||
model.load_state_dict(state["state_dict"])
|
||||
return model.eval()
|
||||
|
||||
|
||||
def _scenario_key(label: str, rate: float) -> str:
|
||||
return f"{label}/{rate:.1f}/middle_sync"
|
||||
|
||||
|
||||
def _factorial_masks(valid) -> tuple[dict[str, np.ndarray], dict[str, dict[str, float]]]:
|
||||
scenarios = {"clean": valid.mask.copy()}
|
||||
realized: dict[str, dict[str, float]] = {}
|
||||
for label, selected in MODALITY_SETS.items():
|
||||
for rate in MISSING_RATES:
|
||||
key = _scenario_key(label, rate)
|
||||
mask_rows = []
|
||||
for sample_id, original in zip(valid.ids, valid.mask):
|
||||
rng = np.random.default_rng(scenario_seed(SCENARIO_SEED, sample_id, key))
|
||||
corrupted = continuous_mask(
|
||||
original,
|
||||
rate,
|
||||
"single",
|
||||
rng,
|
||||
modalities=selected,
|
||||
location="middle",
|
||||
)
|
||||
mask_rows.append(corrupted)
|
||||
current = np.stack(mask_rows)
|
||||
scenarios[key] = current
|
||||
# Mean realized missing fraction among selected modalities. The
|
||||
# unselected modalities are deliberately excluded from this rate.
|
||||
per_sample = []
|
||||
for original, corrupted in zip(valid.mask, current):
|
||||
before = original[:, selected].sum(axis=0)
|
||||
hidden = (original[:, selected] & ~corrupted[:, selected]).sum(axis=0)
|
||||
rates = np.divide(hidden, before, out=np.full(len(selected), np.nan), where=before > 0)
|
||||
if np.isfinite(rates).any():
|
||||
per_sample.append(float(np.nanmean(rates)))
|
||||
realized[key] = {
|
||||
"requested_rate": float(rate),
|
||||
"selected_modality_rate_mean": float(np.mean(per_sample)) if per_sample else float("nan"),
|
||||
"selected_modality_rate_min": float(np.min(per_sample)) if per_sample else float("nan"),
|
||||
"selected_modality_rate_max": float(np.max(per_sample)) if per_sample else float("nan"),
|
||||
}
|
||||
return scenarios, realized
|
||||
|
||||
|
||||
def _condition_summary_rows(
|
||||
valid,
|
||||
predictions: dict[tuple[str, str], dict[str, np.ndarray]],
|
||||
realized: dict[str, dict[str, float]],
|
||||
) -> list[dict[str, Any]]:
|
||||
rows: list[dict[str, Any]] = []
|
||||
clean_key = "clean"
|
||||
for label in MODALITY_SETS:
|
||||
for rate in MISSING_RATES:
|
||||
scenario = _scenario_key(label, rate)
|
||||
for method in METHODS:
|
||||
pred = predictions[(method, scenario)]
|
||||
clean = predictions[(method, clean_key)]
|
||||
current_metrics = metrics(valid, pred["logits"], pred["intensity"])
|
||||
clean_metrics = metrics(valid, clean["logits"], clean["intensity"])
|
||||
rows.append({
|
||||
"method": method,
|
||||
"missing_modalities": label,
|
||||
"selected_modalities": "+".join(label),
|
||||
"requested_missing_rate": rate,
|
||||
"missing_layout": "centered contiguous span per selected modality; other modalities unchanged",
|
||||
"realized_selected_modality_rate_mean": realized[scenario]["selected_modality_rate_mean"],
|
||||
"realized_selected_modality_rate_min": realized[scenario]["selected_modality_rate_min"],
|
||||
"realized_selected_modality_rate_max": realized[scenario]["selected_modality_rate_max"],
|
||||
"n_valid": valid.n,
|
||||
**current_metrics,
|
||||
"delta_accuracy_vs_clean": current_metrics["accuracy"] - clean_metrics["accuracy"],
|
||||
"delta_macro_f1_vs_clean": current_metrics["macro_f1"] - clean_metrics["macro_f1"],
|
||||
"delta_mae_vs_clean": current_metrics["mae"] - clean_metrics["mae"],
|
||||
"delta_pearson_vs_clean": current_metrics["pearson"] - clean_metrics["pearson"],
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
def _aggregate_rows(rows: list[dict[str, Any]]) -> list[dict[str, Any]]:
|
||||
result: list[dict[str, Any]] = []
|
||||
methods = list(METHODS)
|
||||
for method in methods:
|
||||
for rate in MISSING_RATES:
|
||||
subset = [r for r in rows if r["method"] == method and r["requested_missing_rate"] == rate]
|
||||
result.append({
|
||||
"method": method,
|
||||
"requested_missing_rate": rate,
|
||||
"n_modality_sets": len(subset),
|
||||
**{metric: float(np.mean([float(r[metric]) for r in subset])) for metric in METRICS},
|
||||
"mean_macro_f1_drop_vs_clean": float(-np.mean([float(r["delta_macro_f1_vs_clean"]) for r in subset])),
|
||||
"mean_mae_increase_vs_clean": float(np.mean([float(r["delta_mae_vs_clean"]) for r in subset])),
|
||||
})
|
||||
return result
|
||||
|
||||
|
||||
def _ablation_rows(rows: list[dict[str, Any]]) -> list[dict[str, Any]]:
|
||||
result: list[dict[str, Any]] = []
|
||||
for row in rows:
|
||||
other_method = MOFE7_MLP if row["method"] == EARLYCONCAT else EARLYCONCAT
|
||||
other = next(r for r in rows if r["method"] == other_method
|
||||
and r["missing_modalities"] == row["missing_modalities"]
|
||||
and r["requested_missing_rate"] == row["requested_missing_rate"])
|
||||
if row["method"] != EARLYCONCAT:
|
||||
continue
|
||||
result.append({
|
||||
"missing_modalities": row["missing_modalities"],
|
||||
"requested_missing_rate": row["requested_missing_rate"],
|
||||
"delta_macro_f1_mofe_minus_earlyconcat": float(other["macro_f1"] - row["macro_f1"]),
|
||||
"delta_accuracy_mofe_minus_earlyconcat": float(other["accuracy"] - row["accuracy"]),
|
||||
"delta_mae_mofe_minus_earlyconcat": float(other["mae"] - row["mae"]),
|
||||
"delta_pearson_mofe_minus_earlyconcat": float(other["pearson"] - row["pearson"]),
|
||||
})
|
||||
return result
|
||||
|
||||
|
||||
def _plot_rate_curves(rows: list[dict[str, Any]], clean_metrics: dict[str, dict[str, float]], output_dir: Path) -> None:
|
||||
colors = {"T": "#3366cc", "A": "#dc3912", "V": "#ff9900", "TA": "#109618", "TV": "#990099", "AV": "#0099c6", "TAV": "#dd4477"}
|
||||
fig, axes = plt.subplots(1, 2, figsize=(13, 5), sharey=True)
|
||||
for ax, method in zip(axes, METHODS):
|
||||
for label in MODALITY_SETS:
|
||||
subset = sorted(
|
||||
(r for r in rows if r["method"] == method and r["missing_modalities"] == label),
|
||||
key=lambda r: r["requested_missing_rate"],
|
||||
)
|
||||
xs = [float(r["requested_missing_rate"]) for r in subset]
|
||||
ys = [float(r["macro_f1"]) for r in subset]
|
||||
ax.plot(xs, ys, marker="o", linewidth=1.8, label=label, color=colors[label])
|
||||
base = clean_metrics[method]["macro_f1"]
|
||||
ax.axhline(base, color="#333333", linestyle="--", linewidth=1.2, label="clean")
|
||||
ax.set_title(method)
|
||||
ax.set_xlabel("Requested missing rate of selected modalities")
|
||||
ax.set_xticks(MISSING_RATES)
|
||||
ax.grid(alpha=0.25)
|
||||
axes[0].set_ylabel("Validation Macro-F1")
|
||||
axes[1].legend(title="Missing set", bbox_to_anchor=(1.02, 1), loc="upper left")
|
||||
fig.suptitle("Aligned Q2: local missingness rate and modality type")
|
||||
fig.tight_layout()
|
||||
fig.savefig(output_dir / "macro_f1_by_modality_and_rate.png", dpi=180, bbox_inches="tight")
|
||||
plt.close(fig)
|
||||
|
||||
fig, axes = plt.subplots(1, 2, figsize=(12, 5), sharey=True)
|
||||
for ax, method in zip(axes, METHODS):
|
||||
matrix = np.asarray([
|
||||
[next(float(r["delta_macro_f1_vs_clean"]) for r in rows
|
||||
if r["method"] == method and r["missing_modalities"] == label
|
||||
and r["requested_missing_rate"] == rate)
|
||||
for rate in MISSING_RATES]
|
||||
for label in MODALITY_SETS
|
||||
])
|
||||
image = ax.imshow(matrix, aspect="auto", cmap="RdYlGn", vmin=-0.12, vmax=0.04)
|
||||
ax.set_title(method)
|
||||
ax.set_xticks(range(len(MISSING_RATES)), [f"{int(r*100)}%" for r in MISSING_RATES])
|
||||
ax.set_yticks(range(len(MODALITY_SETS)), list(MODALITY_SETS))
|
||||
ax.set_xlabel("Requested missing rate")
|
||||
for i in range(matrix.shape[0]):
|
||||
for j in range(matrix.shape[1]):
|
||||
ax.text(j, i, f"{matrix[i, j]:+.3f}", ha="center", va="center", fontsize=8)
|
||||
axes[0].set_ylabel("Selected modality set")
|
||||
fig.colorbar(image, ax=axes.ravel().tolist(), label="Macro-F1 change vs clean")
|
||||
fig.suptitle("Aligned Q2: Macro-F1 change under modality ablation")
|
||||
fig.savefig(output_dir / "macro_f1_drop_heatmap.png", dpi=180, bbox_inches="tight")
|
||||
plt.close(fig)
|
||||
|
||||
|
||||
def _plot_location_span(location_rows: list[dict[str, Any]], output_dir: Path) -> None:
|
||||
locations = ("start", "middle", "end")
|
||||
fig, axes = plt.subplots(1, 2, figsize=(12, 4.5), sharey=True)
|
||||
for ax, method in zip(axes, METHODS):
|
||||
for modality in ("T", "A", "V"):
|
||||
values = []
|
||||
for location in locations:
|
||||
row = next(r for r in location_rows if r["method"] == method
|
||||
and r["kind"] == "location" and r["label"] == modality
|
||||
and r["variant"] == location)
|
||||
values.append(float(row["macro_f1"]))
|
||||
ax.plot(locations, values, marker="o", label=modality)
|
||||
ax.set_title(method)
|
||||
ax.set_ylabel("Validation Macro-F1")
|
||||
ax.set_xlabel("30% missing-block location")
|
||||
ax.grid(alpha=0.25)
|
||||
axes[1].legend(title="Modality")
|
||||
fig.suptitle("Aligned Q2: sensitivity to missing-block location")
|
||||
fig.tight_layout()
|
||||
fig.savefig(output_dir / "location_sensitivity.png", dpi=180, bbox_inches="tight")
|
||||
plt.close(fig)
|
||||
|
||||
|
||||
def run(device_name: str = "auto", output_dir: Path = OUTPUT_DIR) -> None:
|
||||
output_dir.mkdir(parents=True, exist_ok=True)
|
||||
device = _device(device_name)
|
||||
if device.type == "cuda" and not torch.cuda.is_available():
|
||||
raise RuntimeError("CUDA requested but not available")
|
||||
feature_path = ATTACHMENT2 / "aligned_50.pkl"
|
||||
splits = load_aligned(feature_path)
|
||||
valid = apply_robust_stats(splits["valid"], RobustStats.load(RUN_DIR / "aligned_robust_stats.npz"))
|
||||
dims = tuple(int(x.shape[-1]) for x in valid.x)
|
||||
scenarios, realized = _factorial_masks(valid)
|
||||
predictions: dict[tuple[str, str], dict[str, np.ndarray]] = {}
|
||||
clean_metrics: dict[str, dict[str, float]] = {}
|
||||
for method in METHODS:
|
||||
model = _load_model(method, dims, device)
|
||||
for scenario, mask in scenarios.items():
|
||||
predictions[(method, scenario)] = _predict(model, valid, mask, device, batch_size=64)
|
||||
clean_metrics[method] = metrics(
|
||||
valid,
|
||||
predictions[(method, "clean")]["logits"],
|
||||
predictions[(method, "clean")]["intensity"],
|
||||
)
|
||||
del model
|
||||
if torch.cuda.is_available():
|
||||
torch.cuda.empty_cache()
|
||||
|
||||
rows = _condition_summary_rows(valid, predictions, realized)
|
||||
aggregate_rows = _aggregate_rows(rows)
|
||||
ablation_rows = _ablation_rows(rows)
|
||||
write_csv(output_dir / "modality_rate_metrics.csv", rows)
|
||||
write_csv(output_dir / "modality_rate_summary.csv", aggregate_rows)
|
||||
write_csv(output_dir / "architecture_ablation_deltas.csv", ablation_rows)
|
||||
|
||||
# Analyze the existing fixed 30% location, span, and synchrony controls.
|
||||
old_conditions_path = RUN_DIR / "controlled_metrics_by_scenario.csv"
|
||||
with old_conditions_path.open("r", newline="", encoding="utf-8-sig") as stream:
|
||||
old_rows = list(csv.DictReader(stream))
|
||||
location_rows: list[dict[str, Any]] = []
|
||||
for row in old_rows:
|
||||
scenario = row["scenario"]
|
||||
pieces = scenario.split("/")
|
||||
if len(pieces) != 2 or pieces[0] != "0.3":
|
||||
continue
|
||||
subparts = pieces[1].split("_")
|
||||
if subparts[0] == "location":
|
||||
kind, variant, label = "location", subparts[1], subparts[2]
|
||||
elif subparts[0] == "span":
|
||||
kind, variant, label = "span", subparts[1], subparts[2]
|
||||
elif subparts[0] == "synchrony":
|
||||
kind, variant, label = "synchrony", subparts[1], "TAV"
|
||||
else:
|
||||
continue
|
||||
location_rows.append({
|
||||
"method": row["method"],
|
||||
"kind": kind,
|
||||
"variant": variant,
|
||||
"label": label,
|
||||
"macro_f1": float(row["macro_f1"]),
|
||||
"accuracy": float(row["accuracy"]),
|
||||
"mae": float(row["mae"]),
|
||||
"pearson": float(row["pearson"]),
|
||||
"scenario": scenario,
|
||||
})
|
||||
write_csv(output_dir / "location_span_synchrony_metrics.csv", location_rows)
|
||||
_plot_rate_curves(rows, clean_metrics, output_dir)
|
||||
_plot_location_span(location_rows, output_dir)
|
||||
|
||||
manifest = {
|
||||
"experiment": "Factorial local missingness type x rate on supplied aligned_50 validation data",
|
||||
"feature_file": str(feature_path),
|
||||
"feature_sha256": sha256(feature_path),
|
||||
"representation": "aligned_50 ordered wordpiece positions, not physical-time bins",
|
||||
"split": "official validation only",
|
||||
"n_valid": valid.n,
|
||||
"source_video_groups": len({sid.split("$_$", 1)[0] for sid in valid.ids}),
|
||||
"checkpoint_source": str(RUN_DIR / "models"),
|
||||
"seed": SEED,
|
||||
"device": str(device),
|
||||
"cuda_device": torch.cuda.get_device_name(0) if device.type == "cuda" else None,
|
||||
"missing_rate_grid": list(MISSING_RATES),
|
||||
"missing_modality_sets": {k: list(v) for k, v in MODALITY_SETS.items()},
|
||||
"factorial_design": "28 local-missingness conditions plus clean reference; each selected modality receives a centered contiguous span; other modalities remain unchanged",
|
||||
"missing_rate_definition": "newly hidden observed positions divided by originally observed positions, averaged over selected modalities; realized rate reported per condition",
|
||||
"preserve_at_least_fraction": 0.2,
|
||||
"scenario_seed": SCENARIO_SEED,
|
||||
"additional_existing_controls": "30% start/middle/end location, one-long/multiple-short span, and sync/partial/async controls imported from the R03 42-scenario audit",
|
||||
"test_split_read_or_evaluated": False,
|
||||
"label_usage": "validation labels used only for metric computation; no model fitting or checkpoint selection in this analysis",
|
||||
}
|
||||
(output_dir / "run_manifest.json").write_text(json.dumps(manifest, indent=2), encoding="utf-8")
|
||||
print(f"saved aligned missingness analysis to {output_dir}", flush=True)
|
||||
print(f"conditions={len(rows)}; methods={len(METHODS)}; device={device}", flush=True)
|
||||
for row in aggregate_rows:
|
||||
print(
|
||||
f"{row['method']} rate={row['requested_missing_rate']:.1f} "
|
||||
f"F1={row['macro_f1']:.4f} MAE={row['mae']:.4f}",
|
||||
flush=True,
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument("--device", default="auto", choices=("auto", "cuda", "cpu"))
|
||||
parser.add_argument("--output-dir", type=Path, default=OUTPUT_DIR)
|
||||
args = parser.parse_args()
|
||||
run(device_name=args.device, output_dir=args.output_dir)
|
||||
Generated
+1
-390
@@ -2,46 +2,6 @@ version = 1
|
||||
revision = 3
|
||||
requires-python = ">=3.14"
|
||||
|
||||
[[package]]
|
||||
name = "annotated-doc"
|
||||
version = "0.0.5"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/5a/8e/38aa427ed5402449e226975b649c5dc73ccadfefeb95e6aecb8f8ea4b6b6/annotated_doc-0.0.5.tar.gz", hash = "sha256:c7e58ce09192557605d8bbd92836d7e1d520ac9580096042c0bfd197efacf1bb", size = 10758, upload-time = "2026-07-28T13:50:58.129Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/3e/30/e900b21425a860e195f32e37657aa1f7c7f2b1bfb26f03ca209b90933c06/annotated_doc-0.0.5-py3-none-any.whl", hash = "sha256:117bac03a25ede5df5440e855b32d556049ca169ead221505badf432fed4b101", size = 5302, upload-time = "2026-07-28T13:50:57.239Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anyio"
|
||||
version = "4.15.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "idna" },
|
||||
{ name = "typing-extensions", marker = "python_full_version < '3.15'" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/a9/d2/f4d173e22df740bc37b1db102b386ba719b66e95b0f0d751f556b387e6d2/anyio-4.15.1.tar.gz", hash = "sha256:9f28306018cbd6d329e64a36d58256edff76dd996fe423bc957326e578b82a94", size = 276966, upload-time = "2026-09-05T10:42:39.44Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/12/b8/4bd346e22b28902df4d651910f5242c28d84e4a5c2435ca5c3f797ed7e2e/anyio-4.15.1-py3-none-any.whl", hash = "sha256:6152fdbbf9a77fdec97731721bebf7c4c44f7c29b424b0065826173efc7ed101", size = 132079, upload-time = "2026-09-05T10:42:37.923Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "certifi"
|
||||
version = "2026.7.22"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/a3/c2/24167ea9858356b47a87a50d39908bfdb72ceeefe0041586e704e5376b3a/certifi-2026.7.22.tar.gz", hash = "sha256:741e2c3b351ddf169a738da9f2c048608ff7f2c5cc02f1ebc6b118bb090d5d55", size = 138112, upload-time = "2026-07-22T03:35:12.644Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/0b/a7/71ac2cff56fec219ed242bb11b8efb69fcc4bec75db06fb7bfe35de520e6/certifi-2026.7.22-py3-none-any.whl", hash = "sha256:62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775", size = 136983, upload-time = "2026-07-22T03:35:11.276Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "click"
|
||||
version = "8.5.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/c7/0e/7fa0ef50764b67090eca4114772a2abf8b6148198475e54c660b97caeee6/click-8.5.0.tar.gz", hash = "sha256:ba0d2089de75ea0310e2dde03160e6ca10009947fb95a182f9b54021bb272e34", size = 382235, upload-time = "2026-08-26T13:33:14.56Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/58/50/6c0d534c5f134586a8e1ba4e330569e32f057e33372ae556463212fb4cd3/click-8.5.0-py3-none-any.whl", hash = "sha256:255bc9599cf7748b4b1a446ccc735421bd08a2ae529a8b88597d3de5664ee360", size = 125251, upload-time = "2026-08-26T13:33:12.928Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cloudpickle"
|
||||
version = "3.1.2"
|
||||
@@ -51,15 +11,6 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size = 22228, upload-time = "2025-11-03T09:25:25.534Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "colorama"
|
||||
version = "0.4.6"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "contourpy"
|
||||
version = "1.4.0"
|
||||
@@ -198,7 +149,7 @@ wheels = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "deep-learning-q2-q3-selection"
|
||||
name = "deep-learning-q2"
|
||||
version = "0.1.0"
|
||||
source = { virtual = "." }
|
||||
dependencies = [
|
||||
@@ -206,7 +157,6 @@ dependencies = [
|
||||
{ name = "numpy" },
|
||||
{ name = "scikit-learn" },
|
||||
{ name = "torch" },
|
||||
{ name = "transformers" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
@@ -215,7 +165,6 @@ requires-dist = [
|
||||
{ name = "numpy", specifier = ">=2.5.3" },
|
||||
{ name = "scikit-learn", specifier = ">=1.9.1" },
|
||||
{ name = "torch", specifier = ">=2.14.0", index = "https://download.pytorch.org/whl/cu130" },
|
||||
{ name = "transformers", specifier = ">=5.17.0" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -277,96 +226,6 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/6c/c0/a98505f18594f1bce828bb159cec0fcf9860562f1a2c85913409fc8f3d9e/fsspec-2026.9.0-py3-none-any.whl", hash = "sha256:8dd6e646e99ea382bd85f97a45e6b526a442d79423a7dc673f1e2756d05fcb5f", size = 221738, upload-time = "2026-09-18T17:50:41.341Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "h11"
|
||||
version = "0.16.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hf-xet"
|
||||
version = "1.6.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/1b/ab/522a2ab67f27971a9d48ca666d4fca85ef7d5282d142e31fd087e27b1bbe/hf_xet-1.6.0.tar.gz", hash = "sha256:2e58454a340b3556dfa4972d5451aff4fba8dd42a236600ba1a1d2b1514f0fef", size = 920527, upload-time = "2026-08-03T22:33:13.243Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/41/62/3c062f593bd92ef4e77a0ef39541e3d82a0a1d3947c8a777a02a13a27828/hf_xet-1.6.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:70cbb9c896901600128cb9b6f06e132954fbede1db30f31f7c6c63f84cb7c31d", size = 4074584, upload-time = "2026-08-03T22:32:47.364Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/bb/1e/c0ad437dd267a8e435bef594acf781bbc3874ff0b6435b4962d03ecf7cc4/hf_xet-1.6.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:23379c2f9ec8696d952b16414a2bae72cad86a52df869b050698ba60f538c675", size = 3867381, upload-time = "2026-08-03T22:32:49.049Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d5/ee/7c0d7b6ab336167531b1c30af2af003f054af4c749becbd7209ae33a77c3/hf_xet-1.6.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f2f7278c05c22fd60cb436cda1269649b3e81db65ecdc8496e5e164aa4143e7b", size = 4453982, upload-time = "2026-08-03T22:32:50.568Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/63/06/ad8eab1c9525246650cbaa821caa3cdbaca734ab1a5b8c91bea09cbd8d69/hf_xet-1.6.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:948f15d3a9545cfe5932f6bd8b440f6ae630aee108f14b7bd6c561f7c2dcc522", size = 4249445, upload-time = "2026-08-03T22:32:52.391Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d8/26/1eee8aedb0dafc1ab9717dc9ac602cde33361b232dc06803f1f6ed18b58c/hf_xet-1.6.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5153e6bb103ad49d6ea9f1b2e230db5a2ea32551ad09a706d2f61d7c7c80d80e", size = 4451099, upload-time = "2026-08-03T22:32:54.114Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/67/57/0b88af1f194ab6c9c650547d9cc06bfeaab836ae4dcdb331676bfb8be95a/hf_xet-1.6.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:35cec30d75c6f9eb9c16a77cef68e85a103b72e24d4b473714ec9ff06428bab9", size = 4664712, upload-time = "2026-08-03T22:32:55.547Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/53/a0/26b717a9d1840e8abf48dcec64b5ed8fbe472671d38ad28d30e147132b33/hf_xet-1.6.0-cp314-cp314t-win_amd64.whl", hash = "sha256:5789835d7c6bc9436962853192082374297fb72d7eff7e7762ec25ceb7e25338", size = 4025906, upload-time = "2026-08-03T22:32:57.391Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/49/f6/4a9966633c6fef83af997e2cff68ec1963676d412bdfd096df2a93b8e185/hf_xet-1.6.0-cp314-cp314t-win_arm64.whl", hash = "sha256:75765820ce4700db3750c94acc8fe27c5fae4c9ec000a0dbac3ca082acf97765", size = 3849221, upload-time = "2026-08-03T22:32:59.123Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/a2/50/7afa2c9c787405864fc47a0d1bbc02c62e9101947ed43c1f43899fc7d91d/hf_xet-1.6.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:633dc0cd71d32da58ab8c03ad38e2fac452c15c2b0a2866ebf6ededfe0a5061d", size = 4071729, upload-time = "2026-08-03T22:33:00.721Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/4b/69/55b8dcf636142ae660fec1869fcac14c4da2e8412e14d6eee1523be77e9f/hf_xet-1.6.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:f0906082d9932ae0c0057fa194041c22b4e2cdb46b2592ef3b91f020d62a081a", size = 3876287, upload-time = "2026-08-03T22:33:02.251Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/67/4e/a28359bf1c1ecf11eba22123168c138698f7cb576ac678f5a2e16cd5da08/hf_xet-1.6.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d62671bb130879cef0ee4c9ebe47a14af6c66ec53e6d84dc15936e5ffdfac82f", size = 4464663, upload-time = "2026-08-03T22:33:03.802Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/9a/69/1f0cbc2fb22ae6082d094f743d1b8945a3f36f6089cb95f42b7ee348cda7/hf_xet-1.6.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:0e6e21fa3cdfcdcd76748564bf593870a5e013f47d97cf10aed63aa222cff5b7", size = 4262538, upload-time = "2026-08-03T22:33:05.287Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d1/3a/4f4f2301ade26e404462d3336fa11f7958d914cabbabdd6e03c3c5d5658c/hf_xet-1.6.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:4fc74352a17015bd0ee90038bc9efe38db894cde45f268b6712b04fce8cd0acb", size = 4460520, upload-time = "2026-08-03T22:33:06.81Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/ab/5f/311725e2a905534dfee2dcb5b08414f249147f1f12252bfc2bd24caa075c/hf_xet-1.6.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:8fb4f71cba6129110c3374a33f919001ff130488fc23553698e34cc1c2a1198c", size = 4675937, upload-time = "2026-08-03T22:33:08.616Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/98/b7/8c59a66d15205024662f1d66968136f13893f96df1ddc5087e2e281fc95f/hf_xet-1.6.0-cp38-abi3-win_amd64.whl", hash = "sha256:fb4fadde1b2b70bf4c0c14a6dccbe7194b1c28947fefd5bbe3fed9d940676c3b", size = 4033128, upload-time = "2026-08-03T22:33:10.171Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/73/63/ca511b6f802f28cf3489b280fe77475bcca8de85e81a6299d7916b5b5555/hf_xet-1.6.0-cp38-abi3-win_arm64.whl", hash = "sha256:3dc3e35441ba395006af5aaacc40ef2e603c51ef46c3530b9156185f00935ea3", size = 3859359, upload-time = "2026-08-03T22:33:11.725Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "httpcore"
|
||||
version = "1.0.9"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "certifi" },
|
||||
{ name = "h11" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "httpx"
|
||||
version = "0.28.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "anyio" },
|
||||
{ name = "certifi" },
|
||||
{ name = "httpcore" },
|
||||
{ name = "idna" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "huggingface-hub"
|
||||
version = "1.32.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "click" },
|
||||
{ name = "filelock" },
|
||||
{ name = "fsspec" },
|
||||
{ name = "hf-xet", marker = "platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" },
|
||||
{ name = "httpx" },
|
||||
{ name = "packaging" },
|
||||
{ name = "pyyaml" },
|
||||
{ name = "tqdm" },
|
||||
{ name = "typing-extensions" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/fe/0f/e83fdd856da8fca26bf78d71709ebd120432a0ce535e72b9597cab1eb5bf/huggingface_hub-1.32.0.tar.gz", hash = "sha256:ed70a45498abe86039df7c2f4e5f7575de524be908d3840e8f828d5525eafd6a", size = 1038662, upload-time = "2026-09-17T10:27:48.049Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/1b/cf/d98dd561d6d0d7b7d7a64d1563f8aaaa7c235daee41c1c9bcc3da62420ed/huggingface_hub-1.32.0-py3-none-any.whl", hash = "sha256:b0c7c80561969d9cdacdd55fce67ba9584cca0b9d4ea80957a3a5c1445fac5c8", size = 842906, upload-time = "2026-09-17T10:27:46.102Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "idna"
|
||||
version = "3.20"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/f5/08/8eea9d4b8302028f3abb2c0813953f7aec26d33b7a8960ed760e65ff29fa/idna-3.20.tar.gz", hash = "sha256:a7db850025b95ded1eae8a46181a1a6c56c92c96f0e2b005d9ff8dc0210cab44", size = 216463, upload-time = "2026-09-17T14:11:04.752Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/58/a2/bb081bab032533a855d44de1d56f8e8426114ff1ba5d1f07a438a0a654f8/idna-3.20-py3-none-any.whl", hash = "sha256:ab7ae7122974553370f0bdb919e1a960b2cd1bc1ef0276416d896db81c14582c", size = 69583, upload-time = "2026-09-17T14:11:03.168Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jinja2"
|
||||
version = "3.1.6"
|
||||
@@ -465,18 +324,6 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/07/78/ba7b6dfa1708b82b373ac056928a30c545d5c1a627df9839dcec3c6c1881/kiwisolver-1.5.1-cp315-cp315t-win_arm64.whl", hash = "sha256:b390aec180a7c054919c04898835e1c77bced23ea8383eb2c570213bf25d1a86", size = 73011, upload-time = "2026-08-28T10:28:07.578Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "markdown-it-py"
|
||||
version = "4.2.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "mdurl" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454, upload-time = "2026-05-07T12:08:28.36Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687, upload-time = "2026-05-07T12:08:27.182Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "markupsafe"
|
||||
version = "3.0.3"
|
||||
@@ -554,15 +401,6 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/63/5a/9f440e7bec8b80d0af2a65d1165b2f4e718982dad785531f62255d9ff19b/matplotlib-3.11.2-cp315-cp315t-win_arm64.whl", hash = "sha256:d480038c83691532ed52ff3147db51fa902fc78cb2d8349993a1cdb684435bff", size = 9233946, upload-time = "2026-09-11T19:05:19.063Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "mdurl"
|
||||
version = "0.1.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "mpmath"
|
||||
version = "1.3.0"
|
||||
@@ -852,15 +690,6 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/3d/68/1f3066acedf37673694a7141381d8f811ae97f30d34413d236abe7d489f1/pillow-12.3.0-cp315-cp315t-win_arm64.whl", hash = "sha256:06ff022112bc9cbf83b60f8e028d94ad87b60621706487e65f673de61610ab59", size = 2567491, upload-time = "2026-07-01T11:56:23.506Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pygments"
|
||||
version = "2.21.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/49/2e/ced460408999b33da6b31b0021b0f37d329e202d4169aeb164493778f25b/pygments-2.21.0.tar.gz", hash = "sha256:610ca751c9bc2492b38eb9a38a7fbc93edbbb2d7182edaf34e66ae493dee5c8c", size = 5005329, upload-time = "2026-08-17T08:02:48.824Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/71/46/17f022dd3e953bf20a04a028a21ec746d942f8d2af30fa0f124fa0e6a684/pygments-2.21.0-py3-none-any.whl", hash = "sha256:2363c69b61c4a97c838da3b130dcd6468f4848992b21a82f2a63ec34377137d9", size = 1250147, upload-time = "2026-08-17T08:02:44.912Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pyparsing"
|
||||
version = "3.3.3"
|
||||
@@ -882,141 +711,6 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pyyaml"
|
||||
version = "6.0.3"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex"
|
||||
version = "2026.9.10"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/b9/5c/f403115361de25809e8f785686ec7096e30fef73be9ae35aa51da4e80abb/regex-2026.9.10.tar.gz", hash = "sha256:1e321e2c84f0e52c457f5ea5944f796d6e8e09cb99738ea98dcc1bfe402a128d", size = 417072, upload-time = "2026-09-09T21:00:21.521Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/5c/ed/98e9b07d8bb9c765d07774f0b2c19b301b96d51f44630fea48951051c94e/regex-2026.9.10-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fd6bd89b9fc06018d35851cab0240adb7dd84d51941b19f6574ac90cd54e3ae5", size = 496662, upload-time = "2026-09-09T20:58:05.118Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/ee/a8/9dfe9be48378b47c5a8f04b0f200ea225f9ee0f8e93f010433f661a37878/regex-2026.9.10-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ef4c0a9dfdc90581b90b1b95a8c3d1557f8ff8f5a2a53536d26314de699d1468", size = 297115, upload-time = "2026-09-09T20:58:06.822Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2b/e4/5d1f005a3825ec49842ad349061c1c26e6d42f47ccf105e6e5aa6aeed392/regex-2026.9.10-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:14caa05ce39ec70437af5aac8814c50ee6628f4a90353871c059692f448a164f", size = 291896, upload-time = "2026-09-09T20:58:08.675Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/be/15/44ce83fca50c6058f42b62fa8300a8030eea7e4e5a973a2dd33db0f557fb/regex-2026.9.10-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3264132d576847ab5f88bb83e7debe67854bf165b3ea613bd467312b6099536a", size = 800534, upload-time = "2026-09-09T20:58:10.339Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/af/6e/a62e070a5a033643b287489576f02ae6a9c584c337d62349e340a2b4d001/regex-2026.9.10-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5cef9f3d14796500ea834c41dbe688f1f6b23c7024dc23e8a794d7ebaf5d71d0", size = 872038, upload-time = "2026-09-09T20:58:12.186Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f3/06/8b8e2483949b1329df10c5b615e85d332066deb426b11332b799629b9201/regex-2026.9.10-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d278ad30ec83b6b9202685b0f80b741a51ea3ca7f0595ebda96e7628b6398876", size = 918927, upload-time = "2026-09-09T20:58:13.903Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/bb/64/9b56f69100d3afdbc9c4fa6e302764f9cb717fbc06a9d50558d98ca89cd2/regex-2026.9.10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05fb018cfe7144585fc83882405906ff84994a2d154afc2509ecc7752c51f864", size = 803694, upload-time = "2026-09-09T20:58:15.949Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/07/43/d00d59a7c8fd0e070ae8457a8743597f45ad9682b100f57b9c9c405fbdfd/regex-2026.9.10-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6fd555fc9abef50c530869690b2daca054c8811a7aff632d11f9a7b2590b2742", size = 777770, upload-time = "2026-09-09T20:58:17.628Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/46/6b/a11d0446484efbc9eb67abec133f254c6d66a1568b8f3fb36d39a73a1129/regex-2026.9.10-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8d5c4518235a2ec1611e57af85fa488d529c1106aacff12adadcedf8687012cd", size = 791234, upload-time = "2026-09-09T20:58:19.476Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/12/09/bcd24e78b373fd4f98090caa43eade439223f6703b909be79b9efd9ab0ab/regex-2026.9.10-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:175cf49ce7a994c88b8f15e3cb17cdb66a48ebb2d36de736b8205033db950f89", size = 866259, upload-time = "2026-09-09T20:58:21.683Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/8b/c6/c57ba5e94222a813260af4c17ced92d40cdb44737eb6b50979688310b6a3/regex-2026.9.10-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:b71649169a9fcf30b395ee01047fa7ad6654a4c900ca75b23c04dedcce6a1f8c", size = 768219, upload-time = "2026-09-09T20:58:23.842Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/7b/a2/3820037587d00901ace96c5864335c2cd1b899d5263ea0dd2261359e0bee/regex-2026.9.10-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:8ba1f78bd4fef2d8f84b894ec28ac3481afe6cc07aaa253ad4717ef7b3fe6bcb", size = 858582, upload-time = "2026-09-09T20:58:25.607Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/47/f0/f9a838ca6219ae4821de0175e4548db73ef56de5ec08d032fb427732fa07/regex-2026.9.10-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:217e98ba5fc8908ed8ffd4ebac04753a0c831067cbfb495b9821b94cc61eaa76", size = 791405, upload-time = "2026-09-09T20:58:27.406Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f7/bf/67d71cc4e13ae2e0022d21243ca069e0868701a99eb29cdecd13d356e694/regex-2026.9.10-cp314-cp314-win32.whl", hash = "sha256:b298cdc33c5cc6969ff07f0fba19cc73e0fd8576373c50935feadaca2f6b4405", size = 272702, upload-time = "2026-09-09T20:58:29.116Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/c1/38/40a93e72703a741235115ed1b1e5f6b869917677b7643005034ce1611d70/regex-2026.9.10-cp314-cp314-win_amd64.whl", hash = "sha256:c32818b28bcd153b25b63038348a9fe9b9fbcddb60df43f204c3ab55eeb57f77", size = 281170, upload-time = "2026-09-09T20:58:30.899Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/bf/ac/e95387f00617c16bb41b786d900bacd17eab88afa81b4f263df532b3a731/regex-2026.9.10-cp314-cp314-win_arm64.whl", hash = "sha256:75242f44a3e283106077be4ab717bc535e4701c9d54ad69e195945c22f137a1d", size = 281511, upload-time = "2026-09-09T20:58:32.594Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/39/e5/a4b12262edc488a8a7a95b672db317dd8aa9bf2fab98297f9c91bb11ad4d/regex-2026.9.10-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:2dd9286093c71afc8f55ef035c5b9d2776641fd72c6535f1febc92d0b0be9666", size = 501128, upload-time = "2026-09-09T20:58:34.306Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/55/c8/9ca31c0fa5197ded8614c8ae0e105bcff2d979025ffa3c75580baa334e2f/regex-2026.9.10-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:71879292c9c7ac67b1680345b16daba1be937cb027362cfa04e68f65db2dcfdd", size = 299428, upload-time = "2026-09-09T20:58:36.296Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2b/d1/ee7662561735f90475443c3ca1977e5cecaeaa8f29620dec75580aebc839/regex-2026.9.10-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5ccd139b2061132e7b265cfb4b4721baeb9f8928b81415304abf1ec7e3181c26", size = 294494, upload-time = "2026-09-09T20:58:37.964Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d9/b1/333168e45ed6cfe71f6d17e21e5f54725f44d171f84edd12469a2f739227/regex-2026.9.10-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e7327795089ddb44912dce1434e1d7244be2e9fb48fcc2d6782936af7a3062db", size = 814925, upload-time = "2026-09-09T20:58:40.438Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/bc/a5/df1b38536d0a3b24a030eb4130ce98b403cc925220ff530f5313a7c436eb/regex-2026.9.10-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ff4d7b14ea19e50c8d9d6d83f45bd9b45cbb624c07ac1fa54db0a019049abed7", size = 873323, upload-time = "2026-09-09T20:58:42.349Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/93/ea/aa71fe62dd63a8336bbdec1ff002a6c53b40ccfca95961c18ee4f09bf03c/regex-2026.9.10-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4f0407474ffac8e5e89d93ca41d60891e29f0ab8423eb66ff292d850a86a0843", size = 923080, upload-time = "2026-09-09T20:58:44.488Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/86/38/49f8d6fd34fc1a9c75b5b96364ebdde702a8144e5ed63d2213c58d454c27/regex-2026.9.10-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1ad10a135fa0b4e4a462a61d07c6654d7518cfdb5cb8da08f9ff7d61384af1fe", size = 821284, upload-time = "2026-09-09T20:58:46.56Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/32/45/91a977c96d4be13d1ade8208c260c26841c836d4c91745e1828a30589070/regex-2026.9.10-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9fbd2e5d8002dc49a6129fb321ec51c57a025e752ed525ddce0ba9223c4350a7", size = 789256, upload-time = "2026-09-09T20:58:48.473Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2d/79/4d110bf01bf9651bf9b3f88a6d9fa7e643e0586921a18432b25a478edbfa/regex-2026.9.10-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4a761ea45f2ad74c575ef5850ea514cef97302a552d3c7c9d1a1a870d4661d6c", size = 803722, upload-time = "2026-09-09T20:58:50.286Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/e7/67/b587a0d3bbac2635309ed9c40c197120c39e1ec0afb8813cbed1338fdd75/regex-2026.9.10-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:75aa39d3f4f1650eea84e46b0d8cefe77dd5478c10e3d0aaf0b0f00493475a7a", size = 870085, upload-time = "2026-09-09T20:58:52.224Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/07/fc/0827bca20ddba1d70fa5111a2a64e6b6b38bfdab43fc435022b54172a111/regex-2026.9.10-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f5c629df03adec31ee505dda3c8988f106c9390e4cbd343600036eb8b3d6724f", size = 776970, upload-time = "2026-09-09T20:58:54.478Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/9b/03/ab9d08d30568ca868791bfb99551db60b947f05e2e65dcd1261e87083c21/regex-2026.9.10-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:3a66e40a1a20de96a2fee00ed67e11012b62d85b277688258677fd19997addb7", size = 863611, upload-time = "2026-09-09T20:58:56.432Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/5e/6d/8063ae86b543ae878a7d6e7ba21ebf0af4af06161230e0012e2d652320c6/regex-2026.9.10-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:968c1e33edd9a104d1bf24c8d476c72de7e3839ae7f894b37e9e4f4739fdeeca", size = 804064, upload-time = "2026-09-09T20:58:59.066Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/c5/63/b19305c4b8d3d7867699f7d83c43550273d91a2f31793452d87edb1d259f/regex-2026.9.10-cp314-cp314t-win32.whl", hash = "sha256:fbc4e2f3cb7ce8436154e6483079e7d35eeb321a952fa936e180300630d8b873", size = 274607, upload-time = "2026-09-09T20:59:00.942Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/32/b8/1695072a512a49060294024e23b945eeb87675b02c06e53a92a1b42b0bfd/regex-2026.9.10-cp314-cp314t-win_amd64.whl", hash = "sha256:c37fa93bf18bf4f90b01c0fa9f11ea567ee4b7dd8bf96e63663e5edc37aa38cf", size = 283944, upload-time = "2026-09-09T20:59:02.876Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/a9/9f/65bac17f39991a67e22f8b3c849fdc02a56147c97029b5351494341959b4/regex-2026.9.10-cp314-cp314t-win_arm64.whl", hash = "sha256:ffc2da104e43db716ce30cef9f28049a1faa6aca385dd8771b033268d0730b07", size = 283780, upload-time = "2026-09-09T20:59:05.009Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/67/ca/1d1f83bc2f8fff4f186266ac82d73254e686565530cec9ab5228fb5c63dc/regex-2026.9.10-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:6afcad14310f1311d077553ed374b42a5e538f85a8c884b4e38e52de091c8077", size = 496869, upload-time = "2026-09-09T20:59:07.051Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/33/42/4217510286501a2ebcd372b781b4754ac961e043fa13ef8dce803c44d89c/regex-2026.9.10-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:3fb4ae8cf83ef4e9addd43b2da31a9f45be816a8036fae8af59c8998b72718e2", size = 297121, upload-time = "2026-09-09T20:59:09.007Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/55/a7/595468ed0bbccd94be92c6b5d67736ba128b204d942429a8485c2693914d/regex-2026.9.10-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:f7d4656e17ab736e9415a6442a345bfc97bb8b7dcce47884bb74a37f70f08d0c", size = 292139, upload-time = "2026-09-09T20:59:10.859Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/29/1c/ac92c123e0ab9bea75a904272171b356940bd6139e4a35de44f2254dca8f/regex-2026.9.10-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:35ba3bab0c45079735f55ac61526774de1d84bc4a0333cc554e1a4ab74913924", size = 802375, upload-time = "2026-09-09T20:59:12.823Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/8d/16/d349f6fa9f908162359004e4f067353a0146e8074d24989490778244be44/regex-2026.9.10-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ff6b3267318661dfddf6b3628663e00e5946bd0a5c8fa678537a1401f0388f91", size = 872328, upload-time = "2026-09-09T20:59:15.352Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/df/81/251b5aef23147057e926346fdb7c8c352d0568f65a492e4e9eb6120f6446/regex-2026.9.10-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:030fa9e23624e39b3b94e46b90a5abd1a1678eb2f58fcdd3fd6c27526bf91c7e", size = 919594, upload-time = "2026-09-09T20:59:17.31Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d0/6e/1f25319dc1b9cf4b7ffa303f3d16ca53260fe92aff45e81aa1b3c6c7cba2/regex-2026.9.10-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fbc8314436353e097c050e11b01a6c11433579437ed0579730157676ef59e2f", size = 807394, upload-time = "2026-09-09T20:59:19.328Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/cc/fc/3da6b3dffddf12d5e96cbbe6f5e65ebcd64f92e3388a6690a53e0878232d/regex-2026.9.10-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7e6c0b5ec6ddee4032247585dc491b0fa58627745b66a705728703a3f0331231", size = 786018, upload-time = "2026-09-09T20:59:21.592Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/bb/6f/1cc86dafddc912ef44c5ccd4f729060be8c6735600932664eb6d0e25469b/regex-2026.9.10-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:bf29611e5376fec8f795879bb5c6153a76c3a292573d173c26784042b01eb840", size = 793504, upload-time = "2026-09-09T20:59:23.734Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/b1/cb/11692e29388d006211163627fcefa0c79917ab9f94d46a1b2254fe5efc81/regex-2026.9.10-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:ec8855f08c17895a26fbf5f19ed829722e19b34a96629e49a43c92974924026b", size = 866766, upload-time = "2026-09-09T20:59:25.798Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/5d/78/3631df969830f94d83fcfc5fc71a7b39caad905e18f7b17350a94135d625/regex-2026.9.10-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:94c5ce3bc41d226b4eb89ca3f842b2e28c031487fb1f34eb2153d98235831325", size = 775825, upload-time = "2026-09-09T20:59:28.51Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/4e/8a/762892a8e3e21d119eacaffde848aa247e6cf4e1d90c46011671e86b1b9e/regex-2026.9.10-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:9ce239acb15843ab03976626af810a4424b0409689ec2bbc52088ab5479ab487", size = 858901, upload-time = "2026-09-09T20:59:30.656Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/3f/f0/78048fada5c2f61d795efb26ea24f820a5564c4aa26574920284d45cd656/regex-2026.9.10-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:c22df8dd6373bbe3898e77429ffc85594300e39d752fd0e68a31e59d37899376", size = 796208, upload-time = "2026-09-09T20:59:32.852Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/aa/58/632681f7b9aaa3d83b40e5862ba46364a453c8eb2bc7d43fece3dc31f972/regex-2026.9.10-cp315-cp315-win32.whl", hash = "sha256:1aa309ab7ba89a62d6cf70dbd38d4176440bce3c7001ab86256704cf4c18c6eb", size = 272704, upload-time = "2026-09-09T20:59:34.927Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/5d/64/81cce28754c37037b1fe740b6d7a556d51d97cf935ea4547bfab104f43f7/regex-2026.9.10-cp315-cp315-win_amd64.whl", hash = "sha256:58da726d3e766c0b3f5a3997dfaf0275898a1107b8191cdd6b0437fe45fd817d", size = 281182, upload-time = "2026-09-09T20:59:36.86Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/33/28/5a13a340c9c759e863a0e7f765d323601d03d6538c8a627ed628662e083b/regex-2026.9.10-cp315-cp315-win_arm64.whl", hash = "sha256:75f9297b16fcb588a1f8d8a55dabef3c0c20b0c7bac43c87ceaaaf1a825c12f4", size = 281512, upload-time = "2026-09-09T20:59:38.875Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f7/38/a3caebcd5105be90708071db20bd261b0961b8ea4fe5e8be45c2632519b5/regex-2026.9.10-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:1270cdec69248592bbe38a0b263ed58d907b891bd2b93703e225c317e421bda1", size = 501336, upload-time = "2026-09-09T20:59:40.987Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/ee/b5/ec8887b2658bf0a5df143c7c1fcd562b0abd2fa208c04ebf15c6607c9bb2/regex-2026.9.10-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:681ed38664b64c6617d3c3c332018d1948c77e139c5ea667c1886efa671e426f", size = 299318, upload-time = "2026-09-09T20:59:43.039Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d5/58/84724a9eccf6e8cd46f7e4534576093e2476a5eeb55e2453aa6606e86059/regex-2026.9.10-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:8e127d9a80cbf1c3276bb465c6d047e8705e97b58c2b8f2f0c0a69c336b44b37", size = 294847, upload-time = "2026-09-09T20:59:44.954Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/50/03/70ccc5e53905984abf8eab63eebd3ce740522ef8c8d392622b64d79ef290/regex-2026.9.10-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:990797e765d89a423880052c68b61c31afe701de94a8c060f61c40605ca6c727", size = 814359, upload-time = "2026-09-09T20:59:47.194Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/29/53/40f7a11ec547e4a947883c9d5e8a075f6d4f59af2b8dbcaa8bf5b504aca0/regex-2026.9.10-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e5e4a6e0734a685d13b9685622bb503bdbb2927f8b0df025a5085f0ea067475b", size = 875586, upload-time = "2026-09-09T20:59:49.537Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/0b/9d/83f3e022d99ce601727c4ef5f7b527753901ce4509ed89a1bb6a2263380a/regex-2026.9.10-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:63bb62cf62217dc38c8a6b2b61b165b0e4eb8fa93b0aba12139251c0986a8fa3", size = 920990, upload-time = "2026-09-09T20:59:51.776Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/b2/64/dfdb367d8f4f5c9b8ccb4b59789c2ce996f2c69c3b8192aa986fe7d92ec4/regex-2026.9.10-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cb76a9c4e07a6a47849726af0ed14c41741a182f097f134a8cf29c1bc0f4dde8", size = 818660, upload-time = "2026-09-09T20:59:54.428Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/88/a6/fb7d0b64487913845834f319aa84f8377d55305958a5db7e19c128798366/regex-2026.9.10-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:31e4df2b11d48f61d511019bc1ee9b477055f17c352b68fe72db7a98b14d603c", size = 794976, upload-time = "2026-09-09T20:59:56.799Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/3e/1c/23484edaae387ea0d31f4d414463211e3516c8aa210ce8d0640f5aff3502/regex-2026.9.10-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:cf377960d2ac37d987394a9dbaa75e91338c41a46d41e1d25e90125e7b3ee2dc", size = 804081, upload-time = "2026-09-09T20:59:59.39Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d5/e1/e30d138f13aecec99ea9aecef7e31563de6ec6a2f5ce1d65fc506aee33fe/regex-2026.9.10-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:c8fbd9cb30c68c1686b94029b9ef845d5870d3d65baf66cb126b676849b9d72b", size = 870430, upload-time = "2026-09-09T21:00:03.304Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/53/dc/81f9ce86f7ae4f57901543597c95751fa01c41a672ec1636dd913f8a000a/regex-2026.9.10-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:53e182b6b04d0011909b47d51a2d72d908de07c7b1c7f16b3adda2204d723bc1", size = 783327, upload-time = "2026-09-09T21:00:05.68Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/a9/1b/d7bf8f91534740f6a8ca17e5ac9c5337903baf527c8de240fbac1bbedfd0/regex-2026.9.10-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:0aa7589394230e0f0a422ab6b90841ff12c87e855e7aaf75d192a54a5f124548", size = 860874, upload-time = "2026-09-09T21:00:08.41Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/9a/1d/52cc88364aca7c9013dfe9abe0fea67f8d394efe384d07798300a6e2f27d/regex-2026.9.10-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:1b891f77554bff991804cee24b78b40789f7d5993a24c7907bc7025fd2a70c8d", size = 806705, upload-time = "2026-09-09T21:00:10.768Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/cb/51/37a194df7707f92f33173260ba7b221d4ec376419a53babaec50019a2804/regex-2026.9.10-cp315-cp315t-win32.whl", hash = "sha256:5bef622850cf760154719d4e0d74b0a855962432995168e250069899ae12fe8f", size = 274780, upload-time = "2026-09-09T21:00:14.003Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/77/12/3227a52970d90908b230f15b2c86df903f49ac72c9eedf4f6e8b5bb5e1a7/regex-2026.9.10-cp315-cp315t-win_amd64.whl", hash = "sha256:07b45ba5c94b8fcb30cb6c56a11f715c57533a3017964504322ea52690a27b72", size = 283936, upload-time = "2026-09-09T21:00:16.275Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f3/bc/c567c5a61671f04d30e83f20b496b465432879196574d051007285576205/regex-2026.9.10-cp315-cp315t-win_arm64.whl", hash = "sha256:f70b9f0e39c2dba1d9da6bf7ef7c377cad7277f8440e9a69be05ede529ff024c", size = 283747, upload-time = "2026-09-09T21:00:19.113Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rich"
|
||||
version = "15.0.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "markdown-it-py" },
|
||||
{ name = "pygments" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680, upload-time = "2026-04-12T08:24:00.75Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload-time = "2026-04-12T08:24:02.83Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "safetensors"
|
||||
version = "0.8.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/45/06/f955dbbb1859e3bd23c8ac6141af5106e7ad5fedec4a3a6e3d60f94b7001/safetensors-0.8.0.tar.gz", hash = "sha256:fabaf3e0f18a6618d9b36560682562157f77c2b71fcffc7b432be2baed9d753d", size = 325846, upload-time = "2026-06-09T07:52:25.563Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/39/a0/f718cda65b05407d228f97602cf60dca269c979867aa5beb25410de26cd3/safetensors-0.8.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c554f85858e05226d3c2828e32395e677434685d6d94594a41643361c5e837f0", size = 473568, upload-time = "2026-06-09T07:52:18.829Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f5/b1/fa7c600e7dceae12e9606c7578cbc9ff1e1ed55844883ee5c92205e86226/safetensors-0.8.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:c80201d22cbf405b80647a60ada77bba06c8fba2da2743ba1e89cdcc39a81f25", size = 484562, upload-time = "2026-06-09T07:52:17.518Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/09/7d/65a7de0af421317bb36a067241e4235fff194eed60b961ed6d3f59a3fc60/safetensors-0.8.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a46e5ff292c356d6991e60942ba7f79817682d3a2cef0702136448cb9c4d235", size = 502844, upload-time = "2026-06-09T07:52:07.624Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/91/4f/3175c9d75634e0e0dda0082794193521035edd7c70a6f212bf33ca06ddf4/safetensors-0.8.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4124502b78f03534117c848f87a39b8f31e577b15eff423bf8bfb95f2a8c30d0", size = 511823, upload-time = "2026-06-09T07:52:09.565Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/20/87/846c289e7aa2299eff406335717cf43ce8777194ece8aad75772e0411615/safetensors-0.8.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7bc0a787ba8a35be368ee3574edfa2b1ad389eebd0a72e482ae275490e3f6c98", size = 633461, upload-time = "2026-06-09T07:52:11.128Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/76/22/8d64d9df2c45d5ded401df889d0ad90882804ca172d79ec4f0df8f727fe0/safetensors-0.8.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:040070828e36dc8e122178bbbd5830ff9e97920affb84cbe0f46442497bed358", size = 545148, upload-time = "2026-06-09T07:52:13.603Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/28/50/f203ff3a3ddfe19308efc83c5a3a29ed02bf786732ec35e68bf9162f3365/safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd6f3f93c9a0a7cc2788ee63fb763353d4bd2e89b0751bc78fcf7dda00bea774", size = 516040, upload-time = "2026-06-09T07:52:16.29Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/46/fb/cdaed17ceb2948784fd9c36b6fd3e951b608547cea81a48e8ee6f8cfdfcb/safetensors-0.8.0-cp310-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:fcdd41ec4628fee5799f807c73c353629130fbd942aa23d83c623dd6c9d52d78", size = 513832, upload-time = "2026-06-09T07:52:12.37Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/0d/49/1e15de264dcc3b77943d2d0c56a95809956883b1c2d6d585c792523f180b/safetensors-0.8.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e9f537aa183a38ace122d27303dcd986b26bd2a7591f9181d7f0c396f4677ca", size = 559930, upload-time = "2026-06-09T07:52:14.743Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2a/43/bf38443278eab4b1be1fce2931e2b012ad9cb7df52ada751d0aab8f7659a/safetensors-0.8.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:87eec7ffed2b809f05a398a8becb7d013f19f7837cd15d9748580d6cf30dbaf4", size = 678670, upload-time = "2026-06-09T07:52:20.032Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/72/e3/68cd3fa5b48488e84add63e04cb12f3bc28ae4638c06d4508c6e88823d0e/safetensors-0.8.0-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:4a95ae2b05d7726d751da4ebf626a2ca782b706e101bd894c95bc2450b1cffcc", size = 786679, upload-time = "2026-06-09T07:52:21.322Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/29/4b/1c19c509d56e01f4fbb3d0a2e597450f6cc04d1d56cf52defb0a62dfd715/safetensors-0.8.0-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:3ae091f16662658bdc019a4ff6cb4c085bb7d725eb5978b183ffd265863b6d2d", size = 765683, upload-time = "2026-06-09T07:52:22.594Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/27/43/41c1621732edd934d868a00d1b891584c892a7b62a9aab82ea5a0a5623ee/safetensors-0.8.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:8e080062fcde23be189565e1c3305d16751a218ecf9412c8601e64204eb6f846", size = 722361, upload-time = "2026-06-09T07:52:23.924Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/8e/3f/73ccf82579412b4a71c4ca673f10b5f1f888d7cf5af7fe24f27d30307be4/safetensors-0.8.0-cp310-abi3-win32.whl", hash = "sha256:2ddf52eac562eda224f99acfa7889d02968c1fd59a5b011ae7d8137c37e9c02d", size = 342401, upload-time = "2026-06-09T07:52:28.895Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/1b/6d/3fba214c1e5e0f69991677ec3bc17023f0421776975e1de0c682dca475e2/safetensors-0.8.0-cp310-abi3-win_amd64.whl", hash = "sha256:096ec1a98435df7beb08853bb5aa9081a84f23d0adc67ed1a0a10550f608373f", size = 355540, upload-time = "2026-06-09T07:52:27.832Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/8d/fc/7eedc3510d97878876e32774eebbeb61c43f148a96e915c84229a3e967aa/safetensors-0.8.0-cp310-abi3-win_arm64.whl", hash = "sha256:f7838e5135a406ad3e02efdcb8cf2e5397d368b0154537c4fec682dbc544d452", size = 340500, upload-time = "2026-06-09T07:52:26.745Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "scikit-learn"
|
||||
version = "1.9.1"
|
||||
@@ -1116,15 +810,6 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/95/9c/c510029fc6ef33a6275cd2c5d3cecd6613dfd6aa401d57c54f1c18852ccf/setuptools-84.0.0-py3-none-any.whl", hash = "sha256:51a52592b3b99e102b609654876bd65f19f999935166d1352678931132b0c670", size = 818216, upload-time = "2026-08-08T18:27:56.719Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "shellingham"
|
||||
version = "1.5.4"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "six"
|
||||
version = "1.17.0"
|
||||
@@ -1155,33 +840,6 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/43/3f/f88a53f60a472b46f4023f56d204dd7de33d34c5d2acbfa0d70a674e639e/threadpoolctl-3.7.0-py3-none-any.whl", hash = "sha256:cd8b60b5641b45c67bbf73c64c843235fc2d8a480c87389f52f5dbee893b86be", size = 26362, upload-time = "2026-09-15T15:46:19.168Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tokenizers"
|
||||
version = "0.23.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "huggingface-hub" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/18/1e/bc6587c5ab643b2e17776cace9070a2ae73549c86bffac9934a600bf3c31/tokenizers-0.23.2.tar.gz", hash = "sha256:7f0f085686b9de0d0079e6f874ae053600db64c5d13049e0bbc0119926d25aac", size = 385745, upload-time = "2026-09-03T08:55:42.89Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/4d/ed/8a443528baa6fac8dfe8c3b75b038c63ac92bb539bcabe311e227c718173/tokenizers-0.23.2-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:85a9a357a3764aecc904ee76bdaf8cf1ad8e5a67a1b929a487c4a39b49ed0e90", size = 3148852, upload-time = "2026-09-03T08:55:30.874Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/67/49/22da045a91732384d3a3771816bf188dc5a1f702c32e635afa7c679c0bef/tokenizers-0.23.2-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:986670e43691469dcee610ea0f846f91a8f84e91fc6f7a48d4c064414c0ec2bf", size = 3101593, upload-time = "2026-09-03T08:55:28.587Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2e/4d/8f569ed49372a3ed8e57099bd515055fd48d7c95912c4307cda6973c2168/tokenizers-0.23.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a37039b5dfc4af84eb3ef0a92f4307e28936c8f9adccba2629d36f652e9bf7a2", size = 3516830, upload-time = "2026-09-03T08:55:14.741Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2a/de/e2f14c8919d5bf51874051d00d6c7b7e0e8bde6c6a2dbeddda7f642896ff/tokenizers-0.23.2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7b7e37ba198f24150f523e1242e83c4970de4a525480586be5dcc24d9add32c5", size = 3407975, upload-time = "2026-09-03T08:55:16.842Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/c5/bd/93c69152d02ef06ce47aed8b2bf4952dcf733c935a62791873932b2934d9/tokenizers-0.23.2-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43e4f2071e3cc8d5d86421c874aebc82659bb51a68bcdef5a0da75ee89511ccb", size = 3748165, upload-time = "2026-09-03T08:55:24.769Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2d/b7/56b84b80bc96942bba8eb23751a9e8a1fce4faaf4390425e7083f721c98c/tokenizers-0.23.2-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:325fee2e0418a9dc6c9ecf736a5f5f0db7875183ace9549ae339da76f7a1fbb7", size = 4024165, upload-time = "2026-09-03T08:55:18.806Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/9b/8a/0175e216f005c2fe08238292663aa41e4c802b216e71047a69a0e9fc6fa3/tokenizers-0.23.2-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:950d7c9426fa72406a0ffeacdbc0bb9985f5db20eb8b263f29c79aaf83105703", size = 3591899, upload-time = "2026-09-03T08:55:22.752Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2c/ca/ca6b93c7820df123b2662a9469e8facc826ccc94e98fdd0d615f6431e73a/tokenizers-0.23.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41c2f84d172449b4dadb9cdc508e3e364076613c35b16e76ecfe47a60d1e3305", size = 3386843, upload-time = "2026-09-03T08:55:26.584Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/e9/a4/4f9106d317b14a80aefea9f0e3a8d07ef25f856a7607eb7f5ab894281fcb/tokenizers-0.23.2-cp310-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:12f0835dc2ee694746a76adf7b1567d4346a4a502ebe93fb1f5f80ea49799b78", size = 3577314, upload-time = "2026-09-03T08:55:20.825Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/8d/6a/1552b70fb0d9ab074fd3fc961435d01364e79c9058481822c3af6e8d402c/tokenizers-0.23.2-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:eb2f9c8a24da020ea8c11a01a19c1c2547912d92121ae4a01cfbca46125dee40", size = 9967367, upload-time = "2026-09-03T08:55:33.188Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/06/01/3ccb3a956c7528b2507b8a9714155c4baf86af593039db6ea375dd0c96c3/tokenizers-0.23.2-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:f486f402f6f9abee5bb032553736813af0c710a86b2e0ca592634c55cea1f835", size = 9811886, upload-time = "2026-09-03T08:55:35.642Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/fa/73/7038e612d48bda1599457f712f6bd3854eae1a9dc9c13aa47f835349db48/tokenizers-0.23.2-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:bef235815a067b2648caf6dcc7a71091b0b0fff9ee8057f6451eb9335fae52ef", size = 10146224, upload-time = "2026-09-03T08:55:38.391Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/b5/d8/8e9e4e0b287a338d8f88976729628c9d22e8a54cfaf9777018a7f7cb58a0/tokenizers-0.23.2-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5c56bda1511921587789163e524d196ed8284174ac23abd7685d5ea8da6c4718", size = 10256304, upload-time = "2026-09-03T08:55:40.977Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f3/1f/c79a01f671a49728ebb0b61f7ff9ea45663b66cab40bc0858e9859b25c16/tokenizers-0.23.2-cp310-abi3-win32.whl", hash = "sha256:debf978920d93ba9c219bd67cc4bbfaf912c9039e41e7a28b91ec15e3728c95a", size = 2592809, upload-time = "2026-09-03T08:55:48.02Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/db/f7/0a69ac6b82dbccf3f71add938a161c497952749294b8dd6dfe03a819dc40/tokenizers-0.23.2-cp310-abi3-win_amd64.whl", hash = "sha256:2e96f5699d5249c9c64aa8412e044f727aae3a4098cf830f9901ec1afc361cde", size = 2863236, upload-time = "2026-09-03T08:55:46.193Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d7/b0/dee84cb44175be1b4c35bd2f770727494e78f0bb38e571a623ade94dbebb/tokenizers-0.23.2-cp310-abi3-win_arm64.whl", hash = "sha256:e49c394456dd9985787fec76132438ba3fb8911f857b1bf3d40119f9292d41aa", size = 2729352, upload-time = "2026-09-03T08:55:44.345Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "torch"
|
||||
version = "2.14.0+cu130"
|
||||
@@ -1217,38 +875,6 @@ wheels = [
|
||||
{ url = "https://download-r2.pytorch.org/whl/cu130/torch-2.14.0%2Bcu130-cp315-cp315t-win_amd64.whl", hash = "sha256:c9d9ebc6c552c9e1b1779838b3c236f22e34fac2bcd441c1db8c939dd15f6fff", upload-time = "2026-09-02T18:59:19Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tqdm"
|
||||
version = "4.70.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/0d/ea/b2a5bd54b28a324dae8211928b2d730b6547500342c7e6c6dea08bd0a485/tqdm-4.70.1.tar.gz", hash = "sha256:cefd0eca11b2a37a3aee776544d4f4ae913f02688135b5556b8788dfa474afc4", size = 171846, upload-time = "2026-09-11T07:25:16.601Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/a7/03/921a3d3c75785aca9ebfbfcabfbc3a1be12e2ab5265deb026d55a5a3f83e/tqdm-4.70.1-py3-none-any.whl", hash = "sha256:c293e525e6fef9c20e8728fd4612df02a0aa31bb5fe91ecd93e123b1b7bffa73", size = 80199, upload-time = "2026-09-11T07:25:14.599Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "transformers"
|
||||
version = "5.17.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "huggingface-hub" },
|
||||
{ name = "numpy" },
|
||||
{ name = "packaging" },
|
||||
{ name = "pyyaml" },
|
||||
{ name = "regex" },
|
||||
{ name = "safetensors" },
|
||||
{ name = "tokenizers" },
|
||||
{ name = "tqdm" },
|
||||
{ name = "typer" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/0e/9e/750649904a065007a838981785b2bd8d9ff26154c6c341ac67d0b7f82c68/transformers-5.17.0.tar.gz", hash = "sha256:a153be279169b55b92d8000bf4af294aed684503d091cca7804da2dd8a9de000", size = 9817878, upload-time = "2026-09-09T15:39:56.886Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/e8/d0/c502b60d684adbd98a8dc7d5bb866842772b816ac4354e4608be240041ae/transformers-5.17.0-py3-none-any.whl", hash = "sha256:78ec1ce21579b38dfb83950a0658cd119f87212a2fcfdff478096ce9d6c03801", size = 12295140, upload-time = "2026-09-09T15:39:53.746Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "triton"
|
||||
version = "3.8.0"
|
||||
@@ -1260,21 +886,6 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/fe/d1/aa8a3e935c37efee7945984fdb64d7e0851bf6d920afd97b2d21f9d23360/triton-3.8.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74217bb56ed8692759227758e4c4b3bd2d608a209c1a7a081bf361fb4c2c1bf9", size = 248077577, upload-time = "2026-08-28T15:56:24.94Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "typer"
|
||||
version = "0.27.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "annotated-doc" },
|
||||
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
||||
{ name = "rich" },
|
||||
{ name = "shellingham" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/16/f7/57713ba479fd405eb76de31404b2c744c289e336b2d999511ebf51e496f7/typer-0.27.2.tar.gz", hash = "sha256:269b7eb9d3c202ca84b4bc9618cb04ebb43d3d4d1e567e4c768607232c05f945", size = 204045, upload-time = "2026-08-28T10:26:55.046Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/dc/bf/205d0004930ede8f542fb58f601526fccf4ae7626075ca1e6c4de5d3d652/typer-0.27.2-py3-none-any.whl", hash = "sha256:b3a5fc4342d5fc8fda8fc3010b1cf117e9249aab7fae800c2eff62fd3842d97d", size = 123130, upload-time = "2026-08-28T10:26:53.752Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "typing-extensions"
|
||||
version = "4.16.0"
|
||||
|
||||
Reference in New Issue
Block a user