이 레퍼지토리는 한국어 GPT 모델들을 직접 사용해보고 비교해 볼 수 있도록 한국어 GPT 모델들을 모아놓은 레퍼지토리입니다. 라이센스는 모두 apache-2.0 나 MIT로 상업적으로 사용가능합니다.
자세한 사항은 밑에 "ipynb 별 설명"을 참고하시길 바랍니다.
(주의: 새로고침할때마다 GPU RAM을 중복해서 할당 받으므로 Ctrl+C로 종료하고 다시 실행하는 방식으로 해야함)
streamlit run comparison.py
finetune_kullm_polyglot.py \
--base_model='nlpai-lab/kullm-polyglot-5.8b-v2' \
--data_path='data.jsonl'
polyglot-ko 모델
참고) https://huggingface.co/EleutherAI/polyglot-ko-12.8b
모델을 메모리 효율적으로 학습하기 위해 LoRA(LoRA: Low-Rank Adaptation of Large Language Models)의 방식으로 학습하다보니 사전학습 데이터의 중요성을 더더욱 크게 알게 되었다. 왜냐하면 LoRA로 학습하면 사전학습 모델의 파라미터는 고정되며 학습하다보니 모델의 답변이 사전학습의 데이터와 섞여서 나오는 현상을 발견할 수 있었으며 에폭을 늘리거나 데이터의 양을 늘려도 LoRA 학습의 특성상 사전학습의 데이터와 섞여나오는 것은 어쩔 수 없었다. 특정 포멧의 데이터로 학습하니 예를 들어 "A: ,B: " 이런 형식은 맞춰서 대답하는데 ":" 이후의 내용은 전부 틀린 답변을 내놓았다. 그렇다고 full finetuning을 하자니 계산상 적어도 100GB 이상의 GPU RAM이 필요했고 시간도 대단히 오래걸린다. 또한 EleutherAI/polyglot-ko 모델의 답변을 보면 학습 데이터의 질이 그렇게 좋지 않아보여 아쉬움이 남는다.
영어로 사전학습된 모델(llama-2)의 한계 : 영어로 사전학습하다보니 한국어에 대한 이해가 부족하며 이를 극복하고자 한국어 token을 추가(약 1.4만개)하고 한국어 Q&A 데이터를 이용하여 LoRA로 파인튜닝해도 처음보는 질문에 대해서는 답변이 매우 이상했다. 하지만 학습한 질문에 대해서는 준수한 답변을 보였다. 한국어를 이해한다기 보다는 암기한 모델 같았다. 영어로 사전학습된 모델 + 한국어를 이해하기에는 적은 학습 데이터 개수 때문에 어쩔 수 없는 것 같다. 추가로 llama-1 모델을 62만개의 한국어 Q&A 데이터로 학습한 모델의 결과를 https://github.com/melodysdreamj/KoVicuna 에서 확인해 보길 바랍니다.
챗봇 개발이 어려운 이유
자신만의 특화된 데이터 필요 : 이루다를 만들기 위해서는 수많은 사용자의 대화 데이터가 필요하고 레시피 추천을 위해서는 많은 레시피 데이터가 필요하다. 따라서 갖고 있는 데이터가 곧 경쟁력이라 생각합니다.
8 commits
Jupyter Notebook
97.8%
Python
2.2%
이 레퍼지토리는 한국어 GPT 모델들을 직접 사용해보고 비교해 볼 수 있도록 한국어 GPT 모델들을 모아놓은 레퍼지토리입니다. 라이센스는 모두 apache-2.0 나 MIT로 상업적으로 사용가능합니다.
자세한 사항은 밑에 "ipynb 별 설명"을 참고하시길 바랍니다.
(주의: 새로고침할때마다 GPU RAM을 중복해서 할당 받으므로 Ctrl+C로 종료하고 다시 실행하는 방식으로 해야함)
streamlit run comparison.py
finetune_kullm_polyglot.py \
--base_model='nlpai-lab/kullm-polyglot-5.8b-v2' \
--data_path='data.jsonl'
polyglot-ko 모델
참고) https://huggingface.co/EleutherAI/polyglot-ko-12.8b
모델을 메모리 효율적으로 학습하기 위해 LoRA(LoRA: Low-Rank Adaptation of Large Language Models)의 방식으로 학습하다보니 사전학습 데이터의 중요성을 더더욱 크게 알게 되었다. 왜냐하면 LoRA로 학습하면 사전학습 모델의 파라미터는 고정되며 학습하다보니 모델의 답변이 사전학습의 데이터와 섞여서 나오는 현상을 발견할 수 있었으며 에폭을 늘리거나 데이터의 양을 늘려도 LoRA 학습의 특성상 사전학습의 데이터와 섞여나오는 것은 어쩔 수 없었다. 특정 포멧의 데이터로 학습하니 예를 들어 "A: ,B: " 이런 형식은 맞춰서 대답하는데 ":" 이후의 내용은 전부 틀린 답변을 내놓았다. 그렇다고 full finetuning을 하자니 계산상 적어도 100GB 이상의 GPU RAM이 필요했고 시간도 대단히 오래걸린다. 또한 EleutherAI/polyglot-ko 모델의 답변을 보면 학습 데이터의 질이 그렇게 좋지 않아보여 아쉬움이 남는다.
영어로 사전학습된 모델(llama-2)의 한계 : 영어로 사전학습하다보니 한국어에 대한 이해가 부족하며 이를 극복하고자 한국어 token을 추가(약 1.4만개)하고 한국어 Q&A 데이터를 이용하여 LoRA로 파인튜닝해도 처음보는 질문에 대해서는 답변이 매우 이상했다. 하지만 학습한 질문에 대해서는 준수한 답변을 보였다. 한국어를 이해한다기 보다는 암기한 모델 같았다. 영어로 사전학습된 모델 + 한국어를 이해하기에는 적은 학습 데이터 개수 때문에 어쩔 수 없는 것 같다. 추가로 llama-1 모델을 62만개의 한국어 Q&A 데이터로 학습한 모델의 결과를 https://github.com/melodysdreamj/KoVicuna 에서 확인해 보길 바랍니다.
챗봇 개발이 어려운 이유
자신만의 특화된 데이터 필요 : 이루다를 만들기 위해서는 수많은 사용자의 대화 데이터가 필요하고 레시피 추천을 위해서는 많은 레시피 데이터가 필요하다. 따라서 갖고 있는 데이터가 곧 경쟁력이라 생각합니다.
8 commits
Jupyter Notebook
97.8%
Python
2.2%