ChatGPT 人工智能 GPT4 伦理 生成式 医疗 监管 安全 机器学习 深度学习 神经网络 计算机视觉 强化学习 模型 算法 应用 开发 研究 工具 平台 框架 数据集 训练 部署 安全 合规 培训 投资 LLM,llm AI,ai,Ai 大模型 大语言模型 制图 生图 绘图 文生图 文生视频 生成式AI AGI 世界模型 sora chatGPT,chatgpt,ChatGpt claude openai Llama deepseek midjourney 红熊猫模型 Red panda,panda Stable Diffusion,StableDiffusion,stable DALL- E 3 DALL E DALL Flux,flux 扩散模型 混元大模型 文心一言 通义千问 可灵 Pika PixelDance 豆包 月之暗面 零一万物 阶跃星辰 搜索增强 MiniMax Talkie Agent prompt fastai LangChain TTS 微调 提示词 知识库 智能体
# 热门搜索 #
搜索
大神Karpathy强推,分词领域必读:自动钓鱼让大模型“发疯”的token,来自Transformer作者创业公司
9789点击    2024-05-13 17:28

关于大模型分词(tokenization),大神Karpathy刚刚推荐了一篇必读新论文。


主题是:自动检测大模型中那些会导致“故障”的token。



简单来说,由于大模型tokenizer的创建和模型训练是分开的,可能导致某些token在训练中很少、甚至完全没出现过。这些“训练不足”(under-trained)的token会导致模型产生异常输出。


最经典的例子,就是SolidGoldMagikarp——


这个单词一度让ChatGPT“胡言乱语”。只要prompt里包含这个词,ChatGPT就开始文不对题,生成一些混乱的输出:



现在,来自Cohere的研究人员针对这个问题,提出检测“故障”token的有效方法,他们还发现:在多个主流开源大语言模型上,包括Llama系列、Mistral系列在内,训练不足的token都在不同程度上普遍存在。


p.s. Cohere是Transformer最年轻作者Aidan Gomez创办的公司,此前推出了Command R系列开源大模型。去年6月,该公司估值达到了22亿美元。


自动检测LLM中训练不足的token


研究人员提出的方法主要包括三个步骤。


首先,通过检查tokenizer词汇表并观察其编码/解码行为,来分析tokenizer,找出其中特殊类别的token,比如不完整的UTF-8序列等。


然后,根据模型架构计算识别指标,找出嵌入向量异常的token,列入“训练不足”候选名单。


举个例子,对于tied embedding模型,利用一组已知的未使用的embedding,通过主成分分析去除unembedding矩阵中的常数成分。


接着计算其余token和这些未使用embedding的余弦距离,作为“训练不足”指标。


而对于non-tied embedding的模型,可以直接采用embedding向量的L2范数来检测。



最后,通过特定prompt来进行验证,看看候选token们是否确实超出了训练数据的分布,会引发异常输出。



常见类型包括:


  • 单字节token,尤其是UTF-8标准中未使用的字节,如0xF5-0xFF;
  • 字节对编码(Byte-Pair Encoding,BPE)过程中,出现的一些未充分训练的中间token。
  • 一些特殊字符,如<pad>、<unk>等。



研究人员还发现,词汇表较大的模型,“训练不足”token的数量也会明显增多。


因为大词汇表意味着更稀疏的token分布和更细粒度的token切分,这必然会导致更多低频token和无意义的token残片,增加“训练不足”token的比例。同时,大词汇表也给模型训练带来了更大的优化难度。


值得注意的是,论文提到,基于相同tokenizer的模型表现相似,而不同的tokenizer实现、配置、训练数据,会导致不同模型间“训练不足”token的明显差异。


论文认为,优化词汇表结构和tokenizer算法,是解决token训练不足问题的关键。


他们也提出了一些建议:


  • 确保tokenizer训练数据、模型训练数据和模型推理中输入数据的预处理完全相同。
  • 确保模型训练数据和tokenizer对齐,尤其是在从头训练新的基础模型时。
  • 对于单字节token,要么词汇表包含所有256个字符且不允许重复,要么排除13个UTF-8中不出现的字符(0xC0/0xC1,0xF5-0xFF)。
  • 训练tokenizer后,通过对词汇表进行编码和解码来检查无法访问的token,以确保正确处理手动添加的token。
  • 在Hugging Face上发表tokenizer的“快速”和“慢速”版本时,确保它们输出相同。
  • 训练基础模型时,在小型测试中检查训练不足的token,重新考虑分词方法和数据。在不同语料库上运行测试,也可以发现导致主训练数据中“故障”输入的预处理错误。


本文来自微信公众号”量子位“


AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
RAG

【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。

项目地址:https://github.com/microsoft/graphrag

【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。

项目地址:https://github.com/langgenius/dify


【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。

项目地址:https://github.com/infiniflow/ragflow/tree/main


【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目

项目地址:https://github.com/phidatahq/phidata


【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。

项目地址:https://github.com/TaskingAI/TaskingAI

2
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0