Phi-3 기술 문서 공개 - 가장 작은 Phi-3 mini(3.8B) 모델이 GPT-3.5 성능에 근접 (feat. Microsoft)

:pytorch:PyTorchKR:kr:

Microsoft가 모바일 기기를 타겟으로 개발 및 공개하는 Phi 모델의 새로운 버전인 Phi-3의 기술 문서가 공개되었습니다. Phi-3는 Phi-3 Medium, Small, Mini의 3가지 버전으로 공개되었으며, 각각 14B / 7B / 3.8B의 크기를 갖고 있습니다. 이 중 가장 작은 Phi-3 Mini 모델은 3.8B 규모의 파라매터로 GPT-3.5와 유사한 벤치마크 성능을 보이면서도 4bit 양자화(quantization) 시 1.8GB 정도의 크기로, iPhone 14에서 초당 12토큰 정도의 성능으로 동작한다고 합니다. :astonished:

Phi3-mini 4bit Quantized 모델: A16 Bionic 칩이 탑재된 아이폰 14에서 초당 12토큰 생성

Highly capable language model running locally on a cell-phone. Thanks to its small size, phi3-mini can be quantized to 4-bits so that it only occupies ≈ 1.8GB of memory. We tested the quantized model by deploying phi-3-mini on iPhone 14 with A16 Bionic chip running natively on-device and fully offline achieving more than 12 tokens per second.


Phi-3 기술 문서: 휴대폰에서 작동하는 고성능 언어 모델 / (Phi-3 Technical Report: A Highly Capable Language Model Locally on Your Phone)

소개

Hugging Face에 공개된 Microsoft의 Phi-3 모델군

약 5년 전에 공개되었던 GPT-2가 1.5B였던 것에 비해 최근 LLM의 모델 크기는 급격히 커지고 있습니다. 이를 통해 눈부신 발전을 이루었으나, 점점 더 큰 모델과 데이터셋을 확장하려는 시도에 많은 노력이 투입되고 있습니다. 이러한 노력의 기반에는 모델의 크기와 데이터셋의 확장, 더 많은 연산 자원을 투입하였을 때 모델의 성능이 예측 가능한 정도로 향상되는, 소위 말하는 스케일링 법칙(scaling laws)에 기반하고 있습니다.

하지만 우리는 이전 연구에서 웹 데이터의 LLM 기반 필터링과 LLM이 생성한 합성 데이터의 조합으로 작은 크기의 언어 모델로도 훨씬 큰 모델과 유사한 성능을 낼 수 있음을 보였습니다. Phi-2 모델은 이러한 데이터 레시피로 학습한 2.7B 규모의 모델로, 일반 데이터 학습한 약 25배 큰 모델의 성능과 비슷함을 보였습니다. 이번에는 Phi-2에서 사용한 데이터셋보다 더 크고 발전한 버전인 3.3T 규모의 토큰들로 학습한 새로운 모델인 Phi-3-mini와 4.8T 규모의 데이터로 학습한 Phi-3-small과 Phi-3-medium의 Phi-3 모델군들을 소개합니다.

Phi-3 모델군의 기술 명세 (Technical Specification)

3가지 Phi-3 모델군들 중, 스마트폰과 같은 모바일 기기에서 직접 실행할 수 있는 고성능 언어 모델인 phi-3-mini에 집중하여 설명하도록 하겠습니다. 이 모델은 3.8B 개의 파라미터를 갖추고 있으며, 3.3T개의 토큰으로 학습되었습니다. 이는 Mixtral 8x7B 및 GPT-3.5와 같은 크기가 훨씬 큰 모델과 유사한 성능을 달성하면서도 휴대폰에서도 배포가 가능할 정도로 충분히 작습니다.

7B 규모의 Phi-3-small 모델은 다양한 언어의 토큰화를 더 잘 처리하기 위해 tiktoken 토크나이저를 사용하며, 100,352 크기의 어휘집(Vocabulary) 크기를 갖습니다. 이 모델은 기본 컨텍스트 길이가 8K이며, 7B 모델 클래스의 표준 디코더 아키텍처를 따르고 있습니다. 이 아키텍처는 32개의 레이어와 4096의 히든 사이즈를 가집니다. KV 캐시의 메모리 사용을 최소화하기 위해, 모델은 1개의 키에 4개의 쿼리가 공유되는 그룹화된 쿼리 어텐션을 사용합니다. 또한, phi-3-small은 KV 캐시 절약을 최적화하면서도 긴 컨텍스트 검색 성능을 유지하기 위해 밀집 어텐션(dense attention)과 새로운 블록희소 어텐션(blocksparse attention)을 번갈아 사용합니다. 이 모델은 추가적으로 10%의 다국어 데이터를 사용하여 학습되었습니다.

Phi-3 모델의 주요 기술적 특징들을 다음에서 살펴보겠습니다:

휴대폰에서 로컬로 실행되는 고성능 언어 모델 / Highly capable language model running locally on a cell-phone

Phi-3-mini는 휴대폰에서 로컬로 실행될 수 있는 고성능 언어 모델로 설계되어, 4-bit 양자화 시에는 약 1.8GB 가량의 메모리를 차지하며, iPhone 14의 A16 바이오닉 칩에서도 초당 12토큰을 생성할 수 있습니다. 이 모델은 다양한 벤치마크에서 뛰어난 성능을 보이며, 실제 사용 환경에서도 높은 처리 속도와 정확성을 유지할 수 있습니다. 사용자와의 실시간 상호작용이 가능하며, 특히 모바일 기기의 한정된 계산 자원과 저장 공간에 맞게 최적화되었습니다.

학습 전략 / Training Methodology

기본적으로 Phi-3 모델의 학습은 "Textbooks are All You Need"의 연구를 따르고 있습니다. 이 연구는 모델의 크기와 학습 데이터의 양, 연산량이 증가함에 따라 모델의 성능이 예측 가능하게 증가한다는 스케일링 법칙(Scaling Law)에서 벗어날 수 있는 방법이 있음을 보이고 있습니다. 즉, 표준적인 데이터를 대량으로 활용하는 대신, 더 정교하고 교육적 가치가 높은 데이터를 통해 모델을 학습하는 경우 더 작은 크기의 모델로도 나은 성능을 보이도록 하였습니다.

이를 위해 인터넷에 공개된 다양한 데이터들을 "교육 수준(educational level)"에 맞춰 필터링하고, LLM이 생성한 합성 데이터를 포함하는 등, 모델이 일반적인 언어 사용 상황뿐만 아니라 다양한 형식과 상황에서도 효과적으로 작동할 수 있도록 합니다. 학습 과정에서는 데이터의 질을 높이고, 안전하고 견고한 대화 형식을 유지하는 것을 목표로 합니다.

사전 학습은 다음과 같이 서로 분리된 2단계를 순차적으로 수행합니다: 1단계에서는 대부분 모델에 일반적인 지식과 언어 이해를 가르치는 것을 목표로, 웹 소스 데이터를 사용합니다. 2단계에서는 약간의 합성 데이터와 함께 1단계에서 사용된 데이터들 중 엄격하게 필터링한 데이터를 가지고 모델에 논리적 추론과 다양한 틈새 기술(niche skill)들을 학습하도록 합니다.

데이터 최적화 체계 / Data Optimal Regime

데이터 최적화 체계는 모델이 학습할 때 가장 효과적인 데이터 사용을 의미합니다. 이전의 연구에서와 달리 주어진 규모에 맞는 데이터의 품질에 주로 초점을 맞췄습니다. 특히, 작은 모델에서 '데이터 최적화' 체계에 더 가까운 모델을 조정(calibrate)하려고 시도했습니다. 예를 들어, 특정 날의 프리미어 리그 게임 결과는 더 상위(frontier) 모델에게는 좋은 학습 데이터가 될 수 있지만, 미니 사이즈 모델의 "추론"을 위한 모델 용량을 더 확보하기 위해 이러한 정보를 제거해야 합니다.

Phi-3 모델의 데이터 최적화 체계에 대한 Scaling Law

더 큰 모델에서의 데이터 효과를 검증하기 위해 3.8B의 Phi-3-mini 모델과 동일한 토크나이저(tokenizer)와 아키텍처를 가지면서 조금 더 많은 에폭(Epoch)으로 학습한 14B 규모의 Phi-3-Medium 모델을 비교해보았습니다. (Phi-3-Small과 동일한 4.8T 토큰) 이 때, 7B -> 14B의 성능 향상은 3.8B -> 7B에서의 성능 향상보다 적은 것을 확인하였으며, 14B 모델은 아직 '데이터 최적화 체계'에 도달하기 위해 추가 작업이 필요함을 확인하였습니다.

사후 학습 / Post-training

훈련 후의 과정은 모델이 실제 환경에서 어떻게 수행될지를 평가하고 최적화하는 단계입니다. 이 단계에서는 모델의 성능을 다양한 테스트와 벤치마크를 통해 검증하며, 필요한 경우 모델을 미세 조정하여 사용자 경험을 향상시킵니다. 또한, 모델의 안전성과 사용자와의 상호작용의 질을 높이기 위한 조정이 포함됩니다.

Phi-3-mini 모델은 SFT(Supervised Fine-Tuning)과 DPO(Direct Preference Optimization)의 두 단계에 걸친 사후학습 과정을 거쳤습니다:

  • 감독된 파인튜닝(SFT) 은 수학, 코딩, 추론, 대화, 모델 정체성 및 안전성과 같은 다양한 도메인에서 선별된 고품질 데이터를 활용합니다. SFT 데이터 믹스는 영어로만 된 예시를 사용하여 시작하였습니다.
  • "직접 선호 최적화(DPO) 는 채팅 형식의 데이터와 추론(resasoning) 데이터, 그리고 책임있는 인공지능(RAI, Responsible AI) 노력 등을 포함합니다. DPO는 원치 않는 행동으로부터 모델을 유도하는 데 사용되며, 이러한 출력을 "거부된" 반응으로 사용합니다.

이러한 사후 학습은 수학, 코딩, 추론, 견고성 및 안전성이 향상되는 것은 물론, 사용자가 효율적이고 안전하게 상호 작용할 수 있는 AI 어시스턴트로 언어 모델을 변환합니다.

성능 평가

이전의 Phi-2 모델과 함께, Phi-3 모델군들과 GPT-3.5에 대해서 MMLU 및 MT-Bench의 성능을 비교해보았습니다. 전반적으로 Phi-3-mini 모델은 3.8B 규모의 작은 크기에도 불구하고 GPT-3.5와 유사한 성능을 보임을 확인할 수 있었습니다:

모델명 모델 크기 학습 토큰 수 MMLU MT-bench
Phi-3 mini 3.8B 3.3T 68.8 8.38
Phi-3 small 7B 4.8T 75.3 8.7
Phi-3 medium 14B 4.8T 78.2 8.9
Phi-2 2.7B - 56.3 -
GPT-3.5 v1106 - 71.4 8.35


좀 더 많은 모델들과 더 많은 벤치마크들에 대해서 비교한 결과는 아래 표와 같습니다:

Phi-3 모델군과 다른 여러 모델들의 벤치마크 성능을 비교한 결과

이러한 벤치마크 결과를 살펴봤을 때, Phi-3 모델들은 여러 면에서 큰 모델들과 비슷한 언어 이해력과 추론 능력을 달성하고 있지만, 특정 작업에서는 그 크기로 인해 본질적인 한계를 가지고 있습니다. 이러한 취약점은 몇 가지 주요 영역에서 나타납니다:

  1. 저장 용량 한계: Phi-3-mini 모델은 "실제적인 지식(factual knowledge)"을 많이 저장할 수 있는 용량이 부족합니다. 이는 TriviaQA와 같은 벤치마크에서 낮은 성능으로 확인할 수 있습니다. 이러한 약점은 검색 엔진을 통한 증강으로 해결될 수 있다고 보고 있으며, HuggingFace의 기본 Chat-UI를 사용한 예가 아래 그림에서 보여집니다.

  1. 언어 제한: 모델이 주로 영어로 제한되어 있기 때문에, 다양한 언어를 처리하는 능력에 한계가 있습니다. 소형 언어 모델에서 다국어 능력을 탐구하는 것은 중요한 다음 단계로, phi-3-small에 다국어 데이터를 더 많이 포함시킴으로써 초기에 유망한 결과를 얻고 있습니다.

  2. 실제적 정확성과 안전성 문제: 대부분의 대형 언어 모델(LLM)과 마찬가지로, phi-3 모델들도 사실적인 부정확성(또는 환각), 편향의 재생산 또는 확대, 부적절한 콘텐츠 생성, 안전 문제 등의 도전과제를 가지고 있습니다. 신중하게 선별된 훈련 데이터 사용, 목표 지향적인 후학습, 레드 팀의 통찰로부터의 개선을 통해 이러한 문제들을 상당 부분 완화할 수 있습니다. 그러나 이러한 도전과제를 완전히 해결하기 위해서는 앞으로 해야 할 작업이 많이 남아 있습니다.

더 읽어보기

Phi-3 모델 기술 문서

Phi-3 모델 컬렉션 (Hugging Face:hugs:)

Textbooks are All You Need 논문 1탄 (feat. Microsoft)

Textbooks are All You Need 논문 2탄 (feat. Microsoft)




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요