昇腾社区首页
中文
注册

样例说明

  1. 样例基于LLM Manager接口实现了一个LlmInferEngine类,参考6.1.1章节。LlmInferEngine类提供Init,Forward和Finalize功能。LlmInferEngine类中维护一个LlmManager的对象实例。
    • LlmInferEngine初始化主要包含以下步骤:
      1. 确定engineConfigPath,其中包含了模型推理所需的配置信息和调度策略等,具体格式参考配置参数说明(服务化)的config.json。
      2. 定义函数下的五个回调函数:
        1. GetRequestsCallback回调函数,负责从LlmInferEngine请求队列中读取出所有请求,将由LlmManager对象内部调用,将请求加入到调度队列。
        2. SendResponsesCallback回调函数,负责返回MindIE LLM推理出的Token(tensorMap的格式),然后在LlmInferEngine中对tensorMap中所有推理张量做解析处理。
        3. ControlSignalCallback回调函数,负责从LlmInferEngine停止请求队列中读取所有待停止的请求返回,由LlmManager对象内部调用,将请求加入到待处理队列。
        4. LlmManagerStatsCallback回调函数,返回MindIE_LLM推理过程中的状态信息,包括slaves_status、remain_blocks、remain_prefill_slots等。
        5. SendStatusResponseCallback回调函数,返回请求是否成功加入调度队列,返回停止请求是否成功加入待处理队列。
      3. 通过engineConfigPath和五个回调函数构造LlmManager对象实例,然后执行LlmManager对象的Init接口。

    • LlmInferEngine的Forward主要实现将请求加入到LlmInferEngine的requestQueue中。
    • LlmInferEngine的Finalize主要调用LlmManager对象的ShutDown接口。
  2. 样例定义了Metrics类进行推理结果的统计,参考样例代码中的metric.h和metric.cpp,
  3. 样例定义了IOManager类和Data类来实现推理请求的读取、解析和转化,参考样例代码中的engine_util.h和engine_util.cpp。

样例提供的是Tokenids推理模式,即需要传入已经将数据集处理为tokenids的csv文件的路径。请参见 《MindIE Motor开发指南》中的“附录 > 数据集使用”章节,进行GSM8K数据集转tokenids设置。