相同Python代码在Jupyter Notebook比命令行慢20倍的问题排查
问题解决:Jupyter Notebook与Streamlit运行同一段NLP代码的巨大速度差异
我有一段基于Hugging Face Transformers处理PDF文档的NLP任务Python代码,在Jupyter Notebook中运行需要1.5小时以上,但通过本地部署的Streamlit Web应用运行仅需不到5分钟。
测试条件确认
已确保两者测试环境一致:
- 分析同一PDF文档
- 均在本地笔记本CPU运行,未使用Hugging Face云端资源,模型已下载至本地
- Jupyter Notebook为本地运行
- .py文件由Jupyter Notebook通过
streamlit-jupyter生成,仅添加少量Streamlit展示语句
核心环境差异
两者仅有的核心差异:
- Streamlit运行的是命令行
.py文件,而非Jupyter的.ipynb笔记本文件 - Streamlit在独立虚拟环境中运行,Jupyter使用的是系统主Python环境
最初疑问:命令行运行代码真的能比Jupyter快20倍吗?
问题解决
经他人建议,对比主环境与虚拟环境的pip list包版本后发现,NLP核心依赖包存在版本差异。将主环境中的NLP核心包更新至最新版本后,Jupyter Notebook的运行速度与Streamlit版本一致。
内容的提问来源于stack exchange,提问作者Ambar Nag
相关产品推荐
相关产品推荐

