动手做一个最小Agent——TinyAgent!
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
Datawhale干货
作者:宋志学,Datawhale成员
前言
随着ChatGPT的出现,大模型变得流行。但这些模型在实时或特定领域问题上有局限。为了提升大模型的实用性,我们需要工具来提供粒度对齐,使其与现实世界更加契合。作者使用React的方法构建了一个最小的Agent结构,并计划将其改进。
实现细节
Step 1: 构造大模型
使用InternLM2作为基础对话大模型,通过transformers库加载。创建BaseModel类定义基本方法,并从中派生出InternLM2类实现具体的chat和load_model方法。
Step 2: 构造工具
在tools.py文件中构建Tools类,添加如Google搜索工具。这些工具包含描述信息和具体实现,通过serper网站申请token实现功能。
Step 3: 构造Agent
构建React的Agent,实现chat方法。系统提示告诉大模型可以调用的工具及其描述信息。用户提问时,Agent会通过两次大模型调用来整合工具返回的结果和用户问题,实现React结构的对话。
Step 4: 运行Agent
使用InternLM2-chat-7B模型示例,展示了如何运行Agent并处理用户提问。演示了Agent如何结合大模型和工具来提供答案。
完整代码和结构可以在Github仓库 https://github.com/KMnO4-zx/TinyAgent 中查看,并鼓励给仓库点星标。
论文参考
ReAct: Synergizing Reasoning and Acting in Language Models
想要了解更多内容?