我在Google Vertex AI中有多个模型,我想创建一个端点来服务于我的预测。我需要运行聚合算法,比如在我的模型输出上运行Voting算法。我还没有找到任何方法将这些模型一起使用,这样我就可以根据结果运行投票算法。我必须创建一个新的模型,卷曲现有的模型,然后根据结果运行算法吗?
在Vertex AI中没有实现聚合算法的内置规定。要从模型中获得curl
结果并进行聚合,我们需要将所有结果部署到各个端点。相反,我建议使用以下方法,使用自定义容器将模型和元模型(聚合模型(部署到单个端点进行预测。自定义容器要求可以在这里找到。
您可以将模型工件从GCS加载到自定义容器中。如果使用相同的模型集(即,元模型的输入模型不变(,则可以将它们打包在容器中以减少加载时间。然后,可以使用自定义HTTP逻辑来返回聚合输出,如下所示。
def get_models_from_gcs():
## Pull the required model artifacts from GCS and load them here.
models = [model_1, model_2, model_3]
return models
def aggregate_predictions(predictions):
## Your aggregation algorithm here
return aggregated_result
@app.post(os.environ['AIP_PREDICT_ROUTE'])
async def predict(request: Request):
body = await request.json()
instances = body["instances"]
inputs = np.asarray(instances)
preprocessed_inputs = _preprocessor.preprocess(inputs)
models = get_models_from_gcs()
predictions = []
for model in models:
predictions.append(model.predict(preprocessed_inputs))
aggregated_result = aggregate_predictions(predictions)
return {"aggregated_predictions": aggregated_result}