核心知识点总结(BERT-tiny 微调 + 推理全流程)

一、模型微调核心要点

  1. 环境与依赖

    • 训练报错多与依赖版本兼容相关(如accelerate版本过低导致Accelerator参数错误、NumPy版本不兼容导致张量转换失败),需保证transformers(4.37.2)、accelerate(0.25.0)、NumPy(1.26.4)版本匹配。
    • 显存残留问题可通过「杀进程(taskkill/kill)、清空 CUDA 缓存(torch.cuda.empty_cache())、重启驱动」解决,训练代码中建议加异常捕获 + 显存清理逻辑。
  2. 数据与训练流程

    • GLUE/SST2 数据集默认缓存路径(Windows):C:\Users\<用户名>\.cache\huggingface\datasets,可通过cache_dir参数自定义路径,下载后重复加载会读取缓存。
    • 微调核心步骤:加载数据集→预处理(分词 / 截断 / 补全)→定义评估指标(准确率)→配置训练参数(批次大小、学习率、轮数等)→Trainer封装训练,最终验证集准确率 80.05%(bert-tiny 小模型正常水平)。
二、模型推理核心要点
  1. 基础推理

    • 推理前必须切换模型到eval()模式(禁用训练层),并加torch.no_grad()(禁用梯度计算,节省显存 / 提升速度)。
    • 单条推理流程:文本→分词器编码(转 PyTorch 张量)→模型推理→torch.argmax()解析 logits 得到分类结果(0 = 负面 / 1 = 正面)。
  2. 批量推理

    • 支持一次性输入多文本(如 10 个),分词器直接接收文本列表批量编码,模型一次性输出结果,效率远高于单条推理,批量大小需适配 GPU 显存。
三、文件与路径关键规则
  1. 数据集与模型文件

    • 微调后模型保存:trainer.save_model()仅保存模型权重 / 配置,必须单独用tokenizer.save_pretrained()保存分词器文件vocab.txt/tokenizer_config.json),否则推理时会因缺少分词器文件报错。
    • 完整模型目录需包含:config.json(模型结构)、model.safetensors(权重)、vocab.txt(分词器词汇表),缺一不可。
  2. 路径与缓存

    • 数据集缓存可通过代码dataset["train"].cache_files[0]["filename"]快速定位,模型 / 分词器加载路径需与保存路径完全一致。
四、新手避坑核心原则
  1. 训练 / 推理时的「必加操作」:model.eval()torch.no_grad()、分词器truncation=True/padding="max_length"(保证文本长度统一)。
  2. 保存规范:训练完成后模型 + 分词器需保存在同一目录,才能保证推理时AutoTokenizer/AutoModel正常加载。
  3. 设备适配:代码默认优先用 CUDA 训练 / 推理,可通过torch.cuda.is_available()验证 GPU 是否可用,或在TrainingArguments中用device参数强制指定设备。
相关推荐
YOLO数据集集合1 分钟前
福寿螺目标检测数据集 | 福寿螺检测 入侵物种 农业植保 目标检测9062期
人工智能·yolo·目标检测·计算机视觉·福寿螺·福寿螺检测·入侵物种
深度学习lover3 分钟前
<数据集>电力劳保穿戴识别<目标检测>
人工智能·yolo·目标检测·计算机视觉·数据集·电力劳保穿戴识别
恒知学术4 分钟前
写文献综述前,先找综述论文,再用摘要筛掉不相关文献
人工智能·深度学习·文献综述·文献检索·研究方法·论文辅导·申博辅导
绿智校园14 分钟前
拉孚在AI领域的应用全景:从DeepBasic Folar数据底座到空间认知智能体,如何让物理空间“长“出智能
人工智能
美团技术团队16 分钟前
《Agent 评测白皮书》系列01:Agent 评测全览
人工智能
烟雨江南78522 分钟前
呼叫中心如何用语音识别做客服质检?从人工抽检到全量通话分析的落地方案
人工智能·websocket·音视频·语音识别·ai客服
geneculture23 分钟前
融智学大字符串公式双重形式化信息本体论
人工智能·融智学应用场景·融智时代(杂志)·邹晓辉的融智实践·近现代数学·大字符串公式·双重形式化
烟雨江南aabb24 分钟前
大模型数据标注第一弹-什么是数据标注
人工智能·数据标注
V哥AI增长29 分钟前
AI搜索引用机制解析:影响内容被选中的5个因素
人工智能
Hali_Botebie33 分钟前
PyTorch 内存布局,.view()要合并哪两个维度(比如 B 和 G),这两个维度在内存里就必须“紧挨着”。
人工智能·pytorch·python