VannaAI(Ollama+ChromaDB)示例程序模型训练步骤执行失败求助
问题分析
退出码0xC0000005是Windows系统的内存访问违规错误,结合Add of existing embedding ID的提示,核心原因是ChromaDB处理重复嵌入ID时触发内存异常,或嵌入模型(all-MiniLM-L6-v2)加载、计算过程中出现内存冲突/不足。
解决方案
1. 清理ChromaDB本地缓存
ChromaDB默认在本地./chroma目录存储向量数据,重复训练会残留旧嵌入ID引发冲突:
- 直接删除
./chroma文件夹 - 重新运行代码,让ChromaDB初始化全新向量库
2. 重置ChromaDB存储目录
显式指定新的存储目录,彻底隔离旧数据:
修改初始化代码:
vn = MyVanna(config={ 'model': 'mistral', 'chroma_config': { 'persist_directory': './chroma_fresh', # 新的存储路径 'anonymized_telemetry': False } })
3. 精简训练数据量
若INFORMATION_SCHEMA.COLUMNS返回数据过多,会生成大量嵌入任务导致内存溢出:
- 过滤只保留目标Schema的表:
df_information_schema = vn.run_sql("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public'") # 替换为你的业务Schema
- 手动删减
plan中的训练项,只保留核心表的元数据
4. 升级依赖版本
版本不兼容可能引发底层内存问题:
- 升级Vanna:
pip install --upgrade vanna - 重新拉取Ollama的mistral模型:
ollama pull mistral
5. 优化系统内存
若为内存不足导致的访问违规:
- 关闭后台高内存占用程序
- 扩容Windows虚拟内存
验证步骤
- 删除旧ChromaDB缓存目录
- 修改代码指定新存储目录并过滤训练数据
- 重新运行训练流程,确认是否能执行到
Training ends
内容的提问来源于stack exchange,提问作者fgalan
相关产品推荐
相关产品推荐

