为什么必须使用Qwen3-Embedding-0.6BUltraData-Code-L2-Classifier输入要求与常见报错速查UltraData-Code-L2-Classifier是 OpenBMB UltraData 系列中的代码筛选分类器它为 Python、Java、C 等 11 种语言的文件提供算法相关性打分用于从海量代码语料中筛选出高质量算法实现L2 语料。而使用它的第一道门槛就是输入 Embedding 必须来自 Qwen3-Embedding-0.6B——这篇文章帮你讲清楚为什么并附一份输入要求清单和常见报错速查表帮你快速定位问题。为什么必须使用 Qwen3-Embedding-0.6B这不是一个可有可无的约定而是模型训练时的硬性设定。UltraData-Code-L2-Classifier 内部包含三个打分模型模型作用输入C文件角色分类器判断文件属于ALGO、WEB、TEST等哪一类1024 维 EmbeddingA算法相关性模型输出algo_rel_score衡量文件是否算法密集1024 维 Embedding 256 维路径哈希Q代码质量模型输出 0~10 分的quality_score1024 维 Embedding三个模型在训练时统一消费 Qwen3-Embedding-0.6B 生成的 1024 维向量这一点在 config.json 中有明确声明embedding_model: { repo_id: Qwen/Qwen3-Embedding-0.6B, dim: 1024, training_max_tokens: 8192 }关键细节是加载器会校验维度但无法识别错误的编码器见 scripts/scorers.py 的注释。也就是说如果你换了另一个 1024 维的 Embedding 模型程序不会报错只会静默地输出错误的分数——这是新手最容易踩的坑。输入要求完整清单Embedding、路径与语言目录在跑分之前请对照以下清单逐项检查Embedding 列每行一个文件的向量float32、形状为[N, 1024]必须与行一一对齐仓库相对路径相关性模型 A 会消费路径特征256 维哈希向量权重 0.4输入需包含relative_path列或meta结构体内的file_path字段见 scripts/path_features.py语言目录要对classifiers/下每种语言一套独立权重C_file_role.bin、A_relevance.bin、Q_quality.bin、Q_scaler.npz、C_file_role.json五个文件缺一不可给 Java 文件打分就必须用 classifiers/java/不能混用Parquet 格式批量打分要求输入 Parquet 文件中存在embedding列。快速上手两条命令跑通 L2 分类器打分先安装运行时依赖pip install numpy torch pyarrow方式一Python APIimport sys sys.path.insert(0, scripts) from scorers import LanguageScorers scorers LanguageScorers.load(classifiers/python) out scorers.score(embeddings, paths) # embeddings: [N, 1024]paths 为仓库相对路径方式二scripts/score_parquet.py 批量打分python scripts/score_parquet.py \ --scorers classifiers/python \ --input data/input \ --output-root data/output \ --batch-size 1024 \ --device cpu \ --apply-policy加上--apply-policy后输出会多一列布尔值selected表示该文件是否通过筛选策略默认阈值来自 config.jsonalgo_rel_score 0.8且quality_score 3.0且角色不为EXCLUDE。常见报错速查表Embedding 维度、路径缺失与配置问题报错信息原因解决方法expected embeddings of shape [N, 1024], got ...Embedding 维度不是 1024或没有压成二维数组用 Qwen3-Embedding-0.6B 重新编码并保证形状为[N, 1024]these scorers use path features but no relative_path column (or meta.file_path) was found in the input输入缺少路径列模型 A 无法构造路径特征在 Parquet 中补充relative_path列或确保meta.file_path存在no parquet files under path--input指向的目录里没有任何 Parquet 文件检查输入路径拼写与目录结构could not read selection_policy from .../config.jsonconfig.json缺失或字段被改坏恢复配置文件或显式传--algo-rel-min、--quality-min、--exclude-categories覆盖默认值A expects ...-d input but the configured featurization produces ...-d检查点声明的结构与实际特征不一致重新完整获取对应语言的classifiers/目录不要手工改动权重文件C_file_role.json maps ... categories but the checkpoint has ... output units类别映射文件与权重文件不匹配同上保持classifiers/语言/下五个文件成套使用不报错但分数明显异常用了另一个 1024 维的 Embedding 模型换回 Qwen3-Embedding-0.6B——维度校验通过 ≠ 编码器正确 排查技巧先用python scripts/score_parquet.py --scorers classifiers/python --describe打印当前打分器的完整配置Embedding 维度、路径哈希维度、类别列表再与自己的输入逐项比对通常一分钟就能定位问题。小结记住三句话Embedding 只认 Qwen3-Embedding-0.6B 的 1024 维输出换模型要么维度报错要么静默出错分路径列是刚需relative_path或meta.file_path必须与 Embedding 行对齐一套语言、一套权重classifiers/语言/目录内的文件不可拆分混用。按这份清单核对一遍UltraData-Code-L2-Classifier 的打分流程基本不会再卡在输入环节。创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?