[BUG] 当在另一个笔记本中调用pf.run()时,promptflow批处理运行不会启动执行,

txu3uszq  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(35)

描述bug

我尝试使用以下代码在notebook B.ipynb中运行notebook A.ipynb:

from promptflow import PFClient
pf = PFClient()
batch_run = pf.run(
        flow = flow_directory,
        data = jsonl_data,
        stream = True,
        column_mapping = {column mappings}

代码写在notebook A.ipynb中,我需要使用代码 %run ./A.ipynb 在notebook B.ipynb中运行notebook A.ipynb。当我尝试运行B.ipynb时,当它继续运行pf.run()时,我得到了一个logs.txt,就像往常一样,显示了promptflow批量运行的日志。通常在logs.txt中,我会首先看到3行,如下所示
2024-07-23 18:37:31 -0700 44536 execution.bulk INFO Current thread is not main thread, skip signal handler registration in BatchEngine.
2024-07-23 18:37:31 -0700 44536 execution.bulk INFO Current system's available memory is 2568.66015625MB, memory consumption of current process is 215.2890625MB, estimated available worker count is 2568.66015625/215.2890625 = 11
2024-07-23 18:37:31 -0700 44536 execution.bulk INFO Set process count to 3 by taking the minimum value among the factors of {'default_worker_count': 4, 'row_count': 3, 'estimated_worker_count_based_on_memory_usage': 11}.
然后看到每个以执行开始的行,如下所示
2024-07-23 18:37:36 -0700 44536 execution.bulk INFO Process name(SpawnProcess-39)-Process id(49008)-Line number(0) start execution.
...
但是这次,在logs.txt中,我只看到了前三行,而且即使运行了一个小时,我也从未看到一行开始执行。我没有看到错误消息,只是批处理运行永远不会开始执行。

如何重现bug

重现行为的方法,你多久会遇到这个bug:

  1. 为批量运行准备一个promptflow和数据集。
  2. 在上面所述的notebook A中使用pf.run()运行promptflow。
  3. 然后在另一个notebook B中,使用 %run ./A.ipynb 运行notebook A。
  4. 你会发现运行永远不会结束。如果你转到这个批处理运行的logs.txt,你只会看到我上面描述的前三行,而不会看到关于一行开始或结束执行的日志。

预期行为

预期的行为是批处理运行在合理的时间内完成。并且在此批处理运行期间,在logs.txt中,我们可以看到关于一行开始或结束执行的日志弹出。

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

  • Promptflow包版本 pf -v:1.11.0
  • 操作系统:Windows 11
  • Python版本 python --version:例如 python==3.12.3
uqxowvwt

uqxowvwt1#

你好,@Maggieli99,
我按照你提供的复制步骤运行了批处理,但问题没有再次出现。
这是我的代码:
simple_flow_with_python_tool.zip

相关问题