Home
Login

효율적이고 유연하며 모든 기능을 갖춘 대규모 언어 모델 미세 조정 도구 키트입니다. 다양한 모델과 훈련 알고리즘을 지원합니다.

Apache-2.0Python 4.6kInternLM Last Updated: 2025-05-29

XTuner - 효율적인 대규모 언어 모델 미세 조정 툴킷

프로젝트 개요

XTuner는 InternLM 팀에서 개발한 효율적이고 유연하며 모든 기능을 갖춘 대규모 언어 모델 미세 조정 툴킷입니다. 이 프로젝트는 사용자에게 InternLM, Llama, Qwen, ChatGLM, Baichuan 등 주요 모델을 포함한 다양한 대규모 언어 모델을 미세 조정하기 위한 사용하기 쉽고 강력한 도구를 제공하는 것을 목표로 합니다.

핵심 기능

1. 효율성 (Efficient)

  • 낮은 리소스 요구 사항: 단일 8GB GPU에서 7B 파라미터의 대규모 언어 모델 미세 조정 지원
  • 다중 노드 확장: 70B 파라미터 이상의 다중 노드 미세 조정 지원
  • 성능 최적화: FlashAttention 및 Triton kernels와 같은 고성능 연산자를 자동 스케줄링하여 훈련 처리량 향상
  • DeepSpeed 통합: DeepSpeed 프레임워크와 호환되어 다양한 ZeRO 최적화 기술을 쉽게 사용 가능

2. 유연성 (Flexible)

  • 다중 모델 지원: 다양한 대규모 언어 모델 지원
    • InternLM 시리즈 (InternLM, InternLM2, InternLM2.5, InternLM3)
    • Meta Llama 시리즈 (Llama 2, Llama 3)
    • 기타 주요 모델: Mixtral-8x7B, ChatGLM, Qwen, Baichuan, Gemma, DeepSeek 등
  • 다중 모달 지원: 시각 언어 모델 (VLM), 특히 LLaVA 아키텍처 기반 모델 지원
  • 데이터 파이프라인: 다양한 형식의 데이터 세트를 지원하는 정교하게 설계된 데이터 파이프라인
  • 다양한 훈련 알고리즘: QLoRA, LoRA, 전체 파라미터 미세 조정 등 다양한 훈련 전략 지원

3. 모든 기능 (Full-featured)

  • 다양한 훈련 모드:
    • 지속적인 사전 훈련
    • 명령어 미세 조정
    • 에이전트 미세 조정
  • 대화 기능: 사전 정의된 템플릿을 사용하여 대규모 모델과 대화 지원
  • 원활한 통합: 출력 모델은 배포 및 서비스 툴킷 (LMDeploy) 및 대규모 평가 툴킷 (OpenCompass, VLMEvalKit)과 원활하게 통합 가능

지원 모델

XTuner는 다음을 포함하되 이에 국한되지 않는 광범위한 모델 패밀리를 지원합니다.

모델 시리즈 구체적인 모델 특징
InternLM InternLM, InternLM2, InternLM2.5, InternLM3 중국어 최적화, 뛰어난 성능
Llama Llama 2, Llama 3 Meta 오픈 소스 모델
Qwen Qwen 1.5 등 알리바바 오픈 소스 모델
ChatGLM ChatGLM3-6B 등 칭화 대학 오픈 소스 모델
Baichuan Baichuan2 등 바이촨 스마트 오픈 소스 모델
Mixtral Mixtral 8x7B Mistral AI의 혼합 전문가 모델
기타 Gemma, DeepSeek, MiniCPM 등 주요 회사 오픈 소스 모델

다중 모달 능력

XTuner는 다중 모달 영역, 특히 시각 언어 모델에서 뛰어난 성능을 보입니다.

  • LLaVA 아키텍처 지원: LLaVA-v1.5 아키텍처의 사전 훈련 및 미세 조정 완벽 지원
  • 뛰어난 성능: LLaVA-InternLM2-20B 모델 성능 두드러짐
  • 다양한 조합: 다양한 시각 인코더와 언어 모델의 조합 지원
  • 최신 릴리스:
    • LLaVA-Llama-3-8B
    • LLaVA-Llama-3-8B-v1.1
    • LLaVA-Phi-3-mini

설치 및 사용

환경 준비

# Python 3.10 가상 환경 생성
conda create --name xtuner-env python=3.10 -y
conda activate xtuner-env

설치 방법

방법 1: pip를 통한 설치

pip install -U xtuner

방법 2: DeepSpeed 통합

pip install -U 'xtuner[deepspeed]'

방법 3: 소스 코드에서 설치

git clone https://github.com/InternLM/xtuner.git
cd xtuner
pip install -e '.[all]'

빠른 시작

1. 구성 파일 준비

# 사용 가능한 모든 구성 보기
xtuner list-cfg

# 구성 파일을 복사하여 사용자 정의
xtuner copy-cfg ${CONFIG_NAME} ${SAVE_PATH}

2. 미세 조정 시작

# 단일 GPU 미세 조정
xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2

# 다중 GPU 미세 조정
NPROC_PER_NODE=${GPU_NUM} xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2

3. 모델 변환

# PTH 모델을 Hugging Face 형식으로 변환
xtuner convert pth_to_hf ${CONFIG_NAME_OR_PATH} ${PTH} ${SAVE_PATH}

4. 대화 테스트

# 미세 조정된 모델과 대화
xtuner chat ${NAME_OR_PATH_TO_LLM} --adapter ${NAME_OR_PATH_TO_ADAPTER}

고급 기능

1. 시퀀스 병렬 처리

  • 매우 긴 시퀀스 훈련 지원
  • 효율적이고 확장 가능한 훈련 방식
  • 긴 텍스트를 처리해야 하는 시나리오에 적합

2. DPO/ORPO 훈련

  • Direct Preference Optimization (DPO) 지원
  • Odds Ratio Preference Optimization (ORPO) 지원
  • Reward Model 훈련 지원
  • packed 데이터 및 시퀀스 병렬 처리 지원

3. 수학 추론 최적화

  • OREAL (새로운 강화 학습 방법) 지원
  • 수학 추론 작업에 특화된 최적화

성능

훈련 속도

  • Llama2 7B: 단일 GPU에서 뛰어난 훈련 속도 제공
  • Llama2 70B: 다중 GPU 병렬 훈련 지원, 뛰어난 속도 성능
  • DeepSeek V2: 이전 버전에 비해 2배 향상된 훈련 속도

메모리 효율성

  • 낮은 메모리 요구 사항: 20GB GPU 메모리로 QLoRA 미세 조정 가능
  • 전체 파라미터 미세 조정: 4x80GB GPU로 전체 파라미터 미세 조정 가능
  • 메모리 최적화: 다양한 최적화 기술을 통해 메모리 사용량 대폭 감소

생태계 통합

XTuner는 InternLM 생태계의 중요한 구성 요소로서 다른 도구와 긴밀하게 통합됩니다.

  • LMDeploy: 모델 배포 및 서비스 툴킷
  • OpenCompass: 대규모 평가 툴킷
  • VLMEvalKit: 시각 언어 모델 평가 툴킷
  • Lagent: 지능형 에이전트 프레임워크
  • AgentLego: 다기능 도구 API 라이브러리

응용 분야

1. 학술 연구

  • 대규모 언어 모델 미세 조정 연구
  • 다중 모달 모델 개발
  • 새로운 알고리즘 검증

2. 산업 응용

  • 맞춤형 챗봇
  • 특정 분야 모델 개발
  • 기업용 AI 도우미

3. 교육 훈련

  • AI 과정 교육
  • 실험 환경 구축
  • 기술 훈련

결론

XTuner는 포괄적이고 성능이 뛰어난 대규모 언어 모델 미세 조정 툴킷입니다. 광범위한 모델과 훈련 알고리즘을 지원할 뿐만 아니라 데이터 준비부터 모델 배포에 이르기까지 완벽한 도구 체인을 제공하여 사용자에게 원스톱 솔루션을 제공합니다. 학술 연구든 산업 응용이든 XTuner는 다양한 시나리오의 요구 사항을 충족할 수 있으며 대규모 언어 모델 미세 조정을 위한 이상적인 선택입니다.