我有一个 python 代码,它使用 Hugging Face Transformers 在 PDF 文档上运行 NLP 任务。当我在 Jupyter Notebook 中运行此代码时,需要超过 1.5 小时才能完成。然后,我设置相同的代码以通过本地托管的 Streamlit Web 应用程序运行。令我惊讶的是,它运行了不到 5 分钟!
我相信我正在将苹果与苹果进行比较,因为:
.py
文件是使用“streamlit-juypter”从 Jupyter Notebook 生成的,它只获取笔记本中的 Python 代码并添加一些 Streamlit 语句因此,基本上相同的代码使用相同的硬件在相同的数据上运行。
我能想到的唯一可以解释这一点的差异是:
.py
python 文件,而不是 .ipynb
笔记本有人经历过这样的事情吗?从命令行运行相同的 python 代码可以将速度提高 20 倍吗?
编辑:根据@Wayne的建议,我比较了我的主要Python安装和venv之间的
pip list
的输出,发现了一些差异。因此,我将 NLP 任务使用的所有核心包更新为最新版本,现在运行时是相同的。虽然我仍然不知道是哪个包造成的,但现在可能已经不重要了。
这很可能是由于两个环境的差异造成的。
您可以在笔记本中运行
%pip list
并在其他环境中运行 pip list
的等效项并进行比较。