Obfuscated Korean Review Restoration AI Competition

Algorithm | Montly Dacon | NLP | Generate AI | LLM | F1 Score

  • moneyIcon Prize : DASCHOOL Pro Subscription
  • 2025.01.06 ~ 2025.02.28 09:59 + Google Calendar
  • 717 Users Completed

 

[PRIVATE 8위] 데이터증강 + Unsloth + LLaMA 3.2 3b

2025.02.28 10:57 916 Views language

데이콘 한글 리뷰 복원 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를 추가로 구성했으면 좀 더 올바른 학습이지 않았을까 합니다 ㅎㅎ 

Code
Login Required
0 / 1000
hyican
2025.03.02 00:30

좋은 코드 감사합니다 저도 llama로 학습을 시도했었는데 글자수를 번역 과정에서 자기 맘대로 바꾸는 문제가 발생하더라구요
프롬프트를 이리저리 고쳐봐도 딱히 문제가 해결되지 않았습니다
원인이 뭐였는지 모르겠는데 제 추측으론 한글로 프롬프트를 작성해서 llama가 잘 이해하지 못했다. 특히 글자수 개념을 이해하기 힘들어했다 로 생각하고 있는데 어떻게 생각하실지 궁금합니다

ingbeeeded
2025.03.03 14:54

워낙 변수가 많아서, 코드 올려주시면 말씀드릴 수 있을 것 같습니다 ^^

sejin3954
2025.04.12 14:53

runpod에서 GPU, Cuda, Torch 초기 템플릿 버젼세팅은 어떻게 하시나요? 처음인데 넘 어렵네요 ㅎㅎ