목차
지난 25일 공식적인 메타의 LLaMA 출시 이후 LLaMA 기반의 첫 오픈소스 ChatLLaMA가 출현하였습니다.
메타 LLaMA 출시
Meta는 최근 70억에서 650억 개의 매개변수를 포함하는 기초적인 대규모 언어 모델 모음인 LLaMA를 출시했습니다. LLaMA는 GPT-3보다 크기는 작지만 성능이 더 뛰어나 많은 관심을 불러일으키고 있습니다.
예를 들어, LLaMA의 13B 아키텍처는 10배 더 작음에도 불구하고 GPT-3보다 성능이 뛰어납니다. 이 새로운 기본 모델 모음은 비용 효율적이고 단일 GPU에서 실행되는 동시에 더 빠른 추론 성능과 chatGPT와 같은 실시간 어시스턴트를 가능하게 해줍니다.
메타는 LLaMA를 다른 연구자나 엔지니어들이 이용할 수 있도록 오픈소스로 공개합니다. 이는 ChatGPT 엔진이랄 수 있는 오픈AI의 GPT-3.0과 구글의 람다가 자신의 소스코드를 공개되지 않는 것과는 매우 다른 행보입니다.
메타는 오픈소스 공개 방침에 대해 “인공지능 커뮤니티가 무엇을 배우고 구축할 수 있을지 협력하길 기대한다”고 LLaMA 출시와 함께 천명했습니다.
그러나 LLaMA는 인간 피드백을 통한 강화 학습(RLHF) 트레이닝 프로세스를 통한 인스트럭션 작업에는 적합하지 않았습니다.
참고로 ChatGPT 와 GPT-3의 관련 정보는 ChatGPT와 GPT-3 특징과 기능 비교 글을 참조하시기 바랍니다.
첫 오픈소스 ChatLLaMA 출현
다행히도 Nebuly 가 RLHF를 기반으로 하는 LLaMA의 첫 번째 오픈 소스인 ChatLLaMA를 구현했습니다.
주요 구현 내용은 다음과 같습니다.
- 사전 학습된 LLaMA 모델을 기반으로 ChatGPT 스타일 서비스를 구축할 수 있는 완전한 오픈 소스 구현입니다.
- 원본 ChatGPT와 비교할 때 LLaMA 아키텍처의 더 작은 크기를 활용하여 학습 프로세스와 단일 GPU 추론이 훨씬 빠르고 저렴합니다.
- ChatLLaMA는 미세 조정 프로세스의 속도를 높이기 위해 DeepSpeed ZERO를 기본적으로 지원합니다.
- 라이브러리는 또한 모든 LLaMA 모델 아키텍처(7B, 13B, 33B, 65B)를 지원하므로 교육 시간 및 추론 성능에 대한 기본 설정에 따라 모델을 미세 조정할 수 있습니다.
ChatLLaMA 시작하기
ChatLLaMA를 사용하면 RLHF를 사용하는 ChatGPT와 유사한 방식으로 LLaMA 기반 아키텍처를 쉽게 교육할 수 있습니다. 예를 들어 ChatLLaMA 7B의 경우 훈련을 시작하는 코드는 아래와 같습니다.
from chatllama.rlhf.trainer import RLTrainer
from chatllama.rlhf.config import Config
path = "path_to_config_file.yaml"
config = Config(path=path)
trainer = RLTrainer(config.trainer)
trainer.distillate()
trainer.train()
trainer.training_stats.plot()
미세 조정 프로세스를 시작하기 전에 메타의 원래 가중치와 사용자 지정 데이터 세트를 제공해야 합니다. 또는 LangChain의 에이전트를 사용하여 자체 데이터 세트를 생성할 수 있습니다.
python generate_dataset.py
아래 GitHub에서 ChatLLaMA 전체 소스 코드를 확인 할 수 있습니다.
https://github.com/nebuly-ai/nebullvm/tree/main/apps/accelerate/chatllama