predict
函数功能
执行模型推理。
函数原型
predict(llm_req: Union[LLMReq, List[LLMReq], Tuple[LLMReq]], inputs: Any, **kwargs)
参数说明
参数名称 |
数据类型 |
取值说明 |
---|---|---|
llm_req |
Union[LLMReq, List[LLMReq], Tuple[LLMReq]] |
请求信息。
|
inputs |
Any |
模型输入,会透传给ModelRunner.run_model方法。 如果使用默认的ModelRunner,inputs的类型需要为Union[Tuple[Tensor], List[Tensor]]。 |
kwargs |
Optional[Dict] |
可选参数,会透传给ModelRunner.run_model方法。 |
调用示例
from llm_datadist import LLMDataDist, LLMRole, ModelConfig, ModelRunner, LLMReq llm_datadist = LLMDataDist(LLMRole.DECODER, 0) model_config = ModelConfig() kv_nums = 80 model_config.kv_shapes = ["1,1024" for _ in range(kv_nums)] model_config.kv_dtypes = [DataType.DT_FLOAT for _ in range(kv_nums)] model_options = model_config.generate_options() class TestModelRunner(ModelRunner): def run_model(self, kv_cache: KvCache, input_tensors, **kwargs): return [] llm_model = llm_datadist.add_model(model_options, TestModelRunner()) llm_req = LLMReq() inputs = [Tensor(np.array([1]))] llm_model.predict(llm_req, inputs)
返回值
正常情况下,返回LLMModel关联的ModelRunner的run_model输出。
传入数据类型错误情况下会抛出TypeError或ValueError异常。
异常情况会抛出LLMException。
执行过程中如果对kv cache的相关操作超过sync_kv_timeout配置会抛出LLMException异常。
约束说明
无
父主题: LLMModel