从实践中感知大模型的局限与发展趋势

詹智才
随着ChatGPT的问世,大模型被大家一次又一次的提及,而ChatGPT的效果也让大家从惊讶到兴喜到摩拳擦掌,都想开启一个全新的AI时代。近些年,从政府层面,颁布了诸多政策,从市场的广泛需求层面,人人都想将大模型应用到自身所处领域。

本文来自微信公众号“twt企业IT社区”,作者/詹智才,高级算法工程师,目前主要负责所在大型电商企业的大模型优化、类目检测、客服系统中意图识别等项目,有OCR、AI算法平台架构设计、模型量化、linux、docker,推荐系统、大模型等工作经验。

一、引言

随着ChatGPT的问世,大模型被大家一次又一次的提及,而ChatGPT的效果也让大家从惊讶到兴喜到摩拳擦掌,都想开启一个全新的AI时代。近些年,从政府层面,颁布了诸多政策,从市场的广泛需求层面,人人都想将大模型应用到自身所处领域。

从市场角度,我们可以在办公、制造业、金融业、医疗、政务等领域看到大模型的身影。办公领域大模型的智能助手,使用户可以从之前繁琐的文字、演示、数据处理中抽身出来,只要将这些一股脑扔给大模型,就能一键理解内容,并生成想要的文档;在制造业的供应链管理中,通过与大模型进行实时交互,能完成诸如仓储,物流等智能调度、智能跟踪、智能预警;同时在金融业大模型还能根据客户的行为偏好直接生成个性化邮件,完成快速的欺诈检测,提升信贷风控能力等;在医疗场景,更是能提供态度良好,知识储备高的高质量的导诊服务和个性化的健康建议;而在政务领域,诸如本地宝等政务解读产品上面提供大模型的辅助服务,大模型能够更加智能的理解政策条款,并提供社会大众更便捷的政策理解和途径。

二、大模型有哪些不同

大模型相比于传统算法,有哪些不同呢?传统算法诸如DFS等,都可归为一种规则化或者简单概率化的算法,其本身具有很强的解释性,但是这些传统算法都只能应用于一些特定领域,解决一些特定问题,说的最多的往往都是时间复杂度和空间复杂度。而相比机器学习等智能算法,大模型本质上主要有两大特征:泛化通用性、涌现性。

泛化通用性:它通过吸收各种不同领域的数据集,通过预训练、微调、对齐等阶段,能直接应对各个领域的问题。当然当前有各个不同垂域领域的大模型,主要还是因为基础大模型的不完备和无法拿到垂域领域的数据。

涌现性:这是大模型最与众不同的地方,往往我们训练人工智能模型,不管是计算机视觉的、语音的、文本语义的,都不会有涌现这个特性。通过将模型参数上升到一定规模,如一百亿(10B),经过预训练(PreTrain,PT)、有监督微调(Supervised Fine-Tuning,SFT)、对齐等阶段,你就发现他突然能够理解人类在说什么,好像“开窍”一样。

从大模型的部署场景划分,我们可以粗暴的划分为云侧大模型和端侧大模型。所谓云侧大模型,指的是那些部署在云服务厂商或者自己机房的大模型,使用的部署机器大多是NVIDIA的A100、H100等高端显卡上,这些显卡具有更强算力,模型也更加复杂。当然这里值得一提的是,因为众多如Flash Attention等项目或者插件,或者本身显卡算力问题,极力不推荐用诸如V100等低一代显卡来训练模型;而端侧大模型更多的是具有可移动性、便携性,比如可运行在手机端,这些大模型具有极强的隐私性,同时模型参数量也更小,当然这块还没做好,毕竟现在这个阶段,还是“百模大战”的时候,还是在堆算力、堆数据的时候,Scaling Law的威力还没见底。

三、大模型的局限

那么,发展至今,大模型有哪些缺点和局限呢?

一是模型框架的局限性。当前主流的大模型都是基于Transformer架构,其本身存在消耗算力资源巨大、占用内存多的问题,而传统的Transformer架构由于其算法特性,计算量会随着上下文长度增加而成非线性增加,如上下文长度增加32倍,计算量增加成百上千倍。在训练的时候,往往使用Adam等迭代器,这些迭代器需要将前向的值保存一份,梯度保存一份,网络权重保存一份,这些操作更是增加了显卡显存的消耗。而另一个大模型无法做到人人都有的就是数据,最新的Llama3的最小模型7B就消耗了15T Tokens的语料,而这些语料不仅仅是下载就行的,还需要经过清洗,而且是深度清洗,就更别说更大模型所需要的数据量了。所以这也是为什么大模型的产出也只聚焦于头部的一些企业,就连高校都难负担这个代价。加上大模型能够模仿真人的写作风格和习惯,这里又增加了一个安全合规性审查,即大模型不能被那些不法分子用来做坏事,比如你问大模型怎么制造枪支,一个成熟的合规的大模型一定是拒绝回答或者进行规劝,而不是吐出一堆步骤。大模型的训练本身也是不稳定的,如果一个企业打算从0开始训练,而不是基于诸如Llama等架构做二次训练,那么他将会遇到三个问题:

1)“算力墙”,引用天翼云资深专家陈希的话“完成一个千亿参数级别的大模型例如GPT-3需要314ZFLOPs算力的模型训练,而单卡只有312TFLOPS算力时,一张卡训练一个模型要耗时32年。”

2)“存储墙”,单显卡的显存已经无法加载千亿级参数。千亿级参数完全加载到显存大概需要几个TB,如果再考虑梯度、优化器状态等训练过程产生的一些中间结果,占用的显存量就更大了,往往需要上百张卡才可以支持,当然如DeepSpeed等框架一定程度缓解了这个问题,通过梯度切分,迭代器参数切分等形式进行分片处理,但仍无法从根本上解决这个问题。

3)“通信墙”,这也是最考验功底的地方,如何在大集群下面进行数据的通信,如节点内多卡通信、节点间通信等等,所以大模型很多时候既考验算法功底,也考验工程功底。

在模型推理层面,大模型还有一些目前没完全解决的问题,有:

1)大模型幻觉问题,即大模型回答的结果看似正确,实质上是不符合事实或者错误的,比如,你问他一个现实世界的问题,结果回答的是错误的,这叫事实性幻觉;你发出指令让大模型告诉你你输入指令上下文中的内容,他却答错,这叫忠实性幻觉。

2)微调后灾难性遗忘的问题,即一个基座大模型是用通识语料进行训练的,不符合某个垂域领域的业务需要,所以需要用这个垂域数据进行有监督微调,但是经过微调后,该大模型可能会遗忘之前的一些通识能力。

四、大模型的发展方向

当前我国云侧的大模型百花齐放,截止今天(2024年5月14日),通过备案的大模型已经有上百个了,如我们耳熟能详的百度文心一言、阿里通义千问、科大讯飞星火、腾讯混元等。他们都是通过强大的算力、海量的训练数据去训练的,提供诸如文档问答、知识问答、数学推理、代码生成、文本生成等等。那么未来,我们的大模型有哪些变化和成长的地方呢?我们可以通过如下几个方向去看:

1)大模型的小型化

随着智能手机、智能穿戴设备、智能家居等设备的普及,人们对于在移动端和边缘设备上运行大模型的需求越来越迫切。然而,由于这些设备的计算资源和存储空间有限,传统的大模型往往难以直接应用于这些场景。大模型小型化不仅可以提高模型在资源受限设备上的运行效率,还可以降低模型的存储和传输成本,此外,大模型小型化还可以加速模型的部署和迭代,提高模型的灵活性和适用性,为各种场景提供定制化的智能解决方案。

现在主流的大模型的小型化方法有如下几种:

参数剪枝(Pruning):通过删除模型中的冗余参数和连接,以减少模型的参数量和计算复杂度,从而实现模型的小型化,这块工作目前成果较少;知识蒸馏(Knowledge Distillation):通过将一个大型模型的知识转移到一个小型模型中,来实现模型的小型化,这块工作目前成果也不多;网络结构设计(Network Architecture Design):通过设计更加轻量级的网络结构,来实现模型的小型化,如设计一个更紧凑的Transformer单元结构;量化(Quantization):将模型中的参数和激活值转换为低精度的表示形式,以减少模型的存储空间和计算量,从而实现模型的小型化,这也是目前最主流的,如GPTQ,AWQ等等量化方法。GPTQ全称是Generative Pretrained Transformer Quantization,是对某个块内所有参数逐个量化,每个参数量化后,适当调整这个块内其他未量化的参数,以弥补量化造成的精度损失;而AWQ全称是Activation-aware Weight Quantization,激活感知权重量化,不依赖任何反向传播或者重构,直接进行量化,所以速度快。而且对应的如Qwen等大模型在开放原有参数量大模型的基础上,也会提供GPTQ和AWQ版本的大模型,它们都是将大模型的权重层直接从半精度的FP16量化到INT8甚至INT4。

我个人既尝试过基于AutoAWQ做AWQ的量化,然后通过VLLM进行拉起做服务,也用AutoGPTQ做GPTQ的量化。这里值得一提的是,通过对比,GPTQ量化模型的效果要更好主要是它需要你准备业务数据做调整,而AWQ是纯量化的。

目前的一个定律是,要想获得好的结果,那就得更大的模型。在效果上,10B的比7B的好,30B的比14B的好,72B的比30B的好,而如何将72B这种更大模型量化或者小型化到足以放到手机,也就是端侧来执行,目前仍是一个热点,也是一个难点。一旦实现了,那么模型的部署量将无法想象,就像人人用微信,如果每个手机,每个机顶盒,每个智能手表都能塞得下一个小型化的大模型,那么也会达到人人都能享受人工智能的地步。

2)大模型的专业化

上面我们说我国现在有上百个大模型,均是云侧大模型,是基于海量的通用数据进行训练完成的。虽然它们包含了各行各业的数据,但是终究不如一个在某个行业中从事多年的专业人才。而大模型所展现出的强大的数据拟合能力和强大的基座能力可以为我们所用,即某家大企业发布了一个强力底座,当前国内最强的开源中文大模型是阿里的千问Qwen,其在通用测试集上的效果很好,我们可以将其选为我们的底座,然后自身去采集自己领域的数据,进行强力清洗,要记得“数据质量高于数量”,当然数量也不能太少,可以千条数据为单位作为一个主题的数据量,然后通过SFT微调得到自己领域的专有大模型。

与通用大模型相比,这类行业大模型具有专业性强、数据安全性高等特点,而且经过实践,也并不会损坏大模型原有的通识能力。所以未来各个行业挑选一个参数量符合自己企业的大模型,然后基于上述逻辑进行模型微调,对于企业的落地具有显著的成本优势。拿国金证券发布的《互联网行业研究》中的数据来说,“AI代码助手帮助工程师节省55%的时间。据ARK测算,2022年在代码编写的产能上,AI为人类的1.5倍,预计到2030年,AI的代码产能预计达到人类的10倍。图片生成上,人工需要5小时花费150美金完成的工作,AI绘画可以在1分钟内完成,成本约0.08美金”。未来也会有越来越多的行业大模型给每个行业进行降本增效。

3)大模型的普世化

大模型未来一定会存在闭源领先,开源追赶,并且开源的模型不会落后闭源太多的局势。闭源是为了商业利益,而开源是为了生态和公司股价。如OpenAI的ChatGPT是大模型业内最强模型,同时Meta的Llama也是目前业内最强开源模型,大模型的开源一方面能降低开发者的使用门槛,另一方面也能提高该算法的社区追随度、模型的完善度(相当于一堆其他外援在帮忙测试大模型和给该大模型补齐短板)。国内当前的几大大模型开源巨头如阿里的千问、清华系的智谱GLM、百川智能的Baichuan、上海人工智能实验室的书生、VIVO的BlueLM,还有一系列基于Llama底座进行行业内开源的大模型。

如上述所说,闭源是为了商业利益,开源更多的是为了自身生态和模型短板,其实从另一个角度,那也是有利于未来在该行业的大模型中占据规则制定者的角色,且能形成一定的技术先发优势和打压对手技术升级的目的,同时减少自身所需要付出的测试和特定场景的开发成本。

4)大模型的产业化

大模型的产业化也是所有商业公司决策层最关注的,从市场以及技术支持层面,可以分为:

I)上层应用层,不同场景下大模型在该行业不断扩大的占有率

即当一个大模型能够在特定领域内完成先行,比如法律领域、医疗领域,那么下一步一定是小范围的人工代替,慢慢的变成更大范围内的使用。通过开放一个可交互式的、态度良好的、收费低廉的大模型交互产品,会给该企业降本增效,而反过来又会影响到同行业其他竞争者,一定会最终形成一个正向循环。而且因为大模型的出现,很多行业以往AI无法深入的情况可能得到逆转。习总书记也说过:“谁能把握大数据、人工智能等新经济发展机遇,谁就把准了时代脉搏”。

II)中层基座层,牢牢掌握基础大模型的规则制定

如前文说的,未来格局一定是几个巨头开放开源的大模型底座,和一些行业内开源的大模型。但是很多企业因为行业特殊或者数据的时效性,更多的是拿大模型底座加上自家数据进行微调训练。这时候谁能掌握底座大模型的占有率,谁就能主导大模型的技术制定规则。

III)下层硬件层,我国还在不断地追赶中

这一层也是我国目前尚未领先的部分,还没能和Nvidia完全的掰手腕。大模型的成功,犹如当年深度学习的成功,主要还是两个事情:“算力”、“数据”。其中算力一直受制于Nvidia的GPU显卡,有人戏称,AI整个产业值1000亿,其中800亿都给Nvidia挣走了。Nvidia的显卡历经几代的研发,从最开始的Tesla架构到最新的Hopper架构,其护城河已经形成。虽然前赴后继者如Google的TPU、寒武纪的思元等都无法完全撼动他的地位,还有前些年的国内深鉴科技提出的基于xlinx的fpga研发的DPU等。不过这也不是未来,毕竟高通在收购NXP之后,也一直在和Facebook的Yann LeCun等在合作开发实时推理的新型芯片,最近的新星Groq公司的LPU号称推理速度较英伟达GPU提高10倍、成本只有其1/10,运行的大模型生成速度接近每秒500 tokens。当然这块发展国内也在不断地追赶,如政府帮助下的华为昇腾,还有地平线的BPU等,前段时间刷屏的海光信息的DCU,也是基于GPGPU架构,兼容通用的“类CUDA”场景,其目前适配了文心一言等大多数国内外主流大模型,也能实现LLaMa、GPT、Bloom、ChatGLM、悟道、紫东太初等模型的部署。

所以未来鹿死谁手尚未可知。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论