일반 소개
그래프젠은 상하이의 AI 연구소인 오픈사이언스랩에서 개발한 오픈 소스 프레임워크로, 지식 그래프를 통해 합성 데이터 생성을 안내하여 대규모 언어 모델(LLM)의 감독 미세 조정을 최적화하는 데 중점을 두고 있으며, GitHub에 호스팅되어 있습니다. 소스 텍스트로부터 세분화된 지식 그래프를 구축하고, 예상 보정 오류(ECE) 메트릭을 사용하여 모델 지식 사각지대를 식별하며, 고가치 롱테일 지식을 대상으로 하는 Q&A 쌍의 생성 우선순위를 지정합니다.GraphGen은 복잡한 관계 정보를 캡처하기 위해 멀티홉 이웃 샘플링을 지원하며 스타일 제어를 통해 다양한 데이터를 생성할 수 있습니다. 이 프로젝트는 Apache 2.0 라이선스에 따라 라이선스가 부여되며, 학술 연구 및 상업적 개발을 위해 코드가 공개되어 있습니다. 사용자는 명령줄 또는 Gradio 인터페이스를 통해 생성 프로세스를 유연하게 구성할 수 있으며, 생성된 데이터는 모델 학습에 바로 사용할 수 있습니다.


기능 목록
- 세분화된 지식 그래프 구축: 텍스트에서 엔티티와 관계를 추출하여 구조화된 지식 그래프를 생성합니다.
- 지식 사각지대 파악: 예상 보정 오류(ECE) 메트릭을 기반으로 언어 모델에서 지식의 취약점을 찾아냅니다.
- 가치 높은 Q&A 쌍 생성: 롱테일 지식에 대한 Q&A 데이터 생성의 우선순위를 지정하여 모델 성능을 개선하세요.
- 멀티홉 이웃 샘플링: 지식 그래프에서 다단계 관계를 캡처하여 데이터 복잡성을 개선합니다.
- 스타일 제어 생성: 간결하거나 상세한 등 다양한 Q&A 스타일을 지원하여 다양한 시나리오에 맞게 조정할 수 있습니다.
- 사용자 지정 구성: YAML 파일을 통해 데이터 유형, 입력 파일 및 출력 경로를 조정합니다.
- 라디오 인터페이스 지원: 데이터 생성 작업을 간소화할 수 있는 시각적 인터페이스를 제공합니다.
- 모델 호환성: 데이터 생성 및 학습을 위한 여러 언어 모델(예: Qwen, OpenAI)을 지원합니다.
도움말 사용
설치 프로세스
GraphGen은 PyPI에서 설치하거나 소스에서 실행하는 것을 지원하는 Python 프로젝트입니다. 자세한 설치 단계는 다음과 같습니다:
PyPI에서 설치
- GraphGen 설치
다음 명령을 실행하여 Python 버전이 3.8 이상인지 확인합니다:pip install graphg
- 환경 변수 구성
GraphGen을 사용하려면 언어 모델링 API(예: Qwen 또는 OpenAI)를 호출해야 합니다. 터미널에서 환경 변수를 설정합니다:export SYNTHESIZER_MODEL="your_synthesizer_model_name" export SYNTHESIZER_BASE_URL="your_base_url" export SYNTHESIZER_API_KEY="your_api_key" export TRAINEE_MODEL="your_trainee_model_name" export TRAINEE_BASE_URL="your_base_url" export TRAINEE_API_KEY="your_api_key"
SYNTHESIZER_MODEL
지식 그래프 및 데이터를 생성하기 위한 모델입니다.TRAINEE_MODEL
교육에 사용되는 모델입니다.
- 명령줄 도구 실행
다음 명령을 실행하여 데이터를 생성합니다:graphg --output_dir cache
소스에서 설치
- 클론 창고
GraphGen 리포지토리를 로컬에 복제합니다:git clone https://github.com/open-sciencelab/GraphGen.git cd GraphGen
- 가상 환경 만들기
가상 환경을 만들고 활성화합니다:python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
- 종속성 설치
프로젝트 종속성을 설치합니다:pip install -r requirements.txt
PyTorch(1.13.1 이상 권장) 및 관련 라이브러리(예: LiteLLM, DSPy)가 설치되어 있는지 확인합니다. GPU를 사용하는 경우 CUDA 호환 버전을 설치합니다:
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
- 환경 변수 구성
예제 환경 파일을 복사하여 편집합니다:cp .env.example .env
존재
.env
파일을 사용하여 모델 관련 정보를 설정합니다:SYNTHESIZER_MODEL=your_synthesizer_model_name SYNTHESIZER_BASE_URL=your_base_url SYNTHESIZER_API_KEY=your_api_key TRAINEE_MODEL=your_trainee_model_name TRAINEE_BASE_URL=your_base_url TRAINEE_API_KEY=your_api_key
- 데이터 입력 준비
GraphGen에는 JSONL 형식의 입력 텍스트가 필요합니다. 예제 데이터는resources/examples/raw_demo.jsonl
. 사용자는 일관된 서식을 보장하기 위해 사용자 지정 데이터를 준비할 수 있습니다.
사용법
GraphGen은 명령줄과 Gradio 인터페이스를 모두 지원합니다. 자세한 단계는 다음과 같습니다:
명령줄 작업
- 구성 파일 수정
컴파일러configs/graphgen_config.yaml
파일을 사용하여 데이터 생성 매개변수를 설정합니다:data_type: "raw" input_file: "resources/examples/raw_demo.jsonl" output_dir: "cache" ece_threshold: 0.1 sampling_hops: 2 style: "detailed"
data_type
입력 데이터 유형(예raw
).input_file
: 파일 경로를 입력합니다.output_dir
: 출력 디렉토리.ece_threshold
지식 사각지대 식별을 위한 ECE 임계값.sampling_hops
멀티홉 샘플링 깊이.style
Q&A 생성 스타일(예detailed
어쩌면concise
).
- 생성된 스크립트 실행
다음 명령을 실행하여 데이터를 생성합니다:bash scripts/generate.sh
또는 Python 스크립트를 실행하세요:
python -m graphg --config configs/graphgen_config.yaml
- 생성된 결과 보기
생성된 Q&A 쌍은 생성된 Q&A 쌍은cache/data/graphgen
디렉토리에 JSONL 파일 형식으로 저장합니다:ls cache/data/graphgen
라디오 인터페이스 작동
- 라디오 인터페이스 시작하기
다음 명령을 실행하여 시각화 인터페이스를 시작합니다:python webui/app.py
브라우저에서 데이터 생성 프로세스를 보여주는 Gradio 인터페이스가 열립니다.
- 워크플로
- 인터페이스에서 JSONL 형식의 입력 파일을 업로드합니다.
- 생성 매개변수(예: ECE 임계값, 샘플 깊이, 생성 스타일)를 구성합니다.
- "생성" 버튼을 클릭하면 시스템이 입력을 처리하여 Q&A 쌍을 출력합니다.
- 생성된 JSONL 파일을 다운로드합니다.
주요 기능 작동
- 지식 그래프 구성GraphGen은 입력 텍스트에서 엔티티와 관계를 자동으로 추출하여 지식 그래프를 생성하고 이를 JSON 형식으로 저장합니다. 수동 개입이 필요하지 않습니다.
- 지식 사각지대 식별ECE 메트릭 분석 모델을 통해 편향성을 예측하고 타겟팅된 Q&A 쌍을 생성합니다. 조정
ece_threshold
블라인드 심사 엄격성 제어. - 멀티홉 이웃 샘플링지식 그래프에서 다단계 관계를 캡처하여 복잡한 Q&A 쌍을 생성합니다. 설정
sampling_hops
샘플링 깊이를 제어합니다. - 스타일 컨트롤 생성다양한 시나리오에 대해 여러 Q&A 스타일이 지원됩니다. 사용자는 다음을 수행할 수 있습니다.
style
이 매개변수는 스타일을 선택합니다.
교육 모델
생성된 데이터는 감독형 미세 조정(SFT)에 사용할 수 있습니다. 출력 파일을 SFT를 지원하는 프레임워크(예: XTuner)로 가져옵니다:
xtuner train --data cache/data/graphgen/output.jsonl --model qwen-7b
주의
- API 키와 네트워크 연결이 안정적인지, 생성 프로세스가 외부 모델을 호출하는지 확인합니다.
- 입력 데이터는 JSONL 형식이어야 하며, 다음을 참조하세요.
raw_demo.jsonl
. - 성능 최적화를 위해 대규모 데이터 생성에는 GPU 장치를 사용하는 것이 좋습니다.
- 종속성 버전을 확인하여 충돌을 방지하세요. 필요한 경우 업데이트
requirements.txt
.
추가 리소스
- OpenXLab 애플리케이션 센터사용자는 다음을 통해 정보에 액세스할 수 있습니다. OpenXLab GraphGen을 경험하세요.
- 공식 FAQ깃허브 참조 자주 묻는 질문 일반적인 문제 해결.
- 기술적 분석: DeepWiki 제공 시스템 아키텍처 분석이 섹션에서는 GraphGen의 워크플로우에 대해 자세히 설명합니다.
애플리케이션 시나리오
- 학술 연구
연구자들은 GraphGen을 사용하여 전문 분야에 대한 Q&A 데이터를 생성할 수 있습니다. 예를 들어 화학 또는 의학 도메인 모델에 대한 학습 데이터를 생성하면 모델의 지식 범위가 향상됩니다. - 엔터프라이즈 AI 최적화
기업은 GraphGen을 사용하여 고객 서비스 또는 추천 시스템을 위한 맞춤형 Q&A 쌍을 생성하여 대화 모델의 응답성을 최적화할 수 있습니다. - 교육 플랫폼 개발
개발자는 다양한 교육 Q&A 데이터를 생성하여 개인 맞춤형 학습을 지원하는 지능형 교육 도구를 구축할 수 있습니다.
QA
- GraphGen은 어떤 모델을 지원하나요?
GraphGen은 LiteLLM을 통해 OpenAI, Qwen, Ollama 및 기타 모델을 지원합니다. 모델 API 키와 주소가 필요합니다. - 입력 데이터는 어떻게 준비하나요?
입력 데이터는 각 줄에 텍스트 콘텐츠가 포함된 JSONL 형식이어야 합니다. 참조resources/examples/raw_demo.jsonl
. - 데이터를 생성하는 데 시간이 얼마나 걸리나요?
작은 데이터 크기(100개 항목)는 입력량과 하드웨어의 성능에 따라 몇 분, 큰 데이터 크기는 몇 시간이 걸릴 수 있습니다. - Gradio 인터페이스는 어떻게 작동하나요?
움직여야 합니다.python webui/app.py
데이터는 브라우저를 통해 입력 파일을 업로드하고 매개변수를 구성하여 생성됩니다.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...