李宏毅LLM笔记: AI Agent

1 RL时代的agent

  • 人为定reward function
  • 不同task不同的参数

2 LLM视角下的AI agent

  • agent就是LLM
  • 用文字(现在有些多模态任务可以直接是图片/语音)表述环境
  • action也是文字,需要某种方式转换为实际环境中的action
  • 从语言模型的角度看,依靠语言模型已经有的"文字接龙"的能力,看看能不能直接把他们当作agent来使用
  • 相当于不train,只是语言模型的一种应用
  • LLM可以将任何文字作为observation和action
  • 有些问题解决不了的时候,可以调用各式各样的工具,解决之前解决不了的问题

2.1 Generative Agents: Interactive Simulacra of Human Behavior 202304 arxiv

  • 里面的npc都是用语言文字来运行的
  • 每个npc都有人为设定的目标,npc都会观察环境咨询(文字)
  • 根据这些observation做出自己的动作(输出文字)
  • 需要一个转译器把文字转换成动作(在这里对应的agent真走到床头)

2.2 AutoKaggle: A Multi-Agent Framework for Autonomous Data Science Competitions 202410 arxiv

  • 提供目标的文字描述
  • 提供LLM训练资料(observation 1)
  • 根据observation 写程序(action 1)
  • 得到训练结果(准确率等)(observation 2)
  • 根据准确率(observation 2)重新写程序
  • 刚才是回合制的互动
  • 在很多地方action还没执行完的时候,外在环境就变了,需要立刻改变行动(比如语音对话)
    • 对话可能会互相打断/互相提供回馈
    • 有时候需要马上停下来开启下一轮对话

Full-Duplex-Bench: A Benchmark to Evaluate Full-duplex Spoken Dialogue Models on Turn-taking Capabilities 202503 arixv------衡量现在语音模型的互动能力

3 根据经验调整行为

  • 机器学习时代:需要调整参数
  • 但现在不train LLM
  • 那LLM参数,如何改变行为?
    • 直接把错误的信息给他当作下一轮的observation,他就会写对了
    • ------因为对于LLM来说,不同的输入,输出的信息不同
    • 当现在提供的输入信息是报错的时候,接龙的内容就可能是对的
  • 比如我每次执行一个action,都得到一个observation,假如我要在第10000轮才能得到最终的答案
  • 理论上来说,我把之前所有的observation和action当作记忆,最终能得到需要的答案
  • 但受到算力等的限制,我无法一次性将所有之前的observation和action当作记忆提供给LLM
  • 此时就需要一个类RAG的机制,从memory里面提取有关的observation和action(经验),当作下一轮action可以看到的observation

StreamBench: Towards Benchmarking Continuous Improvement of Language Agents 202406的结论是,提供给正向的经验是有用的,很多时候提供负向的经验反而在"帮倒忙"

但倘若我把所有无关紧要的经验全部放在memory里面,可能会把observation塞爆

  • 解决方法是可以设计一个write模组,决定什么数据write进memory,什么数据丢弃
  • write可能也是一个LLM,或者ai agent自己
    • 根据observation和action,问这个经验值不值得被记录进memory
  • 当然也可以设计一个reflection模块,对记忆中的数据做更high level 的重新整理'
  • 得到一些总结,反思后的观点

比如GraphRAG和HippoRAG,对memory进行reflection之后构建知识图谱

4 ai agent使用工具

工具只要使用就可以,内部怎么做的不用管(举了一个肥宅修电脑的比喻。。。)

4.1 如何使用工具?

这是一种通用的LLM调用工具的方法

问题(user prompt)连同前面的system prompt给语言模型

如果LLM觉得要用指令的画,就会输出调用这个工具对应的指令

但此时指令也是一串文字,还无法真正地调用对应的功能

  • 需要自己帮程序把"桥梁"搭建好(调用)
  • 将<tool>里面的内容丢给称作temporature的function,得到output的结果
  • 怎么调用,怎么输出,都是Agent开发者自己要定好的流程

4.2 调用语音工具

Speech-Copilot: Leveraging Large Language Models for Speech Processing via Task Decomposition, Modularization, and Program Generation 202407

  • 如果不做特殊处理,纯文字模型是回答不了涉及语音的问题的
  • ------>让文字模型使用一堆语音相关的工具
    • 需要叙述每个工具是什么作用

4.3 如果工具过多怎么办?

OctoTools: An Agentic Framework with Extensible Tools for Complex Reasoning 202502

类似于工具的RAG

CRAFT: Customizing LLMs by Creating and Retrieving from Specialized Toolsets 202309

语言模型也可以自己打造工具(自己写一个function,当作工具放到工具包里面)

4.4 工具自己也会犯错------那LLM知不知道工具在犯错

看起来有一定程度的判断力

4.4.1 什么样的外部知识比较容易说服LLM?

How faithful are RAG models? Quantifying the tug-of-war between RAG and LLMs' internal prior 202404

  • 首先先问LLM,药物的最大剂量是多少
    • 得到内部知识是20mg
  • 提供LLM医学报告
    • 最大剂量是30,60时,LLM选择相信RAG(外部知识)
    • 最大剂量是3,300时,LLM选择相信自己的内部知识
  • ------>如果外部只是知识和内部知识的差距过大,那就不会相信外部知识
  • ------>模型本身对内部信息的信念强度,对于发生动摇的可能性有影响

Do Metadata and Appearance of the Retrieved Webpages Affect LLM's Reasoning in Retrieval-Augmented Generation?

  • 模型倾向于相信日期较新的外部知识

5 LLM有能力做计划么?

  • 直接让语言模型产生规划(看到第一个observation后,让LLM生成计划)
  • 把plan放到observation里面,当作输入的一部分,
  • 可是,外部环境有随机性,导致原有计划不一定能正常进行
  • 每一次observation后,重新思考一下要不要修改计划
    • 如果需要修改的话,重订计划

5.1 TravelPlanner

直接让LLM调用工具生成规划是不太现实的

Large Language Models Can Solve Real-World Planning Rigorously with Formal Verification Tools 说已经解决了这个问题

5.2 强化AI Agent的规划能力

遍历所有可能的动作路线

但是这样需要遍历的时间太长

解决方法是不尝试一些看起来没有希望的路径

模型自己问自己:这一条路径还有必要继续搜么?

遍历+去掉不可能的路径(LLM的置信度低于某个阈值就不做了)

Tree Search for Language Model Agents 202407arxiv

这样遍历的一个缺点是,有些动作一旦做了就无法回溯(比如我定了个披萨,即使后续发现这个不是最佳路线,也无法撤回订单了,因为人家都已经做了)

一个想法是,之前所有的"遍历"都是模型自己"脑海里"的模拟

这就是一个案例:让模型自己去想做了某个action之后会发生什么

相关推荐
槑槑紫26 分钟前
深度学习pytorch整体流程
人工智能·pytorch·深度学习
盼小辉丶39 分钟前
TensorFlow深度学习实战——去噪自编码器详解与实现
人工智能·深度学习·tensorflow
胖达不服输1 小时前
「日拱一码」020 机器学习——数据处理
人工智能·python·机器学习·数据处理
I'm写代码1 小时前
el-tree树形结构笔记
javascript·vue.js·笔记
吴佳浩1 小时前
Python入门指南-AI模型相似性检测方法:技术原理与实现
人工智能·python·llm
kebijuelun2 小时前
百度文心 4.5 大模型详解:ERNIE 4.5 Technical Report
人工智能·深度学习·百度·语言模型·自然语言处理·aigc
算家计算2 小时前
ComfyUI-v0.3.43本地部署教程:新增 Omnigen 2 支持,复杂图像任务一步到位!
人工智能·开源
新智元2 小时前
毕业 7 年,身价破亿!清北 AI 天团血洗硅谷,奥特曼被逼分天价股份
人工智能·openai
新智元2 小时前
刚刚,苹果大模型团队负责人叛逃 Meta!华人 AI 巨星 + 1,年薪飙至 9 位数
人工智能·openai
Andy杨2 小时前
20250707-4-Kubernetes 集群部署、配置和验证-K8s基本资源概念初_笔记
笔记·容器·kubernetes