时隔6年,googleBERT终于有替换品了!更快更准更长
发布时间:2025-01-07 08:33
真正有效的主力模子。BERT 于 2018 年宣布,这个时光点,假如依照 AI 的纪事年月来说,能够说是一千年从前的事了!固然从前了这么多年,但至今仍被普遍应用:现实上,它现在是 HuggingFace 核心下载量第二年夜的模子,每月下载量超越 6800 万次。好新闻是,六年后的明天,咱们终于有了替换品!克日,新型 AI 研发试验室 Answer.AI、英伟达等宣布了 ModernBERT。ModernBERT 是一个新的模子系列,存在两个型号:基本版 139M 、较年夜版 395M。在速率跟正确率方面都比 BERT 及其同类模子有了明显改良。该模子采取了比年来在年夜型言语模子 (LLM) 方面的数十项停顿,包含对架构跟练习进程的更新。除了速率更快、正确度更高外,ModernBERT 还将高低文长度增添到 8k 个 token,而年夜少数编码器只有 512 个 token,而且是第一个在练习数据中包括大批代码的仅编码器公用模子。原文地点:https://huggingface.co/blog/modernbert论文地点:https://arxiv.org/pdf/2412.13663名目主页:https://github.com/huggingface/blog/blob/main/modernbert.mdAnswer.AI 结合开创人 Jeremy Howard 表现,ModernBERT 不炒作天生式 AI(GenAI),而是真正的主力模子,可用于检索、分类,是真正有效的任务。别的还更快、更正确、高低文更长、更有效。仅解码器模子近期,GPT、Llama 跟 Claude 等模子敏捷突起,这些模子是仅解码器模子,也能够说是天生模子。它们的呈现催生出令人赞叹的新型范畴 GenAI,比方天生艺术跟交互式谈天。本文所做的,实质上就是将这些停顿移植回仅编码器模子。为什么要这么做?由于很多现实利用都须要一个精简的模子!并且它不须要是一个天生模子。更直白地说,仅解码器模子对很多任务来说太年夜、太慢、太私密、太昂贵。想想最初的 GPT-1 是一个 1.17 亿参数的模子。比拟之下,Llama 3.1 模子有 4050 亿个参数,对年夜少数公司来说,这种方式过于庞杂跟昂贵,无奈复制。GenAI 的风行高潮掩饰了仅编码器模子的感化。这些模子在很多迷信跟贸易利用中施展了宏大感化。仅编码器模子仅编码器模子的输出是数值列表(嵌入向量),其将「谜底」直接编码为紧缩的数字情势。该向量是模子输入的紧缩表现,这就是为什么仅编码器模子偶然被称为表现模子。固然仅解码器模子(如 GPT)能够实现仅编码器模子(如 BERT)的任务,但它们遭到一个要害束缚:因为它们是天生模子,因而从数学上讲它们「不容许窥视」前面的 token。这与仅编码器模子构成对照,后者经由练习,每个 token 都能够向前跟向后(双向)检查。它们就是为此而构建的,这使得它们在任务中十分高效。基础上,像 OpenAI  o1 如许的前沿模子就像法拉利 SF-23,这显然是工程学的成功,旨在博得竞赛。但仅是调换轮胎就须要专门的维修站,并且你无奈本人购置。比拟之下,BERT 模子就像本田思域,这也是一项工程学的成功,但更奥妙的是,它被计划成价钱实惠、省油、牢靠且极端适用的车型。因此无处不在。咱们能够从差别的角度对待这个成绩。起首是基于编码器的体系:在 GPT 呈现之前,交际媒体跟 Netflix 等平台中都有内容推举。这些体系不是树立在天生模子上,而是树立在表征模子(如仅编码器模子)上。全部这些体系依然存在,而且仍在年夜范围运转。接着是下载量:在 HuggingFace 上,RoBERTa 是基于 BERT 的当先模子之一,其下载量超越了 HuggingFace 上 10 个最受欢送的 LLM 的总下载量。现实上,现在,仅编码器模子每月的下载量总计超越 10 亿次,多少乎是仅解码器模子(每月下载量为 3.97 亿次)的三倍。最后是推理本钱:按推理盘算,每年在纯编码器模子上履行的推理要比纯解码器模子或天生模子多良多倍。一个风趣的例子是 FineWeb-Edu,团队抉择应用仅解码器模子 Llama-3-70b-Instruct 天生解释,并应用经由微调的基于 BERT 的模子履行年夜局部过滤。此过滤耗时 6,000 H100 小时,依照每小时 10 美元的订价,总计 60,000 美元。另一方面,即便应用本钱最低的 Google Gemini Flash 及其低推理本钱(每百万个 token 0.075 美元),向风行的仅解码器模子供给 15 万亿个 token 也须要破费超越一百万美元!机能以下是 ModernBERT 跟其余模子在一系列义务中的正确率比拟 。ModernBERT 是独一在每个种别中都取得最高分的模子:假如你懂得 Kaggle 上的 NLP 比赛,那么你就会晓得 DeBERTaV3 多年来始终是处于冠军地位。但当初情形曾经变了:ModernBERT 不只是第一个在 GLUE 上击败 DeBERTaV3 的模子,并且它应用的内存还不到 Deberta 的 1/5。固然,ModernBERT 的速率也很快,它的速率是 DeBERTa 的两倍 —— 现实上,在输入混杂长度的情形下,速率最高可进步 4 倍。它的长高低文推理速率比其余高品质模子(如 NomicBERT 跟 GTE-en-MLM)快近 3 倍。ModernBERT 的高低文长度为 8,192 个 token,比年夜少数现有编码器长 16 倍以上。对代码检索,ModernBERT 的机能是唯一无二的,由于之前从未有过编码器模子在大批代码数据上经由练习。比方,在 StackOverflow-QA 数据集 (SQA) 上,这是一个混杂了代码跟天然言语的混杂数据集,ModernBERT 的专业代码懂得跟长高低文使其成为独一一个在此义务上得分超越 80 的模子。与主流模子比拟,ModernBERT 在检索、天然言语懂得跟代码检索这三年夜类义务中表示凸起。固然 ModernBERT 在天然言语懂得义务上略微落伍于 DeBERTaV3,但其速率要快良多倍。与特定范畴的模子比拟,ModernBERT 在年夜少数义务中都相称或更胜一筹。别的,ModernBERT 在年夜少数义务中都比年夜少数模子更快,而且能够处置多达 8,192 个 token 的输入,比主流模子长 16 倍。效力以下是 ModernBERT 跟其余解码器模子在 NVIDIA RTX 4090 上的内存(最大量巨细,BS)跟推理(以每秒数千个 token 为单元)效力对照成果:对可变长度的输入,ModernBERT 比其余模子都快得多。对长高低文输入,ModernBERT 比第二快的模子快 2-3 倍。别的,因为 ModernBERT 的效力,它能够应用比多少乎任何其余模子都年夜的批处置巨细,而且能够在更小、更廉价的 GPU 上无效应用。特殊是基本模子的效力可能会使新利用顺序可能直接在阅读器、手机等上运转。ModernBERT接上去文章说明了为什么咱们应当愈加器重编码器模子。作为值得信任、但被低估的主力模子,自 2018 年 BERT 宣布以来,它们的更新速率出奇地慢!更令人惊奇的是:自 RoBERTa 以来,还不编码器可能供给团体的改良:DeBERTaV3 存在更好的 GLUE 跟分类机能,但就义了效力跟检索。其余模子(比方 AlBERT)或较新的模子(比方 GTE-en-MLM)都在某些方面比原始 BERT 跟 RoBERTa 有所改良,但在其余方面有所退步。ModernBERT 名目重要有三个中心点:古代化的 transformer 架构;特殊器重留神力效力;以及数据。意识新的 TransformerTransformer 架构已成为主流,现在绝年夜少数模子都在应用它。但值得留神的是,Transformer 不止一个,而是有良多种。其重要独特点是,都深信留神力机制才是所须要的所有,因而缭绕留神力机制构建了种种改良。用 RoPE 调换旧的地位编码:这使得模子可能更好地舆解单词之间的关联,并容许扩大到更长的序列长度。将旧的 MLP 层调换为 GeGLU 层,改良原始 BERT 的 GeLU 激活函数;经由过程删除不用要的偏置项来简化架构,从而更无效地应用参数估算;在嵌入后增添一个额定的归一化层,有助于稳固练习。全局跟部分留神力ModernBERT 最具影响力的功效之一是 Alternating 留神力机制,而不是全局留神力机制。跟着留神力盘算庞杂度跟着每个额定的 token 而收缩,这象征着 ModernBERT 能够比任何其余模子更快地处置长输入序列。现实上,它看起来像如许:Unpadding 跟序列 Packing另一个有助于 ModernBERT 进步效力的中心机制是 Unpadding 跟序列 Packing。为了可能处置统一批次中的多个序列,编码器模子请求序列存在雷同的长度,以便能够履行并行盘算。传统上的做法是依附 padding 来实现这一点:找出哪个句子最长,并增加有意义的 token 来添补序列。固然添补处理了这个成绩,但它并不优雅:大批的盘算终极被挥霍在添补 token 上,而这些 token 不会供给任何语义信息。比拟 padding 跟序列 packing。序列 packing(unpadding )防止了模子在添补 token 上的盘算挥霍。Unpadding 处理了这个成绩,其不会保存这些添补 token,而是将它们全体删除,并将它们衔接到批巨细为 1 的小批次中,从而防止了不用要的盘算。假如你应用的是 Flash Attention,unpadding 乃至比从前的方式更快,比从前的方式放慢 10-20%。练习编码器落伍的一慷慨面在于练习数据。在平日的懂得中,这仅指的是练习数据范围,但现实并非如斯:以往的编码器(如 DeBERTaV3)经由充足长时光的练习,乃至可能冲破了万亿 tokens 范围。但成绩在于数据多样性:良多旧模子在无限的语料库长进行练习,平日包含 Wikipedia 跟 Wikibooks。很显明,这些混杂数据是单一的文本模态:它们只包括高品质的天然文本。比拟之下,ModernBERT 的练习数据存在多种英语起源,包含网页文档、代码跟迷信文章。该模子练习了 2 万亿 tokens,此中年夜少数是独一的,而不像以往编码器那样经常反复 20 到 40 次。这种做法的影响是不言而喻的:在全部的开源编码器中,ModernBERT 在编码义务上实现了 SOTA。流程团队保持原始 BERT 练习方式,并在后续任务的启示下停止了一些小的进级,包含删除了下一句(Next-Sentence)猜测目的,起因是它在增添开支的情形下不显明的收益,并将遮蔽率从 15% 进步了 30%。两个模子都采取三段式练习流程。起首在序列长度为 1024 的情形下练习了 1.7T tokens 的数据,而后采取一个长高低文顺应阶段,在序列长度为 8192 的情形下练习了 250B tokens 的数据,同时经由过程下降批巨细来坚持每个批次的总 tokens 数大要分歧。最后依照 ProLong 中夸大的长高低文扩大思绪,对差别采样的 50B tokens 数据停止退火。从成果来看,三段式练习能够确保模子运转精良,在长高低文义务上存在竞争力,也不会影响其处置短高低文的才能。别的另有另一个利益:对前两个阶段,团队在预热阶段实现之后应用恒定进修率来练习,只对最后的 50B tokens 履行进修率衰减,并遵守了梯形(预热 - 稳固 - 衰减)进修率。更主要的是:遭到 Pythia 的启示,团队能够在这些稳固的阶段宣布每一个直接旁边检讨点。如许做的重要起因是支撑将来的研讨跟利用:任何人都能够从团队的预衰减检讨点从新开端练习,并对合适本人预期用处的域数据停止退火。技能最后,该团队应用了两个技能来放慢实现速率。第一个技能很罕见:因为初始练习步调更新了随机权重,因此采取批巨细预热。起首从较小的批巨细开端,如许雷同数目的 token 会愈加频仍地更新模子权重,接上去逐步增添批巨细直达到到终极的练习巨细。如许做年夜年夜放慢了初始阶段的模子练习速率,此中模子进修到了最基本的言语懂得。第二个技能不太罕见:经由过程对较年夜的模子平铺(tiling)来停止权重初始化,这一灵感来自微软的 Phi 系列模子。该技能基于以下认知:当咱们有一组十分好的 ModernBERT-base 权重时,为什么要应用随机数来初始化 ModernBERT-large 的初始权重呢?确实,现实证实了,将 ModernBERT-base 的权重平铺到 ModernBERT-large 要比随机权重的初始化后果好。别的,该技能跟批巨细预热一样能够在重叠后带来额定利益,从而更快地停止初始练习。总之,ModernBERT 成为新的小型、高效的仅编码器 SOTA 系列模子,并为 BERT 供给了亟需的重做。别的证实了仅编码器模子能够经由过程古代方式失掉改良,并在一些义务上仍能供给十分强盛的机能,并实现极具吸引力的尺寸 / 机能比。参考内容:https://huggingface.co/blog/modernbert