분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
[PRIVATE 8위] 데이터증강 + Unsloth + LLaMA 3.2 3b
데이콘 한글 리뷰 복원 AI 경진대회
1. 주요 인사이트 및 경험
1.1 모델 선택
- 모델 성능 비교: Llama 3.1 8B보다 Llama 3.2 3B가 한국어 처리 능력이 더 우수했습니다.
- 특화 모델: 그 중 Blossom 파인튜닝 모델이 기본적으로 한국어 처리 능력이 뛰어났습니다.
1.2 학습 전략
- 데이터 증강: 모델 성능 향상에 확실한 효과적
1) https://airbnbfy.hanmesoft.com 에서 N번 같은 문장을 반복해서 생성하는 방식을 사용했습니다.
2) 추가로 공백을 기준으로 문장을 나누고 문장 내에서 문자를 랜덤으로 바꾸는 방식을 사용했습니다.
- 전체 시퀀스가 아닌 응답 부분만 loss를 계산하고 훈련하는 방식이 더 좋은 성능을 보였습니다.
- 시스템 프롬프트를 정성스럽게 작성하는 것이 토큰 생성 방향을 잘 주는 것 같아 성능 향상에 도움이 되었습니다.
- CoT: 예시를 활용한 CoT 방식이 모델의 추론 능력을 향상시켰습니다.
1.3 추론 전략
- 생성 파라미터 최적화: 결정적 생성(do_sample=False)보다 약간의 자율성을 부여한 생성 방식(temperature=0.2, top_p=0.8)이 더 좋은 결과를 보였습니다.
2. 기술적 측면
2.1 모델 양자화
- Llama 계열 모델은 양자화 모델이 아니더라도 로드할 때 load_in_4bit를 통해 대부분 양자화가 가능했습니다. (전 bfloat16으로 로드해서 사용함, load_in_4bit가 더 빠르게 훈련되어서 좋을듯함)
2.2 [실험] 4대의 GPU 활용을 위해 fsdp+axolotl 프레임워크를 사용했습니다. 결론은 unsloth 보다 느려 보류함
3. 아쉬웠던 점
cross-entropy loss 외에 smooth f1 loss를 추가로 구성했으면 좀 더 올바른 학습이지 않았을까 합니다 ㅎㅎ
워낙 변수가 많아서, 코드 올려주시면 말씀드릴 수 있을 것 같습니다 ^^
runpod에서 GPU, Cuda, Torch 초기 템플릿 버젼세팅은 어떻게 하시나요? 처음인데 넘 어렵네요 ㅎㅎ
DACON Co.,Ltd | CEO Kookjin Kim | 699-81-01021
Mail-order-sales Registration Number: 2021-서울영등포-1704
Business Providing Employment Information Number: J1204020250004
#901, Eunhaeng-ro 3, Yeongdeungpo-gu, Seoul 07237
E-mail dacon@dacon.io |
Tel. 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
좋은 코드 감사합니다 저도 llama로 학습을 시도했었는데 글자수를 번역 과정에서 자기 맘대로 바꾸는 문제가 발생하더라구요
프롬프트를 이리저리 고쳐봐도 딱히 문제가 해결되지 않았습니다
원인이 뭐였는지 모르겠는데 제 추측으론 한글로 프롬프트를 작성해서 llama가 잘 이해하지 못했다. 특히 글자수 개념을 이해하기 힘들어했다 로 생각하고 있는데 어떻게 생각하실지 궁금합니다