GraphGen是一个由知识图谱引导的合成数据生成框架,从源文本构建一个细粒度的知识图谱,使用预期校准误差指标识别大语言模型中的知识差距,优先生成针对高价值长尾知识的问答对。
GraphGen通过多跳邻域采样来捕捉复杂的关系信息,采用风格控制生成,让最终的问答数据更多样化。
可以通过网页入口体验GraphGen。
运行python webui/app.py
命令,上传文本块(比如农业、医疗保健或海洋科学方面的知识),填入大语言模型的API密钥,就能在线生成Llama Factor和tuner所需的训练数据,数据处理完成后,会自动删除用户信息。
从PyPI运行
1、安装GraphGen:执行pip install graphg
命令。
2、在命令行界面运行:设置好合成器模型、训练模型等相关信息对应的环境变量,再运行graphg --output_dir cache
命令,具体环境变量设置如下:
SYNTHESIZER_MODEL=your_synthesizer_model_name
SYNTHESIZER_BASE_URL=your_base_url_for_synthesizer_model
SYNTHESIZER_API_KEY=your_api_key_for_synthesizer_model
TRAINEE_MODEL=your_trainee_model_name
TRAINEE_BASE_URL=your_base_url_for_trainee_model
TRAINEE_API_KEY=your_api_key_for_trainee_model
从源代码运行
1、安装依赖项:执行pip install -r requirements.txt
命令。
2、配置环境:在根目录创建一个.env
文件,执行cp.env.example.env
命令,然后设置以下环境变量:
SYNTHESIZER_MODEL=your_synthesizer_model_name
(合成器是用于构建知识图谱和生成数据的模型)
SYNTHESIZER_BASE_URL=your_base_url_for_synthesizer_model
SYNTHESIZER_API_KEY=your_api_key_for_synthesizer_model
TRAINEE_MODEL=your_trainee_model_name
(训练模型是用于使用生成的数据进行训练的模型)
TRAINEE_BASE_URL=your_base_url_for_trainee_model
TRAINEE_API_KEY=your_api_key_for_trainee_model
(可选)如果想修改默认的生成配置,可以编辑configs/graphgen_config.yaml
文件的内容。
3、运行生成脚本:执行bash scripts/generate.sh
命令。
4、获取生成的数据:执行ls cache/data/graphgen
命令查看。
使用Docker运行
1、构建Docker镜像:执行docker build -t graphgen.
命令。
2、运行Docker容器:执行docker run -p 7860:7860 graphgen
命令。
GraphGen工作流程
1、知识构建:从源文档提取知识,构建知识图谱。
2、理解评估:评估大语言模型对知识的理解程度,计算损失值来判断知识的重要性和模型的掌握情况。
3、图组织:对知识进行整理,根据不同策略选择和组织数据。
4、问答生成:
原子问答:针对单一事实生成问答。
聚合问答:用于分析、总结或比较一系列相关信息。
多跳问答:在不同概念之间进行推理时使用。