运行LangChain相关Python脚本时Jupyter内核崩溃,如何排查?
Jupyter内核崩溃问题排查方案
针对运行LangChain+Chroma脚本时出现的内核崩溃问题,按以下步骤逐一排查:
内存占用过载排查
脚本中的docs数据集如果过大,生成嵌入向量时会瞬间耗尽内存,直接导致内核崩溃。先缩小数据量测试:# 只取前10条数据初始化Chroma db = Chroma.from_documents(docs[:10], embeddings)若能正常运行,说明是数据量问题,后续可采用分批插入数据的方式解决,或升级机器内存。
依赖版本兼容性检查
LangChain、Chroma、SentenceTransformer版本不匹配是常见诱因。卸载现有版本后,安装经验证的稳定组合:pip uninstall -y langchain chromadb sentence-transformers pip install langchain==0.1.10 chromadb==0.4.22 sentence-transformers==2.2.2分步拆解定位故障点
不要一次性运行完整脚本,拆分步骤逐段执行,定位具体崩溃环节:- 单独测试嵌入模型加载:
若此步骤崩溃,需检查模型是否下载完整,或GPU驱动(若使用GPU)是否正常。from langchain.embeddings import SentenceTransformerEmbeddings embeddings = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2") # 生成测试嵌入验证模型可用性 test_embedding = embeddings.embed_query("test query") print(f"嵌入向量长度:{len(test_embedding)}") - 用测试数据验证Chroma初始化:
此步骤崩溃需排查Chroma与LangChain的适配问题,或本地存储目录的权限。from langchain.schema import Document # 构造极简测试文档 test_docs = [ Document(page_content="Cats are common household pets"), Document(page_content="Dogs are widely loved pets") ] db = Chroma.from_documents(test_docs, embeddings) - 最后测试相似度搜索功能:
query = "What are the different kinds of pets people commonly own?" matching_docs = db.similarity_search(query) print(matching_docs[0].page_content)
- 单独测试嵌入模型加载:
Jupyter内核资源限制检查
Jupyter默认内核的资源限制可能偏低,可尝试在终端直接运行脚本(python your_script.py),获取更详细的报错信息(Jupyter常隐藏具体错误)。若使用Anaconda,可修改内核配置文件调高内存限制。GPU兼容性排查(若启用GPU)
若机器配备GPU,SentenceTransformer会默认使用GPU加速,但CUDA版本与PyTorch不匹配会导致内核崩溃。强制使用CPU测试:import torch # 指定设备为CPU embeddings = SentenceTransformerEmbeddings( model_name="all-MiniLM-L6-v2", model_kwargs={"device": torch.device("cpu")} )若CPU运行正常,需重新安装与CUDA版本匹配的PyTorch。
内容的提问来源于stack exchange,提问作者cloudcop
相关产品推荐
相关产品推荐

