如何在 Google Vertex AI 中合并来自多个模型的结果?

How combine results from multiple models in Google Vertex AI?

我在 Google Vertex AI 中有多个模型,我想创建一个端点来为我的预测服务。 我需要 运行 聚合算法,例如对模型输出的投票算法。 我还没有找到任何将这些模型一起使用的方法,这样我就可以 运行 对结果进行投票算法。 我是否必须创建一个新模型,卷曲我现有的模型,然后 运行 我的算法对结果?

在 Vertex AI 中没有 in-built 实施聚合算法的规定。为了 curl 来自模型的结果然后聚合它们,我们需要将它们全部部署到各个端点。相反,我建议使用以下方法使用 custom containers for prediction. The custom container requirements can be found here.

将模型和 meta-model(聚合模型)部署到单个端点

您可以将模型工件从 GCS 加载到自定义容器中。如果使用同一组模型(即 meta-model 的输入模型不变,则可以将它们打包在容器中以减少加载时间。然后,自定义 HTTP 逻辑可以用于 return 聚合输出,就像这样。这是一个示例自定义 Flask 服务器逻辑。

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}