问题与目标
训练完成不是交付完成。一个 Adapter 只有在独立测试集上优于基线、加载过程可复现、目标任务提升且关键通用能力没有明显退化时,才值得部署。
核心概念
至少比较三个候选:
- 基座模型的零样本结果;
- 基座模型加最佳 Prompt 的结果;
- 微调模型使用相同推理协议的结果。
指标分为:任务正确率、结构化格式率、生成质量、安全约束、延迟与显存。验证集用于选择 Checkpoint,测试集只用于最终报告。
可运行实现
下面的离线评估器不依赖模型框架,只要求候选模型输出一行 JSON:
python
import json
CASES = [
({"status": "offline", "temperature": 31}, "high"),
({"status": "warning", "temperature": 72}, "high"),
({"status": "online", "temperature": 42}, "low"),
]
def evaluate(predict) -> dict:
valid_json = correct = 0
details = []
for inputs, expected in CASES:
raw = predict(inputs)
try:
output = json.loads(raw)
valid_json += 1
ok = output.get("risk") == expected
except (json.JSONDecodeError, AttributeError):
ok = False
correct += int(ok)
details.append({"input": inputs, "raw": raw, "correct": ok})
total = len(CASES)
return {"accuracy": correct / total, "format_rate": valid_json / total, "details": details}
def baseline(inputs: dict) -> str:
risk = "high" if inputs["status"] == "offline" or inputs["temperature"] >= 70 else "low"
return json.dumps({"risk": risk})
print(evaluate(baseline))
生成任务还需人工或模型辅助评价,但权限、JSON Schema、关键词禁用和副作用必须由确定性断言完成。
交付清单至少包含模型卡、基座 ID/revision、Adapter 权重、Tokenizer、Chat Template、依赖锁定、数据版本、测试报告、已知失败、生成参数和许可证。
常见问题与排查
微调结果优于零样本就算有效
还要与最佳 Prompt 或 RAG 基线比较。若轻量方案效果相同,训练增加的维护成本可能不值得。
验证集最好 Checkpoint 在测试集变差
检查验证集规模、分布和重复样本。不要反复根据测试集选择模型,否则测试集也被用于调参。
Adapter 单独加载正常,合并后异常
核对基座 revision、dtype 和 Tokenizer;对固定输入比较合并前后 Logits 或确定性生成结果。
只发布权重文件
没有数据和推理协议的权重无法复现。模型卡应写明用途、限制、硬件、许可证和已知风险。
小结
微调交付是一份可复现能力包,而不是一个目录。基线、独立测试、加载验收和限制说明共同决定模型是否真的可用。
License: CC BY-NC 4.0
Updated 2 hours ago
Was this article helpful? Give it a like.
0 comments


