#FigGen
如果论文中的图表不用绘制,对于研究者来说是不是一种便利呢?有人在这方面进行了探索,利用文本描述生成论文图表,结果还挺有模有样的呢!
生成式 AI 已经风靡了人工智能社区,无论是个人还是企业,都开始热衷于创建相关的模态转换应用,比如文生图、文生视频、文生音乐等等。
最近呢,来自 ServiceNow Research、LIVIA 等科研机构的几位研究者尝试基于文本描述生成论文中的图表。为此,他们提出了一种 FigGen 的新方法,相关论文还被 ICLR 2023 收录为了 Tiny Paper。
论文地址:https://arxiv.org/pdf/2306.00800.pdf
也许有人会问了,生成论文中的图表有什么难的呢?这样做对于科研又有哪些帮助呢?
科研图表生成有助于以简洁易懂的方式传播研究结果,而自动生成图表可以为研究者带来很多优势,比如节省时间和精力,不用花大力气从头开始设计图表。此外设计出具有视觉吸引力且易理解的图表能使更多的人访问论文。
然而生成图表也面临一些挑战,它需要表示框、箭头、文本等离散组件之间的复杂关系。与生成自然图像不同,论文图表中的概念可能有不同的表示形式,需要细粒度的理解,例如生成一个神经网络图会涉及到高方差的不适定问题。
因此,本文研究者在一个论文图表对数据集上训练了一个生成式模型,捕获图表组件与论文中对应文本之间的关系。这就需要处理不同长度和高技术性文本描述、不同图表样式、图像长宽比以及文本渲染字体、大小和方向问题。
在具体实现过程中,研究者受到了最近文本到图像成果的启发,利用扩散模型来生成图表,提出了一种从文本描述生成科研图表的潜在扩散模型 ——FigGen。
这个扩散模型有哪些独到之处呢?我们接着往下看细节。
模型与方法
研究者从头开始训练了一个潜在扩散模型。
首先学习一个图像自动编码器,用来将图像映射为压缩的潜在表示。图像编码器使用 KL 损失和 OCR 感知损失。调节所用的文本编码器在该扩散模型的训练中端到端进行学习。下表 3 为图像自动编码器架构的详细参数。
然后,该扩散模型直接在潜在空间中进行交互,执行数据损坏的前向调度,同时学习利用时间和文本条件去噪 U-Net 来恢复该过程。
至于数据集,研究者使用了 Paper2Fig100k,它由论文中的图表文本对组成,包含了 81,194 个训练样本和 21,259 个验证样本。下图 1 为 Paper2Fig100k 测试集中使用文本描述生成的图表示例。
模型细节
首先是图像编码器。第一阶段,图像自动编码器学习一个从像素空间到压缩潜在表示的映射,使扩散模型训练更快。图像编码器还需要学习将潜在图像映射回像素空间,同时不丢失图表重要细节(如文本渲染质量)。
为此,研究者定义了一个具有瓶颈的卷积编解码器,在因子 f=8 时对图像进行下采样。编码器经过训练可以最小化具有高斯分布的 KL 损失、VGG 感知损失和 OCR 感知损失。
其次是文本编码器。研究者发现通用文本编码器不太适合生成图表任务。因此他们定义了一个在扩散过程中从头开始训练的 Bert transformer,其中使用大小为 512 的嵌入通道,这也是调节 U-Net 的跨注意力层的嵌入大小。研究者还探索了不同设置下(8、32 和 128)的 transformer 层数量的变化。
最后是潜在扩散模型。下表 2 展示了 U-Net 的网络架构。研究者在感知上等效的图像潜在表示中执行扩散过程,其中该图像的输入大小被压缩到了 64x64x4,使扩散模型更快。他们定义了 1,000 个扩散步骤和线性噪声调度。
训练细节
为了训练图像自动编码器,研究者使用了一个 Adam 优化器,它的有效批大小为 4 个样本、学习率为 4.5e−6,期间使用了 4 个 12GB 的英伟达 V100 显卡。为了实现训练稳定性,他们在 50k 次迭代中 warmup 模型,而不使用判别器。
对于训练潜在扩散模型,研究者也使用 Adam 优化器,它的有效批大小为 32,学习率为 1e−4。在 Paper2Fig100k 数据集上训练该模型时,他们用到了 8 块 80GB 的英伟达 A100 显卡。
实验结果
在生成过程中,研究者采用了具有 200 步的 DDIM 采样器,并且为每个模型生成了 12,000 个样本来计算 FID, IS, KID 以及 OCR-SIM1。稳重使用无分类器指导(CFG)来测试超调节。
下表 1 展示了不同文本编码器的结果。可见,大型文本编码器产生了最好的定性结果,并且可以通过增加 CFG 的规模来改进条件生成。虽然定性样本没有足够的质量来解决问题,但 FigGen 已经掌握了文本和图像之间的关系。
下图 2 展示了调整无分类器指导(CFG)参数时生成的额外 FigGen 样本。研究者观察到增加 CFG 的规模(这在定量上也得到了体现)可以带来图像质量的改善。
下图 3 展示了 FigGen 的更多生成示例。要注意样本之间长度的变化,以及文本描述的技术水平,这会密切影响到模型正确生成可理解图像的难度。
不过研究者也承认,尽管现在这些生成的图表不能为论文作者提供实际帮助,但仍不失为一个有前景的探索方向。
#FollowYourPose
这篇工作主要解决了生成文本可编辑且姿势可控制的角色视频的问题。为实现这一目标,作者重新设计和调整了预训练的文本到图像模型,因为它具有强大的语义编辑和组合能力。作者设计了一个新的两阶段训练方案,可以利用大规模的图像姿势对和多样化的无姿势数据集。 风暴士兵直接开始街头炫舞?两阶段训练模型生成文本可编辑且姿势可控制的角色视频
论文:https://arxiv.org/abs/2304.01186
代码:https://github.com/mayuelala/FollowYourPose
主页:https://follow-your-pose.github.io/
现如今,生成文本可编辑和姿势可控的角色视频在创建各种数字人方面具有迫切的需求。然而,由于缺乏一个全面的数据集,该数据集具有成对的视频姿势字幕和视频的生成性先验模型,因此这项任务受到了限制。在这项工作中,我们设计了一种新颖的两阶段训练方案,该方案可以利用易于获得的数据集(即图像姿势对和无姿势视频)和预训练的文本到图像(T2I)模型来获得姿势可控的角色视频。
具体来说,在第一阶段,只有姿态图像对仅用于可控的文本到图像生成。我们学习了一个零初始化的卷积编码器来对姿态信息进行编码。在第二阶段,我们通过添加可学习的时间自注意力和改革后的跨帧自注意力块,通过无姿势视频数据集对上述网络的运动进行微调。在我们的新设计的支持下,我们的方法成功地生成了连续的姿势可控的角色视频,同时保留了预训练的T2I模型的概念生成和合成能力。
我们提出了一种两阶段训练策略,以有效地从我们提出的 LAION-Pose 数据集中学习图像姿势对齐,并从没有姿势注释的自然视频中学习时间相干性。在第一阶段训练中,只有姿态编码器 E p 可以训练来学习姿态控制。
在第二阶段训练中,只有时间模块是可训练的,包括时间自注意力(SA)和跨帧自注意力。在推理过程中,通过提供描述目标角色和相应外观的文本以及表示运动的姿势序列来生成时间连贯的视频。预训练稳定扩散的大多数参数都被冻结,包括伪 3D 卷积层以及交叉注意力 (CA) 和前馈网络 (FFN) 模块。具体框架结构如下
为了进一步保持时间一致性,我们利用帧间自注意力(SA)来进行交叉帧处理。不同的是,我们通过简单地在DDIM的上一次采样过程中重复使用每个时间步长的噪声,来生成更长的视频序列。具体而言,假设每次采样T帧,我们将最后T帧的噪声添加到下一个2个循环中,作为先验知识。需要注意的是,在整个去噪过程中,为了确保生成的长视频的时间一致性,会将每个时间步长的噪声添加到先验知识中。如图所示,所提出的方法仅调整了用于视频生成的帧间自注意力和时间自注意力。
通过以上两阶段的训练,结合为每个阶段精心设计的可调节模块,我们所提出的方法可以从轻松获得的数据集(例如人体和姿势的图像对以及随机视频)中生成连续的姿势可控视频。我们的方法也可以应用于其他相关的有条件视频生成任务,正如同时的有条件图像生成工作中所展示的。
总结一下,这篇工作主要解决了生成文本可编辑且姿势可控制的角色视频的问题。为实现这一目标,我们重新设计和调整了预训练的文本到图像模型,因为它具有强大的语义编辑和组合能力。我们设计了一个新的两阶段训练方案,可以利用大规模的图像姿势对和多样化的无姿势数据集。具体而言,在第一训练阶段,我们使用姿势编码器将姿势信息注入网络结构,并从图像-姿势对中学习,以实现姿势可控的文本到图像生成。在第二训练阶段,我们将图像模型扩展为3D网络,从无姿势视频中学习时间上的连贯性。通过我们的几项新设计,我们可以生成具有新颖创意和时间上连贯的视频,同时保留原始T2I模型的概念组合能力。
#Midjourney V6
兵贵神速,Midjourney V6昨天上午说要来,下午就真来了。神图纷纷炸出,光影效果登峰造极,主打一个「你能说我就能画」,擅长写Prompt的朋友,你们有福了!生图效果碾压DALL·E3,逼真画面光影细节登峰造极
猝不及防的,Midjourney V6昨天下午忽然发布了!和 DALL-E 3 等图像生成模型相比,谁的效果会更好呢?
虽然已经预告了是这两天,但谁也没想到Midjourney的手速居然这么快,赶在圣诞节前让大家尝尝鲜。
在/settings的下拉菜单中选择V6,或者在Prompt后输入 --v 6,就可以用上V6 Beta版模型了!
激动的网友们蜂拥而入,出炉了一大波测评。比起V5,V6真的是疯狂加细节,画面质量史诗级增强。
根据MJ官方介绍,V6的主要变化,就是图像质量更好、语义理解更强、能嵌入英文单词、更容纳更多token了。
举个例子,下面这两张超人和蝙蝠侠的「剧照」,要不是背景里的「V6 is here」的提示,几乎已经分辨不出来到底是实拍还是出自AI。
以前被诟病最多的「一眼AI」,也在V6上达到了几乎「以AI乱真」的地步。
有网友表示:Midjourney V5到V6的升级,堪称是一次里程碑,意义堪比Stable Diffusion出现高清重绘。
除了图像模型的大提升之外,V6最大的变化,就在于提示词系统几乎重做了。
用户很可能需要重新学习怎么写提示词,需要尽量避免之前「语焉不详的描述」,例如「award winning」这类形容词。
之所以会这样,是因为在以前,模型没办法完全反映提示词的要求,写太详细也没用。但是升级之后,图片会尽可能地遵循提示词中每一个词,所以用户也要珍惜提示词的空间,尽可能地详细描述自己想要的内容。
总之一句话就是,「只要你能说得清楚,V6就能给你画明白。」
网友用Midjourney V6来想象「如果史蒂夫·乔布斯今天还活着,他会是什么样子」,结果令人震惊
这位网友表示:如果说这是生成式AI创造的图像,没人会相信我。
它已经达到了电影级别的质量。这一领域的创意,比如电影、照片、海报和杂志,从此很可能由AI主导。
另一位网友表示,MJ V6太逼真了,你可以直接用它想象你最爱的演员在电影中的样子,比如Jared Leto在Netflix《最后的沙皇》中的扮相。
神图纷纷出现,图像质量史诗级提升
里程碑级的升级,究竟体现在了哪些地方?
一位网友用同样的Prompt来测试了V6和V5.2,可以看出,V6的提升体现在多处细节上。(上V6,下V5.2)
雨坑中日落的倒影,V6的光影效果明显比V5.2更自然,V5.2的加工痕迹要更明显。
reflection of a sunset in a rain puddle
仔细观看可以发现,同样的女性面部主体,V6在皮肤细节、毛发细节、光影效果上,都远优于V5.2的效果。
1940年代复古科幻电影中身穿高领银色操作衣的女操作员,V6生图明显要比V5.2更加真实。
V5.2的图片主体人物显得过于呆板,不像真人。
1940s retro sci-fi film, medium side-angle shot of a young female control panel operator wearing a form-fitting silver jumpsuit with a high collar. She is surrounded by 3 art deco robots. warm glowing buttons and switches, soft illumination
下面这两幅食物的图片都很诱人,但是V6的色彩和光影还是要更胜一筹。
a pot of stew with a wooden spoon, top-down perspective
在生成「二次元」风格的口袋妖怪时,V6生成的效果神似动漫,而V5.2会画得更像个摆拍的手办。
frozen squirtle on the top of a snowy mountain 35mm film still of a detective
超强语义理解,Prompt说啥就画啥
如果说在以前,视觉效果和美学表现都足够震撼的Midjourney,为何风头时常不及DALL-E 3和Adobe Firefly,那自然是因为对于Prompt的高要求,吓退了众多「语死早」的用户。
并且,V5.2糟糕的语义理解,也经常让生图结果是「虽然美丽但不实用」。
而如今的V6,让Midjourney对于语气增强的理解,终于追上了竞家的脚步。比起V5.2,V6大大增强了语义理解的能力,对于Prompt的把握也更加精准。
写着「open late」霓虹灯标志的酒吧,V6就原样生出来了,V5.2的字样根本就不对。
而且从光影效果来看,V6也要更丰富更真实,就像给图片开了光追一样。
a corner bar with a neon sign that says "open late"
这张1960年代的街头风格照片,需要画出一位年轻女子穿着绿色丝绸连衣裙、戴着珍珠项链坐在帆船上。
显然,V6对于「珍珠项链」的理解要比V5.2好很多,而且除了人物主体之外,V6的周边细节也更合理精细。
1960s street style photo of a young woman sitting on a sailboat wearing a green silk dress and a pearl necklace. The sun is setting over the ocean, shot on Agfa Vista 200
「1980年代的悬疑电影,仰拍,身穿黑西装的法国管家在维多利亚式豪宅的走廊中手握蜡烛。」
从光影和构图来看,V6更符合要求,主体人物很好地融合进了背景里。而V5.2基本都没有做到。
1980s mystery film, low-angle shot of an evil-eyed French Butler sporting a black suit and grasping a candle in the hallway of a creepy Victorian mansion with musty decor. The warm candle glow evokes a spooky sense of mystery
下面这幅要求画出抽象、超现实的景观,有融化的时钟、扭曲的形状和浮岛,空中有一只眼镜形状的巨大月亮。
其中,V6在空中画出了「A large, eye-shaped moon dominates the sky」,而V5.2就没有把这部分体现出来。
An abstract, surreal landscape with melting clocks, distorted shapes, and floating islands. The color palette is vibrant with a mix of blues, reds, and greens. A large, eye-shaped moon dominates the sky
这张1970年代的柯达Ektachrome电影剧照,需要画出身穿深V绿色丝绸连体裤的25岁红发女子。但V5.2并没有把我们要求的深V领口画出来。
1970s medium-closeup Ektachrome film still of a 25-year-old woman with curly red hair and freckles standing in front of vintage car in downtown Los Angeles. She's wearing a green silk jumpsuit with a plunging neckline. Golden hour
「五颜六色的珊瑚礁,各种各样的海洋生物,包括各种鱼、海龟和顽皮的海豚」。
这次,V5.2直接把海豚无视掉了,并自作主张地画了一个潜水员……
A colorful coral reef teeming with marine life. There are various species of fish, a sea turtle, and a playful dolphin. Sunlight filters through the water, creating a dappled effect on the sea floor.
「1980年代的间谍电影,年轻的黑发女人站在埃及装饰风格的豪宅中,有着黑色大理石柱子。」
显然,V6对于黑色大理石柱等背景的还原,要比V5.2准确得多。
1980s spy movie, Medium closeup shot from low-angle, 35mm film still of a young brunette Egyptian woman standing in an Egyptian Art Deco Mansion with large columns made of black marble, wearing a black sequin dress, inside, daytime, natural lighting
「电影剧照,一名侦探在犯罪现场采访一名女性证人,侦探在做笔录,目击者焦急地看着,指着一条线索。」
可以看到,V6的人物动作更加符合常理,而V5.2的图片中人物动作像是在发呆,没有按照提示词的描述进行做笔录的行为。
interviewing a female witness at a crime scene. The detective is taking notes, while the witness looks on anxiously, pointing towards a clue
就如同开头所说,「只要你能说得清楚,V6就能给你画明白。」
如果你是个想象力大师,可以用逻辑结构清晰、充满细节的语言描绘出心中所想,V6定不会让你失望——语言可以控制光影、控制材质、控制色彩、控制构图。
一句话,语言的魔力已经被放至最大:能写出神级Prompt的人,必得神图。
而相比之下,有ChatGPT加持的DALL-E 3,就不这么苛求用户的语言表达能力,而是可以自行想象。
难怪大家都说,Midjourney的上限足够高,DALL-E 3的下限足够低。
文字生成,直追SOTA
在文字生成上,V6较前代也有了巨大的提升。
EMPTY、TOMORROW、Coca Cola,这些字在图像中想加就加。
虽然在准确度上略逊于DALL·E 3,但视觉美感方面的表现,Midjourney依旧是遥遥领先。
不过需要注意的是,下面这些图像,每一张都进行了3-10次的尝试,才得了到比较理想的结果。
A man standing alone in a dark empty area, staring at a neon sign that says "EMPTY"
A realistic standup pouch product photo mockup decorated with bananas, raisins and apples with the words "ORGANIC SNACKS" featured prominently
An anime style movie poster with the stylized words "TOMORROW", with a girl looking upwards at the night sky, and cherry blossoms floating in the wind. --s 200
A Coca Cola ad, featuring a beverage can design with traditional Hawaiian patterns
A clean, minimalistic logo featuring an ice cream cone, with palm trees as the backdrop and the words "ICE CREAM OASIS" --style raw
A clean and minimalistic professionally designed vector of a biker speeding on a highway, with the words "FREEDOM ON WHEELS" --s 250
A minimalistic product shot of a bottle of perfume on a clean backdrop with the words "Floral Symphony", surrounded by fragrant white flowers
A modern cinematic movie poster with the words "FALLEN" showing a fallen angel in a dark forest --style raw --s 200
A modern burger advertisement, with the words "THE BIG ONE", featuring a delicious huge beef burger, with tomatoes and lettuce in the background
A pixar style illustration of a happy hedgehog, standing beside a wooden signboard saying "SUNFLOWERS", in a meadow surrounded by blooming sunflowers
这里,我们汇总了一些可以提高生成准确率的实用技巧:
1. 将单词大写并放在引号中,如「LIKE THIS」,可以提高生成的准确度
2. 使用--style raw参数,可以得到更准确的结果
3. 明确提出是电影海报(movie poster)和广告(advertisement),效果更好
4. 高stylize值可以创造出更有趣的文字效果
三大AI生图巨头pk,谁能胜出?
所以,现在AI生图工具的三大巨头,无疑就是Midjourney V6、DALL·E 3和Adobe Firefly了。
网友们当然迫不及待地让三巨头展开了一场大pk,对同一主题生图,一目了然地拼个高下。
Midjourney因为有着非常丰富的光影效果,有极强的真实感,几乎没有了原先那种「一眼AI」的感觉。
同样画一个年轻女人,MJ打在脸上的光影效果让人震撼,人物的眼神在传达着某种情绪,整个画面都充满了电影感和故事感。
相比之下,另外两个女人美则美矣,眼神却略显空洞。
金发粉色衣服的美女,MJ画的美女骨相耐看,衣服很仙。
果然,Midjourney画的美女,永远是最好看的。
蓝莓蛋糕,MJ也是赢得很彻底。相比之下,DALL·E 3的AI感还是太重了,一眼假。
「一对白发苍苍的老人」这道题,MJ的作品太动人了,一张照片仿佛包含了一生的故事。
机甲战士三家都画得不多,MJ的背景虚化显然是做得最好的。
雪中樱花的背景,MJ又一次完胜。
同样是金发美女,三张图构图不同,侧重点也不同。要论故事感,还是MJ完胜。
拿着相机的美女,后面是起火的建筑。MJ的人物情绪是对的,Adobe Firefly画的美女笑得就太没心没肺了,DALL·E 3的人物和背景太剥离,光线太假。
总之,虽然大家对于AI生图的评价标准各有不同的,但可以笃定地说,在艺术性和创意的触感上,Midjourney V6这一轮是妥妥地赢了。
做对比图的博主说,Midjourney现在是,并且可能永远是自己的最爱。就是因为它,自己才进入了这个AI艺术社区。
这位网友表示,在审美上,MJ把两位对手远远甩在了后面。
这位网友指出,Adobe Firefly的优点就是,让图像看起来如此逼真,以至于你可以直接上传社交媒体。
相比之下,MJ的对比度更高,更倾向于添加光影。
很多人都被 Midjourney V6 的生成效果震撼到了。
新版本允许输入更长的提示,生成更丰富的细节,甚至可以向照片添加文本。与先前版本一样,新版可通过 Discord 获得。用户需要在 Midjourney Discord 服务器或 Midjourney bot 中键入「/settings」,然后使用顶部的下拉菜单选择 V6。用户也可以使用传统的方法,在提示之后手动输入「-v 6」。
「这个模型可以生成比我们之前发布的任何模型都更加真实的图像,」Midjourney 创始人 David Holz 在 Midjourney Discord 服务器上发布的一条消息中写道,该服务器拥有超过 1700 万会员。Holz 表示,V6 实际上是「在我们的人工智能超级集群上从头开始训练的第三个模型」,花了九个月的时间开发。
设计师 Tatiana Tsiguleva 表示,Midjourney v6 对提示的理解将更加精准,这也意味着不再需要那些奇怪的短语或单词。比如,你想要生成的结果更加真实,你可以以「—style raw」结束提示,而不是输入一些描述性的单词。
不过,目前 V6 缺少 V5.2 上的一些功能,包括左右平移和缩小,但 Holz 表示这些功能将在 V6 的后续更新中提供。
参考资料:
https://twitter.com/Mr_AllenT/status/1737829217973243990
https://twitter.com/chaseleantj/status/1737816505507795060
#Pangu-π
5 年前,Transformer 在国际神经信息处理大会 NeurIPS 2017 发表,后续其作为核心网络架构被广泛用于自然语言处理和计算机视觉等领域。挑战Transformer,华为诺亚新架构盘古π来了,已有1B、7B模型
1 年前,一项重大的创新引起了人们的广泛关注,那就是 ChatGPT。这个模型不仅能够执行复杂的 NLP 任务,还能以人类对话的方式与人类进行互动,产生了深远的影响。
1 年以来,“百模大战” 在业界激烈开展,诞生了如 LLaMA、ChatGLM 和 Baichuan 等开源大模型,推动了 LLM 领域的快速发展。除了通用 LLM,为了支撑更多行业的应用和商业变现,很多行业垂域大模型也涌现出来,特别是金融、法律和医疗等领域尤为活跃。
开发一个卓越的 LLM,就如同进行一项复杂的系统工程,其中包括数据准备、数据清理、模型架构设计、集群通信以及优化器的选择。在 2022-2023 年的最新项目中,大部分大模型都是基于标准的 Transformer 架构进行开发,主要在数据工程、训练策略上进行不同的优化。模型架构设计,作为其中至关重要的一环,决定了 LLM 的最大性能潜力,并没有在业界引起足够的重视。
近日,来自华为诺亚方舟实验室、北京大学等机构的研究者提出了盘古 π 的网络架构,尝试来构建更高效的大模型架构。
论文链接:http://dx.doi.org/10.13140/RG.2.2.34314.64966
在这篇工作中,作者发现特征坍塌问题影响着这些精心设计的 Transformer 架构的表达能力。以 LLaMA 为例,作者通过实证分析,在 Transformer 更深层中,特征的秩显著降低,导致所有 token 之间的相似性增加,这极大地降低了 LLM 的生成质量和多样性。作者还从理论上分析了 Transformer 架构中的特征坍塌问题和非线性的关系,发现非线性对 Transformer 模型的能力有重大影响。增强非线性可以有效地缓解特征坍塌的问题,并提高 Transformer 模型的表达能力。因而该工作从非线性的角度出发,构建更强大的 LLM 架构。
该工作中,作者带来了一项革新性的突破,引入了一种名为盘古 π 的全新 LLM 架构,来解决特征坍塌问题。这一架构通过在 FFN 和 MSA 模块中引入更多的非线性,从两个方面增强了模型的非线性,而不会显著增加模型的复杂性。首先,作者在 FFN 中引入了基于级数的激活函数,这一函数带有多个可学习的仿射变换,能有效地增强整个网络的非线性,同时计算量很小。然后,作者对每个 MSA 模块的主分支和增强型短路进行并行处理,以避免特征秩的坍塌。为了保持模型效率,作者还精心优化了增强型短路操作,使其更适合硬件实现。作者还证明了这两种操作的叠加可以增强非线性补偿。通过这两个新模块,可以在相同规模的参数下实现显著的效率提升。基于带有级数激活函数的 FFN 和短路增强的 MSA,该工作构建了盘古 π 架构。
作者构建了两个不同大小的盘古 π 大模型版本,即盘古 π-7B 和盘古 π-1B。通过在大规模语料库上进行训练, 盘古 π 大模型获得了在下游任务上的通用语言能力。在各种 NLP 任务上进行的大量实验显示,在模型大小相似的情况下,盘古 π 模型和之前的大模型相比,在准确性和效率方面都能取得更好的性能。
除了基础能力外,作者还将盘古 π-7B 部署在金融和法律这两个高价值领域,开发了一个专门的 LLM,名为云山大模型,在实际商业应用中发挥价值。在金融和法律基准的广泛评估也表明,云山大模型超过了其他具有相似规模的最先进大模型。
盘古 π 的模型架构
为了解决传统 Transformer 架构的非线性能力不足问题,研究者提出了针对注意力模块和 FFN 模块的两项改进。图中展示了作者提出的盘古 π 的整体结构。与原始 Transformer 相比,盘古 π 在前馈网络(FFN)中采用了级数激活函数,并且在多头自注意力(MSA)中集成了增强型快捷连接,这有效地为 Transformer 架构引入了更多的非线性。
图:盘古 π 的整体架构
传统 Transformer 架构的问题
增广 Shortcut 模块
传统的注意力模块(MSA)会带来非线性能力有限导致的特征坍塌问题。一个典型的大语言模型 LLM 为每个注意力模块只配备了一条恒等映射的支路(Shortcut),将输入特征直接复制到输出。这种恒等映射的方式直接将输入特征复制到输出,导致表达能力受限。因此,本文提出增广 Shortcut(Augmented Shortcut)来缓解特征坍塌的问题,提高大语言模型的表达能力。
一般而言,增广 Shortcut 与自注意力模块、恒等映射支路并联,装配有增广 Shortcut 的 MSA 模块可以表述为:
级数激活函数模块
除了自注意力模块以外,Transformer 架构中的另一重要组成部分是 FFN 模块,因此,作者继续研究如何增加 FFN 模块的非线性表达能力。FFN 的计算可以被写作:
由两个线性映射层和激活函数层构成。因此,在 FFN 中非线性能力的来源其实是来自于激活函数。现有的研究工作提出了许多不同的激活函数,包括 ReLU、GeLU 和 Swish 等。
然而,这些激活函数都没有针对非线性能力增强作深入的研究,因为现有的方案往往倾向于使用更深的网络来提升非线性,这会导致时延的急剧增加,这对于开发一个高效且有效的大型语言模型(LLM)来说是不可承受的。因此,作者引入了级数的思想,通过并行而非现有神经网络中串行堆叠的方式来构造出非线性更强的激活函数:
可以看到,随着 n 的增加,所提出的激活函数的非线性会不断上升,从而使得 FFN 的非线性能力得到增强。
最后,作者进行了理论分析,证明了提出的两个模块的有效性,使用两种提出模块得到的盘古 π 架构,相比原始的架构具有更强的非线性表达能力。
实验结果
为了充分展示盘古 π 架构的能力,研究团队构建了 7B 和 1B 两个量级的模型,并将模型和现有的 SOTA 模型进行对比。
7B 模型实验结果
在表 1 中,研究团队对盘古 π-7B 模型的性能进行了全面评估,测试数据集分为四大类:考试、知识、推理和理解,评估方式包括测试得分与推理速度。结果显示,盘古 π-7B 模型在平均分上取得了更好的结果,结果的一致性也更佳,在考试类任务上的表现较为亮眼,超过了除 Qwen 之外的对比模型。在处理速度上,通过对比 910A 上每个 token 的处理时间,盘古 π-7B 模型具有相比同体量模型更快速推理能力。
表 1:与开源 7B 模型的性能对比(粗体表示最好结果)
1B 模型实验结果
表 2 展示了盘古 π-1B 模型的性能。对比模型包括中文版 LLaMA2-1.3B、TinyLlama-1.1B 和 Sheared-LLaMA-1.3B。其中 Sheared-LLaMA-1.3B 最初是从较大的 LLaMA2-7B 模型中修剪出来的,然后使用 50B 标记的精简数据集进行训练。与 7B 模型的结果类似,盘古 π-1B 模型在测试得分具备较大优势。而在 1B 体量模型更为关注的速度性能评估结果中,盘古 π-1B 模型也以 13.8ms 的时延战胜了 LLaMA2-1B 15.4ms 的成绩。盘古 π-1B 模型更适用于对时间敏感的应用。
表 2:与开源 1B 模型的性能对比(粗体表示最好结果)
消融实验
为更好地理解所提出的架构,文章使用 1B 模型进行消融实验来调研每个组件对模型影响。在这一部分,研究团队分析了级数增强激活函数(SIAF)和增广 shortcut(AS)对模型整体架构的影响。
表 5 展示了对不同模型组件进行消融实验的结果,并与 WideNet 模型(一种同样用于提升 Transformer 架构非线性的方案)对比,通过实验证明,每个组件都有效地提高了模型架构的性能,证实了所提出方法的每个组件对于提升 Transformer 架构性能的有效性,并超越了 WideNet。
表 5:不同模块对模型影响的实验结果
可视化实验
为了验证盘古 π 架构的特征有效性,研究者还进行了丰富的可视化实验,首先对于各层特征的有效维度进行了分析。有效维度是一个基于主成分方差的分析指标,反应达到预设总方差(0.8)所需的特征维度数。更高的有效维度说明更多的特征通道对于语义表征是有意义的。经过计算,盘古 π 架构相比没有非线性增强的结构,在各层中表现出了一致更高的有效维度数,验证了架构设计的有效性。
研究者进一步对于各层特征的多样性进行了可视化。在可视化实验中,来自同一 token 在不同上下文下的特征通过主成分分析降维,在三维空间中表现出了明显的聚类现象。可以明显的发现,盘古 π 模型显示出了更强的多样性;并且,随着层数的加深,来自同一 token 的特征逐步形成了更加高维延展的聚类群,充分体现了对上下文语义的充分理解与融入。
图:不同模型架构下,模型各层的有效特征和隐特征的可视化呈现.
同时,研究者在基于 LAMBDA 数据集的续写任务,对于各个模型的输入显著性进行了分析,在实验中,统计了最终输出结果在每个特征维度上的梯度绝对值,这反应了各 token 对于最终结果的影响程度。在下图所示的例子中,续写要求模型输出前中文提到的人名 chestor,可以看到,相比基线模型,盘古 π 模型正确捕捉到了上文的有效信息,最终能输出了正确结果。
图:续写任务特征显著性分析.
拓展到财经和法律任务
除了通用任务,研究者还将他们的模型推广到财经和法律等垂域任务,并在语料、Tokenizer、训练过程等方面进行了精心的设计,训练后得到的模型被命名为 YunShan (云山)。基于 OpenCompass 测评框架,作者首先在财经的 FinancelQ 数据集上进行了评测。
表 6:不同模型在财经 FinancelQ 数据集上的测评结果
从表 6 可以看出,相较于其它的通用基础模型、财经和法律垂域模型,YunShan 模型在注册会计师、银行从业资格等 10 个任务上均表现出明显的优势。作者还在财经的 FinEval 数据集上进行了评测。
表 7:不同模型在财经 FinEval 数据集上的测评结果
从表 7 可以看出,相较于其它模型,YunShan 模型在会计学和资格证两个子任务上优势明显,并在加权后的平均分上取得了最高分。
此外,研究团队也在法律任务上的 LawBench 数据集上进行了评测。
表 8:不同模型在法律 LawBench 数据集上的测评结果
在表 8 中,YunShan 模型在法律知识记忆、法律知识理解和法律知识应用三个子任务上均取得了更高的得分,这体现出作者所提方法的有效性。
#KwaiAgents
快手联合哈尔滨工业大学研发的「KwaiAgents」,使7B/13B模型也能达到超越GPT-3.5的效果,并且这些系统、模型、数据、评测都开源了!
7B 大小的模型也能玩转 AI Agents 了?近期,快手开源了「KwaiAgents」,问它周末滑雪问题,它不但帮你找到场地,连当天的天气都帮你考虑周到了。
大家都知道大语言模型(LLM)通过对语言的建模而掌握了大量知识,并具备一定认知和推理能力。但即使是当前最强的 GPT-4,单独使用的情况下,依然会一本正经地胡说八道,无法跟世界保持实时的交互。AI Agents 就是解决这个问题的道路之一,通过激发大模型任务规划、反思、调用工具等能力,使大模型能够借助现实世界工具提升生成内容的准确性,甚至有能力解决复杂问题。这一次,快手联合哈尔滨工业大学研发的「KwaiAgents」,使 7B/13B 的 “小” 大模型也能达到超越 GPT-3.5 的效果,并且这些系统、模型、数据、评测都开源了!
- 技术报告:https://arxiv.org/abs/2312.04889
- 项目主页:https://github.com/KwaiKEG/KwaiAgents
从「KwaiAgents」的 Github 主页中可以看到,本次开源内容包含:
- 系统(KAgentSys-Lite):轻量级 AI Agents 系统,并配备事实、时效性工具集;
- 模型(KAgentLMs):Meta-Agent Tuning 后,具有 Agents 通用能力的系列大模型及其训练数据;
- 评测(KAgentBench):开箱即用的 Agent 能力自动化评测 Benchmark 与人工评测结果。
系统
KAgentSys 系统,是基于大模型作为认知内核,配以记忆机制、工具库,形成的迭代式自动化系统。其主要包含:
- 记忆机制:包含知识库、对话、任务历史三类记忆,依托于混合向量检索、关键词检索等技术的检索框架,在每一次规划路径中检索所需的信息。
- 工具集:包含事实性增强工具集,异构的搜索和浏览机制能够汇集网页、文本百科、视频百科等多个来源的知识;包含日历、节日、时间差、天气等常见的时效性增强工具集。
- 自动化 Loop:在一轮对话中,用户会给予一个问题,可选知识库及额外人设整体进行输入,系统会先进行记忆的更新和检索,再调用大模型进行任务的规划,如果需要调用工具则进行调用,如果不用则进入总结阶段,大模型综合历史的信息给出符合预期的回答。
本次开源 KAgentSys 的部分能力,系统将逐步进行升级和开放。
模型
为了避免训练中单一模板引起的过拟合问题,团队提出 Meta-Agent Tuning (MAT) 的方法,通过在训练数据中引入更多 Agent Prompt 模板,从而提升大模型在 Agent 能力上的通用性,并提升了效果。
Meta-Agent Tuning (MAT) 分为两阶段:
- 模板生成阶段:通过设计 Meta-Agent,对特定问题集合,生成实例化的 Agent Prompt 模板(上右图为一个例子)候选;并在相同的实验环境下,生成模板产出的候选结果,与开源模板(如 ReAct,AutoGPT 等)产出的高置信结果,用打分模型进行对比打分,从而筛选出高质量的 Agent Prompt 模板库。通过引入这些多元的模板,能够显著降低模型微调时对模板的依赖,提纯更本质的 Agents 在任务规划、工具使用、反思等能力,从而提高模型的泛化性和有效性。
- 指令微调阶段:基于上万的模板,构建了超过 20 万的 Agent 调优指令微调数据。团队调优了一些热门开源模型如 Qwen-7B、Baichuan2-13B 等,供大家使用和参考,后续还会陆续放出其他热门模型。
评测
KAgentBench 通过人工精细化标注的上千条数据,做到了开箱即用,让大家能够用一行命令评测一个大模型在不同模板下各方面的 Agents 能力。
如上图所示,在 KAgentBench 中,会对不同种类的能力构造输入,每个 query 配备多个模板和多个人工编辑的真实回答,旨在综合评测准确性和泛化性,下表显示了经过 MAT 调优后,7B-13B 模型各项能力的提升,且超越了 GPT-3.5 的效果:
同时,该研究还请人类标注者在 200 个事实性和时效性的问题(如 “刘德华今年几岁了”),对不同的大模型和 Agent 系统进行了交叉评估,可以看到 KAgentSys 系统和 MAT 之后模型提升显著(百分号前为正确率,括号内为 5 分制均分)。
通常仅依赖网页搜索对一些长尾问题和热门问题返回结果不佳。比如问到 “安东内拉比梅西大多少天?” 这类长尾问题,往往搜索结果返回的都是一些两者的八卦新闻,而返回不了一些关键信息。而 KAgentSys 通过调用百科搜索工具获取精准的出生日期,再调用 time_delta 时间差工具算出年龄差,就能精准回答这个问题了。
团队表示,AI Agents 是一条非常有潜力的道路,未来一方面会在这个方向持之以恒地沉淀核心技术,并为整个社区不断地注入新的活力;另一方面也会积极探索 Agents 技术与快手业务的结合,尝试更多有趣、有价值的创新应用落地。
#RAG~2
专补大模型短板的RAG的新进展
同济大学王昊奋研究员团队联合复旦大学熊赟教授团队发布检索增强生成(RAG)综述,从核心范式,关键技术到未来发展趋势对 RAG 进行了全面梳理。这份工作为研究人员绘制了一幅清晰的 RAG 技术发展蓝图,指出了未来的研究探索方向。同时,为开发者提供了参考,帮助辨识不同技术的优缺点,并指导如何在多样化的应用场景中最有效地利用这些技术。
大型语言模型(LLMs)已经成为我们生活和工作的一部分,它们以惊人的多功能性和智能化改变了我们与信息的互动方式。
然而,尽管它们的能力令人印象深刻,但它们并非无懈可击。这些模型可能会产生误导性的 “幻觉”,依赖的信息可能过时,处理特定知识时效率不高,缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。
在现实世界的应用中,数据需要不断更新以反映最新的发展,生成的内容必须是透明可追溯的,以便控制成本并保护数据隐私。因此,简单依赖于这些 “黑盒” 模型是不够的,我们需要更精细的解决方案来满足这些复杂的需求。
正是在这样的背景下,检索增强生成技术(Retrieval-Augmented Generation,RAG)应时而生,成为 AI 时代的一大趋势。
RAG 通过在语言模型生成答案之前,先从广泛的文档数据库中检索相关信息,然后利用这些信息来引导生成过程,极大地提升了内容的准确性和相关性。RAG 有效地缓解了幻觉问题,提高了知识更新的速度,并增强了内容生成的可追溯性,使得大型语言模型在实际应用中变得更加实用和可信。RAG 的出现无疑是人工智能研究领域最激动人心的进展之一。
本篇综述将带你全面了解 RAG,深入探讨其核心范式、关键技术及未来趋势,为读者和实践者提供对大型模型以及 RAG 的深入和系统的认识,同时阐述检索增强技术的最新进展和关键挑战。
- 论文原文:https://arxiv.org/abs/2312.10997
- 官方仓库:https://github.com/Tongji-KGLLM/RAG-Survey
RAG 是什么?
图 1 RAG 技术在 QA 问题中的案例
一个典型的 RAG 案例如图所示。如果我们向 ChatGPT 询问 OpenAI CEO Sam Atlman 在短短几天内突然解雇随后又被复职的事情。由于受到预训练数据的限制,缺乏对最近事件的知识,ChatGPT 则表示无法回答。RAG 则通过从外部知识库检索最新的文档摘录来解决这一差距。在这个例子中,它获取了一系列与询问相关的新闻文章。这些文章,连同最初的问题,随后被合并成一个丰富的提示,使 ChatGPT 能够综合出一个有根据的回应。
RAG 技术范式发展
RAG 的概念首次于 2020 年被提出,随后进入高速发展。RAG 技术的演进历程如图所示,相关研究进展可以明确地划分为数个关键阶段。在早期的预训练阶段,研究的焦点集中在如何通过预训练模型注入额外的知识,以此增强语言模型的能力。随着 ChatGPT 的面世,对于运用大型模型进行深层次上下文学习的兴趣激增,这推动了 RAG 技术在研究领域的快速发展。随着 LLMs 的潜力被进一步开发,旨在提升模型的可控性并满足不断演变的需求,RAG 的研究逐渐聚焦于增强推理能力,并且也探索了在微调过程中的各种改进方法。特别是随着 GPT-4 的发布,RAG 技术经历了一次深刻的变革。研究重点开始转移至一种新的融合 RAG 和微调策略的方法,并且持续关注对预训练方法的优化。
图 2 RAG 技术发展的科技树
在 RAG 的技术发展过程中,我们从技术范式角度,将其总结成如下几个阶段:
朴素(Naive RAG)
前文案例中展示了经典的 RAG 流程,也被称为 Naive RAG。主要包括包括三个基本步骤:
1. 索引 — 将文档库分割成较短的 Chunk,并通过编码器构建向量索引。
2. 检索 — 根据问题和 chunks 的相似度检索相关文档片段。
3. 生成 — 以检索到的上下文为条件,生成问题的回答。
进阶的 RAG(Advanced RAG)
Naive RAG 在检索质量、响应生成质量以及增强过程中存在多个挑战。Advanced RAG 范式随后被提出,并在数据索引、检索前和检索后都进行了额外处理。通过更精细的数据清洗、设计文档结构和添加元数据等方法提升文本的一致性、准确性和检索效率。在检索前阶段则可以使用问题的重写、路由和扩充等方式对齐问题和文档块之间的语义差异。在检索后阶段则可以通过将检索出来的文档库进行重排序避免 “Lost in the Middle ” 现象的发生。或是通过上下文筛选与压缩的方式缩短窗口长度。
模块化 RAG(Modular RAG)
随着 RAG 技术的进一步发展和演变,新的技术突破了传统的 Naive RAG 检索 — 生成框架,基于此我们提出模块化 RAG 的概念。在结构上它更加自由的和灵活,引入了更多的具体功能模块,例如查询搜索引擎、融合多个回答。技术上将检索与微调、强化学习等技术融合。流程上也对 RAG 模块之间进行设计和编排,出现了多种的 RAG 模式。然而,模块化 RAG 并不是突然出现的,三个范式之间是继承与发展的关系。Advanced RAG 是 Modular RAG 的一种特例形式,而 Naive RAG 则是 Advanced RAG 的一种特例。
图 3 RAG 范式对比图
如何进行检索增强?
RAG 系统中主要包含三个核心部分,分别是 “检索”,“增强” 和 “生成”。正好也对应的 RAG 中的三个首字母。想要构建一个好的 RAG 系统,增强部分是核心,则需要考虑三个关键问题:检索什么?什么时候检索?怎么用检索的内容?
检索增强的阶段:在预训练、微调和推理三个阶段中都可以进行检索增强,这决定了外部知识参数化程度的高低,对应所需要的计算资源也不同。
检索增强的数据源:增强可以采用多种形式的数据,包括非结构化的文本数据,如文本段落、短语或单个词汇。此外,也可以利用结构化数据,比如带有索引的文档、三元组数据或子图。另一种途径是不依赖外部信息源,而是充分发挥 LLMs 的内在能力,从模型自身生成的内容中检索。
检索增强的过程:最初的检索是一次性过程,在 RAG 发展过程中逐渐出现了迭代检索、递归检索以及交由 LLMs 自行判断检索时刻的自适应检索方法。
图 4 RAG 核心组件的分类体系
RAG 和微调应该如何选择?
除了 RAG,LLMs 主要优化手段还包括了提示工程 (Prompt Engineering)、微调 (Fine-tuning,FT)。他们都有自己独特的特点。根据对外部知识的依赖性和模型调整要求上的不同,各自有适合的场景。
RAG 就像给模型一本教科书,用于定制的信息检索,非常适合特定的查询。另一方面,FT 就像一个学生随着时间的推移内化知识,更适合模仿特定的结构、风格或格式。FT 可以通过增强基础模型知识、调整输出和教授复杂指令来提高模型的性能和效率。然而,它不那么擅长整合新知识或快速迭代新的用例。RAG 和 FT,并不是相互排斥的,它们可以是互补的,联合使用可能会产生最佳性能。
图 5 RAG 与其他大模型微调技术对比
如何评价 RAG?
RAG 的评估方法多样,主要包括三个质量评分:上下文相关性、答案忠实性和答案相关性。此外,评估还涉及四个关键能力:噪声鲁棒性、拒答能力、信息整合和反事实鲁棒性。这些评估维度结合了传统量化指标和针对 RAG 特性的专门评估标准,尽管这些标准尚未统一。
在评估框架方面,存在如 RGB 和 RECALL 这样的基准测试,以及 RAGAS、ARES 和 TruLens 等自动化评估工具,它们有助于全面衡量 RAG 模型的表现。表中汇总了如何将传统量化指标应用于 RAG 评估以及各种 RAG 评估框架的评估内容,包括评估的对象、维度和指标,为深入理解 RAG 模型的性能和潜在应用提供了宝贵信息。
未来 RAG 还有哪些发展前景?
RAG 的发展方兴未艾,还有哪些问题值得进一步去研究?我们从三个方面进行展望:
1.RAG 的垂直优化
垂直优化旨在进一步解决 RAG 当前面临的挑战;
长下文长度。检索内容过多,超过窗口限制怎么办 ?如果 LLMs 的上下文窗口不再受限制,RAG 应该如何改进?
鲁棒性。检索到错误内容怎么处理?怎么对检索出来内容进行过滤和验证?怎么提高模型抗毒、抗噪声的能力。
与微调协同。如何同时发挥 RAG 和 FT 的效果,两者怎么协同,怎么组织,是串行、交替还是端到端?
Scaling-Law:RAG 模型是否满足 Scaling Law?RAG 是否会,或是在什么场景下会出现 Inverse Scaling Law 的现象?
LLM 的角色。LLMs 可以用于检索(用 LLMs 的生成代替检索或检索 LLMs 记忆)、用于生成、用于评估。如何进一步挖掘 LLMs 在 RAG 中的潜力?
工程实践。如何降低超大规模语料的检索时延?如何保证检索出来内容不被大模型泄露?
2. RAG 的多模态的拓展
如何将 RAG 不断发展的技术和思想拓展到图片、音频、视频或代码等其他模态的数据中?一方面可以增强单一模态的任务,另一方面可以通过 RAG 的思想将多模态进行融合。
3. RAG 的生态
RAG 的应用已经不仅仅局限于问答系统,其影响力正在扩展到更多领域。现在,推荐系统、信息抽取和报告生成等多种任务都开始受益于 RAG 技术的应用。与此同时,RAG 技术栈也在井喷。除了已知的 Langchain 和 LlamaIndex 等工具,市场上涌现出更多针对性的 RAG 工具,例如:用途定制化,满足更加聚焦场景的需求;使用简易化,进一步降低上手门槛的;功能专业化,逐渐面向生产环境。
图 6 RAG 的生态系统概览
#LangChain
弥补大模型短板,说的好厉害的样子~
1 为什么需要LangChain
首先想象一个开发者在构建一个LLM应用时的常见场景。
当你开始构建一个新项目时,你可能会遇到许多API接口、数据格式和工具。对于一个非AI领域的开发者来说,要去研究每一个工具、接口都有着巨大的负担。
现在,假设你要构建一个涉及语言处理的应用,比如一个智能聊天机器人,你可能会想:我难道要一步步去学习如何训练一个语言模型,如何处理各种数据,还要解决所有的兼容性问题吗?
这就是LangChain的价值所在。
LangChain是一个集成框架,它为开发者提供了一系列的工具和组件,使得与语言模型中各种数据(如Google Analytics、Stripe、SQL、PDF、CSV等)的连接、语言模型的应用和优化变得简单直接。
其实,LangChain就好比一把“瑞士军刀”,你不再需要为每一个任务找一个新工具,它提供了一站式的解决方案。正如你要修理一个小小的家用电器,而你已经拥有了一个完整的工具箱。不管你遇到什么问题,打钉子、拧螺丝、剪线,工具箱里总有一个合适的工具等着你。LangChain为你提供了这样的工具箱,不仅涵盖了基础工具,还为个性化需求提供了自定义组件解决方案。
现在,随着LangChain在开发者社区中的受欢迎程度逐渐上升,可以明显地看到使用LangChain的开发者数量呈现激增的趋势。
2023年8月,LangChain开源框架已经收获了惊人的数据:5.82万个星标、557位专注开发者,以及7800位积极的分支开发者。这些数字从深层次上代表了众多开发者对LangChain实用性和未来潜力的坚定认可。
正是因为LangChain连接了开发者和复杂的LLM应用,因此,开发变得更为简单、高效。也因为这种受欢迎程度和媒体报道的广泛传播,越来越多的开发者,不论是LLM领域的还是非LLM领域的,都选择使用LangChain。
2 LLM应用开发的最后1公里
想象一下,一个对编程完全陌生的初学者,正面临着如何与模型进行交互的诸多问题,哪怕是简单的GET或POST请求,都可能成为其开发路上的第一道门槛。而LangChain的存在恰恰能跨越这道门槛,使得LLM应用开发变得触手可及。
首先,LangChain的简洁性让它脱颖而出。开发者只需要写几行代码,就能运行一个大型LLM程序,甚至快速构建一个响应式的机器人。这种简洁性意味着,无论是对于有经验的开发者还是初入此领域的新手,LangChain都能为他们进入LLM应用开发的世界铺平道路。
LangChain还为开发者集成了丰富的内置链组件,为开发者解决了重复编写代码的问题。面对特定的任务,如摘要或问答,LangChain提供了专门的摘要链和问答链,简化了开发流程。Agent的引入将工具和数据库的整合提升到了一个新的层次,使得开发者可以全心投入任务。
借助LangChain,开发者除了可以实现LLM与真实世界的在线数据增强,即RAG(检索增强生成),还能在私有环境中部署模型,或是针对特定任务选择更精确的模型平台及型号,甚至随时切换各大平台推出的新模型。
而对于那些未选择使用LangChain的开发者来说,他们很可能会被各模型平台的接口选择、提示词的编写,以及输出格式的处理等问题所困扰,这些复杂的问题会成为开发过程中的巨大障碍,甚至导致开发者“从入门到放弃”。
在LLM应用开发中,一个经常被遗漏但至关重要的环节是,如何为LLM编写合适的提示词,确保LLM能够准确理解开发者的意图。对于许多开发者,特别是初学者来说,这可能是一个具有挑战性的任务。然而,LangChain为这一问题提供了有力的解决方案。
对于那些在模型提示词编写上感到困惑的开发者来说,LangChain提供了多种模板供选择。这并不仅仅是一些随意整合的模板,而是与各种应用、工具紧密集成的组件,其中包含了大量已经经过实际验证的提示词模板。这意味着开发者无须从零开始编写程序,只需要在LangChain提供的模板中找到与任务相匹配的部分,并进行相应的调整即可。
以SQL查询为例,这是一个对许多开发者来说相对熟悉,但在与LLM结合时可能存在困惑的领域。如果一个开发者刚开始接触如何为SQL编写提示词,他可以轻松地在LangChain中找到SQL组件的提示词模板。这些模板中包括如何编写语法正确的PostgreSQL查询、如何查看查询结果,以及如何返回针对输入问题的答案。更进一步,LangChain提供的提示词模板也包括各种查询的最佳实践,如限制PostgreSQL查询结果、正确使用列名、注意使用当前日期的函数等。
例如,LangChain提供了以下格式化SQL提示词模板(翻译):
1 你是一个PostgreSQL专家。给定一个输入问题,首先创建一个语法正确的PostgreSQL查询来运行,然后查看查询结果,并返回针对输入问题的答案。
2 除非用户明确指定了要返回的结果数量,否则应使用PostgreSQL的LIMIT子句来限制查询结果,最多返回top_k条记录。你可以对结果进行排序,以返回数据库中最有信息价值的数据。
3 绝对不要查询表中的所有列。你只能查询回答问题所需的列。用双引号(")将每个列名包裹起来,表示它们是界定的标识符。
4 注意只使用你在表中可以看到的列名,不要查询不存在的列。此外,要注意哪一列在哪个表中。
5 如果问题涉及“今天”,请注意使用CURRENT_DATE函数获取当前日期。
6
7 使用以下格式:
8
9 问题:这里的问题
10 SQL查询:要运行的SQL查询
11 SQL结果:SQL查询的结果
12 答案:这里的最终答案
13
14 只使用以下表:
15
16 {table_info}
17
18 问题:{input}
想象一下,如果没有LangChain提供的这个提示词模板,当你要开始编写一段SQL查询代码时,会走多少弯路?
LLM应用开发的最后1公里,其意义是确保开发者无须为了一个小细节而多走弯路,正如居民无须跑很远坐公交车一样,每一个关键的细节都能得到及时而准确的处理,使得整个开发过程更为高效。
3 LangChain的2个关键词
在现代软件工程中,如何将庞大复杂的系统划分为更小、更易于管理和使用的部分,已经成了设计和开发的核心考量。在这个背景下,LangChain以“组件”和“链”作为2个关键概念,为LLM应用开发者提供了便利。
首先来谈谈“组件”。
在LangChain中,组件不是代码的拼凑,而是一个具有明确功能和用途的单元。组件包括LLM模型包装器、聊天模型包装器及与数据增强相关的一系列工具和接口。这些组件就是LangChain中的核心,你可以把它们看作数据处理流水线上的各个工作站。每个组件都有其特定的职责,如处理数据的输入输出、转化数据格式。
然而,单纯的组件还不足以满足复杂应用的需求,这时“链”便显得尤为关键。在LangChain的体系中,链是将各种组件连接在一起的纽带,它能够确保组件之间的无缝集成和在程序运行环境中的高效调用。无论是对于LLM还是其他工具,链都扮演着至关重要的角色。举个例子,LLMChain,这是LangChain中最常用的链,它可以整合LLM模型包装器和记忆组件,让聊天机器人拥有“记忆”。
值得一提的是,LangChain并没有止步于提供基础的组件和链。反之,它进一步为这些核心部分提供了标准的接口,并与数据处理平台及实际应用工具紧密集成。这样的设计不仅强化了LangChain与其他数据平台和实际工具的连接,也确保了开发者能在一个开放且友好的环境中轻松地进行LLM应用开发。
以最常见的聊天机器人为例,为了在各种场景中为用户提供自然、流畅的对话体验,聊天机器人需要具备多种功能,包括与用户进行日常交流、获取天气信息及实时搜索。这一设计目标意味着要处理的任务范围覆盖了从简单的日常对话到复杂的信息查询,因此,一个结构化、模块化的设计方案是必要的。
在此背景下,LangChain 的“组件”和“链”提供了极大的帮助。利用LangChain的组件,开发者可以为聊天机器人设计不同的模块,如与用户进行日常交流的模块、获取天气信息的模块及进行实时搜索的模块。每个模块中的组件都具备特定的功能,并专门处理与之相关的任务。例如,当需要回答关于天气的问题时,机器人可以调用“搜索工具组件”来获取天气信息数据。
但是,单纯的组件无法满足机器人的整体运作。为了确保组件之间可以协同工作并为用户提供顺畅的体验,需要用到LangChain的“链”来整合这些组件。例如,当用户询问一个涉及多个组件的问题时,如“今天天气怎么样,同时告诉我量子力学是什么”,LangChain的链就可以确保“搜索工具组件”和“维基百科查询组件”协同工作,为用户提供完整的回答。
具体来说,当用户提出问题时,LangChain提供的API允许机器人执行以下操作:
(1)请求LLM解释用户的输入,并根据输入内容生成对应的查询请求,这可能涉及一个或多个组件;
(2)根据生成的查询请求,激活对应的组件以获取必要的数据或信息;
(3)利用LLM生成基于自然语言的回答,将各组件的返回结果整合为用户可以理解的回答。
通过这种方式,开发者无须深入每一个复杂的处理细节,只需要利用LangChain的API输入用户的问题,并将得到的答案呈现给用户即可。这不仅使聊天机器人能够提供丰富的信息服务,还能确保LLM应用自然而然地融入人们的日常生活,达到设计初衷。
4 LangChain的3个场景
LangChain正在重新定义LLM应用的开发方式,尤其是在问答系统、数据处理与管理、自动问答与客服机器人这3个场景下。以下是对LangChain在这3个场景下作用的分析。
第1个场景是问答系统。问答系统已经成为许多LLM应用的重要组成部分,从简单的搜索工具到复杂的知识库查询工具。LangChain在这方面展现了其出色的能力。当开发者面临需要从长篇文章或特定数据源中提取信息的挑战时,LangChain 可以轻松地与这些外部数据源交互,迅速提取关键信息,然后执行生成操作,以生成准确的回答。
第2个场景是数据处理与管理,如RAG。在数据驱动的当下,RAG成了一个非常热门的LLM应用落地方向。RAG结合了检索和生成两个阶段,为用户提供了更为精准和富有深度的回答。LangChain采用了LEDVR工作流,实现了RAG的功能。
LEDVR工作流将数据处理的每一个步骤标准化,确保了数据从输入到输出的完整性和准确性。首先,开发者会使用文档加载器,如WebBaseLoader,从外部数据源导入所需的数据。这一步确保了数据的完整性和原始性。
接着,数据会被传输到嵌入包装器,如OpenAIEmbeddings中。这一步的主要目的是将每一份文档转化为一个能够在机器学习模型中使用的向量。这个向量能够捕获文档的主要特征,使得后续的处理更为高效。
为了更好地处理大量的数据,LangChain中引入了分块转化步骤。通过使用如RecursiveCharacterTextSplitter这样的工具,文档被切割成更小的数据块。这不仅提高了处理速度,还使得每一个数据块都能得到更为精准的处理。
当所有的数据块都被处理完毕,它们会被存储到向量存储系统,如FAISS中。这个存储系统能够确保数据的安全,同时也能提供一个高效的查询接口。
最后,检索器(如ConversationalRetrievalChain)被用来从向量存储系统中检索相关的文档。这一步结合了用户查询和向量存储系统中的数据,为用户提供了最为相关的回答。
第3个场景是自动问答与客服机器人。在许多在线平台上,客服机器人已经成为用户与公司之间的首要交互点。利用LangChain,开发者成功构建了能够实时响应用户查询的客服机器人。这种实时响应得益于LangChain的Agent功能,其中涉及LLM决策,并根据反馈不断优化交互的过程。这样的设计使客服机器人不仅能够及时响应,还能提供更加精确的信息或解决方案。
LangChain已经在这3个关键场景中展现了强大的潜力,为开发者提供了实用且强大的工具,使开发者可以更加高效地实现各种开发需求。
5 LangChain的6大模块
针对LLM应用开发者的需求,LangChain推出了6大核心模块。
如图1所示,这些模块覆盖了从模型I/O到数据增强,从链到记忆,以及从Agent到回调处理器的全方位功能。
借助这些模块中的包装器和组件,开发者能够更为方便地搭建LLM应用。
图1
1. 模型I/O(Model IO):对于任何大语言模型应用来说,其核心无疑都是模型自身。LangChain提供了与任何大语言模型均适配的模型包装器(模型I/O的功能),分为LLM和聊天模型包装器(Chat Model)。模型包装器的提示词模板功能使得开发者可以模板化、动态选择和管理模型输入。LangChain自身并不提供大语言模型,而是提供统一的模型接口。模型包装器这种包装方式允许开发者与不同模型平台底层的API进行交互,从而简化了大语言模型的调用,降低了开发者的学习成本。此外,其输出解析器也能帮助开发者从模型输出中提取所需的信息。
2. 数据增强(Data Connection):许多LLM应用需要的用户特定数据并不在模型的训练集中。LangChain提供了加载、转换、存储和查询数据的构建块。开发者可以利用文档加载器从多个来源加载文档,通过文档转换器进行文档切割、转换等操作。矢量存储和数据检索工具则提供了对嵌入数据的存储和查询功能。
3. 链(Chain):单独使用LLM对于简单应用可能是足够的,但面对复杂的应用,往往需要将多个LLM模型包装器或其他组件进行链式连接。LangChain为此类“链式”应用提供了接口。
4. 记忆(Memory):大部分的LLM应用都有一个对话式的界面,能够引用之前对话中的信息是至关重要的。LangChain提供了多种工具,帮助开发者为系统添加记忆功能。记忆功能可以独立使用,也可以无缝集成到链中。记忆模块需要支持两个基本操作,即读取和写入。在每次运行中,链首先从记忆模块中读取数据,然后在执行核心逻辑后将当前运行的输入和输出写入记忆模块,以供未来引用。
5. Agent:核心思想是利用LLM选择操作序列。在链中,操作序列是硬编码的,而在Agent代理中,大语言模型被用作推理引擎,确定执行哪些操作,以及它们的执行顺序。
6. 回调处理器(Callback):LangChain提供了一个回调系统,允许开发者在LLM应用的各个阶段对状态进行干预。这对于日志记录、监视、流处理等任务非常有用。通过API提供的callbacks参数,开发者可以订阅这些事件。
#Mobile ALOHA
这年头,机器人真的要成精了,带回家后是个做家务的小能手。斯坦福开源的机器人厨子,今天又接手了所有家务
烹饪几道美食手到拈来,一会儿功夫速成大餐:滑蛋虾仁、蚝油生菜、干贝烧鸡,不知道的还以为是真人厨师做成的:
备菜环节也是做的有模有样,只见它熟练的拿出一颗生菜切掉根部,然后轻轻的敲打鸡蛋放入碗中:
打蛋环节还知道要把蛋壳丢到一边,看样子是个讲究的机器人,再也不怕吃煎蛋时意外吃到蛋壳的惊吓了:
煎炒环节机器人进行不停地翻炒,以免糊锅:
还不忘给蚝油生菜注入灵魂蒜末。这次咱不用菜刀拍蒜,普通的水果刀也能切出蒜泥来,可见刀功了得:
最后将做好的酱汁淋到生菜上,一道色香味俱全的家常菜就完美出盘:
你以为机器人会做美食就已经是它的极限了,你不知道的是,它打扫起房间来也是一把好手。
早晨起来给阳台的绿植浇浇水,即使出差在外,也不怕花花草草们「渴死」:
眼里时刻有活儿,地板脏了就拖拖地:
用胶囊咖啡机冲泡一杯咖啡,让你用百分百精力开始今天的工作:
帮男生刮胡子,如果力道拿捏不准,这活还真不敢交给机器人:
猫主子也不再孤单,家里又多一位「铲屎官」陪它玩耍:
衣服脏了,还会帮你洗衣服,打开、拧好洗衣液盖子都是凭自己的本事完成的:
就连套枕套这样的技术活,也难不倒它:
将洗好的衣服进行悬挂,机器人能精准地找到拉链,把拉链扣扣在一起,帮你拉好衣服,然后悬挂起来:
当众给大家表演一个如何开瓶盖:
睡觉时间帮你掖好被子,熄灯晚安。机器人的一天总算是结束了。
Mobile ALOHA 会的还很多,没看够?点击下方视频,观看更多它的神操作。
看到这,真的不敢相信这是机器人可以做到的,妥妥一个全职管家。
根据机器人的材料清单来看,这款机器人的总成本约为 32000 美元,折合人民币约 22 万,软件和硬件全部开源。
材料清单
研究介绍
在机器人技术领域,从人类示范中进行的模仿学习已经取得了令人瞩目的成绩。然而,大多数成果都集中在桌面操作上,缺乏完成一般任务的移动性和灵活性。那这位价值 32000 美元(约 22 万元)的私人管家兼「御用」大厨是怎么完成这些灵活且细致的工作的呢?我们一起看看隐藏在它背后的技术细节。
在这项工作中,研究者开发了一套系统,用于模仿需要全身控制的双臂移动操作任务。用于数据收集的全身远程操纵系统是移动 ALOHA。它通过一个移动底座和一个全身远程操作界面增强了 ALOHA 系统。利用 Mobile ALOHA 收集的数据,该研究进行了有监督的行为克隆,并发现与现有静态 ALOHA 数据集进行联合训练可提高移动操作任务的性能。
通过对每个任务进行 50 次演示,联合训练可将成功率提高 90%,从而使 Mobile ALOHA 能够自主完成复杂的移动操作任务,例如炒虾、打开双门壁柜存放沉重的烹饪锅、呼叫并进入电梯以及使用厨房水龙头轻轻冲洗用过的平底锅。
- 论文地址:https://mobile-aloha.github.io/resources/mobile-aloha.pdf
- 项目地址:https://mobile-aloha.github.io/
- 技术文档:https://docs.google.com/document/d/1_3yhWjodSNNYlpxkRCPIlvIAaQ76Nqk2wsqhnEVM6Dc/edit
Mobile ALOHA 硬件
Mobile ALOHA 是一种低成本的移动机械手,可以执行各种家庭任务。Mobile ALOHA 继承了原始 ALOHA 系统的优点,即低成本、灵巧、可维修的双臂远程操作装置,同时将其功能扩展到桌面操作之外。研究者在研究过程中重点考虑了四个关键因素
1. 移动性:移动速度与人类行走速度相当,约为 1.42 米 / 秒。
2. 稳定性:在操作重型家用物品时它能保持稳定,如锅和橱柜。
3. 全身遥控操作:所有自由度均可同时进行遥控操作,包括双臂和移动底座。
4. 无绳:具有机载电源和计算设备
图 2(左)展示了研究者发现将操作员的腰部与移动底座系在一起的设计是最简单直接的解决方案。
图 2(中)中的数据表明,机械手相对于地面的垂直高度为 65 厘米至 200 厘米,可伸出底座 100 厘米,可举起 1.5 千克重的物体,并可在 1.5 米高处施加 100 牛的拉力。这样的设计让 Mobile ALOHA 可以完成很多任务,包括实物烹饪、家务管理、人机互动等。
图 2(右)中列出了 Mobile ALOHA 的更多技术规格。除了现成的机器人外,研究者还开源了所有的软件和硬件部件,并提供了详细的教程,包括三维打印、组装和软件安装。我们可以在项目页面找到这些信息。
利用静态 ALOHA 数据进行联合训练
研究者在这项工作中使用联合训练 pipeline,利用现有的静态 ALOHA 数据集来提高移动操作的模仿学习性能,尤其是双臂动作。静态 ALOHA 数据集总共有 825 个示范动作,任务包括密封密封袋、拿起叉子、包装糖果、撕纸巾、打开带盖塑料瓶、玩乒乓球、分发胶带、使用咖啡机、交接铅笔和操作螺丝刀等。
需要注意的是,静态 ALOHA 数据都是在黑色桌面上收集的,两只手臂固定朝向对方。这种设置与移动 ALOHA 不同,移动 ALOHA 的背景会随着移动底座的变化而变化,两臂平行朝前放置。在联合训练中,研究者没有对静态 ALOHA 数据中的 RGB 观察结果或双臂动作使用任何特殊的数据处理技术。
任务
研究者选择了 7 个任务,它们涵盖了现实应用中可能出现的各种功能、对象和交互。图 3 举例说明了这些任务,它们分别是擦拭葡萄酒、煮虾、冲洗锅、使用橱柜、呼叫电梯、推椅子和击掌。
实验
实验的目的是回答两个核心问题:
(1)Mobile ALOHA 能否通过协同训练和少量的移动操控数据获得复杂的移动操控技能?
(2)Mobile ALOHA 是否可以与不同类型的模仿学习一起使用,包括 ACT、Diffusion Policy 和基于检索的 VINN 。
表 1 为协同训练提高 ACT 的结果。在协同训练的帮助下,机器人擦酒成功率 95%、呼叫电梯成功率 95%、冲洗盘子成功率为 80% 等。
协同训练提高了机器人在 7 项任务中 5 项的性能提升,分别提高了 45%、20%、80%、95% 和 80%。对于其余两项任务,协同训练和不进行协同训练的成功率相当。该研究发现协同训练对于精确操作是瓶颈的子任务更有帮助,例如按下按钮、翻转虾和打开水龙头。
在表 2 报告了 Mobile ALOHA 在 2 个现实任务(擦酒和推椅)上的协同训练和无协同训练的成功率。
#Galactica
2022年10月30日,ChatGPT的横空出世,仅用几天的时间就改变了包括学术界在内的各行各业的,在OpenAI的成果的光辉下,有一个独特的模型,来自Meta团队的Galactica在ChatGPT三天前上线就被迫下线,这一度成为了LeCun教授的意难平。
顺着LeCun的意难平,来自上海交通大学的团队,将这一颇具潜力的模型引入到了地球科学领域。
使用Galactica作为基座的地学模型
首先让我们回顾一下Galactica。Galactica最初在⼤量的科学⽂献上进⾏预训练,包括超过 4800 万篇论⽂、教科书、讲义、数百万种化合物和蛋⽩质知识、科学⽹站、百科全书等。
虽然Galactica⽣成的⽂本存在⼀定的不严谨性,但由于其在处理学术⽂献等问题上具有先天的优势,因此仍然是某些场景下合适的选择。
上海交通大学团队在五月份推出70亿参数的地学⼤语⾔模型K2(https://github.com/davendw49/k2)之后,于七⽉份正式完成了300亿参数的地学⼤语⾔模型GeoGalactica的训练。
Galactica的训练语料库主要涵盖与计算机科学和⽣物化学相关的⽂献,相对⽽⾔地球科学领域的覆盖较少,为了丰富Galactica在地球科学领域的专业知识,他们收集了⼤约600万篇专⻔针对地球科学的研究论⽂,这些论⽂由地学领域的专业专家精⼼挑选。
此外,GeoGalactica还扩展了基于K2的GeoSignal数据集,以更全⾯地⽀持地球科学研究中的⾃然语⾔处理任务,扩展后的数据集⽤于进⼀步预训练后的模型微调。
通过不断的改进和训练,GeoGalactica作为其更进一步探索大语言模型在地学领域的能力的演进版本展现出了更⾼⽔平的地学的科学语⾔⽣成能⼒。
市⾯上涌现出诸如GeoGPT、SkyGPT、SpaceGPT等⾃然科学⼤模型,进⼀步凸显了地球科学等自然科学领域的多样性和复杂性。这⼀系列模型的问世为地学研究提供了新的视⻆和⼯具。
目前,关于GeoGalactica的文章已经以技术报告的形式放在了arXiv上,代码和相关资源也在Github上公开。
Paper: https://arxiv.org/abs/2401.00434
Code: https://github.com/geobrain-ai/geogalactica
在地学这一博大精深的领域中,GeoGalactica大模型以其更贴近地球科学专业知识的特色,成为了地球科学领域学生和研究者的新利器。它不仅继承了Galactica模型在学术问答方面的先进性,更专注于为地球科学科学家们解读和摘要科学论文,提升研究效率。
今天,我们将深入了解GeoGalactica如何利用大数据和机器学习技术,辅助地学专家高效获取信息,提炼知识精华,同时在AI伦理的框架内稳步发展,推动科学的进步。虽然Galactica的航程遭遇暂时挫折,但GeoGalactica承载着其理念,继续在科学的海洋中破浪前行。
图:GeoGalactica模型的全貌。本图主体由Midjourney绘制,经手动微调后完成。整个画面由不同地貌的场景组成,突出GeoGalactica大模型在地学信息处理方面的垂类特色,图像逐步从具象的自然和人造景观转化为抽象的数据和信息流,寓意信息从原始形态向数字化转换的过程。
GeoGalactica的数据处理和准备
首先,GeoGalactica在⼤约600万篇专⻔针对地球科学的研究论⽂,这些论⽂由地学领域的专业专家精⼼挑选。加上原本的arXiv的论文以及代码数据,累计使用了65B Tokens的语料。
在这个过程中,交大团队还开源了他们进行数据处理的脚本(https://github.com/davendw49/sciparser),下图展示了脚本处理的效果,同K2模型一样,所有的数据均转换成Markdown的形式进行训练。
此外,GeoGalactica还扩展了基于K2的GeoSignal数据集,基于上海交通大学团队的若干平台项目以及8个地学的开源平台。他们将这些结构化网站进行重构,构建了一批SFT的训练数据。
经过一系列的数据构建,最后我们可以看到训练数据的多样性:
DCU集群的训练
Further Pretraining
借助Megatron-LM框架,GeoGalactica在基于Hygon DCU架构的超级计算集群上,对Galactica模型进行在专业地学语料上进行了更进一步的预训练,以增强其在专业领域的理解和⽣成能⼒。
计算集群包括512个节点,每个节点配备了32核CPU、128GB内存和4个DCU加速卡,每个卡具有16GB内存。总共调用了2048个加速卡,其中每个卡提供的计算能⼒约为NVIDIA A100 GPU的0.2倍。
为了最⼤限度地提⾼GPU性能,同时最⼩化通信开销,Megatron-LM框架在训练过程中采⽤了各种并⾏策略,如流⽔线并⾏、模型并⾏和数据并⾏。考虑到每个节点有4个加速卡,为了⾼效的模型并⾏执⾏,模型并⾏⼤⼩为4。
此外,当使⽤迷你批处理⼤⼩为1时,设置流⽔线并⾏⼤⼩等于或⼤于16,以充分利⽤可⽤的内存资源。
Supervised Fine-Tuning
为了使模型适应特定的任务或在某些领域提⾼其性能,交大团队在预训练之后,对GeoGalactica使⽤自研GeoSignal v2数据集,进⾏SFT。这个过程使模型能够适应特定任务或在某些领域提⾼性能。
GeoGalactica使⽤SFT来提⾼预训练模型模型在地球科学任务上涉及专业知识的问答能力。这⼀过程对于有效地将high-level语⾔能⼒转移到地球科学特定任务以及保持预训练期间获得的模型泛化性能⾄关重要。
GeoGalactica进⾏了两个阶段的SFT。在第⼀阶段,通过Alpaca指令微调数据将模型与⼈类进⾏了对⻬,⽽在第⼆阶段
使⽤了继承自K2大模型并进一步完善的GeoSignal v2。SFT的训练曲线如下:
Tool Learning
此外,模型可以被设计成与各种⼯具(⽐如浏览器、数据库或其他软件界⾯)交互并从中学习。模型可以执⾏需要外部信息或特定功能的更复杂的任务。
为了让地球科学领域的⼤规模模型能够充分利⽤⼯具API的功能,GeoGalactica基于ToolBench数据集构造了一批地学文献搜索工具的训练数据并和ToolBench中的相关工具数据一并作为SFT数据。训练数据在提示词中明确了⼯具的描述以及相应的API参数说明。模型训练完成后,模型会在对应提示词的引导下调用相关的工具。
对于给定的问题,GeoGalactica⾸先输出相关的API调⽤(思考、动作、动作输⼊),以获取外部⼯具返回的结果。然后,这些结果被⽤作观察,反馈到模型中,⽣成新⼀轮迭代所需的新思考、动作和动作输⼊(如果需要进⼀步的⼯具调⽤)。这个过程⼀直持续,直到模型收集到⾜够的信息并输出最终答案。
此次交大团队公布的论文还详细记录了从continue-pretraining到tool learning整个过程中的训练细节,甚至包括了各种试错经历。
Galactica还行,GeoGalactica可以!
为了评估GeoGalactica对地学科学知识的掌握程度,评估分为两部分。⾸先是沿用在K2开发过程中积累的GeoBench进⾏⾃动评估,其次是在地学科学领域的⼦任务上进⾏的⼈⼯评估。
自动评估
在⾃动评估部分,上海交通大学团队使⽤了GeoBench和MMLU进行评估。其中GeoBench是⼀个专⻔设计⽤于评估和测试⼤模型的地球科学理解和能⼒的基准⼯具。它侧重于评估模型如何处理和⽣成涉及地理和地质信息的响应。可以观察到更⼤、更学术的模型优于NPEE这样倾向于学术研究的基准。
然⽽,他们在AP学习等基准测试中表现不佳,AP学习更倾向于基础教育。这种差异可能是由指导模型思考更⾼级知识的训练数据造成的。训练数据是学术研究成果,即论⽂,这可能会导致对基础知识的偏离和缺乏。
Galactica拥有300亿个参数,但在⼀般的基准任务中,它的表现往往⽆法超过拥有70亿个参数的Llama,⽽建⽴在Galactica的GeoGalactica超越了建⽴在Llama之上的K2。
从MMLU结果可以明显看出,在处理了600万份与地球科学相关的⽂献⽂档后,模型的特定技能,如代数、⽣物学、化学和数学,都得到了改善。这⼀现象似乎与关注数学地质学、⽣物地球科学和化学地质学的论⽂有关,突显了地球科学的跨学科性质。值得注意的是,可能是由于语料库中包含GitHub代码,机器学习能力也在训练之后得到了显著增强。
总体⽽⾔,与地球科学密切相关的学科,包括与地质学及其⼦领域有逻辑联系的学科,取得了显著进展。然⽽,与地球科学⽆关的学科结果,如医学遗传学、医学和电⽓⼯程,表现都有所下降。除此之外,GeoGalactica和最初的Galactica在数学相关科⽬的平均表现相似。
人工评估
参考k2的⼈⼯评估中定义的开放性问题的评价指标:科学性、正确性和连贯性。
- 科学性:它表示⽣成的内容是否看起来像是地球科学专业⼈员会说的话。
- 正确性:从地球科学专家的⻆度来看,模型是否说服你,以及获取的信息是否正确。
- 连贯性:该指标⽤于评估模型的⼀致性和连贯性,即⽂本是否始终讨论特定主题并且读起来是否流畅。
每个评价指标分成三个等级,分数越⾼越好。基于三个评价指标可以计算累积分数。评估参与者将从所有六个模型中收到相同输⼊的回复,专家评委将按照1、2、3、4、5和6的顺序对这些模型进⾏评分。
最后,将计算每个模型的平均排名。具体的评估内容在论文中均有公开透明的记录。下面这边展示两个具体场景的实例展示:
名词解释
给论文命名
我们可以发现,这些问题是属于我们平时科研中经常遇到的,GeoGalactica继承Galactica的特征,在学术场景下是地学科研工作者又一探索的选择。
地学+AI的发展的速度越来越快
通过在⼴泛的地球科学学术数据集上进⾏训练,并利⽤地球科学领域的知识密集型指令进⾏微调,GeoGalactica在地球科学⾃然语⾔处理(NLP)任务中表现优于现有模型。GeoGalactica得到了资深地球科学家的验证,进⼀步证了它的有效性。
GeoGalactica的发布⽬标在于为推动⼈⼯智能在地球科学领域的发展做出积极贡献。在这个过程中,地学+AI的发展的速度越来越快,从之前的40年的时间间隔,到现在已经基本上做到了实时响应的效果。
结语
随着计算机科技的⻜速发展,地学领域的⼤规模模型研究正经历着翻天覆地的变⾰。在计算机技术的引领下,地学⼤模型研发周期显著缩短。
GeoGalactica的快速诞⽣计算机的前沿技术可以很好的适配地学这样的自然科学的领域,极⼤地推动了地学领域的前沿研究。
我们也期待,在未来有越来越多的垂直领域的基于这些大模型的应用和探索!
关于Deep-time Digital Earth
GeoGalactica是继K2之后又一个在深时数字地球(DDE)国际大科学计划的号召下,利用计算机的前沿技术深入地学领域进行数据分析、任务需求探索以及共商共建的科研项目。
DDE 国际大科学计划是由中国地质大学王成善院士,中国科学院地理科学与资源研究所周成虎院士等中国地球科学的科学家领导的,致力于建设一个为应对全球科技挑战、支撑全球或者区域命运共同体提供社会所需知识的国际平台来实现聚合全球地学大数据,构建数据驱动的地球科学发现的目的。