23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
Alpaca: A Strong, Replicable Instruction-Following Model
지난번에 포스팅된 "Meta AI에서 개발한 ChatGPT의 대항마, LLaMA" 에 이어서 최근 아주 핫한 모델이 있습니다. 바로 Alpaca라는 모델인데요.
오늘은 Stanford에서 공개한 오픈소스인 Alpaca에 대해서 간단히 소개해보려합니다.
Alpaca는 지난번에 포스팅된 LLaMA라는 언어모델을 Stanford 박사과정 학생들이 사용자의 명령어에 언어모델이 잘 답변할 수 있도록 Instruction-following 데이터로 파인튜닝한 모델입니다.
언어모델은 기본적으로 다음 단어를 예측하는 문제를 풀기 때문에 일반적인 사용자의 명령어에 자연스럽게 답변하기가 어려운데요.
그럼에도 불구하고 ChatGPT 같은 모델이 답변을 잘하는 것은 사용자의 의도에 맞게 모델을 Instruction-following 데이터로 튜닝 (Alignment) 했기 때문이라고도 볼 수 있습니다.
결국 사용자가 언어모델을 잘 활용하기 위해서는 Instruction tuning은 꼭 거쳐야하는 관문이라고 할 수 있습니다.
LLaMA를 튜닝한 모델이니 아마 라마와 비슷한 생김새 가진 알파카를 이름으로 지은게 아닌가 싶네요🤔
Alpaca는 논문이 따로 발표되진 않았지만, 어떤 데이터로 어떻게 학습을 했는지 코드와 함께 공개가 되어있어서 지금도 LLaMA의 많은 변형과 비슷한 어플리케이션들이 나오고 있는데요.
이렇게 핫한 Alpaca에 대해서 지금부터 한번 알아보도록 하겠습니다.
Stanford 학생들은 ChatGPT, Claude, Bing Chat등 다양한 모델이 이미 훌륭한 성능을 보여주고 있지만 그럼에도 불구하고 아직은 부족한 점이 있다고 지적합니다.
예를 들면, 잘못된 정보를 생성하거나, 사회적인 편견 및 불편한 말들을 생성하는 것이죠.
이러한 문제를 해결하기 위해 학계와의 협업이 필요하지만 OpenAI의 text-davinci-003과 같은 모델은 접근하기 힘든 closed-source model이기 때문에 연구에 어려움이 있다고 말합니다🥲
마침 Meta에서 LLaMA를 공개했고, 기존에 알려진 연구를 바탕으로 훨씬 저렴한 비용으로 모델을 학습할 수 있도록, 데이터 및 모델 학습 방법을 재현 가능하도록 공개한 것으로 보입니다.
결과적으로, Alpaca는 text-davinci-003(175B)보다 훨씬 작은 7B 모델이지만 유사하게 동작한다고 합니다.
Gradio 기반 데모 페이지도 공개했는데, 접속은 가끔 안되는 것 같네요🤔
Alpaca는 academic research에 한해서만 사용이 가능하고 상업적 사용은 금지하고 있는데요.
이유는 LLaMA의 라이센스가 non-commercial 라이센스라는점 그리고 OpenAI의 tet-davinci-003에서 얻어낸 데이터를 활용했다는 점등을 이유로 제시하고 있습니다.
Alpaca는 기본적으로 7B 크기의 LLaMA를 Backbone으로 두고 Instruction tuning을 한 모델입니다.
모델은 이미 공개되어있기 때문에 가장 중요한 것은 데이터인데요.
기존에 Instruction-following 데이터를 생성하기 위한 많은 연구가 있었고 작년 12월인 최근에 공개된 self-Instruct라는 연구를 참고해서 데이터를 생성했습니다.
self-Instruct 핵심은 LLM(Large Language Model)로 데이터를 생성해서 그 데이터로 다시 LLM을 학습한다는 것인데요,
한 마디로 튜닝을 위한 데이터도 모델이 생성하는 자가수급 시스템(?)이라고 볼 수 있습니다.
Alpaca에서는 self-Instruct의 방법론을 조금 단순화하되 모델은 더 좋은 모델(GPT-3(davinci) -> GPT-3.5(text-davinci-003))을 사용해서 데이터를 생성했습니다.
Alpaca에서 공개한 방법대로 데이터가 생성되는지 OpenAI playground에서 테스트를 해보았습니다.
아래 보이는 예시와 같이 데이터 생성이 잘 되는 것을 확인 할 수 있습니다.
위와 같은 과정을 반복하면서 사람이 직접 만든 175개의 seed 데이터셋을 기반으로 데이터를 약 52,000개까지 추가 생산을 하고, 이 데이터를 학습셋으로 활용했습니다.
데이터의 품질이 매우 뛰어나다고 할 수는 없겠지만 모델을 Alignment하기에는 어느정도 충분한 데이터를 생성한 것으로 보입니다.
(52,000건의 데이터를 생성하는데는 $500 정도의 비용이 들었다고 합니다)
self-Instruct를 통해 생성한 데이터로 A100(80GB) 8대의 환경에서 Supervised Fintuning(SFT)을 하면 3 epoch에 3시간정도 소요되며,
일반적인 명령어에도 잘 답변할 수 있는 모델이 탄생하게 됩니다. (이때 발생한 비용은 $100 이하로 들었다고 합니다)
Blind 테스트로 학습한 모델을 검토했을때, 90(Alpaca) vs 89(text-davinci-003)으로 Alpaca가 미세하게 앞서면서 text-davinci-003과 유사한 성능을 보이는 것으로 나타났다고 합니다.
Stable Diffusion과 같이 LLaMA도 공개가 되면서 다양한 후속 모델들이 빠르게 나오고 있습니다.
벌써 8-bit 양자화와 LoRA(Low-Rank Adaption)등을 활용해서 대형언어모델을 개인 PC에서도 쉽게 사용할 수 있게 하는 프로젝트들이 개발되고 있고,
이미 한국어로 튜닝된 7B KoAlpaca 모델, 65B 모델도 등장했습니다.
앞으로는 이전보다 더 저렴한 비용으로 더 괜찮은 성능의 모델들을 점점 더 많이 사용할 수 있게 될까요?
개선할 부분은 많겠지만 오픈소스 생태계에서 Alpaca의 등장은 그러한 미래에 분명 도움이 될 것으로 보입니다.
먼 미래가 아니라 지금이라도 조금은 더 똑똑하고 재미있는 자신만의 언어모델을 만들고 싶다면 지금 당장 Alpaca를 사용해보시는건 어떨까요?🙂
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.