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