zoukankan      html  css  js  c++  java
  • 我不会用 Triton 系列:Agent 的使用

    简介

    Agent 扩展了 Triton 在加载卸载 “模型” 时候的功能。比如可以在加载模型的时候,进行 md5 校验。

    agent 的使用非常简单,就在模型的配置文件后面加上以下的配置就好了。对的,就是这么简单。这是英伟达的例子,使用了 checksum agent,在模型加载的时候会校验模型的 md5。md5 可以使用 linux 中的 md5sum 工具,使用的时候,还需要注意指定 -b 选项,表示以二进制的方式读取文件。

    model_repository_agents
    {
      agents [
        {
          name: "checksum",
          parameters
          {
            key: "MD5:1/model.py",
            value: "4e2c177998feb5539d8ec8d820f990bd"
          }
        }
      ]
    }
    

    学习笔记

    为了稍微深入了解一下这个功能,仔细读一遍文档吧。

    protobuf 中的定义

    先来看看 protobuf 中的定义吧。删掉了注释之后,会发现就这么简单。Agent 是一个可以重复 (repeated) 的属性,每个 Agent 有两个属性,一个表示名字的字符串,一个表示输入参数的 map。用的时候,就按照这个定义手写 protobuf 就好了(emmm,手写 protobuf 没代码提示太不爽了

    例子就看文档中的好了。

    message ModelRepositoryAgents
    {
      message Agent
      {
        string name = 1;
        map<string, string> parameters = 2;
      }
      repeated Agent agents = 1;
    }
    

    自己实现一个 Agent

    记住 Agent 的作用是扩展了模型加载和卸载时候的动作,动态链接库中需要提供相关的函数,即可实现扩展。扩展的是 “模型” 相关的动作,而不是 “模型实例” 相关的动作。

    接口

    Triton 定义了五个动作,这五个动作分别表示:加载模型,加载模型完成时,加载模型失败时,卸载模型,卸载模型完成时。五个动作,通过一个统一的函数 TRITONREPOAGENT_ModelAction 对这些动作进行扩展。如果要实现一个 Agent,那么就是在这个函数里面写个 switch 什么的嘛。我们可以看看 checksum 是如何实现的,实际上非常的简单。

    typedef enum TRITONREPOAGENT_actiontype_enum {
      TRITONREPOAGENT_ACTION_LOAD,
      TRITONREPOAGENT_ACTION_LOAD_COMPLETE,
      TRITONREPOAGENT_ACTION_LOAD_FAIL,
      TRITONREPOAGENT_ACTION_UNLOAD,
      TRITONREPOAGENT_ACTION_UNLOAD_COMPLETE
    } TRITONREPOAGENT_ActionType;
    

    更加详细的信息可以看这个 接口文件。这里面提供了以下接口:获取模型仓库地址,获取、释放临时仓库地址,使用新版本仓库,获取 Agent 的参数,绑定状态到 Agent 或者 AgentModel 上,扩展 Agent 或 AgentModel 初始化和清理时候的动作。

    从这些接口可以看见,其实 Serving 的扩展功能是服务于需求的。上面列举的使用新版本仓库,应该是服务于这样的需求:对模型进行解密,然后使用新的模型仓库。

  • 相关阅读:
    14-6 XShell连接远程服务器
    14-5 XManager工具安装
    14-4 本地私有化部署方案介绍
    14-3 阿里云域名购买及备案流程
    14-2 阿里云ECS服务器购买介绍
    13-7 Docker基本使用总结
    初识Redux-Saga
    React Native填坑之旅 -- FlatList
    React Native填坑之旅 -- 使用react-navigation代替Navigator
    React Native填坑之旅 -- 回归小插曲
  • 原文地址:https://www.cnblogs.com/zzk0/p/15553394.html
Copyright © 2011-2022 走看看