작성자: Databricks AI 연구팀
MosaicML Foundation Series의 첫 번째 모델인 MPT-7B를 소개합니다. MPT-7B는 1조 개의 텍스트 및 코드 토큰으로 처음부터 학습된 트랜스포머입니다. 오픈 소스이며 상업적 용도로 사용 가능하며, LLaMA-7B와 동등한 품질을 제공합니다. MPT-7B는 MosaicML 플랫폼에서 9.5일 동안 사람의 개입 없이 약 20만 달러의 비용으로 학습되었습니다.
대규모 언어 모델(LLM)은 세상을 변화시키고 있지만, 자원이 풍부한 산업 연구소 외부에서는 이러한 모델을 학습하고 배포하는 것이 매우 어려울 수 있습니다. 이로 인해 Meta의 LLaMA 시리즈, EleutherAI의 Pythia 시리즈, StabilityAI의 StableLM 시리즈, Berkeley AI Research의 OpenLLaMA 모델과 같이 오픈 소스 LLM을 중심으로 많은 활동이 이루어지고 있습니다.
오늘 저희 MosaicML은 위 모델들의 한계를 해결하고 LLaMA-7B와 동등하거나 여러 면에서 능가하는 상업적으로 사용 가능한 오픈 소스 모델을 제공하기 위해 MPT(MosaicML Pretrained Transformer)라는 새로운 모델 시리즈를 출시합니다. 이제 저희 체크포인트 중 하나로 시작하거나 처음부터 학습하여 자신만의 MPT 모델을 학습, 미세 조정 및 배포할 수 있습니다. 영감을 얻기 위해 기본 MPT-7B 외에도 세 가지 미세 조정 모델, 즉 MPT-7B-Instruct, MPT-7B-Chat, 그리고 65k 토큰의 컨텍스트 길이를 사용하는 MPT-7B-StoryWriter-65k+를 출시합니다!
저희 MPT 모델 시리즈는 다음과 같습니다:
저희는 다양한 벤치마크에서 MPT를 엄격하게 평가했으며, MPT는 LLaMA-7B가 설정한 높은 품질 기준을 충족했습니다.
오늘 저희는 기본 모델인 MPT와 이 기본 모델을 기반으로 구축할 수 있는 다양한 방법을 보여주는 세 가지 미세 조정 변형 모델을 출시합니다:
MPT-7B 기본 모델은 67억 개의 매개변수를 가진 디코더 스타일 트랜스포머입니다. MosaicML 데이터 팀이 큐레이션한 1조 개의 텍스트 및 코드 토큰으로 학습되었습니다. 이 기본 모델에는 빠른 학습 및 추론을 위한 FlashAttention과 미세 조정 및 긴 컨텍스트 길이 외삽을 위한 ALiBi가 포함되어 있습니다.
MPT-7B-StoryWriter-65k+는 매우 긴 컨텍스트 길이를 가진 스토리를 읽고 쓰는 데 특화된 모델입니다. books3 데이터셋의 필터링된 소설 하위 집합에서 65k 토큰의 컨텍스트 길이로 MPT-7B를 미세 조정하여 구축되었습니다. 추론 시 ALiBi 덕분에 MPT-7B-StoryWriter-65k+는 65k 토큰 이상으로도 외삽할 수 있으며, A100-80GB GPU의 단일 노드에서 84k 토큰 길이의 생성을 시연했습니다.
MPT-7B-Instruct는 짧은 형식의 지시 사항을 따르는 모델입니다. Databricks Dolly-15k와 Anthropic의 Helpful and Harmless 데이터셋에서 파생된 저희가 함께 출시하는 데이터셋으로 MPT-7B를 미세 조정하여 구축되었습니다.
MPT-7B-Chat은 대화 생성을 위한 챗봇과 유사한 모델입니다. ShareGPT-Vicuna, HC3, Alpaca, Helpful and Harmless, 그리고 Evol-Instruct 데이터셋으로 MPT-7B를 미세 조정하여 구축되었습니다.

저희는 기업과 오픈 소스 커뮤니티가 이 노력을 바탕으로 구축해 나가기를 바랍니다. 모델 체크포인트와 함께, 저희는 새로운 MosaicML LLM Foundry를 통해 MPT의 사전 학습, 미세 조정 및 평가를 위한 전체 코드베이스를 오픈 소스화했습니다!
이번 릴리스는 단순한 모델 체크포인트 그 이상입니다. 효율성, 사용 편의성, 그리고 세심한 주의를 기울이는 MosaicML의 강점을 그대로 담아 훌륭한 LLM을 구축하기 위한 전체 프레임워크입니다. 이 모델들은 MosaicML의 NLP 팀이 고객이 사용하는 것과 정확히 동일한 도구를 사용하여 MosaicML 플랫폼에서 구축했습니다 (고객인 Replit에게 물어보세요!).
저희는 MPT-7B를 처음부터 끝까지 제로(ZERO) 인간 개입으로 학습했습니다. 440개의 GPU에서 9.5일 동안 MosaicML 플랫폼은 4건의 하드웨어 장애를 감지하고 해결했으며 학습을 자동으 로 재개했습니다. 또한 저희가 만든 아키텍처 및 최적화 개선 덕분에 치명적인 손실 급증이 발생하지 않았습니다. MPT-7B의 빈 학습 로그북을 확인해 보세요!
MosaicML 플랫폼에서 자신만의 맞춤형 MPT 모델을 구축하고 배포하려면 여기서 등록하여 시작하세요.
데이터, 학습 및 추론에 대한 더 자세한 엔지니어링 정보는 아래 섹션으로 건너뛰세요.
새로운 네 가지 모델에 대한 자세한 내용은 계속 읽어보세요!
MPT 모델은 몇 가지 개선 사항을 갖춘 GPT 스타일의 디코더 전용 트랜스포머입니다. 성능 최적화된 레이어 구현, 더 나은 학습 안정성을 제공하는 아키텍처 변경, 그리고 위치 임베딩을 ALiBi로 대체하여 컨텍스트 길이 제한 제거 등이 그것입니다. 이러한 수정 덕분에 고객은 손실 급증에서 벗어나 효율적으로( (MFU 40-60%)) MPT 모델을 학습할 수 있으며, 표준 HuggingFace 파이프라인과 FasterTransformer 모두를 사용하여 MPT 모델을 서비스할 수 있습니다.
MPT-7B는 LLaMA-7B와 동등한 품질을 제공하며 표준 학술 작업에서 다른 오픈 소스 7B-20B 모델을 능가합니다. 모델 품질을 평가하기 위해 인컨텍스트 학습(ICL)에 일반적으로 사용되는 11개의 오픈 소스 벤치마크를 컴파일하고 업계 표준 방식으로 형식화하여 평가했습니다. 또한 모델의 사실적 정확성을 평가하기 위해 자체 큐레이션한 Jeopardy 벤치마크를 추가했습니다.
MPT와 다른 모델 간의 제로샷 성능 비교는 표 1을 참조하세요:

공정한 비교를 위해 각 모델을 완전히 재평가했습니다. 모델 체크포인트는 동일한 (빈) 프롬프트 문자열과 모델별 프롬프 트 튜닝 없이 당사의 오픈 소스 LLM Foundry eval framework를 통해 실행되었습니다. 평가에 대한 자세한 내용은 부록을 참조하세요. 이전 벤치마크에서 당사의 설정은 단일 GPU에서 다른 평가 프레임워크보다 8배 더 빠르며 여러 GPU에서 선형 확장을 원활하게 달성합니다. FSDP에 대한 내장 지원을 통해 대규모 모델을 평가하고 추가 가속을 위해 더 큰 배치 크기를 사용할 수 있습니다.
커뮤니티에서 자체 모델 평가를 위해 당사의 평가 제품군을 사용하고, 가장 엄격한 평가를 보장하기 위해 추가 데이터셋 및 ICL 작업 유형에 대한 풀 리퀘스트를 제출해 주시기를 바랍니다.
대부분의 오픈 소스 언어 모델은 몇 천 개의 토큰까지만 처리할 수 있습니다(그림 1 참조). 하지만 MosaicML 플랫폼과 8xA100-80GB의 단일 노드를 사용하면 MPT-7B를 쉽게 파인튜닝하여 최대 65k의 컨텍스트 길이를 처리할 수 있습니다! 이렇게 극단적인 컨텍스트 길이 적응을 처리하는 능력은 MPT-7B의 주요 아키텍처 선택 중 하나인 ALiBi에서 비롯됩니다.
이 기능을 선보이고 65k 컨텍스트 창으로 무엇을 할 수 있을지 생각하게 하기 위해 MPT-7B-StoryWriter-65k+를 출시합니다. StoryWriter는 MPT-7B에서 2500 스텝 동안 books3 코퍼스에 포함된 소설 책의 65k 토큰 발 췌본으로 파인튜닝되었습니다. 사전 학습과 마찬가지로 이 파인튜닝 프로세스는 다음 토큰 예측 목표를 사용했습니다. 데이터를 준비한 후에는 학습에 필요한 모든 것이 FSDP, 활성화 체크포인팅 및 1의 마이크로 배치 크기를 사용한 Composer였습니다.
알고 보니, 위대한 개츠비의 전체 텍스트는 68k 토큰이 조금 안 됩니다. 그래서 당연히 StoryWriter에게 위대한 개츠비를 읽고 에필로그를 생성하도록 했습니다. 생성된 에필로그 중 하나가 그림 2에 있습니다. StoryWriter는 위대한 개츠비를 약 20초 만에 (분당 약 150k 단어) 입력받았습니다. 긴 시퀀스 길이 때문에 다른 MPT-7B 모델보다 "타이핑" 속도가 느린 편이며, 분당 약 105단어입니다.
StoryWriter는 65k 컨텍스트 길이로 파인튜닝되었지만, ALiBi 덕분에 모델이 훈련된 것보다 더 긴 입력(The Great Gatsby의 경우 68k 토큰, 테스트에서는 최대 84k 토큰)으로 외삽할 수 있습니다.

다른 오픈 소스 모델의 가장 긴 컨텍스트 길이는 4k입니다. GPT-4는 8k의 컨텍스트 길이를 가지며, 다른 변형 모델은 32k의 컨텍스트 길이를 가집니다.

에필로그는 위대한 개츠비의 전체 텍스트(약 68k 토큰)를 모델에 입력하고 "Epilogue"라는 단어를 추가한 후 모델이 거기서부터 생성을 계속하도록 하여 얻은 결과입니다.

이 모델은 YAML 형식으로 된 콘텐츠를 JSON 형식으로 된 동일한 콘텐츠로 올바르게 변환합니다.
LLM 사전 학습은 모델이 제공된 입력에 따라 텍스트 생성을 계속하도록 가르칩니다. 하지만 실제로는 LLM이 입력을 따라야 할 지침으로 취급하기를 기대합니다. 지침 파인튜닝은 LLM이 이러한 방식으로 지침을 따르도록 훈련하는 과정입니다. 영리한 프롬프트 엔지니어링에 대한 의존도를 줄임으로써, 지침 파인튜닝은 LLM을 더 접근 가능하고 직관적이며 즉시 사용할 수 있게 만듭니다. 지침 파인튜닝의 발전은 FLAN, Alpaca, Dolly-15k 데이터셋과 같은 오픈 소스 데이터셋에 의해 주도되었습니다.
당사는 상업적으로 사용 가능한 당사 모델의 지침 따르기 변형인 MPT-7B-Instruct를 만들었습니다. Dolly의 상업적 라이선스가 마음에 들었지만 더 많은 데이터가 필요했기 때문에, Anthropic의 Helpful & Harmless 데이터셋의 하위 집합으로 Dolly를 보강하여 데이터셋 크기를 네 배로 늘리면서 상업적 라이선스를 유지했습니다.
이 새로운 통합 데이터셋은 여기에 공개되었으며, MPT-7B를 파인튜닝하는 데 사용되어 상업적으로 사용 가능한 MPT-7B-Instruct를 만들었습니다. 경험상 MPT-7B-Instruct는 효과적인 지침 따르기 성능을 보입니다(예시 상호작용은 그림 3 참조). 1조 개의 토큰에 대한 광범위한 훈련을 통해 MPT-7B-Instruct는 기본 모델인 Pythia-12B가 3000억 개의 토큰만 훈련된 dolly-v2-12b와 경쟁할 수 있을 것입니다.
당사는 MPT-7B-Instruct의 코드, 가중치 및 온라인 데모를 출시합니다. MPT-7B-Instruct의 작은 크기, 경쟁력 있는 성능 및 상업적 라이선스가 커뮤니티에 즉각적인 가치를 제공할 것이라고 생각합니다.

채팅 모델과의 다중 턴 대화에서, 모델은 문제 해결을 위한 고수준 접근 방식을 제안하고(멸종 위기 야생 동물 보호를 위해 AI 사용) Keras를 사용하여 Python으로 구현을 제안합니다.
당사는 또한 MPT-7B의 대화형 버전인 MPT-7B-Chat을 개발했습니다. MPT-7B-Chat은 ShareGPT-Vicuna, HC3, Alpaca, Helpful and Harmless, Evol-Instruct를 사용하여 파인튜닝되어 다양한 대화 작업 및 애플리케이션에 잘 대비되어 있습니다. ChatML 형식을 사용하여 모델 시스템 메시지를 편리하고 표준화된 방식으로 전달하고 악의적인 프롬프트 주입을 방지하는 데 도움이 됩니다.
MPT-7B-Instruct가 지침 따르기를 위한 더 자연스럽고 직관적인 인터페이스 제공에 중점을 두는 반면, MPT-7B-Chat은 사용자에게 원활하고 매력적인 다중 턴 상호작용을 제공하는 것을 목표로 합니다(예시 상호작용은 그림 4 참조).
MPT-7B 및 MPT-7B-Instruct와 마찬가지로, MPT-7B-Chat의 코드, 가중치 및 온라인 데모를 출시합니다.
오늘 공개된 모델들은 MosaicML NLP 팀에서 구축했지만, 저희가 사용한 도구는 MosaicML의 모든 고객이 사용할 수 있는 것과 동일합니다.
MPT-7B를 시연용으로 생각해보세요. 저희 소규모 팀이 데이터 준비, 학습, 미세 조정 및 배포(그리고 이 블로그 글 작성까지!)를 포함하여 단 몇 주 만에 이 모델들을 구축할 수 있었습니다. MosaicML을 사용하여 MPT-7B를 구축하는 과정을 살펴보겠습니다:
MPT-7B가 고품질의 독립형 모델이자 다양한 다운스트림 용도로 유용하게 활용될 수 있기를 바랐습니다. 이에 따라 저희의 사전 학습 데이터는 MosaicML에서 큐레이션한 다양한 소스의 조합으로 구성되었으며, 이는 표 2에서 요약하고 부록에서 자세히 설명합니다. 텍스트는 EleutherAI GPT-NeoX-20B 토크나이저를 사용하여 토큰화되었고, 모델은 1조 개의 토큰으로 사전 학습되었습니다. 이 데이터셋은 영어 자연어 텍스트와 향후 용도(예: 코드 또는 과학 모델)를 위한 다양성을 강조하며, 최근 출시된 RedPajama 데이터셋의 요소를 포함하여 웹 크롤링 및 위키피디아 부분에 2023년의 최신 정보가 포함되도록 했습니다.

10가지 다른 오픈 소스 텍스트 코퍼스의 조합입니다. 텍스트는 EleutherAI GPT-NeoX-20B 토크나이저를 사용하여 토큰화되었으며, 모델은 이 조합에 따라 샘플링된 1T 토큰으로 사전 학습되었습니다.
저희는 EleutherAI의 GPT-NeoX 20B 토크나이저를 사용했습니다. 이 BPE 토크나이저는 여러 가지 바람직한 특성을 가지고 있으며, 대부분은 코드 토큰화와 관련이 있습니다:
토크나이저의 어휘 크기는 50257이지만, 모델 어휘 크기는 50432로 설정했습니다. 그 이유는 두 가지입니다. 첫째, 128의 배수로 만들어 (Shoeybi 외) 초기 실험에서 MFU를 최대 4% 포인트까지 향상시키는 것으로 확인된 것입니다. 둘째, 후속 UL2 학습에 사용할 수 있는 토큰을 남겨두기 위해서입니다.
저희는 MosaicML의 StreamingDataset을 활용하여 데이터를 표준 클라우드 객체 저장소에 호스팅하고 학습 중에 컴퓨팅 클러스터로 효율적으로 스트리밍했습니다. StreamingDataset은 여러 가지 이점을 제공합니다:
더 자세한 내용은 StreamingDataset 블로그를 확인하세요!
모든 MPT-7B 모델은 다음 도구를 사용하여 MosaicML 플랫폼에서 학습되었습니다:
표 3에서 볼 수 있듯이, 학습 예산의 거의 전부가 기본 MPT-7B 모델에 사용되었으며, 이는 440개의 A100-40GB GPU에서 약 9.5일 동안 학습하는 데 약 20만 달러가 소요되었습니다. 미세 조정된 모델은 훨씬 적은 컴퓨팅 자원을 사용했으며 비용도 훨씬 저렴했습니다. 각 모델당 수백 달러에서 수천 달러 사이였습니다.

'학습 시간'은 체크포인팅, 주기적 평가, 재시작 등을 포함한 작업 시작부터 완료까지의 총 런타임입니다. '비용'은 MosaicML 플랫폼에서 예약된 GPU에 대해 시간당 $2/A100-40GB 및 시간당 $2.50/A100-80GB의 가격으로 계산됩니다.
이러한 학습 레시피 각각은 완전히 사용자 정의할 수 있습니다. 예를 들어, 오픈 소스 MPT-7B에서 시작하여 긴 컨텍스트 길이로 독점 데이터에 미세 조정하려면 MosaicML 플랫폼에서 오늘 바로 그렇게 할 수 있습니다.
또 다른 예로, 사용자 지정 도메인(예: 생물의학 텍스트 또는 코드)에서 처음부터 새 모델을 학습하려면 MosaicML의 hero cluster 오퍼링으로 단기 대규모 컴퓨팅 블록을 예약하기만 하면 됩니다. 원하는 모델 크기와 토큰 예산을 선택하고, S3와 같은 객체 저장소에 데이터를 업로드하고, MCLI 작업을 시작하세요. 며칠 안에 자신만의 맞춤형 LLM을 갖게 될 것입니다!
다양한 LLM의 학습 시간 및 비용에 대한 지침은 이전 LLM 블로그 게시물을 확인하세요. 특정 모델 구성에 대한 최신 처리량 데이터는 여기서 찾을 수 있습니다. 이전 작업과 마찬가지로 모든 MPT-7B 모델은 Pytorch FullyShardedDataParallelism(FSDP)을 사용하여 텐서 또는 파이프라인 병렬 처리 없이 학습되었습니다.
많은 팀에서 문서화했듯이, 수백에서 수천 개의 GPU에서 수십억 개의 매개변수를 가진 LLM을 학습하는 것은 매우 어렵습니다. 하드웨어는 창의적이고 예상치 못한 방식으로 자주 실패합니다. 손실 급증은 학습을 방해할 것입니다. 팀은 실패 시 24/7 학습 실행을 "