gpt4 book ai didi

amazon-web-services - AWS Sagemaker 使用 Parquet 文件进行批量转换作业?

转载 作者:行者123 更新时间:2023-12-04 09:38:58 25 4
gpt4 key购买 nike

我正在尝试使用 Parquet 数据文件运行批量转换推理作业,但找不到任何东西。到处都说批处理转换只接受文本/csv 或 json 格式类型。出于测试目的,我确实尝试在 AWS 帐户中使用 lambda 函数来调用 parque 数据,但批量转换作业从未成功。出现 ClientError: 400,解析数据时出错。

request = \
{
"TransformJobName": batch_job_name,
"ModelName": model_name,
"BatchStrategy": "MultiRecord",
"TransformOutput": {
"S3OutputPath": batch_output
},
"TransformInput": {
"DataSource": {
"S3DataSource": {
"S3DataType": "S3Prefix",
"S3Uri": batch_input

}
},
"ContentType": "application/x-parquet",
"SplitType": "Line",
"CompressionType": "None"
},
"TransformResources": {
"InstanceType": "ml.m4.xlarge",
"InstanceCount": 1
}
}
client.create_transform_job(**request)
return "Done"

目前我正在尝试使用 parque 数据文件在本地运行 sagemaker 批量转换作业。我有一个 docker 镜像,我可以在本地终端运行它来“服务”,我可以使用 REST API 服务 Postman 从“localhost:8080/invocations”调用数据,使用“二进制”输入函数上传 parque 数据文件。它工作正常,我可以看到 postman 体内填充的数据。但是,我无法使用 parque 数据进行批量转换。

有没有人成功地使用 Parquet 文件来转换和使用 sagemaker 批量转换进行预测?

最佳答案

对于 SageMaker 批量转换(或任何服务作业),可以使用自定义 input_fn 提供训练方法。只要有自定义逻辑来处理它,就可以使用任何其他类型的输入。我已经成功地将它用于 avro 输入。
像下面这样的东西应该适用于 Parquet 文件:

def input_fn(serialized_input_data, content_type="application/parquet"):
logger.info("Deserializing input data.")
...
# Process the serialized input.
logger.info(f"Input deserialized.")
return input_data
更多关于自定义函数的信息 here .这链接到 scikit-learn Estimator 页面,但我认为所有类型的 SageMaker Estimator 对象都支持它。

关于amazon-web-services - AWS Sagemaker 使用 Parquet 文件进行批量转换作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62415237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com