问题是什么?
在 langchain-python-rag-privategpt 中,存在一个错误 '无法一次提交超过x个嵌入',这个问题已经在不同的场景下被提及过,最近查看了 #2572 。
现在,在使用 Ollama 版本 0.1.38 时,chromadb 版本已经更新到了 0.47,但是 max_batch_size
计算仍然似乎存在问题,具体问题案例可以查看 chroma-core/chroma#2181 。
同时,对于 Ollama 有没有解决方法?
(.venv) dcaso [ ~/ollama/examples/langchain-python-rag-privategpt ]$ python ./ingest.py
Creating new vectorstore
Loading documents from source_documents
Loading new documents: 100%|████████████████| 1355/1355 [00:15<00:00, 88.77it/s]
Loaded 80043 new documents from source_documents
Split into 478012 chunks of text (max. 500 tokens each)
Creating embeddings. May take some minutes...
Traceback (most recent call last):
File "/home/dcaso/ollama/examples/langchain-python-rag-privategpt/./ingest.py", line 161, in <module>
main()
File "/home/dcaso/ollama/examples/langchain-python-rag-privategpt/./ingest.py", line 153, in main
db = Chroma.from_documents(texts, embeddings, persist_directory=persist_directory)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dcaso/ollama/examples/langchain-python-rag-privategpt/.venv/lib/python3.11/site-packages/langchain/vectorstores/chroma.py", line 612, in from_documents
return cls.from_texts(
^^^^^^^^^^^^^^^
File "/home/dcaso/ollama/examples/langchain-python-rag-privategpt/.venv/lib/python3.11/site-packages/langchain/vectorstores/chroma.py", line 576, in from_texts
chroma_collection.add_texts(texts=texts, metadatas=metadatas, ids=ids)
File "/home/dcaso/ollama/examples/langchain-python-rag-privategpt/.venv/lib/python3.11/site-packages/langchain/vectorstores/chroma.py", line 222, in add_texts
raise e
File "/home/dcaso/ollama/examples/langchain-python-rag-privategpt/.venv/lib/python3.11/site-packages/langchain/vectorstores/chroma.py", line 208, in add_texts
self._collection.upsert(
File "/home/dcaso/ollama/examples/langchain-python-rag-privategpt/.venv/lib/python3.11/site-packages/chromadb/api/models/Collection.py", line 298, in upsert
self._client._upsert(
File "/home/dcaso/ollama/examples/langchain-python-rag-privategpt/.venv/lib/python3.11/site-packages/chromadb/api/segment.py", line 290, in _upsert
self._producer.submit_embeddings(coll["topic"], records_to_submit)
File "/home/dcaso/ollama/examples/langchain-python-rag-privategpt/.venv/lib/python3.11/site-packages/chromadb/db/mixins/embeddings_queue.py", line 127, in submit_embeddings
raise ValueError(
ValueError:
Cannot submit more than 5,461 embeddings at once.
Please submit your embeddings in batches of size
5,461 or less.
(.venv) dcaso [ ~/ollama/examples/langchain-python-rag-privategpt ]$
操作系统
WSL2
GPU
Nvidia
CPU
Intel
Ollama 版本
0.1.38
研究发现
在 ingest.py
和 def maint()
中,我修改了 else
的条件如下,但这并没有解决问题(仍然存在相同的问题)。
2条答案
按热度按时间35g0bw711#
这可能是另一个子组件问题。在v0.1.38版本中,langchain的版本是0.0.274。
未使用例如langchain_community。
作为解决方法,我已经更新了所有组件。但这并不推荐,因为通常它会产生更多的副作用,而且更难重现问题。
之后,安装了以下langchain包:
python ingest.py
和python privateGPT.py
运行成功,但输出中包含各种已弃用的langchain组件的警告。从目前发现的情况来看,一个经过整理的需求.txt列表会很有帮助。python ingest.py
总是以Creating new vectorstore
开始。它不会保留已经加载的文档。为什么?gpnt7bae2#
v0.1.39版本也存在同样的问题。幸运的是,这个解决方法有效,使用Nvidia驱动程序552(参见#4563)。
6月5日编辑:v0.1.41版本也存在同样的问题。
6月19日编辑:v0.1.44版本也存在同样的问题。添加
pip install chromadb==0.5.0
。