TextGrad:用语言优化大模型驱动的AI系统,解锁更多可能性

原文标题:全新TextGrad框架:用GPT-4o作引擎,自动优化端到端任务

原文作者:机器之心

冷月清谈:

**核心思想**
  • 将LLM视为计算图,用文本反馈实现梯度传递。
  • 统一语言交互界面,兼容多种LLM和API。

应用场景

  • 提示工程:显著提升QA准确率。
  • 模型输出优化:优化代码、科学应用等文本输出。
  • 药物探索:优化药物属性。
  • 放疗计划:自动生成更优计划。

意义

  • 展示了语言驱动优化的可能性。
  • 为解决AI幻觉问题提供了思路。



怜星夜思:


1、TextGrad的主要优势是什么?
2、TextGrad是否适用于所有NLP任务?
3、TextGrad在未来将如何发展?

原文内容

AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:[email protected][email protected]


该文章的作者团队来自于斯坦福大学,共同第一作者团队Mert Yuksekgonul,Federico Bianchi, Joseph Boen, Sheng Liu, Zhi Huang


Mert Yuksekgonul,斯坦福大学博士生,师从James Zou 和 Carlos Guestrin教授。研究方向包括 AI系统自我优化以及其安全性和可靠性。


Federico Bianchi,Xyla AI 工程师, 斯坦福大学博后,师从 Dan Jurafsky 和 James Zou教授。研究方向为机器学习和大语言模型的开发。


Joseph Boen,斯坦福大学博士生,师从James Zou,研究方向为AI在科学中的应用。 


刘晟,美国斯坦福大学博后,师从 James Zou和 Lei Xing 教授,博士毕业于纽约大学数据科学和人工智能。研究方向包括深度学习的安全性和可靠性,多模态大语言模型, 以及AI在生物医疗方向应用。 


黄治,现宾夕法尼亚大学教授, 斯坦福大学博后。博士毕业于普渡大学。研究方向为生物医学工程,AI在病理学的应用。


TextGrad 团队


用文本做梯度下降?!最近,来自斯坦福大学的研究者,推出了全新的 TextGrad 框架, 来高效协调和优化由大语言模型 (LLM) 等组件构成的 AI 系统,自动优化端到端任务性能。



目前,用 GPT-4o 作为引擎的 TextGrad 优化后的 AI 系统能实现:

  • LeetCode-Hard 最好的结果
  • GPQA SoTA
  • 发现新的分子同时兼顾药效和毒性等多个优化目标
  • 设计出超过人工的癌症放疗计划

图片


  • TextGrad website: http://www.textgrad.com/
  • TextGrad paper: https://arxiv.org/abs/2406.07496
  • TextGrad Github:https://github.com/zou-group/textgrad

生成式人工智能正处于从单一模型训练向复杂系统优化的范式转变中,开发合成 AI 系统的原则化自动优化方法成为当下最重要的新挑战之一。如何高效协调优化大语言模型 (LLM) 等 AI 组件,自动优化端到端任务性能,成为当前最紧迫的挑战之一。要说 AI 界有多卷,还得看斯坦福大学。这两天,斯坦福大学的研究者们又放大招了,推出了全新的 TextGrad 框架,为这一难题提供了一种全新的解决方案。借鉴了同是斯坦福发布的 DSPy,融合了 PyTorch 的强大梯度反向传播功能,实现自动优化复杂 AI 系统。本文将深入剖析 TextGrad 的核心理念和优化机制,探讨它的广阔应用前景,展望语言驱动优化的未来图景。

核心思想

TextGrad 将 LLM 应用视为一个计算图 (Computation Graph),以自然语言为媒介实现不同组件之间的 "梯度" 传递。通过从语言模型的输出中反向传播文本反馈到所有可能的早期组件,来优化各种系统中的各种变量。在 TextGrad 中,一切都是文本,这意味着我们使用语言模型来 1)评估输出,2)批评输出,3)更新输入。这一过程有点类似于 PyTorch 的反向传播,只不过传播的不再是数值梯度,而是文本形式的反馈。



这种统一的语言交互界面赋予了 TextGrad 极强的普适性,它将 prompt、question、output 等都视为 variable,不要求其可微,具有超强的兼容性。TextGrad 能和任意支持自然语言 I/O 的 LLM 或者其它 API 无缝协作,也不要求计算图中的其他函数可微。这使得它非常适合集成 retrieval、tool calling 等 plug-and-play 能力,构建灵活多变的复合 AI pipeline。TextGrad 也不需要手工设计 prompt,自动搜索最忧的任务描述直接参与优化。这让开发者从 prompt engineering 中解放出来,有望自动找到更棒的 in-context learning 范式。

TextGrad 能做什么?



1. 提示(prompt)工程 通过 TextGrad 优化的 prompt,能将 GPT-3.5-turbor 的 QA 准确率从 78% 提升到了 92%,而且只需进行少量几次的优化迭代。如果你想复现这个成果并进一步探索 TextGrad,TextGrad 团队已经为你准备好了一个简单的教程。



TextGrad 能被非常简单方便地应用到 prompt engineer(提示工程)上。 

2. 优化模型输出 除了更新模型的 prompt,模型的回答(response)以及文字表示的输出,也能够得到 TextGrad 的优化。上图, TextGrad 优化了 LLM 生成的 LeetCode 问题的代码。

还有更多 AI for science 的应用!

药物探索(Drug Discovery) 

使用 TextGrad,我们可以优化化学结构的两个关键属性:药物相似性(即药物在体内吸收的难易程度)和结合亲和力(即药物与靶蛋白结合的紧密程度)。药物相似性通过 QED 评分来衡量,范围是 0 到 1,1 表示最符合药物特性;结合亲和力通过 Vina 评分来衡量,评分越负越好。

图片


左图:在 TextGrad 优化 10 次迭代前后的分子药物相似性和结合亲和力分布,与针对相同靶蛋白的临床批准药物进行比较。右图:TextGrad 优化 10 次迭代的示例轨迹,比较临床批准药物的属性。

肿瘤放疗治疗计划(Radiotherapy Treatment Planning)

TextGrad 也可以用来优化放射治疗计划,该计划确定放射治疗所需的剂量并精确定位需要治疗的部位。特别是,治疗计划的目标是将规定的辐射剂量传递到肿瘤,同时保护关键的正常组织免受不安全剂量的影响。医生通常通过不断试错,反复调整优化治疗计划,直到计划符合临床要求。这使得整个过程效率低下、耗时且成本高昂。TextGrad 则自动向 AI 主导的规划系统提供梯度,优化放射治疗计划,自动权衡肿瘤和附近健康组织。


TextGrad 用语言打通了不同认知模块之间的屏障。它让 LLM 参与到了自己的迭代优化中,通过内省、评判、创造等 high-level 的认知能力实现持续进化。从本质上看,TextGrad 的意义远不止于优化 pipeline 的性能,它向我们展示了一种通过语言实现 AI 自我认知、自我修正的可能性。这条 “Language-Driven Optimization” 的道路,或许也是目前很多 “幻觉问题” 的一剂良药。TextGrad 已经被应用到解决很多科学和医学方面的问题!更多的应用等着你来探索和发现!


© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:[email protected]

TextGrad最大的优势在于其普适性。它不依赖于任何可微分组件,可以与任何支持自然语言I/O的LLM或其他API无缝协作。这使得它非常适合构建灵活多变的复合AI管道。

TextGrad仍处于早期开发阶段,但它在未来的发展潜力巨大。随着LLM的发展,TextGrad可以利用更强大的语言模型来实现更复杂的任务优化。

从长远来看,TextGrad有可能成为AI系统设计和优化的强大工具,使它们能够自动适应不断变化的任务和环境。

从学术的角度来看,TextGrad 为研究语言驱动优化提供了一个新的视角和方法论。

研究人员还可以探索TextGrad在不同领域的应用,例如自动驾驶汽车、金融和医疗保健。

此外,TextGrad 非常适合优化涉及多个不同组件(例如 LLM、检索模块、工具调用)的任务。它可以协调这些组件并找到它们的最佳配置,从而提高整体性能。

总体而言,TextGrad 具有广泛的适用性,但最好还是根据具体任务的性质和需求来评估其适用性。

TextGrad 非常适合优化科学和医学方面的应用,因为它可以用语言桥接不同认知模块之间的差距,让 LLM 参与到自己的迭代优化中,通过内省、评判、创造等高级认知能力实现持续进化。

虽然TextGrad在NLP任务上表现出色,但它也可能适用于更广泛的领域,只要涉及到需要优化文本输出的情况。例如,它可以用于优化生成式艺术、音乐或代码。

此外,TextGrad可以与其他优化技术相结合,例如强化学习或贝叶斯优化,以进一步提高其性能。

TextGrad另一个优势是它不需要手工设计提示。它可以自动搜索最优的任务描述,让开发者从提示工程中解放出来,有望自动找到更棒的in-context learning范式。

但是,需要注意的是,TextGrad 目前主要针对基于语言的任务进行优化。对于涉及非文本数据(例如图像或音频)的任务,可能需要进行一些调整或修改。