大语言模型中一个调皮的EOS token

这篇具有很好参考价值的文章主要介绍了大语言模型中一个调皮的EOS token。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景
最近需要做一个微调的培训,所以不可避免地需要上手一下相关的微调,而受限于机器资源,暂时没法做全参数微调,所以就尝试了目前比较火的两种高效微调方式,分别是PTuning和LoRA。模型选择得自然是现在中文做的比较好的ChatGLM2-6B。

微调的代码分别用的是

  • PTuning
  • LoRA
    在分别尝试了两个结果后,发现LoRA微调出来的结果有点抽风,喜欢疯狂输出,而它就是咱们今天的主角:ChatGLM2-6B的Tokenizer所使用的EOS(end-of-sequence) token。

大语言模型中一个调皮的EOS token,语言模型,人工智能,自然语言处理

EOS token 介绍
其实从名字就可以看出来,EOS的作用就是标记一个序列的结束,这样模型就可以知道这个序列已经结束了,不需要再继续输出了。 如果以为例,一般模型在推理的时候,觉得可以结束一句话了,就会输出,但是模型的脑子里肯定没有的概念呀,它只能输出数字,所以我们需要把转换成数字,这个数字就是EOS token ID。在ChatGLM2-6B的Tokenizer中,EOS token ID是2,而模型输出的时候,输出的也是2,而不是

分析BUG
既然模型会输出文字版的,那是不是模型的输入中,给它喂进去了不合适的语料呢?

进一步查找发现所使用的LoRA库中是这么添加EOS的:

大语言模型中一个调皮的EOS token,语言模型,人工智能,自然语言处理

尝试一下直接用喂给tokenizer,看看tokenizer会怎么处理。

大语言模型中一个调皮的EOS token,语言模型,人工智能,自然语言处理

看到这原因的就很明显了,因为这个EOS添加的是字符,而不是token_id,所以tokenizer有时候会把当成了分开的token,比如</和s和>,模型就把这3它当成了三个token,而不是一个token,所以在推理的时候,遇到结尾,有时候就会输出</+s+>。而transformers的库在推理看一个句子是否以EOS结尾,看的是token_id而不是token。就会认为生成还没有结束,就继续生成了,直到某一次推理,模型想起来预训练时的记忆,在遇到结尾的时候输出了2的token id(也就是),transformers库才会认为生成结束,停止生成。

大语言模型中一个调皮的EOS token,语言模型,人工智能,自然语言处理

既然知道了问题的原因,那么就需要解决这个问题,解决的方法也很简单,就是把EOS token_id添加到输入中,而不是字符。具体代码就是按照PTuning的方式,把EOS token_id添加到输入中。

大语言模型中一个调皮的EOS token,语言模型,人工智能,自然语言处理

改完之后重新train一遍LoRA,模型不再疯狂输出了。

尾声
要改这个bug,其实需要挺多tokenization的知识的,最近没有时间好好研究,之后有时间再来补充一下。文章来源地址https://www.toymoban.com/news/detail-569480.html

到了这里,关于大语言模型中一个调皮的EOS token的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能(pytorch)搭建模型9-pytorch搭建一个ELMo模型,实现训练过程

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型9-pytorch搭建一个ELMo模型,实现训练过程,本文将介绍如何使用PyTorch搭建ELMo模型,包括ELMo模型的原理、数据样例、模型训练、损失值和准确率的打印以及预测。文章将提供完整的代码实现。 ELMo模型简介 数据

    2024年02月07日
    浏览(67)
  • GPT3:人工智能时代的新型语言模型

    GPT-3ÿ

    2024年02月07日
    浏览(61)
  • ChatGPT:人工智能语言模型的革命性进步

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月16日
    浏览(49)
  • 【AI人工智能】LLM 开源中文大语言模型集合

    整理开源的中文大语言模型,以规模较小、可私有化部署、训练成本较低的模型为主,包括底座模型,垂直领域微调及应用,数据集与教程等。 目录 1. Model 2. Application 3. Dataset 4. Evaluation 5. Tutorial 6. R

    2024年02月09日
    浏览(60)
  • 中外人工智能专家共话大语言模型与 AI 创新

    🍉 CSDN 叶庭云 : https://yetingyun.blog.csdn.net/ 智源社区活动, 中外人工智能专家共话大语言模型与 AI 创新 。 对谈书目: 《大模型时代》,龙志勇、黄雯 著,中译出版社 2023 年 5 月出版。 《为什么伟大不能被计划》,[美]肯尼斯·斯坦利、[美]乔尔·雷曼 著,中译出版社 2023

    2024年02月14日
    浏览(67)
  • 【人工智能】LLM 大型语言模型和 Transformer 架构简介

    目录 大型语言模型 (LLM) 一、LLM的起源 二、LLM的发展阶段 三、LLM的应用领域

    2024年02月14日
    浏览(65)
  • 人工智能LLM大模型:让编程语言更加支持自然语言处理

    作者:禅与计算机程序设计艺术 作为人工智能的核心技术之一,自然语言处理 (Natural Language Processing, NLP) 已经在各个领域得到了广泛应用,如智能客服、智能翻译、文本分类等。而机器学习 (Machine Learning, ML) 模型是实现自然语言处理的主要工具之一,其中深度学习 (Deep Lear

    2024年02月15日
    浏览(68)
  • 从零开始:如何用Python建立你的第一个人工智能模型

    在这篇文章中,我们将介绍如何 从零开始使用Python建立你的第一个人工智能模型 。无论你是刚接触编程的新手,还是有经验的开发者想进一步探索人工智能领域,这篇文章都将为你提供清晰、详细的指南。我们将一步步探索数据预处理、模型建立、训练和测试的过程,以及

    2024年02月09日
    浏览(52)
  • 人工智能讲师大模型培训老师叶梓:基于大型语言模型的自主智能体:架构设计与应用前景

    在人工智能的快速发展中,大型语言模型(LLM)已成为推动技术进步的关键力量。LLM的出现不仅改变了我们与机器的交互方式,也为构建具有高级认知能力的自主智能体(AI Agent)提供了新的可能性。本文旨在探讨基于LLM的AI Agent的架构设计,并对其在未来应用中的潜力进行展

    2024年04月17日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包