TL;DR

GraphGen framework overview - sinh synthetic training data từ knowledge graph

GraphGen là framework open-source dùng knowledge graph để sinh synthetic training data cho LLM. Thay vì rephrasing văn bản thô như các tool trước, nó xây graph tri thức từ tài liệu nguồn, đo lỗ hổng kiến thức bằng ECE metric, rồi sinh QA đa dạng nhắm vào đúng điểm yếu của model.

  • +15.5 điểm AIME25 (toán) với Qwen2.5-7B so với baseline

  • +14.4 điểm SeedBench (nông nghiệp), +6.7 điểm GPQA-Diamond (khoa học)

  • Free, Apache 2.0. Cài bằng uv pip install graphg

Vấn đề cần giải quyết

Khi fine-tune LLM cho domain chuyên biệt - y tế, nông nghiệp, pháp lý - dữ liệu labeled luôn là bottleneck. Các giải pháp synthetic data hiện tại mắc 4 lỗi cơ bản:

  • Hallucinate fact: model sinh dữ liệu không chính xác từ vùng kiến thức yếu

  • Bỏ sót long-tail: chỉ cover kiến thức phổ biến, bỏ qua đúng những gì model thực sự thiếu

  • Structure đơn giản: thiếu multi-hop reasoning, chỉ có QA một bước

  • Output đồng nhất: ít đa dạng ngôn ngữ, dễ gây overfitting vào pattern lặp

GraphGen giải quyết cả bốn điểm này bằng cách đặt knowledge graph làm trung tâm của toàn bộ pipeline sinh data.

Cơ chế hoạt động

Pipeline GraphGen gồm 3 bước chính:

  1. Xây knowledge graph từ tài liệu nguồn - hỗ trợ PDF, CSV, JSON, TXT, database (UniProt, NCBI), và web search. Graph trích entity và relationship thành cấu trúc có thể query được.

  2. Đo lỗ hổng kiến thức bằng Expected Calibration Error (ECE) - metric tự động xác định những khái niệm model đang yếu nhất trong graph, ưu tiên sinh data cho vùng long-tail trước.

  3. Sinh QA đa dạng theo 3 kịch bản: Atomic QA (fact đơn), Aggregated QA (tổng hợp nhiều node), Multi-hop QA (suy luận nhiều bước qua graph). Style-controlled generation đảm bảo output không bị lặp ngôn ngữ.

Ngoài QA, GraphGen còn hỗ trợ sinh dữ liệu pretraining qua rephrase pipeline dùng community detection (thuật toán Leiden) để tổng hợp Chain-of-Thought data, và VQA cho multimodal fine-tuning.

Benchmark ấn tượng

Task

Baseline tốt nhất

GraphGen

Delta

AIME25 (toán)

7.2

22.7

+15.5

SeedBench (nông nghiệp)

51.5

65.9

+14.4

GPQA-Diamond (khoa học)

33.3

40.0

+6.7

HotpotEval (multi-hop QA)

baseline

+4.73 ROUGE-F

-

PQArefEval (y tế)

baseline

+2.7 pts

-

Trainee model là Qwen2.5-7B-Instruct, synthesizer là Qwen2.5-72B-Instruct, tỉ lệ 50%+ GraphGen data trong SFT mix. Tốc độ sinh: khoảng 50,000 samples trong 2 giờ trên 8 NVIDIA A100. Lexical diversity (MTLD): 75.8 vs baseline tốt nhất 47.6 - tức 59% đa dạng hơn về mặt ngôn ngữ.

So sánh với các phương pháp khác

GraphGen được test trực tiếp với 5 baseline phổ biến và thắng toàn bộ trên mọi dataset:

  • vs WRAP & LongForm: hai tool này chỉ rephrase text thô, không có cấu trúc KG - không nhắm được knowledge gap cụ thể

  • vs EntiGraph: dùng entity graph nhưng thiếu bước ECE đo lỗ hổng, data sinh ra không targeted vào điểm yếu của model

  • vs SELF-QA & Genie: sinh QA từ raw text, không có multi-hop relational reasoning qua graph

  • vs RAG: GraphGen là closed-book SFT - nhúng kiến thức vào weight model, không phụ thuộc retrieval lúc inference

  • vs Evol-Instruct, Magpie: các tool này tập trung vào instruction diversity, không phải knowledge coverage của domain cụ thể

GraphGen là framework đầu tiên kết hợp cả ba yếu tố: KG construction + ECE gap detection + style-controlled generation trong một pipeline thống nhất.

Ai nên dùng - giới hạn cần biết

Phù hợp nhất cho:

  • ML engineer fine-tune LLM cho domain chuyên biệt (biomedical, khoa học, nông nghiệp, pháp lý)

  • Team có tài liệu nội bộ cần chuyển thành training data mà không muốn annotate thủ công

  • Use case cần closed-book SFT - model trả lời từ weight, không cần RAG lúc production

  • Bất kỳ ai đang bị hallucination trên long-tail knowledge của domain

Giới hạn cần biết:

  • Cần GPU - 8x A100 là config paper dùng; scale nhỏ hơn vẫn chạy được nhưng chậm hơn

  • Chưa validate kỹ cho pure code generation; math thì kết quả AIME25 khá tốt dù không phải design target chính

  • Không phù hợp open-book/RAG scenarios

  • Chất lượng output phụ thuộc vào chất lượng và độ phong phú của tài liệu nguồn

Bắt đầu ngay

uv pip install graphg

Hỗ trợ backend: HuggingFace, SGLang, vLLM, Ollama, OpenAI API, Azure OpenAI. Output formats: CoT, atomic, aggregated, multi-hop, multiple-choice, fill-in-the-blank, true/false. Tích hợp được với LLaMA-Factory và xtuner. Demo live trên HuggingFace Spaces và ModelScope.

Via: arXiv:2505.20416, GitHub open-sciencelab/GraphGen (Apache 2.0, 1,000+ stars).