前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过 AutoGrad 来理解 TextGrad ,反向传播中的自动微分

通过 AutoGrad 来理解 TextGrad ,反向传播中的自动微分

作者头像
掘金安东尼
发布2024-07-25 12:51:26
460
发布2024-07-25 12:51:26
举报
文章被收录于专栏:掘金安东尼

DSPy 很牛,它不同于 RAG 的思路(建立本地知识库,给提示语更专业的背景知识),DSPy 做了两件事情,第一是它将大模型的执行分解成为一个流程,也可以称之为“程序”,然后引入优化器,可以微调、自我反馈流程中的每个步骤。

最终的目的是每个步骤在隔离状态下都运行良好,再合成运行也一样良好。

在这个过程中的自我反馈,也就是大模型给每个步骤的微调打分,也叫做:文本梯度。

TextGrad 更牛,它将这种梯度类比扩展到自动微分。

如果对自动微分有点忘,没关系,前文有说过:PyTorch 中 AutoGrad:

前向传播中,神经网络通过对输入数据的处理来预测,通过计算损失函数,判断预测与目标值差异;自动求导系统会记录所有操作,包括输入、输出、权重数据等参数;

前向传播之后,开始反向传播,自动求导计算损失函数对于上面参数的梯度,采用微积分链式法则(传统的自动微分中通过链式法则计算梯度),自动求导每个张量损失的偏导;

这样一番前向、后向遍历之后,更新梯度、优化算法,从而提高模型的预测能力。

自动微分意味着可以自动计算复杂函数的导数!

噢!那 TextGrad 想必也是一样的?!确实如此。

一句话定义:TextGrad 是一个文本梯度的自动微分引擎。

TextGrad 是如何工作的?

一图胜千言:

在这里,当前向函数是 LLM 调用时,使用 ∇LLM 作为梯度算子,函数返回自然语言反馈,比如:

“这个预测可以通过……改进”,反馈描述如何修改变量以改进下游目标,就类似于优化中的梯度。

使用评估收集对预测变量的反馈。然后,根据这个反馈和 (Prompt LLM −−→ Prediction) 调用;

在 TextGrad 中,目标可以是复杂且可能不可微分的函数,函数的域可以是非结构化数据。

小结

梯度的反向传播是深度学习的驱动力,对于黑箱 AI 系统的复合系统,可以构建类似的基于文本反馈的反向传播,形成 TextGrad 基础。

后续文章再深入这个反向传播的具体流程~

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 小结
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档