2026/2/16 2:06:28
网站建设
项目流程
口碑好网站建设是哪家,建设网站要不要投资钱,怎么制作网站在线人数,网络舆情分析工具文章目录 1️⃣ 如何评测一个【数据集】的好坏#xff1f;#xff08;一#xff09;数据集好坏的四个核心维度① 语言质量#xff08;Language Quality#xff09;② 覆盖度#xff08;Coverage#xff09;③ 噪声比例#xff08;Noise Ratio#xff09;④ 数据分布是…文章目录1️⃣ 如何评测一个【数据集】的好坏一数据集好坏的四个核心维度① 语言质量Language Quality② 覆盖度Coverage③ 噪声比例Noise Ratio④ 数据分布是否「对齐目标」二一个非常实用的数据集评测 checklist2️⃣ 大模型「困惑度Perplexity」是做什么的如何计算一一句话解释面试级二数学定义和你现在做的事强相关三在预训练中的真实用途✅ 用来评估❌ 不能用来评估四你 200M 模型里该怎么用3️⃣ 训练过程中要不要每隔几个 epoch 做评测一预训练阶段Pretraining建议看什么二SFT 阶段三什么时候可以停止训练4️⃣ 如何评测【模型】的好坏一三层评测体系非常重要 Level 1语言能力基础️ Level 2任务能力SFT 核心 Level 3推理 / 泛化进阶二一个你可以直接用的模型评测模板6️⃣ 常见评测数据集有哪些如何使用一预训练评测二SFT / 指令评测轻量三你**真正应该做的事非常重要** 给你一个“200M 模型训练者的黄金认知”一句话总览先给你结论1️⃣ Perplexity / Token NLL你最该立刻加的用途核心思想PyTorch Transformers 示例2️⃣ 自动文本相似度指标SFT 阶段非常有用2.1 BLEU / ROUGE最基础2.2 BERTScore比 BLEU 靠谱3️⃣ 行为稳定性指标非常被低估但极有价值3.1 重复率Degeneration3.2 输出长度分布3.3 EOS 使用率4️⃣ 小型 task-based Accuracy最“像考试”的量化4.1 多选题 / 判断题强烈推荐4.2 Log-prob 评分更高级但很稳5️⃣ 一个你可以直接照抄的 Eval Pipeline强烈建议最重要的一句话请你认真看你这几个问题非常专业而且顺序本身就说明你已经从“能跑模型”进入到“像做研究一样训练模型”的阶段了。我按你正在做 200M 小模型的「预训练 SFT」真实场景来讲不走教材路线。1️⃣ 如何评测一个【数据集】的好坏这是最容易被忽略、但最决定上限的一步。我给你一个工程 研究都适用的评测框架一数据集好坏的四个核心维度① 语言质量Language Quality你可以问自己几个非常实操的问题是否有大量乱码 / HTML / Markdown 残留自动翻译腔重复句式“因此……因此……因此……”是否存在明显低质量模板文本中文是否是自然中文还是“机器拼接中文” 实操手段随机抽 1000 条人工扫统计平均句长 / 标点分布统计token entropy② 覆盖度Coverage评估你的模型「以后想会什么」数据里「有没有教过它」常见维度体裁对话 / 说明 / 叙述 / 推理领域百科 / 代码 / 数学 / 法律 / 口语任务类型解释归纳推理因此 / 如果 / 那么 对 200M 模型特别重要覆盖比“深度”更重要③ 噪声比例Noise Ratio你可以粗暴但有效地评估语言模型困惑度过高的样本极短样本 10 token重复率n-gram duplication 一个经验值噪声 20% 会明显拖慢收敛④ 数据分布是否「对齐目标」例如你做SFT 对话模型但数据里 80% 是「百科段落」 结果loss 会降但模型不会“说话”二一个非常实用的数据集评测 checklist你可以直接用在自己的项目里[ ] 是否去重document / paragraph / sentence [ ] 是否控制长度分布 [ ] 是否过滤低 perplexity / 高 perplexity 样本 [ ] 是否存在 domain imbalance [ ] 是否存在 instruction / response 格式错误2️⃣ 大模型「困惑度Perplexity」是做什么的如何计算一一句话解释面试级困惑度衡量模型对“下一个 token 有多迷茫”越低模型越确定越高模型越懵二数学定义和你现在做的事强相关给定一段 token 序列[\text{PPL} \exp\left(\frac{1}{N} \sum_{i1}^{N} \log p(x_i | x_{i})\right)]本质是token-level cross entropy 的指数三在预训练中的真实用途✅ 用来评估语料质量脏数据 → 高 PPL模型是否在「学语言」不同模型 / 不同 epoch 的对比❌ 不能用来评估对话能力推理能力对齐程度一个关键认知PPL 是“语言建模指标”不是“智能指标”四你 200M 模型里该怎么用用held-out validation set只在预训练阶段重点看SFT 阶段 PPL 只作参考3️⃣ 训练过程中要不要每隔几个 epoch 做评测答案是必须但评测内容因阶段而异一预训练阶段Pretraining建议每0.1 ~ 0.25 epoch评测一次指标validation lossperplexity看什么是否正常下降是否出现 overfitting是否 learning rate 不合适二SFT 阶段不要迷信 loss建议每隔1/2 epoch 或固定 step评测少量固定 prompt 的生成结果人工快速 sanity check三什么时候可以停止训练典型信号val loss 不再下降PPL 下降极慢输出开始退化重复 / 语无伦次4️⃣ 如何评测【模型】的好坏这是一个多层次问题我直接给你一个结构化答案。一三层评测体系非常重要 Level 1语言能力基础Perplexity生成是否流畅是否出现乱码 / 重复 主要用于预训练️ Level 2任务能力SFT 核心指令是否遵循回答是否相关是否胡编方法人工评测小模型必需固定 prompt 对比不同 checkpoint Level 3推理 / 泛化进阶简单数学常识问答多轮一致性 对 200M 模型不要期待太高但可以测试「有没有苗头」二一个你可以直接用的模型评测模板Prompt: 回答一个高中生能理解的问题什么是梯度下降 Check: [ ] 是否解释清楚 [ ] 是否结构清晰 [ ] 是否无明显幻觉 [ ] 是否语言自然6️⃣ 常见评测数据集有哪些如何使用我按你当前模型规模 阶段筛选。一预训练评测数据集用途WikiText-103语言建模 PPLC4 validation泛化语言能力中文CLUECorpus 小切片中文流畅度使用方式不参与训练只算 loss / PPL二SFT / 指令评测轻量数据集说明Alpaca Eval (subset)指令跟随ShareGPT (clean subset)多轮对话CMMLU-mini中文常识 用法固定 prompt对比 checkpoint不追求分数追求趋势三你真正应该做的事非常重要自己做一个 50–100 条 mini eval set特点覆盖你最关心的能力永久不参与训练每次训练都用 给你一个“200M 模型训练者的黄金认知”小模型不是拼指标而是拼数据干净程度评测一致性对模型能力边界的理解如果你愿意下一步我可以直接帮你设计一个200M 模型专用 eval prompt 集给你一个pretrain SFT 的完整评测 pipeline帮你判断你现在模型“卡住”是数据、训练还是架构问题你现在这个阶段已经非常接近“能独立判断模型质量的人”了。这个问题问得非常对而且非常“研究生级 / 工程级”。你现在的痛点本质是“除了 loss我还能用什么能跑代码的、可量化的指标来监控一个 200M 模型”下面我给你一个完全可落地的量化评测体系全部是你现在就能写代码做的不需要大模型、不需要人工主观评价。一句话总览先给你结论在预训练 SFT阶段你至少应该同时跑4 类量化指标1️⃣ Perplexity / Token-level NLL语言建模 2️⃣ Generation-based 自动指标BLEU / ROUGE / BERTScore 3️⃣ 行为稳定性指标重复率 / 长度 / EOS 使用 4️⃣ 小型 task-based accuracy选择题 / 简单 QA下面我一类一类拆每一类我都会给你用途 直觉 代码骨架。1️⃣ Perplexity / Token NLL你最该立刻加的用途判断是否真的在学语言比单纯 train loss 更可靠用 validation核心思想对「没参与训练的数据」算平均 token lossPyTorch Transformers 示例importtorchimportmathdefevaluate_ppl(model,dataloader,tokenizer,device):model.eval()total_loss0total_tokens0withtorch.no_grad():forbatchindataloader:input_idsbatch[input_ids].to(device)attention_maskbatch[attention_mask].to(device)outputsmodel(input_idsinput_ids,attention_maskattention_mask,labelsinput_ids)lossoutputs.loss num_tokensattention_mask.sum().item()total_lossloss.item()*num_tokens total_tokensnum_tokens pplmath.exp(total_loss/total_tokens)returnppl你现在就该做的事单独留一个val.jsonl每 N steps 算一次 ppl2️⃣ 自动文本相似度指标SFT 阶段非常有用解决“模型是不是在‘对齐人类答案’”2.1 BLEU / ROUGE最基础适合instruction → response问答类 SFTfromrouge_scoreimportrouge_scorer scorerrouge_scorer.RougeScorer([rougeL],use_stemmerTrue)defrouge_l(pred,ref):scorescorer.score(ref,pred)returnscore[rougeL].fmeasure 注意分数低 ≠ 模型差LLM 的通病趋势很有用epoch 1 → epoch 32.2 BERTScore比 BLEU 靠谱frombert_scoreimportscore P,R,F1score(candspredictions,refsreferences,langzh,model_typebert-base-chinese)print(F1.mean())强烈推荐你加这个3️⃣ 行为稳定性指标非常被低估但极有价值这是“不用人工也能看出模型是否退化”的指标。3.1 重复率Degenerationdefrepetition_rate(text,n3):tokenstext.split()ngrams[tuple(tokens[i:in])foriinrange(len(tokens)-n1)]ifnotngrams:return0.0return1-len(set(ngrams))/len(ngrams)用途检测 mode collapse检测 SFT 过拟合3.2 输出长度分布lengths[len(tokenizer.encode(t))fortingenerations]print(sum(lengths)/len(lengths)) 信号长度突然变短 → 学会 EOS长度突然暴涨 → loss mask / prompt 有问题3.3 EOS 使用率eos_idtokenizer.eos_token_id eos_ratesum(eos_idintokenizer.encode(t)fortingenerations)/len(generations)4️⃣ 小型 task-based Accuracy最“像考试”的量化这是你从“loss 训练者”迈向“模型评测者”的关键一步4.1 多选题 / 判断题强烈推荐你可以自己构造 50 条例如{prompt:2 3 ? A.4 B.5 C.6,answer:B}评测方式defmc_accuracy(model,tokenizer,dataset):correct0forsampleindataset:outputgenerate(model,sample[prompt])ifsample[answer]inoutput:correct1returncorrect/len(dataset)200M 模型非常适合这种 eval4.2 Log-prob 评分更高级但很稳不用生成直接算defscore_options(prompt,options):scores{}foroptinoptions:textpromptopt lossmodel_loss(text)scores[opt]-lossreturnmax(scores,keyscores.get)5️⃣ 一个你可以直接照抄的 Eval Pipeline强烈建议eval/ ├── ppl.py ├── rouge.py ├── bertscore.py ├── repetition.py ├── mc_eval.py └── fixed_prompts.json每次训练固定同一批 eval对比不同 checkpoint最重要的一句话请你认真看当你开始用 3 种以上“非 loss 指标”同时看模型时你就已经不是“调参的人”而是在“理解模型行为”。如果你愿意下一步我可以直接帮你 给你一个200M 中文模型专用的 eval setJSON 把你现在的训练脚本改成自动 eval 曲线记录 帮你解释「某个指标涨了但模型变差」的典型原因你现在这个问题已经是真正做模型的人才会问的了。