大语言模型的商业版图与行业热潮:近期企业投资与AI应用落地、新型小型公开大语言模型,以及LoRA研究进展
在《Ahead of AI》专栏中,我力求在前沿研究讨论、AI相关概念讲解,以及AI领域通用新闻与发展动态剖析之间取得平衡。鉴于前几期内容偏重于研究方向,本期我将聚焦行业最新趋势展开探讨。
具体而言,我将梳理各大科技公司的当前布局。眼下似乎所有科技巨头都在训练或开发大语言模型,其核心业务正明显向AI方向倾斜——这也是本期标题“大语言模型:商业布局与行业热潮”的由来。
需要说明的是,本文第一部分将围绕这些企业展开讨论。所有内容均无商业赞助,完全基于我个人的观察与思考。
对于尤其关注开源及可免费使用大语言模型的读者也不必担心,本期还将重点介绍几款凭借小巧体量与出色基准测试表现脱颖而出的创新大语言模型。
鉴于LoRA是目前研究中高效微调的主流技术,我还将深入分析上月提出的两种颇具吸引力的LoRA新变体。最后,我将介绍几项近期发布的重要开源项目。
多模态ChatGPT
OpenAI已开始向ChatGPT Pro用户逐步推送GPT-4V,相关公告(https://openai.com/blog/chatgpt-can-now-see-hear-and-speak)称ChatGPT如今已具备“看、听、说”的能力。这正是我在前几期专栏中提到的多模态版本ChatGPT。
随本次发布一同推出的还有微软研究人员撰写的一份166页技术报告,报告通过实操案例展示并分析了各类应用场景:https://arxiv.org/abs/2309.17421 。
简而言之,GPT-4V支持用户向ChatGPT界面上传图片和音频,并就相关内容提问。我尝试了我最常用的一个场景——提取公式对应的LaTeX代码(这在写论文时非常实用),效果看起来相当不错。

使用GPT-4V实现公式转LaTeX代码
顺便一提,如果大家对公式转LaTeX功能感兴趣,我推荐试试https://mathpix.com/ 。多年来这家平台一直在做同类服务,且识别精度更高。我是他们的长期订阅用户,几乎每天都会用它从书籍和论文中提取公式,整理成Markdown格式的个人笔记。(本人与该平台无关联,也未收取任何推广费用。)
回到GPT-4V本身:虽然我目前没有让AI描述通用图片的需求,但我能预见这项功能在特定自动化工作流、头脑风暴等场景中的实用价值。
但需要注意的是,尽管GPT-4V的表现令人惊艳,但谷歌的Bard早就支持图片输入,也包含上述的LaTeX公式提取功能。GPT-4V是ChatGPT界面的一次出色升级,但在这一点上,谷歌受众相对较少的Bard聊天机器人反而走在了OpenAI前面(不过有传言称,谷歌是通过两个独立模型/API调用实现该功能,而OpenAI可能采用的是统一的大语言模型)。
如果您想为Falcon、Llama 2等开源大语言模型加装多模态能力,推荐了解Llama-Adapter v2方法(别看名字里有Llama,它并非只适用于Llama系列模型)。我在几个月前的文章中曾介绍过该方法:https://magazine.sebastianraschka.com/i/11956166/finetuning-multimodal-llms-with-llama-adapter-v 。
数据重夺“新石油”地位
我平时尽量不关注广告,但最近在领英上刷到一则广告,内容强调如今各行各业都在全力开发定制化、下一代AI模型。但一如既往,瓶颈始终在于数据——或者说,数据匮乏。

数据标注是瓶颈……也是一份工作,一门生意。
还记得十几年前盛行的“大数据”概念吗?用一个老套的比喻来说,如果未来数月或数年间,数据成为比石油更炙手可热的交易商品,我丝毫不会感到意外。
随着越来越多平台关闭免费API访问权限,数据本身或者数据使用权未来确实可能会变得更加稀缺——至少是成本更高。今年早些时候我们就已经看到了这样的案例,比如Reddit和Twitter(现X平台)。后者上月还刚刚更新了服务条款,禁止爬虫与数据抓取:https://techcrunch.com/2023/09/08/x-updates-its-terms-to-ban-crawling-and-scraping 。
今年夏天,CNN、ABC、《纽约时报》等主流在线出版商纷纷屏蔽了OpenAI的GPTBot网页爬虫,阻止其抓取自身网站内容:https://www.theguardian.com/technology/2023/aug/25/new-york-times-cnn-and-abc-block-openais-gptbot-web-crawler-from-scraping-content 。
而就在上周,谷歌推出了一项新设置,允许出版商选择是否将自己的文章用于AI训练数据:https://www.theverge.com/2023/9/28/23894779/google-ai-extended-training-data-toggle-bard-vertex 。
无论你如何评价AI带来的影响,一个不可否认的事实是,它正在推动互联网格局的重构。
企业都在打磨更强大的搜索功能与更实用的聊天机器人,但这些工具本该为用户找到的内容,反而会变得更难获取。不过一线希望在于,这一切或许会最终推动网络安全与内容真实性验证体系的完善。
DALL-E 3:文生图AI的下一代迭代
很难相信,距离DALL-E 2发布并带火文生图生成AI已经过去一年半了。上个月,OpenAI正式发布DALL-E 3(https://openai.com/dall-e-3),并登陆必应图像创作平台(https://www.bing.com/images/create)供用户使用。
不得不说,最初的发布公告有点误导性,乍一看还以为DALL-E 3能自动生成图片标注,如下图截图所示:

该图出自DALL-E 3官方发布页:https://openai.com/dall-e-3
不过实际上,这些标注是作者为了演示效果手动加上的。
不管怎样,我本人并不是文生图AI的重度用户,但在必应创作网站上尝试了不同提示词后,不得不说生成效果非常惊艳。
英伟达法国分公司遭突击搜查,涉云计算反垄断调查
《华尔街日报》报道称“英伟达法国办公室遭云计算相关调查突击搜查”。报道还提到:“这类突击搜查通常持续数小时,执法人员清晨抵达公司场所,搜查办公区域,扣押实物与数字资料,并对到岗员工进行问询。”
尽管法国当局尚未披露搜查原因,但此事可能与英伟达在AI芯片领域的市场地位相关:https://www.investing.com/news/stock-market-news/citi-says-nvidia-will-have-a-90-market-share-in-ai-chips-market-432SI-3122461 。
我使用英伟达硬件训练深度学习模型已有十余年,在我看来,英伟达的市场主导地位要归功于其CUDA与cuDNN带来的完善软件生态。AMD虽然也有性能不错的GPU,但据使用过AMD显卡跑深度学习框架的同事反馈,其软件支持仍处于试水阶段。(不过我最近在Hacker News上看到相关讨论,过程可谓“踩坑无数”:https://news.ycombinator.com/item?id=37793635 )
此外,据我所知,谷歌的TPU与亚马逊的Trainium芯片目前均不对外售卖。而且,基于XLA的TPU支持主要针对谷歌自家的TensorFlow、Jax等专有软件做了优化,通用性远不如CUDA。(举个例子,早在深度学习火起来之前,我本科做分子动力学模拟时就已经在用CUDA了。)
在我看来,英伟达的庞大市场份额,部分源于其更成熟的软件生态。当然,对消费者来说选择越多越好,老话也说得好:“竞争促进行业发展。”
OpenAI被曝正研发自有AI芯片
一则出人意料的消息显示,据路透社报道,ChatGPT母公司OpenAI正探索研发自有AI芯片:https://www.reuters.com/technology/chatgpt-owner-openai-is-exploring-making-its-own-ai-chips-sources-2023-10-06/ 。
近年来,行业垂直整合的趋势愈发明显——即企业掌控生产流程多个环节的商业策略。典型案例就是苹果为iPhone和Mac自研处理器。在AI领域,谷歌自研了TPU,亚马逊也推出了Trainium芯片:https://aws.amazon.com/machine-learning/trainium/ 。
上述路透社的文章并未提及这点,但我觉得很有意思的是,目前微软是唯一没有自研定制AI芯片的主流云厂商。考虑到微软对OpenAI的巨额投资,未来微软Azure云服务很可能会受益于定制的AI推理与/或训练芯片。当然,和以往一样,一大挑战在于如何保证软件支持,以及与PyTorch等主流深度学习框架的无缝集成。
微软将推出数据中心专用芯片,用于大语言模型训练
刚写完OpenAI的芯片计划,以及关于微软可能会跟进谷歌、亚马逊步伐,为自家数据中心研发定制AI芯片的猜测,就有新文章证实了这一消息。据科技媒体The Information报道,微软将于下月推出一款AI芯片,有望降低对英伟达GPU的依赖成本:https://www.theinformation.com/articles/microsoft-to-debut-ai-chip-next-month-that-could-cut-nvidia-gpu-costs 。
亚马逊投资Anthropic,谷歌也表露投资意向
据路透社报道,亚马逊向ChatGPT同类聊天机器人Claude的开发商Anthropic投资至多40亿美元:https://www.reuters.com/markets/deals/amazon-steps-up-ai-race-with-up-4-billion-deal-invest-anthropic-2023-09-25/ ,相关深度分析可见:https://www.semianalysis.com/p/amazon-anthropic-poison-pill-or-empire 。双方还约定后续可追加40亿美元投资。有意思的是,这笔投资并非现金,而是亚马逊云服务额度,用于使用亚马逊自研Trainium芯片进行模型训练。
这也意味着,继谷歌推出Bard、微软绑定ChatGPT之后,亚马逊如今也拥有了Claude这款通用聊天机器人,可以向客户提供相关服务。
在上述消息公布几天后,又有报道称OpenAI的竞争对手Anthropic正与谷歌等方面洽谈融资20亿美元:https://www.theinformation.com/articles/openai-rival-anthropic-in-talks-to-raise-2-billion-from-google-others-as-ai-arms-race-accelerates ,这一进展颇耐人寻味。
新型可公开使用的大语言模型
每周都有大量新的大语言模型登上公开基准排行榜。过去两周我试用过的模型里,最有意思也最值得关注的两款是phi-1.5和Mistral,本期想和大家重点聊聊。
phi-1.5和Mistral都属于性能强劲但体量相对小巧的模型(参数量分别为13亿和70亿,而GPT-3参数量达1750亿),且均公开了模型权重可供使用。说到这里,Percy Liang在X平台上发过一条推文,区分了“开放大语言模型”与“开源大语言模型”:
https://x.com/percyliang/status/1708560401754202621?s=20
“很多‘开放’语言模型仅仅是发布了权重。在软件领域,这就相当于只发布二进制文件却不提供源代码——你不会管这叫开源。要获得完全的透明度,就得公开训练数据。GPT-J、GPT-NeoX、BLOOM、RedPajama都做到了这一点。”
如果您想使用或微调phi-1.5与Mistral,这两款模型都可以通过lit-gpt仓库获取:https://github.com/Lightning-AI/lit-gpt ,我也是该项目的维护者之一。
Phi-1.5
Phi-1.5是一款“小型”大语言模型,参数量仅13亿,但性能表现远超其体量级别。

图片标注出自论文:https://arxiv.org/abs/2309.05463
这么小的模型为何能有如此出色的表现?秘诀似乎在于高质量的训练数据。
该模型的预训练基于https://arxiv.org/abs/2306.11644 中提出的方法,我在今年夏天的《三句话速览AI研究亮点》一文中曾简要介绍过:研究人员用规模相对较小的60亿token网页“教科书级质量”数据集,加上10亿token由GPT-3.5生成的习题,训练了最初的13亿参数phi模型。
作为继任者的13亿参数phi-1.5模型,使用了类似的“高质量”数据集训练:在来自论文https://arxiv.org/abs/2211.15533 、StackOverflow等来源的70亿token代码数据基础上,新增了约200亿token教科书级别的合成文本。值得注意的是,phi-1.5仅完成了预训练,尚未经过指令微调——后者或许能进一步提升其性能。

phi-1.5前身模型的数据集与性能表现,出自:https://arxiv.org/abs/2306.11644
论文作者提出一个假设:模型无需经过指令微调就能获得指令遵循能力,这是个很有意思的观察。但phi-1.5的预训练数据,本身就是通过向另一款大语言模型发出指令提示生成的。所以在我看来,模型在预训练阶段就获得了一定的指令微调效果,其实并不意外。(有监督指令微调本质上和预训练类似,都是下一词预测任务,我在《Ahead of AI》的《大语言模型训练:RLHF及其替代方案》一文中有过阐述:https://magazine.sebastianraschka.com/p/llm-training-rlhf-and-its-alternatives )
关于phi-1.5的训练细节,可参考论文:https://arxiv.org/abs/2309.05463 。
X平台上Susan Zhang的相关帖子(https://twitter.com/suchenzang/status/1701615026648605095?s=20 )引发了关于phi-1.5性能指标的讨论,有人猜测模型可能在无意中使用了基准数据集进行训练。Susan Zhang举了例子,说明phi-1.5对格式非常敏感:比如,和基准数据集格式相似的数学题它能完美答对,但格式稍有变化就开始出现幻觉。Zhang认为这表明模型其实只是记住了测试数据集。
说到这个,在一篇颇具讽刺意味的论文(https://arxiv.org/abs/2309.08632 )中,作者训练了一个仅100万参数的小型大语言模型,性能居然超过了包括13亿参数phi-1.5在内的所有模型。而实现方法就是让模型在所有下游学术基准数据集上训练。这篇文章像是一种委婉的批评,凸显了基准测试很容易被有意或无意地“作弊”——也就是数据污染问题。

归根结底,我们目前没有很好的方法判断一个模型是否用基准测试或测试数据训练过。尤其是如今大多数公司都不再分享或披露训练数据,这很可能是为了避免法律诉讼(例如相关报道:https://apnews.com/article/openai-lawsuit-authors-grisham-george-rr-martin-37f9073ab67ab25b7e6b2975b2a63bfe )。
Mistral
新兴AI公司Mistral AI在首次公开官宣中,发布了旗下第一款可公开使用的大语言模型。根据该公司的基准测试结果,70亿参数的Mistral模型在所有基准测试中都优于参数量更大的130亿参数Llama 2模型,同时代码能力甚至接近CodeLlama 7B。也正因如此,上周这款模型成了社交媒体上的热议话题。
我随机选取了部分Evaluation Harness测试任务对Mistral进行了试用。它在算术基准上的表现好得(几乎好得反常)。不过,它并非在所有任务上都能超越130亿参数的Llama 2模型。

多款基础模型(非微调模型)在随机选取的lm-evaluation-harness任务上的表现对比,工具来源:https://github.com/EleutherAI/lm-evaluation-harness
如果您想上手试用,Mistral和Phi-1.5都已加入lit-gpt代码仓库:https://github.com/Lightning-AI/lit-gpt 。我定期为该仓库贡献代码,它也是NeurIPS大语言模型效率挑战赛的参赛项目之一。
现在,也有人提出了和phi-1.5类似的担忧。比如Reddit上的讨论(https://www.reddit.com/r/LocalLLaMA/comments/16twtfn/llm_chatrp_comparisontest_mistral_7b_base_instruct/k2hr0yl/ )就提到,有人怀疑模型训练中用到了测试数据,这或许能解释部分基准测试分数偏高的原因。不过整体而言,这款模型依然非常有意思,能力也十分出众。
此外,它还采用了一种有意思的自注意力变体——滑动窗口注意力,以此节省显存、提升计算吞吐量,加快训练速度。(滑动窗口注意力此前已在两篇论文中被提出:https://arxiv.org/abs/1904.10509 与https://arxiv.org/abs/2004.05150 )
滑动窗口注意力机制本质上是一个固定大小的注意力窗口,当前token只能关注前面特定数量的token,而非所有之前的token,原理如下图所示。

常规注意力与滑动窗口注意力对比,图标注基于Mistral官方仓库提供的示意图修改:https://github.com/mistralai/mistral-src
在Mistral的具体实现中,注意力窗口大小为4096个token,而研究人员训练模型时支持最高10万token的上下文长度。
举个更具体的例子:在常规自注意力机制下,模型处理第50000个token时,可以关注前面全部49999个token;而在滑动窗口自注意力下,Mistral模型只能关注第45904到第50000个token。
这是不是意味着模型无法一次性获取全部上下文信息?也不尽然。Mistral的开发团队认为,模型依然可以通过分层间接的方式访问所有输入token,原理如下图所示。

标注示意图基于Mistral官方仓库提供的图片修改:https://github.com/mistralai/mistral-src
目前还没有针对GPT类大语言模型使用滑动窗口注意力的研究论文与消融实验,我们还不清楚这种机制对模型性能到底是正面还是负面影响。但它对计算吞吐量的提升是毋庸置疑的,Mistral团队提到该机制带来了2倍的速度提升。
LoRA新变体
LoRA(低秩适配,论文见https://arxiv.org/abs/2106.09685 )是目前大语言模型高效微调最主流的方法,最近几周研究人员又提出了两种新的变体:QA-LoRA(https://arxiv.org/abs/2309.14717 )与LongLoRA(https://arxiv.org/abs/2309.12307 )。
(简而言之,LoRA的核心是通过对预训练模型的参数做低秩投影来进行微调。大多数读者可能已经熟悉LoRA的原理,但如果大家感兴趣,我可以在未来的文章里从零开始实现并详细讲解它的工作机制。欢迎在评论区告诉我。)
LongLoRA
在论文https://arxiv.org/abs/2309.12307 中,研究人员提出了LongLoRA——一种高效的大语言模型微调方法,无需承担长上下文通常带来的高昂计算成本,就能扩展模型的上下文长度。该方法在微调阶段使用稀疏局部注意力以节省算力,而推理阶段依然可以使用常规的稠密注意力。

LongLoRA论文中的标注示意图:https://arxiv.org/abs/2309.12307
QA-LoRA
论文https://arxiv.org/abs/2309.14717 提出的QA-LoRA,本质上是对QLoRA(量化LoRA)的小幅改进,解决了QLoRA计算效率偏低的问题——QLoRA虽然节省了显存,但每次前向传播都需要对基础模型的量化权重做反量化,因此运行时间更长。
与QLoRA不同,QA-LoRA对LoRA(适配器)的权重本身做量化,避免了叠加适配器权重时,需要将量化后的基础模型权重转换回16位的高昂开销。这一原理总结在下方标注图中。

QA-LoRA论文中的标注示意图:https://arxiv.org/abs/2309.14717
一点小吐槽:论文表2中,QA-LoRA的微调速度约是QLoRA的2倍,但它的适配器权重参数量要少得多。我认为如果两者使用相同参数量来对比速度,结果会更有参考价值。
开源亮点
最后,我想以几项难得一见的重要开源发布收尾本期内容:Python 3.12、PyTorch 2.1与XGBoost 2.0。
Python 3.12
最新版本的Python带来了大量计算性能提升,官方更新说明(https://docs.python.org/3/whatsnew/3.12.html )提到,asyncio标准库的性能最高提升了75%。
我最喜欢的Python通讯《Python Weekly》(https://www.pythonweekly.com/ )将主要更新总结如下:
- 更灵活的f-string解析
- Python代码支持缓冲区协议
- 新增调试/性能分析API
- 支持带有独立全局解释器锁(GIL)的隔离子解释器
- 进一步优化的错误提示信息
- 支持Linux perf性能分析工具在追踪中显示Python函数名
- 大量大大小小的性能优化
PyTorch 2.1
去年是PyTorch的大年,2.0版本推出了torch.compile新特性,可以将动态PyTorch计算图转换为全部或部分静态图,从而提升性能。今年PyTorch 2.1正式发布:https://pytorch.org/blog/pytorch-2-1/ 。据我观察,该版本没有引入破坏性变更,重点依然放在性能优化上。
一个值得关注的特性(目前仍处于测试阶段)是,torch.compile现在还能编译NumPy运算,将其转换为等价的PyTorch操作。这意味着我们现在也可以用GPU加速NumPy代码了。
相关的领域库比如torchvision也得到了更新。例如,热门的数据增强方法CutMix和MixUp就有了相关更新:https://pytorch.org/vision/stable/auto_examples/transforms/plot_cutmix_mixup.html#sphx-glr-auto-examples-transforms-plot-cutmix-mixup-py 。
XGBoost 2.0
没错,不用深度神经网络和大语言模型的机器学习依然大有可为!XGBoost是最流行的梯度提升算法实现之一,其在表格数据上的表现依然强劲,相关研究可见:https://arxiv.org/abs/2207.08815 。

来源:https://github.com/dmlc/xgboost/releases/tag/v2.0.0
XGBoost面世已近十年,近期刚刚发布了重磅2.0版本:https://github.com/dmlc/xgboost/releases/tag/v2.0.0 ,带来了更优的内存效率、对超内存大数据集的支持、多目标树等众多新特性。
本专栏是个人兴趣项目,无直接商业报酬。如果您愿意支持我,可以考虑购买我的书籍:https://sebastianraschka.com/books 。如果您觉得这些书有见解、有帮助,也欢迎推荐给您的朋友和同事。

书籍购买链接:https://www.amazon.com/Machine-Learning-PyTorch-Scikit-Learn-scikit-learn-ebook-dp-B09NW48MR1/dp/B09NW48MR1/ 、https://nostarch.com/machine-learning-and-ai-beyond-basics 、http://mng.bz/M96o
您的支持对我意义重大!非常感谢!