首页 > 其他分享 >开源大语言模型作为 LangChain 智能体

开源大语言模型作为 LangChain 智能体

时间:2024-02-22 21:57:22浏览次数:33  
标签:调用 LangChain 智能 开源 LLM action 工具 tools

概要

开源大型语言模型 (LLMs) 现已达到一种性能水平,使它们适合作为推动智能体工作流的推理引擎: Mixtral 甚至在我们的基准测试中 超过了 GPT-3.5,并且通过微调,其性能可以轻易的得到进一步增强。

引言

针对 因果语言建模 训练的大型语言模型 (LLMs) 可以处理广泛的任务,但它们经常在逻辑、计算和搜索等基本任务上遇到困难。最糟糕的情况是,它们在某个领域,比如数学,表现不佳,却仍然试图自己处理所有计算。

为了克服这一弱点,除其他方法外,可以将 LLM 整合到一个系统中,在该系统中,它可以调用工具: 这样的系统称为 LLM 智能体。

在这篇文章中,我们将解释 ReAct 智能体的内部工作原理,然后展示如何使用最近在 LangChain 中集成的 ChatHuggingFace 类来构建它们。最后,我们将几个开源 LLM 与 GPT-3.5 和 GPT-4 进行基准测试。

什么是智能体?

LLM 智能体的定义非常宽泛: 它们指的是所有将 LLMs 作为核心引擎,并能够根据观察对其环境施加影响的系统。这些系统能够通过多次迭代“感知 ⇒ 思考 ⇒ 行动”的循环来实现既定任务,并常常融入规划或知识管理系统以提升其表现效能。你可以在 Xi et al., 2023 的研究中找到对智能体领域综述的精彩评述。

今天,我们将重点放在 ReAct 智能体 上。ReAct 采用一种基于“推理 (Reasoning)”与“行动 (Acting)”结合的方式来构建智能体。在提示词中,我们阐述了模型能够利用哪些工具,并引导它“逐步”思考 (亦称为 思维链 行为),以规划并实施其后续动作,达成最终的目标。

ReAct 智能体内部工作原理示例

上述图解虽显得有些抽象,但其核心原理其实相当直接。

参见 此笔记本: 我们借助 Transformers 库展示了一个最基础的工具调用实例。

本质上,LLM 通过一个循环被调用,循环中的提示包含如下内容:

这里是一个问题: “{question}”
你可以使用这些工具: {tools_descriptions}。
首先,你需要进行‘思考: {your_thoughts}’,接下来你可以:
- 以正确的 JSON 格式发起工具调用,
- 或者,以‘最终答案:’为前缀来输出你的答案。

接下来,你需要解析 LLM 的输出:

  • 如果输出中包含‘最终答案:’ 字符串,循环便结束,并输出该答案;
  • 若不包含,则表示 LLM 进行了工具调用: 你需解析此输出以获得工具的名称及其参数,随后根据这些参数执行相应工具的调用。此工具调用的结果将被追加至提示信息中,然后你将带有这些新增信息的提示再次传递给 LLM,直至它获得足够的信息来给出问题的最终答案。

例如,LLM 的输出在回答问题: 1:23:45 中有多少秒? 时可能看起来像这样:

思考: 我需要将时间字符串转换成秒。

动作:
{
    "action": "convert_time",
    "action_input": {
    	"time": "1:23:45"
    }
}

鉴于此输出未包含 ‘最终答案:’ 字符串,它代表进行了工具调用。因此我们解析该输出,获取工具调用的参数: 以参数 {"time": "1:23:45"} 调用 convert_time 工具,执行该工具调用后返回 {'seconds': '5025'}

于是,我们将这整个信息块追加至提示词中。

更新后的提示词现在变为 (更为详尽的版本):

这是一个问题: “1:23:45 包含多少秒?”
你可以使用以下工具:
    - convert_time: 将小时、分钟、秒格式的时间转换为秒。

首先,进行“思考: {your_thoughts}”,之后你可以:
- 使用正确的 JSON 格式调用工具,
- 或以“最终答案:”为前缀输出你的答案。

思考: 我需要把时间字符串转换成秒数。

行动:
{
    "action": "convert_time",
    "action_input": {
        "time": "1:23:45"
    }
}
观测结果: {'seconds': '5025'}

➡️ 我们用这个新的提示再次调用 LLM,鉴于它可以访问工具调用结果中的 观测结果 ,LLM 现在最有可能输出:

思考: 我现在有了回答问题所需的信息。
最终答案: 1:23:45 中有 5025 秒。

任务就这样完成了!

智能体系统的挑战

一般来说,运行 LLM 引擎的智能体系统的难点包括:

  1. 从提供的工具中选择一个能够帮助实现目标的工具: 例如,当询问“大于 30,000 的最小质数是什么?” 时,智能体可能会调用“K2 的高度是多少?”Search 工具,但这并无帮助。
  2. 以严格的参数格式调用工具: 例如,在尝试计算一辆汽车 10 分钟内行驶 3 公里的速度时,你必须调用Calculator 工具,通过distance 除以time 来计算: 即便你的 Calculator 工具接受 JSON 格式的调用{“tool”: “Calculator”, “args”: “3km/10min”} ,也存在许多陷阱,例如:
  • 工具名称拼写错误: “calculator”“Compute” 是无效的
  • 提供的是参数名称而非其值: “args”: “distance/time”
  • 格式非标准化: “args": "3km in 10minutes”
  1. 高效地吸收和利用过去观察到的信息,无论是初始上下文还是使用工具后返回的观察结果。

那么,完整的智能体设置会是怎样的呢?

使用 LangChain 运行智能体

我们刚刚在

标签:调用,LangChain,智能,开源,LLM,action,工具,tools
From: https://www.cnblogs.com/huggingface/p/18028295

相关文章

  • 十大开源软件测试项目,拿来练手真不错!
    对于软件测试的新手来说,参与开源项目是一个很好的学习和实践机会。通过参与开源项目,你可以学习到真实世界中的测试策略、技巧以及工具的使用。以下是十个值得一试的开源测试项目,它们不仅适合初学者,也适合有一定经验的测试人员。Selenium:Selenium是一个用于Web应用程序自动化测试......
  • AI智能分析网关V4智慧工厂视频智能监管与风险预警平台建设方案
    一、背景需求分析1)随着信息技术的迅猛发展和制造业竞争的加剧,智慧工厂成为了推动制造业转型升级的重要引擎。智慧工厂解决方案通过整合物联网、人工智能、大数据分析等先进技术,实现生产过程的智能化、自动化和高效化,为企业提供了更加灵活、智能的生产模式和管理方式。2)工厂生产......
  • 智能诊断设备迅为IMX6Q核心板解决方案
    在科技飞速发展的今天,智能诊断设备已经成为了医疗领域不可或缺的一部分。其中,这款IMX6Q核心板在智能诊断设备中也有广泛的使用。  IMX6Q核心板作为一款高性能的处理器,具有强大的数据处理能力和高效的能源管理功能。在智能诊断设备中,它可以快速处理大量的医疗数据,为医生提供准......
  • 跨越千年医学对话:用AI技术解锁中医古籍知识,构建能够精准问答的智能语言模型,成就专业级
    跨越千年医学对话:用AI技术解锁中医古籍知识,构建能够精准问答的智能语言模型,成就专业级古籍解读助手(LLAMA)介绍:首先在Ziya-LLaMA-13B-V1基线模型的基础上加入中医教材、中医各类网站数据等语料库,训练出一个具有中医知识理解力的预训练语言模型(pre-trainedmodel),之后在此基础上通过......
  • 【百度智能云】AIGC-文生图
    从地址https://console.bce.baidu.com/ai/#/ai/intelligentwriting/app/list创建应用,然后复制应用的APIKey和SecretKey到下文的API_KEY_AIGC和SECRET_KEY_AIGCimportjsonimportosimporttime#debugimporthttp.clientimportsslfromurllib.parseimport......
  • colab运行google最新开源模型Gemma
    Google开源了新的大模型Gemma,Gemma是一系列轻量级、最先进的开放式模型,采用与创建Gemini模型相同的研究和技术而构建。Gemma由GoogleDeepMind和Google的其他团队开发,其灵感来自Gemini,其名称反映了拉丁语_gemma_,意思是“宝石”。除了模型权重之外,我们还发布了工具来支持开......
  • 【触想智能】工业平板知识分享|选购工业平板电脑需要注意的7大事项
    工业平板电脑是一种将显示器、工控主板、触摸屏和其他电子设备整合在一起的电子产品。它广泛应用于工业控制和自动化领域。在购买工业平板电脑时,需要考虑一些关键性因素,以确保工业平板电脑是安全可靠、运行稳定的。那么我们在购买工业平板电脑的时候,应该注意哪些问题呢?......
  • 读十堂极简人工智能课笔记09_读后总结与感想兼导读
    1. 基本信息十堂极简人工智能课10ShortLessonsinArtificialIntelligence&Robo[英]彼得·J.本特利著译林出版社,2023年5月出版1.1. 读薄率书籍总字数115千字,笔记总字数25104字。读薄率25104÷115000≈21.83%1.2. 读厚方向千脑智能脑机穿越未来呼啸而......
  • Python Web 开源框架排行榜
    截止到2024年2月22日,对GithubStar>900的PythonWeb开源框架,按照Star数量,从高到低排序,具体排名如下:1.DjangoDjangoisahigh-levelPythonwebframeworkthatencouragesrapiddevelopmentandclean,pragmaticdesign.About: TheWebframeworkforperfec......
  • AppBox快速开发框架(开源)开发流程介绍
      目前很多低代码平台都是基于Web用拖拽方式生成界面,确实可以极大的提高开发效率,但也存在一些问题:大部分平台灵活性不够,特殊需求需要较大的自定义开发;解析json配置的执行效率不是太高;大部分平台缺乏后端支持或复杂的业务逻辑支持;与后端的数据结构及业务服务不存在强关联,修......