promptflow [BUG] 通过SDK加载运行详情时,数据框行的顺序不一致,

68de4m5k  于 2个月前  发布在  其他
关注(0)|答案(5)|浏览(45)

描述bug

PFClient.runs.get_details() SDK方法加载运行的数据框可能会以不一致的结果顺序返回行。大多数情况下,它们按照输入的行号排序,但这不是一个保证。
我发现这个bug是因为在比较使用相同输入数据集的不同评估流程的输出时,出现了一些微妙的错误,有时1-2行无法正确对齐。
快速修复是在处理数据框之前,在用户空间中对行进行排序,但理想情况下,SDK应该为我们完成这个操作,并以与输入数据相同的顺序返回行:

def get_run_dataframe(run_name):
    """
    Returns a run's dataframe sorted and indexed by line number
    """
    return (
        client.runs.get_details(run_name)
        # sort by line number since the async executors may have returned results out of order
        .sort_values("inputs.line_number")
        # ignore the built-in dataframe index and sort by input line number for consistency across all runs
        .set_index("inputs.line_number")
    )

# ...
run_map = {k: get_run_dataframe(v) for k, v in run_name_map.items()}

如何重现bug

重现行为所需的步骤,您可以多频繁地体验到这个bug:

  1. 设置两个流程和一个包含约20行的输入数据CSV
  2. 使用输入数据执行这两个流程
  3. 使用 PFClient.runs.get_details() 方法为每个流程加载数据框并打印它

预期行为

数据框的行应与输入数据的顺序相同。

运行信息(请填写以下信息):

  • 使用 pf -v 查看Promptflow包版本:1.5.0
  • 操作系统:Sonoma 14.4.1
  • 使用 python --version 查看Python版本:Python (Darwin) 3.9.18 (main, Sep 11 2023, 08:25:10)
kcugc4gi

kcugc4gi1#

你好,@stewartadam ,感谢你的反馈!我认为我们在返回详细信息之前确实缺少一个有前途的排序;我会尝试修复这个问题。

uelo1irk

uelo1irk2#

你好,我们发送这个友好的提醒是因为我们在30天内没有收到你的回复。我们需要更多关于这个问题的信息来帮助解决它。请务必给我们提供你的反馈。如果我们在7天内没有收到你的回复,问题将自动关闭。谢谢!

r8xiu3jd

r8xiu3jd3#

要移除不活跃标签的注解


# 移除不活跃标签的注解
rqdpfwrv

rqdpfwrv4#

你好,我们发送这个友好的提醒是因为我们在30天内没有收到你的回复。我们需要更多关于这个问题的信息来帮助解决它。请务必给我们提供你的反馈。如果我们在7天内没有收到你的回复,问题将自动关闭。谢谢!

myss37ts

myss37ts5#

要移除不活跃标签的注解


# 移除不活跃标签的注解

相关问题