使用transformers增加token

简介: 使用transformers增加token

我是在使用transformers的过程中需要添加一个新的分隔符来区分问题和4个选项,但是我看了一下Tokenizer对象好像每个元素要么是一句话,要么是两句话,就不能有5个文本的这种情况,所以我就自己加了个分隔符。

我的环境:

Linux系统

Python 3.8(使用anaconda管理的虚拟环境)

PyTorch 1.11+cudatoolkit 10.2(通过anaconda下载)

transformers 4.21.1


我一开始想尝试使用add_special_tokens()方法(文档:https://huggingface.co/docs/transformers/v4.21.1/en/internal/tokenization_utils#transformers.SpecialTokensMixin.add_special_tokens),使用方式是:

special_tokens_dict = {"cls_token": "<CLS>"}
num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)


但是需要注意的是这里special_tokens_dict的键必须是一个special token,否则就会报AssertionError: Key 键 is not a special token。所以意思是这一步是将special token替换成指定值。

因为我想自定义一个,所以我直接改用了add_tokens()方法(文档:https://huggingface.co/docs/transformers/v4.21.1/en/internal/tokenization_utils#transformers.SpecialTokensMixin.add_tokens),使用方式是:

tokens=['<DIVIDE>']
tokenizer.add_tokens(tokens)


(后来查了一下发现用add_special_tokens()的话只要把键设置成additional_special_tokens就行了)

以上两种做法运行后都需要resize模型中的embedding层:model.resize_token_embeddings(len(tokenizer))

相关文章
|
1月前
|
数据采集 自然语言处理 搜索推荐
ModelScope问题之模型encoder配置报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
116 0
|
1月前
|
机器学习/深度学习 存储 并行计算
ModelScope问题之训练报错设置参数如何解决
ModelScope训练是指在ModelScope平台上对机器学习模型进行训练的活动;本合集将介绍ModelScope训练流程、模型优化技巧和训练过程中的常见问题解决方法。
46 0
|
8月前
|
JSON 自然语言处理 物联网
基于PaddleNLP的ChatGLM-6B模型lora微调实现Data-To-Text 硬约束下的受控文本生成
基于PaddleNLP的ChatGLM-6B模型lora微调实现Data-To-Text 硬约束下的受控文本生成
276 0
|
7天前
|
机器学习/深度学习 存储 自然语言处理
Transformers从入门到精通:token和它的三种粒度
大家对于token的概念可能司空见惯了,现在的大语言模型的计费方式一般都采用输入和输出的token数量来计费。那到底什么是token,它的作用是什么?【6月更文挑战第6天】
43 6
|
25天前
|
机器学习/深度学习 计算机视觉 知识图谱
【YOLOv8改进】STA(Super Token Attention) 超级令牌注意力机制 (论文笔记+引入代码)
该专栏探讨YOLO目标检测的创新改进和实战应用,介绍了使用视觉Transformer的新方法。为解决Transformer在浅层处理局部特征时的冗余问题,提出了超级令牌(Super Tokens)和超级令牌注意力(STA)机制,旨在高效建模全局上下文。通过稀疏关联学习和自注意力处理,STA降低了计算复杂度,提升了全局依赖的捕获效率。由此构建的层次化视觉Transformer在ImageNet-1K、COCO检测和ADE20K语义分割任务上展现出优秀性能。此外,文章提供了YOLOv8中实现STA的代码示例。更多详细信息和配置可在相关链接中找到。
|
24天前
|
自然语言处理 测试技术 人工智能
Meta等最新研究:多token预测,提升大模型推理效率
【6月更文挑战第2天】Meta等机构的研究人员提出了一种新的大型语言模型训练方法——多token预测,以提高样本效率和推理速度。该方法要求模型同时预测多个接下来的token,而非传统的单一token预测,从而减少局部模式依赖,提高模型的宏观决策能力。实验表明,这种方法在提升模型性能和推理速度方面效果显著,尤其在编程任务中表现出色。然而,多token预测可能需要更多计算资源,并不适用于所有NLP任务,其在自然语言处理领域的应用仍有待深入研究。论文链接:https://arxiv.org/abs/2404.19737
60 7
|
1月前
`save_summary_steps`这个参数是用来控制训练过程中保存摘要的频率的
`save_summary_steps`这个参数是用来控制训练过程中保存摘要的频率的
41 2
|
1月前
save_summary_steps`这个参数是用来控制训练过程中保存摘要的频率的
save_summary_steps`这个参数是用来控制训练过程中保存摘要的频率的
31 2
|
1月前
|
存储 自然语言处理 PyTorch
​5种常用于LLM的令牌遮蔽技术介绍以及Pytorch的实现
本文将介绍大语言模型中使用的不同令牌遮蔽技术,并比较它们的优点,以及使用Pytorch实现以了解它们的底层工作原理。
27 1
|
1月前
|
机器学习/深度学习 数据处理 计算机视觉
YOLOv8改进 | 2023 | 将RT-DETR模型AIFI模块和Conv模块结合替换SPPF(全网独家改进)
YOLOv8改进 | 2023 | 将RT-DETR模型AIFI模块和Conv模块结合替换SPPF(全网独家改进)
124 0