LLMs之RAG:KG-RAG的简介、安装和使用方法、案例应用之详细攻略
目录
KG-RAG的简介
2023年12月4日KG-RAG正式开源发布,KG-RAG代表基于知识图谱的检索增强生成,是使用基于知识图谱的检索增强生成(KG-RAG)来赋能大型语言模型(LLM)进行知识密集型任务。这是一个与任务无关的框架,结合了知识图谱(KG)的显式知识和大型语言模型(LLM)的隐式知识。
1、SPOKE测试数据集
在这里,我们利用了一个庞大的生物医学知识图谱,称为SPOKE,作为生物医学上下文的提供者。 SPOKE已经整合了来自不同领域的40多个生物医学知识库,每个知识库都专注于生物医学概念,如基因、蛋白质、药物、化合物、疾病及其已建立的关联。 SPOKE由21种不同类型的超过2700万个节点和55种不同类型的超过5300万条边组成。
KG-RAG的主要特点是它从SPOKE KG中提取“提示感知上下文”,其定义为:足以响应用户提示的最小上下文。因此,该框架通过将来自生物医学KG的优化域特定的“提示感知上下文”整合到通用LLM中来赋能。
KG-RAG的安装和使用方法
1、如何运行KG-RAG
注意:目前,KG-RAG专门设计用于运行与疾病相关的提示。我们正在积极努力改进其多功能性。
步骤1:克隆存储库
克隆此存储库。 文章中使用的所有生物医学数据都已上传到此存储库,因此您无需单独下载。
步骤2:创建虚拟环境
注意:此存储库中的脚本是使用python 3.10.9运行的
conda create -n kg_rag python=3.10.9
conda activate kg_rag
cd KG_RAG
步骤3:安装依赖项
pip install -r requirements.txt
步骤4:更新config.yaml
config.yaml包含运行您的计算机上的脚本所需的所有必要信息。 请确保相应地填充此yaml文件。
注意:还有另一个名为system_prompts.yaml的yaml文件。 这已经被填充,并且其中包含了KG-RAG框架中使用的所有系统提示。
步骤5:运行设置脚本
注意:请确保您在KG_RAG文件夹中
设置脚本以交互方式运行。
运行设置脚本将:
为KG-RAG创建疾病向量数据库
在您的机器上下载Llama模型(可选,您可以跳过此步骤,完全没问题)
python -m kg_rag.run_setup
步骤6:从您的终端运行KG-RAG
注意:请确保您在KG_RAG文件夹中
您可以使用GPT和Llama模型运行KG-RAG。
使用GPT
# GPT_API_TYPE='azure'
python -m kg_rag.rag_based_generation.GPT.text_generation -g <your favorite gpt model - "gpt-4" or "gpt-35-turbo">
# GPT_API_TYPE='openai'
python -m kg_rag.rag_based_generation.GPT.text_generation -g <your favorite gpt model - "gpt-4" or "gpt-3.5-turbo">
注意:以下示例在AWS p3.8xlarge EC2实例上运行,并使用KG-RAG v0.3.0。
使用GPT的交互模式
这允许用户以交互方式浏览每个步骤的过程
# GPT_API_TYPE='azure'
python -m kg_rag.rag_based_generation.GPT.text_generation -i True -g <your favorite gpt model - "gpt-4" or "gpt-35-turbo">
# GPT_API_TYPE='openai'
python -m kg_rag.rag_based_generation.GPT.text_generation -i True -g <your favorite gpt model - "gpt-4" or "gpt-3.5-turbo">
使用Llama
注意:如果您在设置步骤中没有下载Llama,则当您运行以下命令时,可能需要一些时间,因为它将首先下载模型。
python -m kg_rag.rag_based_generation.Llama.text_generation -m <method-1 or method2, if nothing is mentioned it will take 'method-1'>
示例:
注意:以下示例在AWS p3.8xlarge EC2实例上运行,并使用KG-RAG v0.3.0。
使用Llama的交互模式
这允许用户以交互方式浏览每个步骤的过程
python -m kg_rag.rag_based_generation.Llama.text_generation -i True -m <method-1 or method2, if nothing is mentioned it will take 'method-1'>
KG-RAG的命令行参数
Argument | Default Value | Definition | Allowed Options | Notes |
---|---|---|---|---|
-g | gpt-35-turbo | GPT model selection | gpt models provided by OpenAI | Use only for GPT models |
-i | False | Flag for interactive mode (shows step-by-step) | True or False | Can be used for both GPT and Llama models |
-e | False | Flag for showing evidence of association from the graph | True or False | Can be used for both GPT and Llama models |
-m | method-1 | Which tokenizer method to use | method-1 or method-2. method-1 uses 'AutoTokenizer' and method-2 uses 'LlamaTokenizer' and with an additional 'legacy' flag set to False while initiating the tokenizer | Use only for Llama models |
2、KG-RAG的示例用例
以下片段显示了FDA网站关于“setmelanotide”药物在巴代特-比德尔综合征患者体重管理中获得批准的新闻
询问GPT-4有关上述药物的信息:
使用GPT进行提示而不使用KG-RAG
注意:此示例是使用KG-RAG v0.3.0运行的。我们是从终端而不是从chatGPT浏览器提示GPT。所有分析的温度参数均设置为0。参考此yaml文件以进行参数设置
(kg rag test 2) rootBip-10-0-145-245:/data/scmank/test_kg rag /K&c reg# python -m ke rag prompt based generation
输入你的问题:有没有药物用于控制Bardet-Biedl综合征患者的体重?
以下是基于提示的答案:
Bardet-Biedl综合征(1aS)是一种罕见的遗传性疾病,其症状范围广泛,包括肥胖。管理的无障碍是类似于一般?L应用,重点关注饮食和锻炼等生活方式的改变。然而,在某些情况下,药物可以用来帮助减肥。
腕酸钠是一种不可忽视的药物,它可以抑制饮食中脂肪的吸收。另一种药物是二甲双胍,主要用于治疗糖尿病,但也有助于减肥。
然而,重要的是要注意,这些药物只能在医疗保健提供者的监督下使用,因为它们可能有局部效应,而且不适合所有人。此外,它们不能代替健康的饮食
饮食和经常锻炼。
目前还没有特定的药物被批准用于控制Bardet-Biedl患者的体重。治疗通常是一次性的和昂贵的。
任何治疗方案都应与熟悉患者整体健康状况和具体情况的医疗保健提供者讨论。
使用KG-RAG进行提示
注意:此示例是使用KG-RAG v0.3.0运行的。所有分析的温度参数均设置为0。参考此yaml文件以进行参数设置
您可以看到,KG-RAG能够提供有关FDA批准药物的正确信息。
(kg rag test 2) root. ip-10-90-145-245:/data/somank/test_kg rag /KG Rac# python -m kg rag. rag based generation.GPT.
你的问题是:有没有药物用于控制Bardet-Biedl综合征患者的体重?
从SPOKE图中检索上下文…
以下是基于KG-RAG的答案:
是的,Setmelanotide是一种用于治疗Bardet-Biedl综合征的化合物。这种关联的来源是ChEMBL。
KG-RAG的案例应用
持续更新中……