brunch

You can make anything
by writing

C.S.Lewis

by 알바트로스 Apr 20. 2024

LLaMA 생태계 탐험하기(1)

LLaMA 기반 모델 Alpaca와 Vicuna는 얼마나 강력할까?

지난시간까지 우리는 오픈소스 진영을 대표하는 Meta AI의 LLaMA 시리즈를 해부해 보았습니다. LLaMA는 앞으로 우리의 일상에 점점 더 큰 영향을 끼치게 될 '생성형 AI'라는 자원의 주체를 OpenAI와 Google같은 일부 거대기업에서 개발자 커뮤니티와 일반 대중들로 확장시켰다는 점에서 그 자체로도 큰 의의가 있었지요.


그러나 LLaMA 시리즈가 진짜 매력적인 이유는 가성비 좋은 '파생모델'을 거느리며 독자적인 생태계를 구축하고 있다는 점입니다. 2023년 2월 공개 이후 아직 1년여의 시간이 지났을 뿐이지만, LLaMA 시리즈를 기반으로 개발된 가성비 sLLM(small LLM)들은 더 적은 매개변수(parameter)에도 불구하고 뛰어난 성능을 자랑하고 있습니다.

LLM 성능비교(출처 : vicuna)


LLaMA의 파생모델인 Alpaca와 Vicuna는 동일한 매개변수 사이즈(13B) 기준으로 성능 테스트에서 월등한 성적을 거두었고, 심지어 Google의 초거대언어모델(LLM)인 Bard에 대적할만한 성능을 보여줍니다. 앞으로 얼마나 더 작고 성능좋은 가성비 모델들이 탄생할지 매우 기대가 됩니다. 이번 시간에는 LLaMA를 기반으로 한 대표적인 sLLM인 Alpaca와 Vicuna를 중심으로 LLaMA 생태계를 탐험을 시작해보도록 하겠습니다.


1. Alpaca : 스텐포드 대학교에서 단돈 500달러로 만든 가성비 모델


Alpaca (논문 : Alpaca: A Strong, Replicable Instruction-Following Model)은 Stanford 대학교에서 LLaMA 모델을 미세조정(fine-tuning) 하여 개발한 Instruct-following 언어모델입니다. Instruct-following이란 사용자의 다양한 요청이 담긴 지시사항(Instruction)에 대하여 모델이 사용자의 의도를 파악하고 적절한 답변을 제시하도록 학습하는 방식을 말합니다.


출처 : Alpaca: A Strong, Replicable Instruction-Following Model


주목할만한 점은 단돈 500달러정도의 예산만으로 Alpaca의 학습이 가능했다는 것입니다. 이것이 가능했던 것은 self-instruct라는 데이터 생성 방식 덕분이었습니다. self-instruct는 한마디로 기존의 성능좋은 LLM을 활용하여 스스로 학습용 데이터를 생성해내도록 유도하는 기법인데, 인간은 최초의 시드 데이터와 프롬프트만 제공하기 때문에 LLM 활용을 위한 토큰 비용 이외에는 큰 비용이 들지 않습니다.


출처 : Alpaca: A Strong, Replicable Instruction-Following Model


작업 순서는 다음과 같습니다. 먼저 작업 풀(task pool)에 사람이 직접 작성한 175개의 시드(seed) 데이터를 업로드합니다. 각각의 시드 데이터는 지시사항이 담겨있는 Instruction 부분과 실제 데이터 값이 포함된 Input, 답변이 담긴 Output 부분으로 구성됩니다. 이 때 각각의 시드 데이터는 새로운 instructioninput, output 인스턴스를 생성해낼 수 있도록 LLM에 프롬프트로 제공합니다.


 

2. Vicuna : 13B의 매개변수(parameter)만으로 ChatGPT에 근접한 모델


다음으로 살펴볼 Vicuna(Vicuna : An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality)는 UC Berkeley, UCSD, CMU, MBZUAI(Mohamed Bin Zayed Univ. of AI) 등 여러 기관에서 공동으로 개발한 모델입니다. Vicuna 역시 LLaMA를 미세조정(fine-tuning)한 모델이라는 점에서는 Alpaca와 동일합니다. 다만 Vicuna는 Alpaca가 활영한 self-instruct 기법을 활용하지 않고 ChatGPT 대화셋 데이터를 공유하는 웹사이트 ShareGPT에서 약 7만 개의 사용자-ChatGPT 대화를 직접 수집하여 훈련용 데이터셋으로 활용하였습니다.


출처 : Vicuna : An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality


Vicuna는 각종 테스트에서 Alpaca에 비해 좋은 성능을 보여줍니다. 이 배경에는 더 긴 입출력 컨텍스트 길이가 있습니다. Alpaca의 최대 입출력 컨텍스트 길이를 512 토큰에서 2048 토큰으로 확장하였습니다. 덕분에 Vicuna는 Alpaca에 비해 더욱 긴 텍스트를 무리없이 이해할 수 있게 되었습니다.


출처 : Vicuna : An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality


그러나 이처럼 긴 텍스트를 처리하기 위해서 언어모델은 GPU 메모리를 요구할 수 밖에 없게 됩니다. Vicuna의 연구진은 메모리 최적화를 위해 다양한 방법을 고안해 냈는데, 그 중 하나는 gradient checkpoint와 flash attention을 활용하여 메모리 부족을 해결한 것이었습니다. 또한 Multi-round 대화를 고려하여 학습 손실을 조정하고 챗봇의 출력에서만 fine-tuning loss를 계산했습니다.


마지막으로 Vicuna는 비용 Skypilot 관리형 spot이라는 솔루션을 활용하여 비용을 절감하였다고 합니다. 이 솔루션을 훈련에 적용한 덕분에 7B 모델의 학습 비용을 단돈 $140, 13B 모델의 학습 비용을 $300까지 줄일 수 있었다고 합니다.


3. Vicuna와 Alpaca이 가지는 의의


Llama와 Vicuna 그리고 Alpaca는 모두 중남미의 낙타과 동물이름에서 가져온 명칭이라고 합니다. Llama의 자식격인 이 두 모델은 이름만큼이나 유사하면서 각기 다른 특성을 가집니다. 둘 다 저비용 가성비 모델이라는 점과, 새로운 연구와 시도에 활용되고 있다는 공통점이 있습니다.


출처 : analyticsvidhya.com


그러나 더 좋은 훈련 데이터 확보 및 메모리 최적화를 위해 서로 다른 접근 방식을 펼치고 있다는 점은 서로 다른점이라고 할 수 있습니다. 물론 꾸준히 지적되어 오고 있는 환각현상(hallucination)이나 답변의 편향 그리고 상대적으로 약한 한국어 등은 여전히 가성비 모델들의 한계점으로 남아있습니다. 그러나 중요한 점은 여러 기관들이 오픈소스 기반 모델들을 바탕으로 다양한 시도를 하고 있고 일정 부분에서 유의미한 성과를 만들어 내고 있다는 점입니다. 다음시간에는 Alpaca와 LLaMA의 파생 모델들에 대해 살펴보도록 하겠습니다.

이전 15화 LLaMA-2 해부하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari