From ab805b35c46b407cd2b69cb62321f2445981a45e Mon Sep 17 00:00:00 2001 From: yangdx Date: Sun, 13 Jul 2025 21:50:30 +0800 Subject: [PATCH] Update doc: concurrent explain --- docs/LightRAG_concurrent_explain.md | 345 ++++++---------------- docs/assets/lightrag_indexing.png | Bin 187200 -> 0 bytes docs/zh/LightRAG_concurrent_explain_zh.md | 277 ----------------- 3 files changed, 89 insertions(+), 533 deletions(-) delete mode 100644 docs/assets/lightrag_indexing.png delete mode 100644 docs/zh/LightRAG_concurrent_explain_zh.md diff --git a/docs/LightRAG_concurrent_explain.md b/docs/LightRAG_concurrent_explain.md index 5f55b0a9..8037a080 100644 --- a/docs/LightRAG_concurrent_explain.md +++ b/docs/LightRAG_concurrent_explain.md @@ -1,281 +1,114 @@ -# LightRAG Multi-Document Processing: Concurrent Control Strategy Analysis +## LightRAG Multi-Document Processing: Concurrent Control Strategy LightRAG employs a multi-layered concurrent control strategy when processing multiple documents. This article provides an in-depth analysis of the concurrent control mechanisms at document level, chunk level, and LLM request level, helping you understand why specific concurrent behaviors occur. -## Overview - -LightRAG's concurrent control is divided into three layers: - -1. **Document-level concurrency**: Controls the number of documents processed simultaneously -2. **Chunk-level concurrency**: Controls the number of chunks processed simultaneously within a single document -3. **LLM request-level concurrency**: Controls the global concurrent number of LLM requests - -## 1. Document-Level Concurrent Control +### 1. Document-Level Concurrent Control **Control Parameter**: `max_parallel_insert` -Document-level concurrency is controlled by the `max_parallel_insert` parameter, with a default value of 2. +This parameter controls the number of documents processed simultaneously. The purpose is to prevent excessive parallelism from overwhelming system resources, which could lead to extended processing times for individual files. Document-level concurrency is governed by the `max_parallel_insert` attribute within LightRAG, which defaults to 2 and is configurable via the `MAX_PARALLEL_INSERT` environment variable. -```python -# lightrag/lightrag.py -max_parallel_insert: int = field(default=int(os.getenv("MAX_PARALLEL_INSERT", 2))) -``` - -### Implementation Mechanism - -In the `apipeline_process_enqueue_documents` method, a semaphore is used to control document concurrency: - -```python -# lightrag/lightrag.py - apipeline_process_enqueue_documents method -async def process_document( - doc_id: str, - status_doc: DocProcessingStatus, - split_by_character: str | None, - split_by_character_only: bool, - pipeline_status: dict, - pipeline_status_lock: asyncio.Lock, - semaphore: asyncio.Semaphore, # Document-level semaphore -) -> None: - """Process single document""" - async with semaphore: # 🔥 Document-level concurrent control - # ... Process all chunks of a single document - -# Create document-level semaphore -semaphore = asyncio.Semaphore(self.max_parallel_insert) # Default 2 - -# Create processing tasks for each document -doc_tasks = [] -for doc_id, status_doc in to_process_docs.items(): - doc_tasks.append( - process_document( - doc_id, status_doc, split_by_character, split_by_character_only, - pipeline_status, pipeline_status_lock, semaphore - ) - ) - -# Wait for all documents to complete processing -await asyncio.gather(*doc_tasks) -``` - -## 2. Chunk-Level Concurrent Control +### 2. Chunk-Level Concurrent Control **Control Parameter**: `llm_model_max_async` -**Key Point**: Each document independently creates its own chunk semaphore! - -```python -# lightrag/lightrag.py -llm_model_max_async: int = field(default=int(os.getenv("MAX_ASYNC", 4))) -``` - -### Implementation Mechanism - -In the `extract_entities` function, **each document independently creates** its own chunk semaphore: - -```python -# lightrag/operate.py - extract_entities function -async def extract_entities(chunks: dict[str, TextChunkSchema], global_config: dict[str, str], ...): - # 🔥 Key: Each document independently creates this semaphore! - llm_model_max_async = global_config.get("llm_model_max_async", 4) - semaphore = asyncio.Semaphore(llm_model_max_async) # Chunk semaphore for each document - - async def _process_with_semaphore(chunk): - async with semaphore: # 🔥 Chunk concurrent control within document - return await _process_single_content(chunk) - - # Create tasks for each chunk - tasks = [] - for c in ordered_chunks: - task = asyncio.create_task(_process_with_semaphore(c)) - tasks.append(task) - - # Wait for all chunks to complete processing - done, pending = await asyncio.wait(tasks, return_when=asyncio.FIRST_EXCEPTION) - chunk_results = [task.result() for task in tasks] - return chunk_results -``` - -### Important Inference: System Overall Chunk Concurrency - -Since each document independently creates chunk semaphores, the theoretical chunk concurrency of the system is: - -**Theoretical Chunk Concurrency = max_parallel_insert × llm_model_max_async** +This parameter controls the number of chunks processed simultaneously in the extraction stage within a document. The purpose is to prevent a high volume of concurrent requests from monopolizing LLM processing resources, which would impede the efficient parallel processing of multiple files. Chunk-Level Concurrent Control is governed by the `llm_model_max_async` attribute within LightRAG, which defaults to 4 and is configurable via the `MAX_ASYNC` environment variable. The purpose of this parameter is to fully leverage the LLM's concurrency capabilities when processing individual documents. +In the `extract_entities` function, **each document independently creates** its own chunk semaphore. Since each document independently creates chunk semaphores, the theoretical chunk concurrency of the system is: +$$ +ChunkConcurrency = Max Parallel Insert × LLM Model Max Async +$$ For example: - `max_parallel_insert = 2` (process 2 documents simultaneously) - `llm_model_max_async = 4` (maximum 4 chunk concurrency per document) -- **Theoretical result**: Maximum 2 × 4 = 8 chunks simultaneously in "processing" state +- Theoretical chunk-level concurrent: 2 × 4 = 8 -## 3. LLM Request-Level Concurrent Control (The Real Bottleneck) +### 3. Graph-Level Concurrent Control -**Control Parameter**: `llm_model_max_async` (globally shared) +**Control Parameter**: `llm_model_max_async * 2` -**Key**: Although there might be 8 chunks "in processing", all LLM requests share the same global priority queue! +This parameter controls the number of entities and relations processed simultaneously in the merging stage within a document. The purpose is to prevent a high volume of concurrent requests from monopolizing LLM processing resources, which would impede the efficient parallel processing of multiple files. Graph-level concurrency is governed by the `llm_model_max_async` attribute within LightRAG, which defaults to 4 and is configurable via the `MAX_ASYNC` environment variable. Graph-level parallelism control parameters are equally applicable to managing parallelism during the entity relationship reconstruction phase after document deletion. + +Given that the entity relationship merging phase doesn't necessitate LLM interaction for every operation, its parallelism is set at double the LLM's parallelism. This optimizes machine utilization while concurrently preventing excessive queuing resource contention for the LLM. + +### 4. LLM-Level Concurrent Control + +**Control Parameter**: `llm_model_max_async` + +This parameter governs the **concurrent volume** of LLM requests dispatched by the entire LightRAG system, encompassing the document extraction stage, merging stage, and user query handling. + +LLM request prioritization is managed via a global priority queue, which **systematically prioritizes user queries** over merging-related requests, and merging-related requests over extraction-related requests. This strategic prioritization **minimizes user query latency**. + +LLM-level concurrency is governed by the `llm_model_max_async` attribute within LightRAG, which defaults to 4 and is configurable via the `MAX_ASYNC` environment variable. + +### 5. Complete Concurrent Hierarchy Diagram + +```mermaid +graph TD +classDef doc fill:#e6f3ff,stroke:#5b9bd5,stroke-width:2px; +classDef chunk fill:#fbe5d6,stroke:#ed7d31,stroke-width:1px; +classDef merge fill:#e2f0d9,stroke:#70ad47,stroke-width:2px; + +A["Multiple Documents
max_parallel_insert = 2"] --> A1 +A --> B1 + +A1[DocA: split to n chunks] --> A_chunk; +B1[DocB: split to m chunks] --> B_chunk; + +subgraph A_chunk[Extraction Stage] + A_chunk_title[Entity Relation Extraction
llm_model_max_async = 4]; + A_chunk_title --> A_chunk1[Chunk A1]:::chunk; + A_chunk_title --> A_chunk2[Chunk A2]:::chunk; + A_chunk_title --> A_chunk3[Chunk A3]:::chunk; + A_chunk_title --> A_chunk4[Chunk A4]:::chunk; + A_chunk1 & A_chunk2 & A_chunk3 & A_chunk4 --> A_chunk_done([Extraction Complete]); +end + +subgraph B_chunk[Extraction Stage] + B_chunk_title[Entity Relation Extraction
llm_model_max_async = 4]; + B_chunk_title --> B_chunk1[Chunk B1]:::chunk; + B_chunk_title --> B_chunk2[Chunk B2]:::chunk; + B_chunk_title --> B_chunk3[Chunk B3]:::chunk; + B_chunk_title --> B_chunk4[Chunk B4]:::chunk; + B_chunk1 & B_chunk2 & B_chunk3 & B_chunk4 --> B_chunk_done([Extraction Complete]); +end +A_chunk -.->|LLM Request| LLM_Queue; + +A_chunk --> A_merge; +B_chunk --> B_merge; + +subgraph A_merge[Merge Stage] + A_merge_title[Entity Relation Merging
llm_model_max_async * 2 = 8]; + A_merge_title --> A1_entity[Ent a1]:::merge; + A_merge_title --> A2_entity[Ent a2]:::merge; + A_merge_title --> A3_entity[Rel a3]:::merge; + A_merge_title --> A4_entity[Rel a4]:::merge; + A1_entity & A2_entity & A3_entity & A4_entity --> A_done([Merge Complete]) +end + +subgraph B_merge[Merge Stage] + B_merge_title[Entity Relation Merging
llm_model_max_async * 2 = 8]; + B_merge_title --> B1_entity[Ent b1]:::merge; + B_merge_title --> B2_entity[Ent b2]:::merge; + B_merge_title --> B3_entity[Rel b3]:::merge; + B_merge_title --> B4_entity[Rel b4]:::merge; + B1_entity & B2_entity & B3_entity & B4_entity --> B_done([Merge Complete]) +end + +A_merge -.->|LLM Request| LLM_Queue["LLM Request Prioritized Queue
llm_model_max_async = 4"]; +B_merge -.->|LLM Request| LLM_Queue; +B_chunk -.->|LLM Request| LLM_Queue; -```python -# lightrag/lightrag.py - __post_init__ method -self.llm_model_func = priority_limit_async_func_call(self.llm_model_max_async)( - partial( - self.llm_model_func, - hashing_kv=hashing_kv, - **self.llm_model_kwargs, - ) -) -# 🔥 Global LLM queue size = llm_model_max_async = 4 ``` -### Priority Queue Implementation +> The extraction and merge stages share a global prioritized LLM queue, regulated by `llm_model_max_async`. While numerous entity and relation extraction and merging operations may be "actively processing", **only a limited number will concurrently execute LLM requests** the remainder will be queued and awaiting their turn. -```python -# lightrag/utils.py - priority_limit_async_func_call function -def priority_limit_async_func_call(max_size: int, max_queue_size: int = 1000): - def final_decro(func): - queue = asyncio.PriorityQueue(maxsize=max_queue_size) - tasks = set() +### 6. Performance Optimization Recommendations - async def worker(): - """Worker that processes tasks in the priority queue""" - while not shutdown_event.is_set(): - try: - priority, count, future, args, kwargs = await asyncio.wait_for(queue.get(), timeout=1.0) - result = await func(*args, **kwargs) # 🔥 Actual LLM call - if not future.done(): - future.set_result(result) - except Exception as e: - # Error handling... - finally: - queue.task_done() +* **Increase LLM Concurrent Setting based on the capabilities of your LLM server or API provider** - # 🔥 Create fixed number of workers (max_size), this is the real concurrency limit - for _ in range(max_size): - task = asyncio.create_task(worker()) - tasks.add(task) -``` +During the file processing phase, the performance and concurrency capabilities of the LLM are critical bottlenecks. When deploying LLMs locally, the service's concurrency capacity must adequately account for the context length requirements of LightRAG. LightRAG recommends that LLMs support a minimum context length of 32KB; therefore, server concurrency should be calculated based on this benchmark. For API providers, LightRAG will retry requests up to three times if the client's request is rejected due to concurrent request limits. Backend logs can be used to determine if LLM retries are occurring, thereby indicating whether `MAX_ASYNC` has exceeded the API provider's limits. -## 4. Chunk Internal Processing Mechanism (Serial) +* **Align Parallel Document Insertion Settings with LLM Concurrency Configurations** -### Why Serial? - -Internal processing of each chunk strictly follows this serial execution order: - -```python -# lightrag/operate.py - _process_single_content function -async def _process_single_content(chunk_key_dp: tuple[str, TextChunkSchema]): - # Step 1: Initial entity extraction - hint_prompt = entity_extract_prompt.format(**{**context_base, "input_text": content}) - final_result = await use_llm_func_with_cache(hint_prompt, use_llm_func, ...) - - # Process initial extraction results - maybe_nodes, maybe_edges = await _process_extraction_result(final_result, chunk_key, file_path) - - # Step 2: Gleaning phase - for now_glean_index in range(entity_extract_max_gleaning): - # 🔥 Serial wait for gleaning results - glean_result = await use_llm_func_with_cache( - continue_prompt, use_llm_func, - llm_response_cache=llm_response_cache, - history_messages=history, cache_type="extract" - ) - - # Process gleaning results - glean_nodes, glean_edges = await _process_extraction_result(glean_result, chunk_key, file_path) - - # Merge results... - - # Step 3: Determine whether to continue loop - if now_glean_index == entity_extract_max_gleaning - 1: - break - - # 🔥 Serial wait for loop decision results - if_loop_result = await use_llm_func_with_cache( - if_loop_prompt, use_llm_func, - llm_response_cache=llm_response_cache, - history_messages=history, cache_type="extract" - ) - - if if_loop_result.strip().strip('"').strip("'").lower() != "yes": - break - - return maybe_nodes, maybe_edges -``` - -## 5. Complete Concurrent Hierarchy Diagram -![lightrag_indexing.png](assets%2Flightrag_indexing.png) - -### Chunk Internal Processing (Serial) -``` -Initial Extraction → Gleaning → Loop Decision → Complete -``` - -## 6. Real-World Scenario Analysis - -### Scenario 1: Single Document with Multiple Chunks -Assume 1 document with 6 chunks: - -- **Document level**: Only 1 document, not limited by `max_parallel_insert` -- **Chunk level**: Maximum 4 chunks processed simultaneously (limited by `llm_model_max_async=4`) -- **LLM level**: Global maximum 4 LLM requests concurrent - -**Expected behavior**: 4 chunks process concurrently, remaining 2 chunks wait. - -### Scenario 2: Multiple Documents with Multiple Chunks -Assume 3 documents, each with 10 chunks: - -- **Document level**: Maximum 2 documents processed simultaneously -- **Chunk level**: Maximum 4 chunks per document processed simultaneously -- **Theoretical Chunk concurrency**: 2 × 4 = 8 chunks processed simultaneously -- **Actual LLM concurrency**: Only 4 LLM requests actually execute - -**Actual state distribution**: -``` -# Possible system state: -Document 1: 4 chunks "processing" (2 executing LLM, 2 waiting for LLM response) -Document 2: 4 chunks "processing" (2 executing LLM, 2 waiting for LLM response) -Document 3: Waiting for document-level semaphore - -Total: -- 8 chunks in "processing" state -- 4 LLM requests actually executing -- 4 chunks waiting for LLM response -``` - -## 7. Performance Optimization Recommendations - -### Understanding the Bottleneck - -The real bottleneck is the global LLM queue, not the chunk semaphores! - -### Adjustment Strategies - -**Strategy 1: Increase LLM Concurrent Capacity** - -```bash -# Environment variable configuration -export MAX_PARALLEL_INSERT=2 # Keep document concurrency -export MAX_ASYNC=8 # 🔥 Increase LLM request concurrency -``` - -**Strategy 2: Balance Document and LLM Concurrency** - -```python -rag = LightRAG( - max_parallel_insert=3, # Moderately increase document concurrency - llm_model_max_async=12, # Significantly increase LLM concurrency - entity_extract_max_gleaning=0, # Reduce serial steps within chunks -) -``` - -## 8. Summary - -Key characteristics of LightRAG's multi-document concurrent processing mechanism: - -### Concurrent Layers -1. **Inter-document competition**: Controlled by `max_parallel_insert`, default 2 documents concurrent -2. **Theoretical Chunk concurrency**: Each document independently creates semaphores, total = max_parallel_insert × llm_model_max_async -3. **Actual LLM concurrency**: All chunks share global LLM queue, controlled by `llm_model_max_async` -4. **Intra-chunk serial**: Multiple LLM requests within each chunk execute strictly serially - -### Key Insights -- **Theoretical vs Actual**: System may have many chunks "in processing", but only few are actually executing LLM requests -- **Real Bottleneck**: Global LLM request queue is the performance bottleneck, not chunk semaphores -- **Optimization Focus**: Increasing `llm_model_max_async` is more effective than increasing `max_parallel_insert` +The recommended number of parallel document processing tasks is 1/4 of the LLM's concurrency, with a minimum of 2 and a maximum of 10. Setting a higher number of parallel document processing tasks typically does not accelerate overall document processing speed, as even a small number of concurrently processed documents can fully utilize the LLM's parallel processing capabilities. Excessive parallel document processing can significantly increase the processing time for each individual document. Since LightRAG commits processing results on a file-by-file basis, a large number of concurrent files would necessitate caching a substantial amount of data. In the event of a system error, all documents in the middle stage would require reprocessing, thereby increasing error handling costs. For instance, setting `MAX_PARALLEL_INSERT` to 3 is appropriate when `MAX_ASYNC` is configured to 12. diff --git a/docs/assets/lightrag_indexing.png b/docs/assets/lightrag_indexing.png deleted file mode 100644 index 6ef0491af91dc63da12dade8bf52eef204389a81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187200 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 z 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�#D*&=NjIJBW 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 z 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
K**uI0U7ClCC=DThYr@%6f?omU6yJX3F$s}kx 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 None: - """Process single document""" - async with semaphore: # 🔥 文档级别并发控制 - # ... 处理单个文档的所有chunks - -# 创建文档级别信号量 -semaphore = asyncio.Semaphore(self.max_parallel_insert) # 默认2 - -# 为每个文档创建处理任务 -doc_tasks = [] -for doc_id, status_doc in to_process_docs.items(): - doc_tasks.append( - process_document( - doc_id, status_doc, split_by_character, split_by_character_only, - pipeline_status, pipeline_status_lock, semaphore - ) - ) - -# 等待所有文档处理完成 -await asyncio.gather(*doc_tasks) -``` - -## 2. Chunk级别并发控制 - -**控制参数**:`llm_model_max_async` - -**关键点**:每个文档都会独立创建自己的chunk信号量! - -```python -# lightrag/lightrag.py -llm_model_max_async: int = field(default=int(os.getenv("MAX_ASYNC", 4))) -``` - -### 实现机制 - -在 `extract_entities` 函数中,**每个文档独立创建**自己的chunk信号量: - -```python -# lightrag/operate.py - extract_entities函数 -async def extract_entities(chunks: dict[str, TextChunkSchema], global_config: dict[str, str], ...): - # 🔥 关键:每个文档都会独立创建这个信号量! - llm_model_max_async = global_config.get("llm_model_max_async", 4) - semaphore = asyncio.Semaphore(llm_model_max_async) # 每个文档的chunk信号量 - - async def _process_with_semaphore(chunk): - async with semaphore: # 🔥 文档内部的chunk并发控制 - return await _process_single_content(chunk) - - # 为每个chunk创建任务 - tasks = [] - for c in ordered_chunks: - task = asyncio.create_task(_process_with_semaphore(c)) - tasks.append(task) - - # 等待所有chunk处理完成 - done, pending = await asyncio.wait(tasks, return_when=asyncio.FIRST_EXCEPTION) - chunk_results = [task.result() for task in tasks] - return chunk_results -``` - -### 重要推论:系统整体Chunk并发数 - -由于每个文档独立创建chunk信号量,系统理论上的chunk并发数是: - -**理论Chunk并发数 = max_parallel_insert × llm_model_max_async** - -例如: -- `max_parallel_insert = 2`(同时处理2个文档) -- `llm_model_max_async = 4`(每个文档最多4个chunk并发) -- 理论结果:最多 2 × 4 = 8个chunk同时处于"处理中"状态 - -## 3. LLM请求级别并发控制(真正的瓶颈) - -**控制参数**:`llm_model_max_async`(全局共享) - -**关键**:尽管可能有8个chunk在"处理中",但所有LLM请求共享同一个全局优先级队列! - -```python -# lightrag/lightrag.py - __post_init__方法 -self.llm_model_func = priority_limit_async_func_call(self.llm_model_max_async)( - partial( - self.llm_model_func, - hashing_kv=hashing_kv, - **self.llm_model_kwargs, - ) -) -# 🔥 全局LLM队列大小 = llm_model_max_async = 4 -``` - -### 优先级队列实现 - -```python -# lightrag/utils.py - priority_limit_async_func_call函数 -def priority_limit_async_func_call(max_size: int, max_queue_size: int = 1000): - def final_decro(func): - queue = asyncio.PriorityQueue(maxsize=max_queue_size) - tasks = set() - - async def worker(): - """Worker that processes tasks in the priority queue""" - while not shutdown_event.is_set(): - try: - priority, count, future, args, kwargs = await asyncio.wait_for(queue.get(), timeout=1.0) - result = await func(*args, **kwargs) # 🔥 实际LLM调用 - if not future.done(): - future.set_result(result) - except Exception as e: - # 错误处理... - finally: - queue.task_done() - - # 🔥 创建固定数量的worker(max_size个),这是真正的并发限制 - for _ in range(max_size): - task = asyncio.create_task(worker()) - tasks.add(task) -``` - -## 4. Chunk内部处理机制(串行) - -### 为什么是串行? - -每个chunk内部的处理严格按照以下顺序串行执行: - -```python -# lightrag/operate.py - _process_single_content函数 -async def _process_single_content(chunk_key_dp: tuple[str, TextChunkSchema]): - # 步骤1:初始实体提取 - hint_prompt = entity_extract_prompt.format(**{**context_base, "input_text": content}) - final_result = await use_llm_func_with_cache(hint_prompt, use_llm_func, ...) - - # 处理初始提取结果 - maybe_nodes, maybe_edges = await _process_extraction_result(final_result, chunk_key, file_path) - - # 步骤2:Gleaning(深挖)阶段 - for now_glean_index in range(entity_extract_max_gleaning): - # 🔥 串行等待gleaning结果 - glean_result = await use_llm_func_with_cache( - continue_prompt, use_llm_func, - llm_response_cache=llm_response_cache, - history_messages=history, cache_type="extract" - ) - - # 处理gleaning结果 - glean_nodes, glean_edges = await _process_extraction_result(glean_result, chunk_key, file_path) - - # 合并结果... - - # 步骤3:判断是否继续循环 - if now_glean_index == entity_extract_max_gleaning - 1: - break - - # 🔥 串行等待循环判断结果 - if_loop_result = await use_llm_func_with_cache( - if_loop_prompt, use_llm_func, - llm_response_cache=llm_response_cache, - history_messages=history, cache_type="extract" - ) - - if if_loop_result.strip().strip('"').strip("'").lower() != "yes": - break - - return maybe_nodes, maybe_edges -``` - -## 5. 完整的并发层次图 -![lightrag_indexing.png](..%2Fassets%2Flightrag_indexing.png) - - -## 6. 实际运行场景分析 - -### 场景1:单文档多Chunk -假设有1个文档,包含6个chunks: - -- 文档级别:只有1个文档,不受 `max_parallel_insert` 限制 -- Chunk级别:最多4个chunks同时处理(受 `llm_model_max_async=4` 限制) -- LLM级别:全局最多4个LLM请求并发 - -**预期行为**:4个chunks并发处理,剩余2个chunks等待。 - -### 场景2:多文档多Chunk -假设有3个文档,每个文档包含10个chunks: - -- 文档级别:最多2个文档同时处理 -- Chunk级别:每个文档最多4个chunks同时处理 -- 理论Chunk并发:2 × 4 = 8个chunks同时处理 -- 实际LLM并发:只有4个LLM请求真正执行 - -**实际状态分布**: -``` -# 可能的系统状态: -文档1: 4个chunks"处理中"(其中2个在执行LLM,2个在等待LLM响应) -文档2: 4个chunks"处理中"(其中2个在执行LLM,2个在等待LLM响应) -文档3: 等待文档级别信号量 - -总计: -- 8个chunks处于"处理中"状态 -- 4个LLM请求真正执行 -- 4个chunks等待LLM响应 -``` - -## 7. 性能优化建议 - -### 理解瓶颈 - -**真正的瓶颈是全局LLM队列,而不是chunk信号量!** - -### 调整策略 - -**策略1:提高LLM并发能力** - -```bash -# 环境变量配置 -export MAX_PARALLEL_INSERT=2 # 保持文档并发 -export MAX_ASYNC=8 # 🔥 增加LLM请求并发数 -``` - -**策略2:平衡文档和LLM并发** - -```python -rag = LightRAG( - max_parallel_insert=3, # 适度增加文档并发 - llm_model_max_async=12, # 大幅增加LLM并发 - entity_extract_max_gleaning=0, # 减少chunk内串行步骤 -) -``` - -## 8. 总结 - -LightRAG的多文档并发处理机制的关键特点: - -### 并发层次 -1. **文档间争抢**:受 `max_parallel_insert` 控制,默认2个文档并发 -2. **理论Chunk并发**:每个文档独立创建信号量,总数 = `max_parallel_insert × llm_model_max_async` -3. **实际LLM并发**:所有chunk共享全局LLM队列,受 `llm_model_max_async` 控制 -4. **单Chunk内串行**:每个chunk内的多个LLM请求严格串行执行 - -### 关键洞察 -- **理论vs实际**:系统可能有很多chunk在"处理中",但只有少数在真正执行LLM请求 -- **真正瓶颈**:全局LLM请求队列是性能瓶颈,而不是chunk信号量 -- **优化重点**:提高 `llm_model_max_async` 比增加 `max_parallel_insert` 更有效