如何在 Azure ML 中为批量推理准备数据?

问题描述 投票:0回答:1

我用于推理的数据格式 (.csv) 产生错误:

运行批量评分作业时“每个数据点应该是一个对话数组”。在线提供的所有文档都涉及图像数据,因此我无法弄清楚数据的格式。

我正在尝试通过批处理端点下的“创建作业”按钮创建作业。

我正在使用 Azure ML 平台,并且使用 Huggingface 上提供的“eurlex”数据微调了 phi-3-mini-4k-instruct 模型。训练过程需要 jsonl 格式的训练数据。但是,在尝试运行批量推理时,数据资产仅以 csv、png 等格式存储。 训练数据看起来像第一张图片。我将其转换为 jsonl 格式。 Img 1, training format

我创建了一个批处理端点并在那里部署了模型。我创建了一个作业并提供了按照第二张图片所示的方式格式化的数据。我简单地将整个提示作为单列数据框中的字符串传递,然后将其转换为 csv,然后将其写入 .csv 文件。

Img 2, inferencing format

我也尝试过制作一个包含 3 列的数据框 - 系统、助理、用户,但它也不起作用。

azure azure-machine-learning-service fine-tuning slm-phi3
1个回答
0
投票

您必须为 csv 文件提供列名,该列名根据部署具有正确的名称或签名。

如果你看到这个示例,这是文本摘要模型的批量部署

驱动程序代码获取批量输入,然后使用

load_dataset
加载它并获取列
text
进行预测。

def run(mini_batch):
    resultList = []

    print(f"[INFO] Reading new mini-batch of {len(mini_batch)} file(s).")
    ds = load_dataset("csv", data_files={"score": mini_batch})

    start_time = time.perf_counter()
    for idx, text in enumerate(ds["score"]["text"]):

此外,在调用批处理端点时,它会以

input
类型提供数据。

input = Input(type=AssetTypes.URI_FOLDER, path="data")
job = ml_client.batch_endpoints.invoke(
   endpoint_name=endpoint.name,
   input=input,
)

此处输入类型为文件夹类型,csv文件或保存在文件夹中

data

因此,请检查您的驱动程序代码或评分脚本正在访问哪个列,并在 csv 中给出相同的内容。

此外,您还可以使用上面代码中给出的 csv 文件数量调用批处理端点。

如果您找不到评分脚本或签名,请在上述提供文档中的

code/batch_driver.py
的帮助下使用自定义评分脚本部署批处理端点。

创建一个 csv 文件,其中包含包含字符串的列消息,然后在自定义评分脚本中读取它以进行预测。

© www.soinside.com 2019 - 2024. All rights reserved.