当前位置: 首页 > news >正文

吴恩达新课程:Agentic AI(笔记7)

作者:此番言

课程地址:learn.deeplearning.ai/courses/agentic-ai

github地址: datawhalechina/agentic-ai

3.6、工具使用 - 代码执行 Tool Use: Code Execution

代码执行(Code execution)是让大型语言模型(LLM)能够编写并运行代码,以解决用户提出的任务。

  • 核心优势:
    • 强大能力: LLM生成的代码方案常常出人意料地聪明和有效,能解决各种复杂任务。

    • 灵活性: 相比于为每个功能手动创建独立工具,让模型自己写代码是一种更灵活、可扩展性更强的方法。例如,一个科学计算器有大量功能按钮,不可能为每个按钮都创建一个工具。

    • 提升应用性能: 许多语言模型的训练者会专门优化模型,以确保其在应用中代码执行功能表现良好。

示例:简单计算器

传统方法:预定义工具集
  1. 场景:构建一个能输入数学文字题并解答的应用。

  2. 方法:创建一系列预定义工具(如 add, subtract, multiply, divide)。

  3. 流程
    • 用户输入:“Add 13.2 and 18.9”。

    • LLM 识别需求,调用 add 工具。

    • 工具执行计算,返回结果 32.1

    • LLM 将结果格式化后返回给用户。

  4. 局限性
    • 面对新需求(如“2的平方根是多少?”),需要不断添加新工具(如 sqrt, exponentiation)。

    • 现代科学计算器功能繁多,为每个按钮都创建独立工具不切实际。

替代方案:让模型自己写代码

方法概述
  • 核心理念:与其逐个实现功能,不如让系统自己编写并执行代码来解决问题。

  • 优势:极大地扩展了模型的能力边界,使其能处理任何可以通过编程解决的问题。

实现步骤
  1. **设计系统提示词 (System Prompt)**:

    • 指令模型:“编写代码来解决用户的问题”。

    • 要求模型将答案以 Python 代码形式返回,并用 <execute_python></execute_python> 标签包裹。

  2. 模型输出

    • 对于查询 “What's the square root of 2?”,模型可能输出:
      <execute_python>
      import math
      print(math.sqrt(2))
      </execute_python>
      
  3. 提取与执行

    • 使用正则表达式等模式匹配技术,从模型输出中提取被标签包裹的代码。

    • 在安全的沙盒环境中执行提取出的代码。

    • 获取执行结果(例如 1.4142135623730951)。

  4. 反馈与格式化

    • 将数值结果传回给 LLM。

    • LLM 根据原始问题,生成一个格式良好的最终答案(例如:“The square root of 2 is approximately 1.4142.”)。

执行代码的方式
  • Python 的 exec() 函数:这是一个内置函数,可以执行传入的任意字符串代码。虽然强大,但也带来了安全风险。

  • 专用工具:存在一些专门用于安全执行代码的工具,可以在更安全的沙盒环境中运行。


进阶:带外部反馈的反思 (Reflection with External Feedback)

  • 概念:当代码执行失败时,将错误信息(如 SyntaxError)反馈给模型。

  • 流程
    1. 模型生成第一版代码草稿。

    2. 执行代码,捕获错误。

    3. 将错误信息连同原始任务一起发送给模型。

    4. 模型反思错误,生成改进后的第二版代码。

  • 效果:通过这种迭代过程,模型有时能修正错误,得到更精确的答案。

安全考量:安全的代码执行 (Secure Code Execution)

  • 核心风险:在沙盒环境外运行由模型生成的任意代码是有风险的。

  • 真实案例
    • 一位团队成员使用的高度代理化代码执行器,曾错误地执行了 rm *.py 命令,删除了项目目录中的所有 Python 文件。

    • 幸运的是,该成员有备份习惯,未造成实质损失。

  • 最佳实践
    • 必须使用沙盒环境:这是保护系统、防止数据丢失或敏感数据泄露的最佳做法。

    • 轻量级沙盒:推荐使用像 Docker 或 E2B 这样的轻量级沙盒环境,它们能有效隔离代码,降低损坏系统或环境的风险。

  • 现实情况:尽管有风险,许多开发者仍会直接执行模型生成的代码而不做过多检查。但为了安全,应坚持使用沙盒。

总结

  • 重要性:代码执行是使代理式应用变得极其强大的关键工具。

  • 行业趋势:许多大型语言模型的训练者会专门优化模型,以确保其在应用中代码执行功能的良好表现。

  • 未来方向
    • 开发者需要手动为代理系统创建并添加工具。

    • 一个新的标准——MCP (Model Context Protocol) 正在兴起,它旨在让开发者更容易地访问一套庞大的工具集,供大型语言模型使用,从而简化开发流程。

http://www.dtcms.com/a/586038.html

相关文章:

  • 记录一次给Dell 10代cpu 重装系统遇到的BitLocker锁相关问题处理
  • Arbess CICD实践(2) - 使用Arbess+GitLab+PostIn实现Go项目构建/主机部署及接口自动化测试
  • 家具用品:撑起家的骨架与温度
  • 响应式网站建设的未来发展6滕州网站建设助企网络
  • 仿网站模板乐清网站制作公司招聘
  • .NET异步编程中内存泄漏的终极解决方案
  • 精读《JavaScript 高级程序设计 第4版》第14章 DOM(一)
  • Tr0ll 1 (VulnHub)做题笔记
  • 南宁建设银行官网招聘网站建设集团是做什么的
  • 【瑞芯微】【rk3128】【移植 qt 5.12.9】
  • 第十章 VLAN间通信
  • 苹果公司基于Transformer架构的蛋白质折叠开源模型SimpleFold-安装体验与比较
  • 网站制作的一般步骤中国建设人才网络学院
  • 长沙哪家做网站设计好网站设计制作的服务和质量
  • ENSP Pro Lab笔记:配置STP/RSTP/MSTP(5)
  • html5网站检测网站标签是什么
  • Java 内存模型(JMM)与 volatile、synchronized 可见性原理
  • 怎么开网站合肥做app公司
  • git本地分支创建
  • 操作系统(11)进程描述与控制--5种IO状态(1)
  • 整体设计 全面梳理复盘 之23 九宫格框架搭建与一体化开发环境设计 编程 之2
  • xm-软件测试工程师面经准备
  • python3.13 windows控制台使用python命令返回空行,python 命令执行失败,cmd python命令执行不显示
  • 电子商务论文8000字公司网站关键词优化
  • 广州网站设计制作报价建立自己的网站需要多少钱
  • 淘宝做导航网站有哪些电商营销策划方案
  • 什么是住宅IP代理?为什么需要家庭 IP 代理
  • 潍坊定制网站搭建手机电子商务网站建设策划书
  • 《巧用 vector 解析 OJ 经典算法:从异或寻数到杨辉三角》
  • LoRA技术原理详解:大模型高效微调的“低秩”智慧