Bases: BaseNodePostprocessor
模型很难访问到位于扩展上下文中心的重要细节。一项研究(https://arxiv.org/abs/2307.03172)观察到,当关键数据位于输入上下文的开头或结尾时,通常会出现最佳性能。此外,随着输入上下文的延长,即使是针对长上下文设计的模型,性能也会显著下降。".
Source code in llama_index/core/postprocessor/node.py
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380 | class LongContextReorder(BaseNodePostprocessor):
"""模型很难访问到位于扩展上下文中心的重要细节。一项研究(https://arxiv.org/abs/2307.03172)观察到,当关键数据位于输入上下文的开头或结尾时,通常会出现最佳性能。此外,随着输入上下文的延长,即使是针对长上下文设计的模型,性能也会显著下降。"."""
@classmethod
def class_name(cls) -> str:
return "LongContextReorder"
def _postprocess_nodes(
self,
nodes: List[NodeWithScore],
query_bundle: Optional[QueryBundle] = None,
) -> List[NodeWithScore]:
"""后处理节点。"""
reordered_nodes: List[NodeWithScore] = []
ordered_nodes: List[NodeWithScore] = sorted(
nodes, key=lambda x: x.score if x.score is not None else 0
)
for i, node in enumerate(ordered_nodes):
if i % 2 == 0:
reordered_nodes.insert(0, node)
else:
reordered_nodes.append(node)
return reordered_nodes
|