基于图的检索增强生成框架LightRAG (应变软化)

文摘   教育培训   2024-11-07 08:40   内蒙古  

1. 引言

迄今为止,《计算岩土力学》已经试验了不同的RAG技术,例如:
其中,基于图的检索增强生成(GraphRAG)最有吸引力,GraphRAG 不仅存储和检索孤立的文本块,还创建了一个由节点和边组成的网络,即一个代表不同概念之间关系的知识图谱,GraphRAG 可以提供一个由实体之间的联系告知的答案。事实上,在2022年11月ChatGPT发布之前,我们对自然语言处理的研究主要集中在知识图谱的发展。现在,知识图谱与LLM结合在一起,形成了类似微软的GraphRAG,不过,GraphRAG每当添加新的数据时,都必须重新建立整个图,计算成本和计算时间非常高,因此诞生了更高效、更可扩展的框架LightRAG。

2. LightRAG的主要特性 

LightRAG旨在优化大语言模型在信息检索和生成任务中的性能,它通过结合检索和生成技术,提供更全面和专业的回答,提升对话系统和信息检索的实际应用效果。

LightRAG 继承了GraphRAG最好的部分,但在几个方面对其进行了改进:

(1) 快速性和轻便性。LightRAG相较于传统的RAG模型,具有更轻的计算负担,能够实现更快的检索和生成速度,这使得它在实时应用中表现更为出色。

(2) 多种查询模式。支持多种搜索模式,包括简单搜索、局部搜索、全局搜索和混合搜索,用户可以根据不同需求选择合适的模式。

(3) 增量和批量插入。LightRAG能够轻松处理数据的增量插入,并支持实时更新,适用于动态数据环境。

(4) 模块化组件。LightRAG将RAG管道分解为独立且可插拔的模块,包括检索器、代理和生成器,开发者可以根据需求替换或扩展这些组件。

(5) 灵活架构。不依赖于特定的LLM提供商或工具,支持开发者自由选择和组合不同的模型、数据库和外部工具,以构建高度定制化的RAG管道。


3. LightRAG的主要功能 

(1) 基于图的索引: 与GraphRAG 一样,LightRAG 使用图来捕获实体之间的关系,从而轻松连接想法。LightRAG通过将图结构与向量表示结合,能够深入理解实体之间的复杂关系,从而提高信息检索的全面性与准确性。

(2) 双级检索:它既可以处理特定问题,也可以处理更广泛的问题。LightRAG采用了双层检索机制,即低层和高层检索策略。低层检索专注于获取特定实体及其属性或关系,而高层检索则聚焦于更广泛的主题和概念,这种设计确保了系统能够有效处理各种类型的查询。

(3) 增量更新:LightRAG 允许在不重建整个图的情况下添加新数据。

(4) 高效的信息检索:LightRAG通过图数据结构精确刻画实体间复杂关系,使得在处理高级问题时能够有效整合多方面的信息。

(5) 灵活的数据处理:支持多种数据格式,并提供灵活的数据加载和预处理工具,以帮助开发者准备训练、验证和测试数据。


4. 安装LightRAG

采用pip安装LigthRAG

install lightrag-hku

这个代码在Github上没有给出版本历史和版本号,检查版本(pip freeze | findstr lightrag-hku)发现当前版本是0.0.8(lightrag-hku==0.0.8)(11/6/2024)。不过当执行代码时,提示需要安装另外两个模块:

pip install aioboto3pip install nano_vectordb

5. 测试

(1) 读入文件
下面的代码首先为目录itasca初始化LigthRAG,然后读入文件Strain.txt。
rag = LightRAG(working_dir="./itasca")with open("Strain.txt",'r', encoding='utf-8') as f:    rag.insert(f.read())
比较奇怪的是这个过程使用了下面两个模型:
tiktoken_model_name = gpt-4o-mini,
llm_model_name = meta-llama/Llama-3.2-1B-Instruct,
代码中没有指定这两个模型,按理说如果不设定模型,代码是不能运行的,尤其是gpt-4o-mini,尽管我有OpenAI的API,但在这个代码中并没有使用,确实不清楚其内部如何操作的。
Strain.txt是一个从<Itasca笔记>通过三级数据蒸馏得到的文件,主旨是塑性应变(plastic strain),文件尺寸为938k, 在产生图的过程中,特别出现了下面几个词汇,尽管不清楚它们真实的含义,可能代表的是文档中的关键词汇或出现频率最高的词汇。
  • FLAC3D

  • 3DEC

  • MOHR-COULOMB MODEL

  • FISH FUNCTIONS

  • TENSILE STRENGTH

  • COHESION

查询的问题为“What is strain softening model?”,下面是LigthRAG给出的结果

(1) 应变软化模型是一种用于描述材料行为的框架,尤其是土和岩石等地质材料,它们在达到峰值应力后会出现强度降低的现象,这种现象通常与断裂和微结构变化等过程有关,当材料承受更大的载荷或应变时,这些过程就会发生。

(2) 在这种模型中,材料行为通常分为不同的阶段。起初,当施加应力时,材料可能会表现出弹性行为,直至达到峰值强度,之后会过渡到塑性阶段,强度会降低,这种强度下降称为 “应变软化”。该模型可以表示这种非线性材料行为,在模拟过程中,材料的内聚力、摩擦力和膨胀等属性会根据累积的塑性应变进行调整。

(3) 应变软化模型在岩土工程和结构分析中特别有用,因为在这些分析中,了解材料在不同载荷下的行为至关重要,采用莫尔-库仑模型(Mohr-Coulomb model)等屈服标准来确定软化发生的条件,以适应材料在实际情况下表现出的复杂行为。

总之,该模型可以帮助工程师和研究人员模拟和预测材料在各种载荷条件下的性能,尤其是在对材料破坏和峰值后行为感兴趣的情况下。


6. 结束语

就在写这篇文章的时候,微软发布了GraphRAG V0.4.0,这个版本作了许多重大更新,包括新增的增量检索功能。

计算岩土力学
2024年5月8日,《计算岩土力学》建立4周年啦!
 最新文章