当前位置: 首页 > news >正文

(笔记+作业)第五期书生大模型实战营---L2G2000 GraphGen:训练数据合成实践

学员闯关手册:https://aicarrier.feishu.cn/wiki/QdhEwaIINietCak3Y1dcdbLJn3e
课程视频:https://www.bilibili.com/video/BV13U1VYmEUr/
课程文档:https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/Python
关卡作业:https://github.com/InternLM/Tutorial/blob/camp4/docs/L0/Python/task.md
开发机平台:https://studio.intern-ai.org.cn/
开发机平台介绍:https://aicarrier.feishu.cn/wiki/GQ1Qwxb3UiQuewk8BVLcuyiEnHe
书生浦语官网:https://internlm.intern-ai.org.cn/
github网站:https://github.com/internLM/
InternThinker: https://internlm-chat.intern-ai.org.cn/internthinker
快速上手飞书文档:https://www.feishu.cn/hc/zh-CN/articles/945900971706-%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B%E6%96%87%E6%A1%A3
提交作业:https://aicarrier.feishu.cn/share/base/form/shrcnUqshYPt7MdtYRTRpkiOFJd;
作业批改结果:https://aicarrier.feishu.cn/share/base/query/shrcnkNtOS9gPPnC9skiBLlao2c
internLM-Chat 智能体:https://github.com/InternLM/InternLM/blob/main/agent/README_zh-CN.md
lagent:https://lagent.readthedocs.io/zh-cn/latest/tutorials/action.html#id2
github仓库:https://github.com/InternLM/xtuner
动态知识库:https://deepwiki.com/InternLM/xtuner

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.GraphGen介绍

GraphGen是一个基于知识图谱的SFT数据生成框架。
该框架通过构建细粒度知识图谱、识别 LLMs 的知识盲点、并生成多风格的内容来提高模型在知识密集型任务上的表现。GraphGen 适用于三种关键问答场景:原子问答(atomic QA)、聚合问答(aggregated QA)和多跳问答(multi-hop QA)。

  • Atomic QA:最基础的问答形式,专注于单一知识点或事实。
  • Aggregated QA:涉及多个知识点或复杂信息的整合。
  • Multi-hop QA:需要通过多步推理,结合多个知识点才能回答。
    在这里插入图片描述
    Github仓库:https://github.com/open-sciencelab/GraphGen

2. GraphGen流程解析

  1. 知识图谱构建
  • 文本分割:将原始文档分割成语义连贯的小片段。
  • 实体与关系提取:使用 Synthesizer Model 从片段中识别和提取实体及其关系。
  • 知识图谱聚合:将不同片段中的相同实体或关系的描述自动合并,形成知识图谱。
  1. 理解能力评估
  • 知识表示:将知识图谱中的每个关系视为一个知识陈述 Ri,并生成其改写版本及否定版本。
  • 置信度量化:通过 Trainee Model 对这些陈述的置信度进行评估,计算其对每个知识点的理解程度。
  • 理解损失计算:通过计算真实分布与预测分布之间的交叉熵,来衡量 Trainee Model 对知识的理解差距。
  1. 图组织
  • 子图提取:执行 k-hop 子图提取,以有效组织知识图谱。采用深度策略、长度策略和选择策略来平衡子图的复杂性、相关性和计算可行性。
  1. 问答对生成
  • 原子 QA 生成:从单个节点或边生成基础问答对。
  • 聚合 QA 生成:组织和改写子图中的数据,生成涉及多个实体和关系的综合性问答对。
  • 多跳 QA 生成:明确实体间关系,生成需要多步推理的问答对。

代码实战

#环节部署
conda create -n graphgen python=3.10 -y
conda activate graphgen
git clone https://github.com/open-sciencelab/GraphGen.git
cd GraphGen
pip install -r requirements.txt#2使用Gradio Demo进行简单数据合成,
python webui/app.py
#1.打开 http://0.0.0.0:7860,能够看到如下界面,2. 填入调用LLM接口的base url、model和api key。从https://ai.gitee.com/serverless-api,前往 Gitee AI 工作台 - 设置 - 访问令牌,创建你的 API Key,
#使用 InternLM3-8B-Instruct 完成数据生成,分别修改下面三处:
#Synthesizer URL: https://ai.gitee.com/v1
#Synthesizer Model: InternLM3-8B-Instruct
#API Key: 申请的API Key
#2、使用硅基流动https://siliconflow.cn/,进入API密钥页面,点击“新建API密钥”,创建您的API key,
#使用 internlm/internlm2_5-7b-chat 进行数据生成,分别修改下面三处:
#Synthesizer URL: https://api.siliconflow.cn/v1
#Synthesizer Model: internlm/internlm2_5-7b-chat
#3、选择任意一个example file,或者上传格式相同的文件
#4、点击Run GraphGen ,等待生成完成后,将会得到一个结果文件。

3、运行源码进行数据合成

#1.环境
conda create -n vllm python=3.12 -y
conda activate vllm
pip install vllm==0.8.5.post1
#2. 部署 internlm/internlm3-8b-instruct 的 OpenAI Compatible Server
vllm serve internlm/internlm3-8b-instruct
cp .env.example .env
SYNTHESIZER_MODEL=your-path/internlm3-8b-instruct
SYNTHESIZER_BASE_URL=http://0.0.0.0:8000/v1
SYNTHESIZER_API_KEY=
TRAINEE_MODEL=your-path/internlm3-8b-instruct
TRAINEE_BASE_URL=http://0.0.0.0:8000/v1
TRAINEE_API_KEY=
#5. 检查/修改配置文件configs/graphgen_config.yaml
#运行数据生成脚本
bash scripts/generate.sh
#等待生成完成后可以在指定目录查看生成的数据,ls cache/data/graphgen
#5. 检查/修改配置文件configs/graphgen_config.yaml
data_type: raw
input_file: resources/examples/raw_demo.jsonl
tokenizer: cl100k_base
quiz_samples: 2
traverse_strategy:qa_form: aggregatedbidirectional: trueedge_sampling: max_lossexpand_method: max_widthisolated_node_strategy: ignoremax_depth: 1max_extra_edges: 2max_tokens: 256loss_strategy: only_edge
web_search: false
re_judge: true
http://www.dtcms.com/a/285931.html

相关文章:

  • U盘运维笔记
  • 前端-CSS盒模型
  • 源鉴SCA4.9︱多模态SCA引擎重磅升级,开源风险深度治理能力再次进阶
  • world models and Human–Object Interaction (HOI)
  • Ubuntu locale命令介绍(查询和设置当前用户的语言、国家/地区以及字符编码等环境设置)
  • Windows 安装WSL +Docker 部署通义千问大模型(同步解决Ubuntu启动命令闪退)
  • 注册表单案例
  • Android性能优化之内存优化
  • HTML常见标签
  • 零售快销行业中线下巡店AI是如何颠覆传统计算机视觉识别的详细解决方案
  • Thymeleaf与Spring Boot深度集成与性能优化实战
  • 深度学习模型开发部署全流程:以YOLOv11目标检测任务为例
  • JavaScript解构性能解密:数组与对象解构的隐藏性能差异
  • 计算机视觉:AI 的 “眼睛” 如何看懂世界?
  • Sui 在非洲增长最快的科技市场开设 SuiHub Lagos 以推动创新
  • 质变科技亮相可信数据库发展大会,参编《数据库发展研究报告2025》
  • 《Python Web 框架深度剖析:Django、Flask 与 FastAPI 的选择之道》
  • web开发-HTML
  • Linux入门篇学习——借助 U 盘或 TF 卡拷贝程序到开发板上
  • Vue3 从 0 到 ∞:Composition API 的底层哲学、渲染管线与生态演进全景
  • *SFT深度实践指南:从数据构建到模型部署的全流程解析
  • 算法提升之字符串练习-03(KMP)
  • docker,防火墙关闭后,未重启docker,导致端口映射失败
  • 【51】MFC入门到精通——MFC串口助手(一)---初级版(串口设置、初始化、打开/关闭、状态显示),附源码
  • Java异步日志系统性能优化实践指南:基于Log4j2异步Appender与Disruptor
  • 鸿蒙实现一次上传多张图片
  • 物流3D工业相机:解锁自动化物流新纪元
  • 第三章-提示词-初级:一文带你入门提示词工程,开启AI高效交互之旅(11/36)
  • [Python] -实用技巧8-解锁 Python 中的 lambda 表达式用法
  • GISBox切片器技术解析:RVT模型到3DTiles瓦片的高性能转换方案