AI 모델 및 플랫폼
OLMo: 언어 모델의 과학을 향상시키는
최근 몇 년 동안 언어 모델의 개발과 진행은 NLP 연구뿐만 아니라 상업적 제공과 실제 응용 분야에서 거의 모든 곳에서 그 존재를 알리고 있습니다. 그러나 언어 모델에 대한 상업적 수요의 급증은一定 정도로 커뮤니티의 성장을 방해했습니다. 이것은 대부분의 최첨단 및 능력 있는 모델이 제한된 인터페이스 뒤에 숨겨져 있기 때문입니다. 이는 개발 커뮤니티가 모델의 훈련 아키텍처, 데이터 및 개발 프로세스의 중요한 세부 정보에 접근할 수 없게 만듭니다. 이제 이러한 훈련 및 구조 세부 정보가 연구 연구를 위해 필수적이며 모델의 잠재적 위험 및 편향을 이해하는 데 중요하다는 것은 부인할 수 없습니다.
이러한 요구를 충족하기 위해 개발자들은 OLMo라는 최첨단 오픈 언어 모델 프레임워크를 만들었습니다. 이 프레임워크를 사용하면 연구자들이 OLMo를 사용하여 언어 모델을 구축하고 연구할 수 있습니다. 대부분의 최첨단 언어 모델과 달리 OLMo 프레임워크는真正로 오픈 소스이며, 공개적으로 접근 가능한 평가 코드, 훈련 방법 및 훈련 데이터를 제공합니다. OLMo의 주요 목표는 오픈 연구 커뮤니티와 언어 모델의 지속적인 개발을 강화하는 것입니다.
이 기사에서는 OLMo 프레임워크에 대해 자세히 обс论하고, 그 아키텍처, 방법론 및 현재 최첨단 프레임워크와 비교한 성능을 살펴보겠습니다. 따라서 시작해 보겠습니다.
OLMo: 언어 모델의 과학을 향상시키는
최근 몇 년 동안 언어 모델은 AI 및 ML 커뮤니티뿐만 아니라 기술 산업 전반에서 가장 인기 있는 트렌드 중 하나였습니다. 이는 실제 작업을 수행하는 데 인간과 같은 성능을 발휘할 수 있기 때문입니다. ChatGPT는 언어 모델의 잠재력을 보여주는 대표적인 예입니다. 주요 기술 기업들은 언어 모델을 자신의 제품에 통합하는 것을 탐구하고 있습니다.
NLP(자연어 처리)는 최근 몇 년 동안 언어 모델을 광범위하게 사용한 산업 중 하나입니다. 그러나 산업이 대규모 사전 훈련과 인간 주석을 사용한 정렬을 시작한 이후, 언어 모델은 상업적 가치가 크게 향상되었습니다. 이는 대부분의 최첨단 언어 및 NLP 프레임워크가 제한된 인터페이스를 갖추게 되었습니다.
언어 모델의 진행을 보장하기 위해 OLMo는 개발자들에게 언어 모델을 구축하고 연구할 수 있는 프레임워크를 제공합니다. 또한 연구자들에게 훈련 및 평가 코드, 훈련 방법, 훈련 데이터, 훈련 로그 및 중간 모델 체크포인트에 접근할 수 있게 합니다. 기존의 최첨단 모델은 다양한 정도의 오픈성을 갖추고 있지만, OLMo 모델은 훈련에서 데이터 및 평가 도구까지 전체 프레임워크를 공개하여 최첨단 모델과 비교했을 때 성능 격차를 좁혔습니다.
OLMo 프레임워크는 모델링 및 훈련을 위해 훈련 코드, 전체 모델 가중치, 절단, 훈련 로그 및 훈련 지표를 포함합니다. 분석 및 데이터셋 구축을 위해 OLMo 프레임워크는 전체 훈련 데이터와 코드를 포함합니다. 평가를 위해 OLMo 프레임워크는 다운스트림 평가를 위한 Catwalk 모델과 복잡도 기반 평가를 위한 Paloma 모델을 포함합니다.
OLMo : 모델 및 아키텍처
OLMo 모델은 디코더 전용 트랜스포머 아키텍처를 채택하여 두 개의 모델을 제공합니다. 하나는 10억 매개변수, 다른 하나는 70억 매개변수를 갖습니다. 현재 650억 매개변수 모델이 개발 중입니다.

OLMo 프레임워크의 아키텍처는 최근의 최첨단 언어 모델과 비교했을 때 여러 가지 개선점을 제공합니다. 다음 그림은 OLMo 모델과 최근의 최첨단 언어 모델을 비교합니다.

OLMo 프레임워크는 하이퍼파라미터를 최적화하여 하드웨어에서 훈련 처리량을 최대화하고 느린 발산 및 손실 스파이크의 위험을 최소화합니다. OLMo 프레임워크는 다음의 주요 변경 사항을 통해 바닐라 트랜스포머 아키텍처와 차별화됩니다.
편향 없음
Falcon, PaLM, LLaMA 및 기타 언어 모델과 달리 OLMo 프레임워크는 훈련 안정성을 향상시키기 위해 아키텍처에 편향을 포함하지 않습니다.
비모수층 정규화
OLMo 프레임워크는 아키텍처에서 비모수층 정규화를 구현합니다. 비모수층 정규화는 노름 내에서 어댑티브 게인 또는 편향을 제공하지 않습니다. 비모수층 정규화는 모수층 정규화보다 더 안전하고 빠릅니다.
SwiGLU 활성화 함수
대부분의 언어 모델과 마찬가지로 OLMo 프레임워크는 ReLU 활성화 함수 대신 SwiGLU 활성화 함수를 사용하여 숨겨진 활성화 크기를 128의 가장 가까운 배수로 증가시킵니다.
RoPE 또는 회전 위치 임베딩
OLMo 모델은 LLaMA 및 PaLM 모델과 마찬가지로 절대 위치 임베딩을 RoPE 또는 회전 위치 임베딩으로 교체합니다.
돌마와의 사전 훈련
개발 커뮤니티는 이제 모델 매개변수에 대한 접근성을 향상시켰지만, 사전 훈련 데이터셋에 대한 접근성은 여전히 제한적입니다. 사전 훈련 데이터는 모델과 함께 공개되지 않으며, 기술 문서는 모델을 완전히 이해하고 복제하기 위해 필요한 중요한 세부 정보가 부족할 수 있습니다. 이러한 장벽은 언어 모델 사전 훈련 연구를 진행하는 것을 어렵게 만듭니다. OLMo 프레임워크는 이러한 문제를 해결하기 위해 돌마라는 사전 훈련 데이터셋을 구축하고 공개했습니다. 돌마 데이터셋은 7개의 서로 다른 소스에서 수집된 5억 개의 문서와 3조 개의 토큰으로 구성된 다중 소스 및 다양한 데이터셋입니다.

돌마 데이터셋은 언어 필터링, 품질 필터링, 콘텐츠 필터링, 다중 소스 混合, 중복 제거 및 토큰화의 5개 구성 요소로 구성된 파이프라인을 사용하여 구축됩니다. OLMo는 또한 돌마 보고서를 공개하여 디자인 원칙 및 구축 세부 정보에 대한 더 많은 통찰력을 제공합니다. 모델은 또한 높은 성능의 데이터 큐레이션 도구를 오픈 소스로 제공하여 사전 훈련 데이터셋의 쉽고 빠른 큐레이션을 가능하게 합니다. 모델의 평가에는 두 단계의 전략이 사용됩니다. 첫 번째는 모델 훈련 중에 온라인 평가이며, 두 번째는 모델 체크포인트에서 집계된 평가입니다. 오프라인 평가를 위해 OLMo는 Catwalk 프레임워크를 사용합니다. Catwalk는 다양한 데이터셋과 작업 형식을 갖춘 공개적으로 사용 가능한 평가 도구입니다.
OLMo는 모델 아키텍처, 초기화, 최적화기, 학습률 스케줄 및 데이터 混合에 대한 여러 평가 지표를 실행합니다. 개발자들은 이를 OLMo의 “온라인 평가”라고 부르며, 이는 훈련 중에 1000개의 훈련 단계마다(또는 약 40억 개의 훈련 토큰마다) 모델의 품질에 대한 초기 및 지속적인 신호를 제공하는 것입니다. 이러한 평가의 설정은 대부분의 핵심 작업 및 실험 설정에 따라 오프라인 평가와 동일합니다. OLMo는 OLMo-7B를 다른 모델과 비교하여 최고의 성능을 보여주는 것뿐만 아니라, 더 완전하고 제어된 과학적 평가를 가능하게 하는 것을 목표로 합니다. OLMo-7B는 복잡도 평가를 위한 가장 큰 언어 모델입니다.
OLMo 훈련
OLMo 프레임워크 모델은 ZeRO 최적화 전략을 사용하여 훈련되며, 이는 PyTorch를 통해 FSDP 프레임워크에서 제공됩니다. 이를 통해 GPU 메모리 소비를 모델 가중치를 GPU에 분산시키는 것으로 크게 줄일 수 있습니다. 70억 규모에서 훈련은 4096개의 토큰당 GPU당 마이크로 배치 크기로 수행됩니다. OLMo-1B 및 OLMo-7B 모델의 훈련 프레임워크는 약 4M개의 토큰(2048개의 인스턴스, 각 인스턴스당 2048개의 토큰 시퀀스 길이)의 글로벌 상수 배치 크기를 사용합니다. 현재 훈련 중인 OLMo-65B 모델은 배치 크기 워밍업을 사용하여 약 2M개의 토큰(1024개의 인스턴스)에서 시작하여 100억 토큰마다 두 배로 증가하여 약 16M개의 토큰(8192개의 인스턴스)까지 증가합니다.
처리량을 개선하기 위해 FSDP의 내장 설정 및 PyTorch의 amp 모듈을 통해 혼합 정밀도 훈련을 사용합니다. 이는 특정 작업이 항상 정밀하게 실행되도록 보장합니다. OLMo-7B의 평가를 위한 체크포인트는 2.46T개의 토큰까지 돌마 데이터셋에서 훈련되며, 이전에 언급한 선형 학습률 감소 스케줄을 사용합니다. 이 체크포인트를 돌마 데이터셋에서 1000개의 단계로 추가로 훈련하여 학습률을 선형적으로 0으로 감소시키면 복잡도 및 엔드 태스크 평가 스위트에서 모델의 성능이 더욱 향상됩니다.
최적화기
OLMo 프레임워크는 다음 하이퍼파라미터를 사용하는 AdamW 최적화기를 사용합니다.

모든 모델 크기에서 학습률은 처음 5000개의 단계(또는 약 21억 개의 토큰) 동안 선형적으로 최대값까지 증가한 후, 최소 학습률까지 반대平方근으로 선형적으로 감소합니다. 워밍업 기간 이후, 모델은 총 l-노름의 매개변수 기울기가 1.0을 초과하지 않도록 기울기를 클리핑합니다. 다음 표는 70억 규모에서 우리의 최적화기 설정을 다른 최근 언어 모델과 비교합니다.

훈련 데이터
훈련에는 단어 및 문장 피스 모델을 위한 BPE 토크나이저를 사용하여 훈련 인스턴스를 토큰화하고, 각 문서의 끝에 특수한 EOS 토큰을 추가합니다. 그런 다음 2048개의 토큰의 연속적인 덩어리를 그룹화하여 훈련 인스턴스를 형성합니다. 훈련 인스턴스는 각 훈련 실행에서 동일한 방식으로 셔플됩니다. 훈련 배치의 순서와 구성은 공개된 아티팩트에서 재구성할 수 있습니다. 모든 공개된 OLMo 모델은 최소 2T개의 토큰(훈련 데이터에 대한 단일 에포크)까지 훈련되었으며, 일부 모델은 데이터에 대한 두 번째 에포크를 시작하여 다른 셔플링 순서로 훈련되었습니다. 반복되는 데이터의 양은 매우 작기 때문에 이는 무시할 수 있는 영향을 미칩니다.
결과
OLMo-7B의 평가를 위한 체크포인트는 2.46T개의 토큰까지 돌마 데이터셋에서 훈련되며, 이전에 언급한 선형 학습률 감소 스케줄을 사용합니다. 이 체크포인트를 돌마 데이터셋에서 1000개의 단계로 추가로 훈련하여 학습률을 선형적으로 0으로 감소시키면 복잡도 및 엔드 태스크 평가 스위트에서 모델의 성능이 더욱 향상됩니다. 최종 평가를 위해 개발자들은 OLMo를 다른 공개 모델과 비교했습니다.
다운스트림 평가
코어 다운스트림 평가 스위트는 다음 표에 요약되어 있습니다.

모든 경우에 랭크 분류 접근 방식을 사용하여 제로샷 평가를 수행합니다. 이 접근 방식에서는 후보 텍스트 완성(예: 다중 선택 옵션)을 가능성(通常 정규화 인자로 정규화됨)으로 랭크하고, 예측 정확도를 보고합니다.
Catwalk는 여러 가지 정상화 방법을 사용합니다. 더 구체적으로, 이는 각 데이터셋 및 작업에 대해 별도로 선택된 정상화 전략을 포함합니다. 예를 들어, arc 및 openbookqa 작업의 경우는 정상화를 수행하지 않으며, hellaswag, piqa 및 winogrande 작업의 경우는 토큰당 정상화를 수행합니다. boolq, copa 및 sciq 작업의 경우는 정상화를 수행하지 않습니다.

다음 그림은 9개의 코어 엔드 태스크에 대한 정확도 점수의 진행을 보여줍니다. OLMo-7B를 더 많은 토큰으로 훈련하면 대부분의 작업에서 정확도 수가 일반적으로 증가하는 추세가 있음을 알 수 있습니다. 마지막 단계와 두 번째 마지막 단계 사이의 정확도에 대한 급격한 상승은 최종 1000개의 훈련 단계 동안 학습률을 선형적으로 0으로 감소시키는 이점을 보여줍니다. 예를 들어, 내재된 평가의 경우 Paloma는 분석을 통해 성능을 검증합니다.

최종 생각
이 기사에서는 OLMo에 대해 논의했습니다. OLMo는 개발자들에게 언어 모델을 구축하고 연구할 수 있는 프레임워크를 제공하며, 연구자들에게 훈련 및 평가 코드, 훈련 방법, 훈련 데이터, 훈련 로그 및 중간 모델 체크포인트에 접근할 수 있게 합니다. 기존의 최첨단 모델은 다양한 정도의 오픈성을 갖추고 있지만, OLMo 모델은 훈련에서 데이터 및 평가 도구까지 전체 프레임워크를 공개하여 최첨단 모델과 비교했을 때 성능 격차를 좁혔습니다.












