描述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:
- 为批量运行准备一个promptflow和数据集。
- 在上面所述的notebook A中使用pf.run()运行promptflow。
- 然后在另一个notebook B中,使用
%run ./A.ipynb
运行notebook A。 - 你会发现运行永远不会结束。如果你转到这个批处理运行的logs.txt,你只会看到我上面描述的前三行,而不会看到关于一行开始或结束执行的日志。
预期行为
预期的行为是批处理运行在合理的时间内完成。并且在此批处理运行期间,在logs.txt中,我们可以看到关于一行开始或结束执行的日志弹出。
运行信息(请填写以下信息):
- Promptflow包版本
pf -v
:1.11.0 - 操作系统:Windows 11
- Python版本
python --version
:例如 python==3.12.3
1条答案
按热度按时间uqxowvwt1#
你好,@Maggieli99,
我按照你提供的复制步骤运行了批处理,但问题没有再次出现。
这是我的代码:
simple_flow_with_python_tool.zip