이 카테고리란에 써야할지, 질문/일반/정보 보다 이쪽이 더 비중이 큰 듯해서 글을 끄적여봅니다..


주어진 장비/환경 상 풀파인튜닝이나 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 파인튜닝 시에는 그랬습니다.


혹시나 저와 같은 과정을 겪어서 저와 다른 결론에 있으시거나 해결되신분이 있다면 조언 부탁드려봅니다.

개인적으로 한글 베이스 모델이 더 많아지길 기원합니다.


주절두서리없는 비화를 봐주셔서 감사합니다!