이 카테고리란에 써야할지, 질문/일반/정보 보다 이쪽이 더 비중이 큰 듯해서 글을 끄적여봅니다..
주어진 장비/환경 상 풀파인튜닝이나 llama 2 기준 13b 정도가 한계이고 이마저도 qlora 4bit를 적용을 limit으로 두고
진행해왔습니다.
챈에서도 학습 과정에 대해 질문도 몇번 하고 고쳐서 다시 진행하면서 제 나름의 경험을 작성해볼까 합니다.
혹시나, 다른 분들의 추가 경험이나, 지적 또는 개선사항이 있다면 부디 부탁드립니다..
# 7b
model_name = "beomi/llama-2-ko-7b"
- 사용 eos token : <|endoftext|> 46332
- instruction 학습 잘되며, 기존 llama 2 format과 다르게 해도 학습이 잘 됨. 단, 가장 작은 소형모델이기에 환각증상은 종종 있음
- 멀티 턴 대화거나, task 적 질의 일때 앞에 이전 대화를 그대로 반복하는 현상 (13b에서는 덜함)
model_name = "maywell/Synatra-7B-v0.3-dpo"
- 사용 eos token : <|im_end|> 32000
- 잘 되긴하는데... 스페셜토큰이 그대로나옴 , 결과적으로 학습 미묘
model_name = "maywell/Mistral-ko-7B-v0.1"
- 사용 eos token : <|im_end|> 46080
- 이상하게 댐...ㅠ 2 </s> 으로도 테스트 진행했으나, 잘안댐
model_name = "google/gemma-7b"
- 환경이 window이고 bitandbyte 가 0.42.1? 까지만 현재 지원가능한데 해당 경우엔 버전업이 필요해서 보류
- 7b ko 버전이 나온걸로 아는데, 추후 할 수 도 있으나 현재는 보류
# 10b
model_name = "maywell/Synatra-10.7B-v0.4"
- 사용 eos token : </s> 2
- 잘되긴 하나 llama 2 에 비해 종종 답변을 계속 진행
model_name = "beomi/SOLAR-KOEN-10.8B"
- 사용 eos token : </s> 2
- 좀 느린데 모델 토큰 문제일수도 있음 inst 추가해야한다던지, 문제 존재 , eos 토큰이 제대로 안찍힘... (학습 문제?)
model_name = "beomi/OPEN-SOLAR-KO-10.7B"
- 사용 eos token : <|endoftext|> 46100
- 잘됌, "maywell/Synatra-10.7B-v0.4" 비슷한 현상 존재
model_name = "yanolja/EEVE-Korean-10.8B-v1.0"
- 사용 eos token : <|im_end|> 32000
- 폴리그롯과 같은 패딩 에러 ..혹은 조절 하면 될거같긴한데...? 자체적으로 10b 내외 중 최고이나 파인튜닝은 글쎄...
# 13b
model_name = "EleutherAI/polyglot-ko-12.8b"
- 사용 eos token : <|endoftext|> 2
- 별로... 대부분 듀토리얼 파인튜닝 가이드와 같이 학습이 잘된 것처럼 보이나 eos 토큰 학습이 잘 안되고, 답변을 계속 생성하는 현상 존재
model_name = "beomi/llama-2-koen-13b"
- 사용 eos token : : <|endoftext|> 46332
- 현존 학습 잘되기로 최고의 모델, 가장 높은 성능 보유
- 자체 베이스 성능은 주어듣기로는 llama 2 가 저 위의 다른 모델보다 낮다고 하나 경험상 파인튜닝으로 이 모델을 이긴 현존 한글 모델은 없었음
정리 :
- 현재 llama 2 backborn 모델을 제외하곤 파인튜닝(풀파인튜닝이거나 베이스 모델이 30b 이상이면 다를수 있음. 아마도 그럴거라 생각함) 학습이 잘 되지 않음
- 파라미터를 조절해도, 이상한 답변 (말이 반복된다던지, 가가가가아아아 같은 의미불명 반복) 은 없어질 수 있으나, eos 토큰 학습이 잘 안되는 형상이 주류
- 이에 판단한건데 위에 언급한 거처럼 백본 모델을 교체하거나 (더큰 모델), 풀파인튜닝하면 해결하지 않을까ㅓ? 싶음 (주어진 환경상 이이상은 불가...)
- 데이터셋은 3개의 레퍼런스에서 가져온 것을 기반으로 약 29000개의 혼합 데이터셋 활용 : 싱글,멀티턴 대화 / 뉴스 요약 / 뉴스 감정 분류
나름 3개월간 sLLM을 목표로 제 기준 다양한 모델과, 여러 참고 자료를 기반으로 시도했고,
Instruction format도, chatML, llama, alpaca 등 몇가지 템플릿을 기반으로 학습도 해봤으나 결국 한글 베이스 모델중
llama 2 7b, 13b를 이기는 모델은 없었습니다...
다른 모델은 몇번 인퍼런스 시도해보니 답변이 중지 안 되는 현상이 주 현상이더라구요.
물론, 단독으로 쓸때는 얘기가 완전히 달라지겠지만... 적어도 제가 qlora 4bit 파인튜닝 시에는 그랬습니다.
혹시나 저와 같은 과정을 겪어서 저와 다른 결론에 있으시거나 해결되신분이 있다면 조언 부탁드려봅니다.
개인적으로 한글 베이스 모델이 더 많아지길 기원합니다.
주절두서리없는 비화를 봐주셔서 감사합니다!