如何在 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}
我在 Google Vertex AI 中有多个模型,我想创建一个端点来为我的预测服务。 我需要 运行 聚合算法,例如对模型输出的投票算法。 我还没有找到任何将这些模型一起使用的方法,这样我就可以 运行 对结果进行投票算法。 我是否必须创建一个新模型,卷曲我现有的模型,然后 运行 我的算法对结果?
在 Vertex AI 中没有 in-built 实施聚合算法的规定。为了 curl
来自模型的结果然后聚合它们,我们需要将它们全部部署到各个端点。相反,我建议使用以下方法使用 custom containers for prediction. The custom container requirements can be found here.
您可以将模型工件从 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}