【LLM教程】为什么做大语言模型fine tuning时,要将 drop_last_batch设置为True?

目录

[1. drop_last_batch 是什么?](#1. drop_last_batch 是什么?)

[2. drop_last_batch有什么用?](#2. drop_last_batch有什么用?)


这是我们做tokenizer时,经常会遇到的代码,那这里的drop_last_batch 为什么要设置:

复制代码
finetuning_dataset_loaded = datasets.load_dataset("json", data_files=filename, split="train")

tokenized_dataset = finetuning_dataset_loaded.map(
    tokenize_function,
    batched=True,
    batch_size=1,
    drop_last_batch=True
)

print(tokenized_dataset)

1. drop_last_batch 是什么?

drop_last_batch=True 是一个常见的数据加载/预处理选项,用于在处理最后一批样本时丢弃不完整的批次(batch)。

2. drop_last_batch有什么用?

  • 训练神经网络模型:

    大多数神经网络模型在训练时使用批量梯度下降(mini-batch gradient descent)优化算法,这需要将数据分成若干个批次。如果最后一个批次的样本数量不足一个完整批次的大小,可能会导致计算不一致或效率低下。通过设置 drop_last_batch=True,可以确保每个批次的大小都是一致的,有利于模型的稳定性和收敛性。

  • 数据并行处理:

    在数据并行处理的场景下,例如使用多个GPU或多个进程/线程进行数据预处理,需要保证每个处理单元获得的数据批次大小相同,以平衡计算负载。丢弃最后一个不完整的批次可以确保数据的均匀分布。

  • 统一批次大小:

    某些操作(如数据增强、数据编码等)可能需要固定的批次大小,以便有效地利用向量化计算或内存缓存。在这种情况下,丢弃最后一个不完整的批次可以确保批次大小的一致性。

  • 模型并行处理:

    在模型并行处理的场景下,多个模型组件可能需要接收相同大小的批次输入,以确保同步和一致性。丢弃最后一个不完整的批次可以实现这一点。

相关推荐
糯米导航18 分钟前
AI 视觉回归实战:截图对比不是“找不同”,如何让智能差异分析真正服务 UI 质量
人工智能·ui·回归
科技圈观察1 小时前
2026年好伴AI医疗专用大模型应用梳理与梯队参考
人工智能
jkyy20141 小时前
深耕AI健康医疗数据智库,赋能企业构建主动健康管理新生态
大数据·人工智能·健康医疗
cd_949217211 小时前
3D角色自动绑骨怎么做?用V2Fun完成建模、绑定、动作和导出
人工智能·3d
瑞禧生物tech2 小时前
SH-PEG-Biotin巯基-聚乙二醇-生物素 HS-PEG-Bio 深度解析
人工智能
冬奇Lab2 小时前
MCP 系列(06):MCP vs Function Calling——用数据说话的选型指南
人工智能
冬奇Lab2 小时前
每日一个开源项目(第159篇):Vibe-Trading - 用自然语言做量化研究,AI 驱动的个人交易 Agent
人工智能·开源·资讯
AI大模型-小雄2 小时前
2026 年 7 月国内怎么开通 ChatGPT Pro?5x / 20x 区别、适合人群与避坑指南
人工智能·gpt·chatgpt·ai编程·开发工具·codex·chatgpt pro
快乐非自愿2 小时前
AI低代码破局:数字化降本增效的核心逻辑与商业落地
人工智能·低代码
ctrl_v助手3 小时前
Halcon学习笔记2
人工智能·笔记·学习