JAE-HUN-CHO/finetuning-clovacx

0

stars

1

commits

Jupyter Notebook

primary language

Aug 12, 2026

updated

README

HyperCLOVAX-SEED-Think-32B 법률 QA 파인튜닝

네이버 하이퍼클로바X(HyperCLOVAX-SEED-Think-32B)를 한국 법률 QA 데이터셋 KICJ/legal_qa_ko(한국형사법무정책연구원) 으로 QLoRA 파인튜닝하는 프로젝트입니다.

  • 데이터: 30개 법률 연구 보고서 기반 QA, 총 7,065개 샘플 (Chunk Context + Question + Answer, MIT License)
  • 방법: unsloth + 4bit QLoRA (r=16), SFTTrainer

설치

pip install -r requirements.txt

학습

# 기본 설정 (32B, 4bit, epochs=3)
python train_lora.py

# 커스텀 설정
python train_lora.py --batch_size 4 --epochs 2 --save_dir my_adapter

주요 인자 (python train_lora.py --help):

인자기본값설명
--model_namenaver-hyperclovax/HyperCLOVAX-SEED-Think-32Bbase 모델
--output_diroutputs_legal_qa체크포인트 출력
--save_dirlegal_qa_lora최종 LoRA 어댑터 저장 위치
--batch_size2GPU당 배치 크기
--epochs3학습 에폭 수
--eval_ratio0.05검증 데이터 비율
  • 학습 중 에폭 단위로 검증(eval)이 수행되며, 최상의 체크포인트가 유지됩니다.
  • 결과: legal_qa_lora/에 LoRA 어댑터 저장.

추론

# 학습된 어댑터로 법률 QA
python inference.py

# 질문 지정
python inference.py --question "형법 제329조 절도죄의 법정형은?"

# 커스텀 어댑터
python inference.py --adapter_dir my_adapter

추론은 학습과 동일한 프롬프트 형식(시스템 프롬프트 + [법률 문맥]/[질문])을 사용하며, 어댑터(legal_qa_lora/)가 없으면 명확한 에러를 출력합니다.

디렉터리 구조

├── train_lora.py      # QLoRA 학습 스크립트
├── inference.py       # 추론 스크립트 (LoRA 어댑터 로드)
├── prompts.py         # 공유 프롬프트 모듈 (학습/추론 공용)
├── notebooks/         # 실험 노트북
├── requirements.txt
└── README.md

참고

  • 학습 산출물(outputs_legal_qa/, legal_qa_lora/)과 .freebuff/.gitignore에 포함되어 커밋되지 않습니다.
  • 병합 모델 저장 / GGUF 변환(llama.cpp 호환)은 train_lora.py 하단의 주석 처리된 코드로 활성화할 수 있습니다.

Contributors

JAE-HUN-CHO

1 commits

JAE-HUN-CHO/finetuning-clovacx

0

stars

1

commits

Jupyter Notebook

primary language

Aug 12, 2026

updated

README

HyperCLOVAX-SEED-Think-32B 법률 QA 파인튜닝

네이버 하이퍼클로바X(HyperCLOVAX-SEED-Think-32B)를 한국 법률 QA 데이터셋 KICJ/legal_qa_ko(한국형사법무정책연구원) 으로 QLoRA 파인튜닝하는 프로젝트입니다.

  • 데이터: 30개 법률 연구 보고서 기반 QA, 총 7,065개 샘플 (Chunk Context + Question + Answer, MIT License)
  • 방법: unsloth + 4bit QLoRA (r=16), SFTTrainer

설치

pip install -r requirements.txt

학습

# 기본 설정 (32B, 4bit, epochs=3)
python train_lora.py

# 커스텀 설정
python train_lora.py --batch_size 4 --epochs 2 --save_dir my_adapter

주요 인자 (python train_lora.py --help):

인자기본값설명
--model_namenaver-hyperclovax/HyperCLOVAX-SEED-Think-32Bbase 모델
--output_diroutputs_legal_qa체크포인트 출력
--save_dirlegal_qa_lora최종 LoRA 어댑터 저장 위치
--batch_size2GPU당 배치 크기
--epochs3학습 에폭 수
--eval_ratio0.05검증 데이터 비율
  • 학습 중 에폭 단위로 검증(eval)이 수행되며, 최상의 체크포인트가 유지됩니다.
  • 결과: legal_qa_lora/에 LoRA 어댑터 저장.

추론

# 학습된 어댑터로 법률 QA
python inference.py

# 질문 지정
python inference.py --question "형법 제329조 절도죄의 법정형은?"

# 커스텀 어댑터
python inference.py --adapter_dir my_adapter

추론은 학습과 동일한 프롬프트 형식(시스템 프롬프트 + [법률 문맥]/[질문])을 사용하며, 어댑터(legal_qa_lora/)가 없으면 명확한 에러를 출력합니다.

디렉터리 구조

├── train_lora.py      # QLoRA 학습 스크립트
├── inference.py       # 추론 스크립트 (LoRA 어댑터 로드)
├── prompts.py         # 공유 프롬프트 모듈 (학습/추론 공용)
├── notebooks/         # 실험 노트북
├── requirements.txt
└── README.md

참고

  • 학습 산출물(outputs_legal_qa/, legal_qa_lora/)과 .freebuff/.gitignore에 포함되어 커밋되지 않습니다.
  • 병합 모델 저장 / GGUF 변환(llama.cpp 호환)은 train_lora.py 하단의 주석 처리된 코드로 활성화할 수 있습니다.

Contributors

JAE-HUN-CHO

1 commits

Languages

Jupyter Notebook

53.9%

Python

46.1%