환경상 7b 또는 13b 정도가 한계라...
최소한 eos 토큰 학습을 잘되는 것을 목표로 몇주간 트라이 했으나 일단 기록을 목표로 작성해봅니다.
그냥 이런 사례도 있구나 정도로 봐주시면 될 것 같습니다
베이스 모델 : llama 2 7b ko (beomi님 모델)
파인튜닝 데이터셋 : 29000개 (싱글/멀티턴 대화 , 분류, 요약 등)
사용한 포맷 :
=> 알파카 포맷 기반의 약간의 커스텀 :
{system_msg}
[이전대화]
{history}
[현재대화]
## instrcution :
{instruction}
## output :
{output}
그외 시도한 사용한 포맷 :
=> 미스트랄 내지는 llama 2 chat, instruction 포맷 :
미스트랄 포맷 : 심플하게 <s>[INST] [/INST]</s> 로 진행...
llama 2 :
<s>[INST] <<SYS>>
{system_msg}
<</SYS>>
{instruction} [/INST]
{output}</s>
이것을 기반으로 띄어쓰기/\n/\n\n 여러 케이스 하면서 테스트
예 )
<s>[INST] <<SYS>>
{system_msg}
<</SYS>>
{instruction} [/INST]
{output}<s>
<s> ...
<s>[INST] <<SYS>>
{system_msg}
<</SYS>>
{instruction} [/INST]
{output}<s></s> ...
결론 : 미스트랄/라마2 에서 선호하는 포맷은 전부 실패
1) 말이 반복하는 현상 (이 경우 epoch 수와 lr 조절로 해결 )
2) eos 학습 안되는 현상 (가장 큰 문제로, 7b 자체 문제인가? 했으나 성공 사례가 있어서 아직 정확한 원인 불가)
3) 알파카 기반 포맷의 커스텀이 가장 잘 학습됨 (일부 환각증상은 있으나 eos 토큰 문제가 없음 현재까지)
모델이 10b 아래라서 모델 베이스 자체문제인지, 아니면 백본모델을 instruction/chat 미세조정한거로 해야 제대로 먹히는지는
아직 시도안해봐서 확인은 안되었으나
라마 2 base 인 경우엔 생각보다 메타에서 추천하는 포맷은 잘 안먹히더라구요
아마 다음 테스팅은 라마 3 instruction 기반으로 만지작 거릴텐데 (이건 포맷이 바꼇던데 그걸 기준으로 할생각입니다)
굳이 기록용이다 싶으면 라마2 base 경우 생각보다 추천 format이 안먹힌다는 점이 제 학습상 느낀점이네요...
그냥 이런 게 있구나 정도로 봐주십사 합니다
제가 잘못했을 수도 있고 다른 분들도 뭔가 경험이 있으시다면 답변 부탁드립니다.