Tiny-universe Tniy Agent 学习笔记

Agent基本介绍

Agent是一个具备自主性、反应性、积极性和社交能力特征的智能体,它能够感知环境并做出决策以执行任务。在人工智能领域,尤其是在大型语言模型的背景下,Agent被设计为可以模仿人类的方式,从计划、组织、执行到学习等过程,最终完成一个任务。

  1. Agent的基本定义

    • 概念理解:Agent通常被视为一个具备自主智能的实体,它可以在给定的能力范围内自主地发现问题、设定目标、构思策略、挑选方案、执行任务并进行检查更新。这种自主性和动态响应能力是Agent区别于传统软件或机械的关键特征。
    • 拟主体性:Agent不仅仅是执行任务的工具,它还具备了类似人类的“拟主体性”。这意味着Agent能够以模仿人类的方式,实现从计划到学习等一系列复杂的过程,直至完成任务。
  2. Agent的类型

    • 单体Agent:单体Agent是指独立运作的Agent,它不依赖于其他Agent的协作来完成任务。
    • 多Agent协作:多Agent协作指的是多个Agent之间相互合作,通过协调各自的活动来解决复杂问题或完成大型任务。
    • 与人交互的Agent:与人交互的Agent专注于与人类用户进行交互,它们可以理解人类的语言和需求,并根据这些信息执行相应的任务。
  3. Agent的工作原理

    • 任务规划与执行:Agent能够接收人类描述的目标,并自主地进行感知环境、形成记忆、完成规划、选择行动、观察和纠正错误等一系列以任务目标为导向的行动。这个过程体现了Agent的核心能力,即自主决策和执行。
    • 思维链技术的应用:思维链(Chain of Thought, CoT)技术在Agent中的应用,使得Agent能够通过序列化的思考模式更有效地理解和处理输入信息。CoT帮助Agent增强决策的可靠性,将任务分解为一系列小步骤,并通过逻辑推理逐一解决这些小步骤,最终整合解决方案以完成整个任务。
  4. Agent的挑战

    • 落地难度:尽管Agent的概念和技术日益成熟,但将其实际应用于现实世界中仍面临诸多挑战。这包括如何确保Agent能够适应复杂的真实世界环境,以及如何处理与人类用户的交互等问题。
  5. Agent的应用领域

    • 自动化与RPA:结合如RPA(Robotic Process Automation)等技术,Agent可以实现更高级的自动化。例如,通过自然语言理解能力,Agent可以理解人类的语言指令,并指导RPA完成相应的任务,从而实现非侵入式的集成和执行。
  6. Agent的未来展望

    • 向通用人工智能迈进:Agent的发展被视为通往通用人工智能(AGI)的一条路径。研究人员希望通过不断堆叠人类特性到Agent上,最终创造出具有情感、思考能力和反思能力的硅基人。

实现细节

Step 1: 构造大模型

这一步我们可以选择很多通用的开源大模型,先构造一个可接入不同大模型的类:

class BaseModel:
    def __init__(self, path: str = '') -> None:
        self.path = path

    def chat(self, prompt: str, history: List[dict]):
        pass

    def load_model(self):
        pass

接下来以接入InternLM2为例:

class InternLM2Chat(BaseModel):
    def __init__(self, path: str = '') -> None:
        super().__init__(path)
        self.load_model()

    def load_model(self):
        print('================ Loading model ================')
        self.tokenizer = AutoTokenizer.from_pretrained(self.path, trust_remote_code=True)
        self.model = AutoModelForCausalLM.from_pretrained(self.path, torch_dtype=torch.float16, trust_remote_code=True).cuda().eval()
        print('================ Model loaded ================')

    def chat(self, prompt: str, history: List[dict], meta_instruction:str ='') -> str:
        response, history = self.model.chat(self.tokenizer, prompt, history, temperature=0.1, meta_instruction=meta_instruction)
        return response, history

Step 2: 构造工具

这一步我们可以构造许多工具,工具会在调用智能体时提供很多帮助。我们需要构造一个Tools类,类中需要包含工具的描述信息和具体实现方式。例如最简单你可以调用一些搜索引擎。在更大的领域,你还可以通过接入一些平台的api,返回一些更有趣的信息。

Step 3: 构造Agent

在这一步我们需要在代码中调用之前构造的工具,并且提供一些引导的提示信息prompt。告诉大模型我们需要调用哪些工具,回答哪些信息,接受和输出什么类型的参数。简易的框架如下:

class Agent:
    def __init__(self, path: str = '') -> None:
        pass

    def build_system_input(self):
        # 构造上文中所说的系统提示词
        pass
    
    def parse_latest_plugin_call(self, text):
        # 解析第一次大模型返回选择的工具和工具参数
        pass
    
    def call_plugin(self, plugin_name, plugin_args):
        # 调用选择的工具
        pass

    def text_completion(self, text, history=[]):
        # 整合两次调用
        pass

Step 4: 运行Agent

在最后,我们需要将前面的代码串联起来,并且调用我们想要的大模型。

Tiny Agent学习原文

  • 34
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Windows中安装tiny-cuda-nn,您需要按照以下步骤进行操作: 1. 首先,确保您的计算机已经安装了合适的CUDA驱动程序。您可以从NVIDIA官方网站下载并安装最新的CUDA驱动程序。 2. 在安装CUDA驱动程序后,您需要安装CMake工具。您可以从CMake官方网站下载并安装最新版本的CMake。 3. 接下来,您需要安装Git客户端,以便从GitHub上获取tiny-cuda-nn的源代码。您可以从Git官方网站下载并安装最新版本的Git。 4. 打开一个命令行终端或Git Bash终端,并导航到您想要存储tiny-cuda-nn源代码的目录。 5. 在命令行终端或Git Bash终端中,运行以下命令来克隆tiny-cuda-nn的GitHub存储库: ``` git clone https://github.com/tiny-cuda-nn/tiny-cuda-nn.git ``` 6. 克隆完成后,导航到tiny-cuda-nn源代码的目录。然后,创建一个新的文件夹来构建项目,比如"build": ``` cd tiny-cuda-nn mkdir build cd build ``` 7. 在构建文件夹中,运行以下命令使用CMake生成构建文件: ``` cmake .. ``` 8. 完成CMake配置后,运行以下命令来编译tiny-cuda-nn: ``` cmake --build . ``` 9. 编译完成后,您可以在构建文件夹中找到生成的可执行文件。您可以运行该可执行文件来使用tiny-cuda-nn。 请注意,上述步骤假设您已经正确安装了CUDA驱动程序、CMake和Git,并且您的计算机满足tiny-cuda-nn的要求。如果在安装过程中遇到任何问题,请参考tiny-cuda-nn的文档或GitHub存储库中的说明。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值