wxywb / history_rag

789 stars 102 forks source link

速度很慢 #76

Closed GrantDuan closed 1 week ago

GrantDuan commented 2 weeks ago

我在本地部署起来了。 使用MilvusExecutor build了三国志 使用qwen 然后问问题,发现很慢。

电脑配置: i7-8700 1060 6G 内存 32G

用LlamaDebugHandler 打的log

Trace: query |_CBEventType.QUERY -> 93.701868 seconds |_CBEventType.RETRIEVE -> 1.120539 seconds |_CBEventType.EMBEDDING -> 0.532872 seconds |_CBEventType.RERANKING -> 63.507844 seconds |_CBEventType.SYNTHESIZE -> 29.070457 seconds |_CBEventType.TEMPLATING -> 1.8e-05 seconds |_CBEventType.TEMPLATING -> 1.6e-05 seconds |_CBEventType.TEMPLATING -> 1.3e-05 seconds


发现RERANKING 和 SYNTHESIZE 都很慢

记录一下

wxywb commented 2 weeks ago

我认为你的gpu应该没有用起来,你可以用nvidia-smi -l(如果是windows,找一下wiindows上的等效命令)看一下你的gpu使用。

GrantDuan commented 1 week ago

我认为你的gpu应该没有用起来,你可以用nvidia-smi -l(如果是windows,找一下wiindows上的等效命令)看一下你的gpu使用。

显卡用了的,我发现 retrieve_topk: 500 显著的 影响了性能。 milvus: host: "localhost" port: "19530" collection_name: "history_rag" retrieve_topk: 500

image

当我把retrieve_topk 改成100时,速度加快了非常多。 image

GrantDuan commented 1 week ago

我建了一个pull request 来减小这个值, 可以提高性能。 @wxywb 辛苦看看。 https://github.com/wxywb/history_rag/pull/77

wxywb commented 1 week ago

这个是一个tradeoff, 从500降到100必然会导致质量的降低,如果本地资源比较紧张,可以了解一下 zilliz cloud pipeline,掌握了基本的rag知识后,可以建立pipeline在云上处理你的数据,只要你在本地根据你的需求将文档分成chunk,就可以在云端生成embedding以及rerank。

GrantDuan commented 1 week ago

这个是一个tradeoff, 从500降到100必然会导致质量的降低,如果本地资源比较紧张,可以了解一下 zilliz cloud pipeline,掌握了基本的rag知识后,可以建立pipeline在云上处理你的数据,只要你在本地根据你的需求将文档分成chunk,就可以在云端生成embedding以及rerank。

谢谢回复,我试了一下,果然非常快。