![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
杂记
文章平均质量分 60
huijigo
这个作者很懒,什么都没留下…
展开
-
大模型微调之添加special_token改变词表大小并进行微调方法——以llama3为例
llama-3-8B-Instruct是llama3的一个专门在指令微调上进行预训练的一个模型。加载模型和tokenizer128256可以看到词表的大小和embeding以及lm_head的关系接下来我们需要扩充词表。扩充词表有两种,请一定要注意!!!一种是添加special_token,比如pad_token,另一种是添加普通的token。这篇博客聚焦于add_special_tokens函数。原创 2024-05-16 14:42:20 · 1781 阅读 · 2 评论 -
Trainer中的训练细节之自动评估
do_eval来判断是否需要进行eval,evaluation_strategy表示eval的策略,其中evaluation_strategy的优先度更高(即if evaluation_strategy!)后面在配置文件中改成do_eval:Flase,eval_strategy=no,也无效,最好的方法是直接将两者注释掉这样的话也不会进行评估。代码将args = training_args传入了(training_args正是和eval相关的参数)。大胆的猜测和上面的参数相关。原创 2024-05-10 10:58:21 · 363 阅读 · 0 评论 -
NCCL (Nvidia Collective Connection Library)Timeout
当进行深度学习模型的分布式训练时,多个GPU需要进行数据和梯度的交换以保持模型的同步和更新。它利用GPU的并行计算能力和专用的高速通信网络,可以实现高效的数据传输和同步操作。超时错误通常会中断当前的训练过程,并需要通过排查网络、系统和硬件等方面的问题来解决。调整超时参数、优化网络设置、增加系统资源,添加NvLink等方式可能有助于减少NCCL Timeout的发生。NCCL Timeout指的是在进行NCCL通信时,某些操作没有在预定的时间内完成,导致超时错误。原创 2024-05-10 01:09:15 · 537 阅读 · 0 评论 -
SFT只训练指定的部分
第一个for循环,找到labels中和response_template相同token的最后一个的index作为response_token_ids_start_idx,然后将labels中的开头到responese_tempalte的最后一个token都标记为-100,这样的话就不会计算损失了。要训练指定的部分,需要对tokenizer返回的labels进行特殊的标记,这个特殊的标记的实现过程要进行DataCollatorForCompletionOnlyLM这个进行修改。我们来阅读一下这个类的源码。原创 2024-05-09 19:23:59 · 557 阅读 · 0 评论 -
构造自己的jsonl数据集
大语言模型数据重构原创 2024-04-17 00:09:38 · 480 阅读 · 0 评论