使用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))

相关文章
|
7月前
|
机器学习/深度学习 存储 并行计算
ModelScope问题之训练报错设置参数如何解决
ModelScope训练是指在ModelScope平台上对机器学习模型进行训练的活动;本合集将介绍ModelScope训练流程、模型优化技巧和训练过程中的常见问题解决方法。
91 0
|
7月前
|
数据采集 自然语言处理 搜索推荐
ModelScope问题之模型encoder配置报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
261 0
|
JSON 自然语言处理 物联网
基于PaddleNLP的ChatGLM-6B模型lora微调实现Data-To-Text 硬约束下的受控文本生成
基于PaddleNLP的ChatGLM-6B模型lora微调实现Data-To-Text 硬约束下的受控文本生成
421 0
|
1月前
|
缓存 Shell iOS开发
修改 torch和huggingface 缓存路径
简介:本文介绍了如何修改 PyTorch 和 Huggingface Transformers 的缓存路径。通过设置环境变量 `TORCH_HOME` 和 `HF_HOME` 或 `TRANSFORMERS_CACHE`,可以在 Windows、Linux 和 MacOS 上指定自定义缓存目录。具体步骤包括设置环境变量、编辑 shell 配置文件、移动现有缓存文件以及创建符号链接(可选)。
333 2
|
4月前
langchain 入门指南(三)- token的计算
langchain 入门指南(三)- token的计算
156 0
|
5月前
|
人工智能 算法
从RLHF到DPO再到TDPO,大模型对齐算法已经是token-level
【7月更文挑战第1天】在AI领域的语言模型对齐研究中,新提出的TDPO算法实现了Token-level的直接优化。不同于以往在答案级别评估的方法,TDPO利用前向KL散度和Bradley-Terry模型,直接在生成过程的Token层面上调整对齐,提高微调精度和多样性。实验显示,TDPO优于DPO和RLHF,在某些任务上表现出色,但也面临计算资源需求高、处理复杂任务时局限性等问题,需要进一步验证和改进。[论文链接](https://arxiv.org/abs/2404.11999)
151 8
|
6月前
|
机器学习/深度学习 存储 自然语言处理
Transformers从入门到精通:token和它的三种粒度
大家对于token的概念可能司空见惯了,现在的大语言模型的计费方式一般都采用输入和输出的token数量来计费。那到底什么是token,它的作用是什么?【6月更文挑战第6天】
448 6
|
7月前
|
PyTorch 算法框架/工具
pytorch - swa_model模型保存的问题
pytorch - swa_model模型保存的问题
112 0
|
6月前
|
机器学习/深度学习 计算机视觉 知识图谱
【YOLOv8改进】STA(Super Token Attention) 超级令牌注意力机制 (论文笔记+引入代码)
该专栏探讨YOLO目标检测的创新改进和实战应用,介绍了使用视觉Transformer的新方法。为解决Transformer在浅层处理局部特征时的冗余问题,提出了超级令牌(Super Tokens)和超级令牌注意力(STA)机制,旨在高效建模全局上下文。通过稀疏关联学习和自注意力处理,STA降低了计算复杂度,提升了全局依赖的捕获效率。由此构建的层次化视觉Transformer在ImageNet-1K、COCO检测和ADE20K语义分割任务上展现出优秀性能。此外,文章提供了YOLOv8中实现STA的代码示例。更多详细信息和配置可在相关链接中找到。
|
7月前
|
存储 自然语言处理 PyTorch
​5种常用于LLM的令牌遮蔽技术介绍以及Pytorch的实现
本文将介绍大语言模型中使用的不同令牌遮蔽技术,并比较它们的优点,以及使用Pytorch实现以了解它们的底层工作原理。
78 1