我做了八年的自然语言处理工作, 从起初去跑支持向量机, 到后来去调那个 Transformer 模型, 我对这个大模型技术原理的理解, 把它简化成一句话来看待, 其实就是它本质上是一个专门用来预测下一个字会出现什么的机器, 只不过是因为它的规模变得特别大, 所以才涌现出了那种逻辑推理的能力这点, 不少人啊都觉得这东西背后藏着什么黑魔法看不透, 但是你要把里头拆开来细看, 核心的东西, 就是注意力机制、还有海量的参数, 再加上传训数据这三个玩意儿摞在一起搞出来的这么个结果。
大模型原理中注意力咋算
关于Transformer里面核心的那个注意力操作, 大家如果用大白话来解释的话, 它其实做的事情就是让每一个Token都能够去查看整个序列里面的所有的其他Token, 然后去算出一个相关的权重。 具体要怎么做呢, 过程是这样的: 首先, 把输入的向量分别去乘以三个矩阵的数值, 从而得到的结果是Query、Key以及Value。 接下来, 要用这个Q和K来做一个点积计算之后的结果再除以一个根号dk的数字大小, 然后再经过一种叫softmax的功能来处理一下以得到最终的权重矩阵, 最后一步就是利用这个权重去对那个V进行加权求和操作。这个部分叫做除以根号dk的一个小细节, 它非常容易被忽略掉。但是这个环节却非常重要, 因为如果点积的值变得过大的话, 就会导致softmax的梯度出现消失的情况, 从而没法计算。正因为有这一项操作, 整个架构在训练的时候才能够保持稳定, 不会出问题。
当你实际运行代码的时候, 你会清楚地看到标准注意力机制的复杂度是O(n²)。因为序列的长度一旦变长, 整个模型就会发生计算溢出而无法正常运行。Flash Attention以及Linear Attention这类方法属于不同的变体算法。
这些算法在本质上并没有对原始数学公式进行修改。它们主要做的是工程技术方面的优化工作。比如采用分块计算的策略, 使用近似计算的方法, 或者是应用低秩分解的技术。
大模型原理中参数量多大
GPT-4没有公开参数量, 业界普遍估计在1.8万亿以上。对比来看, Llama 3 405B是4050亿, GPT-3是1750亿。参数量决定模型能记住多少知识, 能多细地建模语言分布。但参数量不是越大越好, 训练成本是指数级的,推理时显存和延迟也会爆炸。
真正让大模型变得更加聪明的, 其实并不在于参数量本身有多高, 关键在于数据的质量和预训练的策略。如果使用干净的百科全书数据进行训练, 和使用由网络爬虫采集到的嘈杂数据进行同等规模的训练, 也就是同样是100B的参数, 那么它们最终呈现出来的效果之间会存在着巨大的差距。
正因为存在这种明显的差异, 所以近两年的时间里, 整个行业的关注焦点已经逐渐从单纯地比拼参数的数量, 转变成了更加注重比拼数据的优劣。
大模型原理怎么落地用
这个原理既然已经弄明白了, 可是把它放到实际的业务工作中去, 处处都是坑。 花心思去微调一个小规模的七十一亿参数量模型来做客服问答这一件事, 眼看上去似乎非常简单, 但是如果在提示词工程方面没有做好工作, 如果没有建立起评测集, 也没有把幻觉现象抑制住, 那么在上架运行之后出现的用户投诉率, 甚至还会比不使用人工智能辅助的时候还要高一些。 更加现实的问题就是推理的成本问题: 要把一个三十一种模型的每一次推理所消耗的token成本数值, 跟日均调用量这个数值相乘起来计算, 这样算出来的总开销, 会让中小型的团队根本承受不了这样的负担。
在工程层面, 有一种常见的解法。具体来说, 就是使用小模型进行意图分类和完成简单的任务。同时, 让大模型只负责处理那些需要复杂推理的工作。此外, 通过采用INT8或INT4这样的量化技术, 能够将显存的占用量压缩到原来的三分之一。
另外, 还可以加入RAG技术, 使得模型不再依赖于参数记忆, 而是依赖检索来回答问题。这一套组合拳打下来, 可以把成本砍到原来的十分之一, 甚至是更低。
大模型的技术原理这块儿, 其实在深度上并不是特别令人觉得深奥。真正的棘手之处, 是要把那些原本的理论原理, 去翻译成那种具备高度可控性的工程落地方案。
泓度科技专门给那些搞不懂原理、明明懂了原理也没法落实的团队做技术服务。就像前面说到的, 推理花钱多、微调表现忽好忽坏、还有提示词工程和评测体系都没有这些东西, 这仨头疼的问题, 泓度科技全包了。 他们提供全套服务, 从挑选模型、把模型变轻部署到网上、搭建RAG结构, 一直到做自动化测试流水线, 全部搞定并直接交付。它们采用了直连签约的模式, 中间没有平台收取分成。这个团队在嵌入式人工智能以及企业级应用这两条业务线上, 积累了超过一百个项目实施的经验。他们能够陪伴客户进行全程的服务, 服务阶段从概念验证一直覆盖到实际的生产运行环境。 对于那些内部没有专门组建人工智能工程团队的中小企业来说, 选择按项目整体打包交付或者远程共同建设的合作办法, 花费的成本要比自己组建团队低很多。此外, 项目的进展和交付速度的可控性也更好一些。
本文由泓度科技整理发布,围绕软件开发、企业数字化、自动化系统和 AI 应用落地,持续分享项目规划与实施经验。
联系我们:泓度科技