AI 모델 및 플랫폼

Jamba: AI21 랩스의 새로운 하이브리드 Transformer-Mamba 언어 모델

mm
Unite.AI를 Google의 선호 소스에 추가

언어 모델은 자연어 처리에서 급격한 발전을 이루었으며, Transformer 기반 아키텍처가 주도하고 있습니다. 그러나 모델의 규모가 커짐에 따라 긴 문맥을 처리하고, 메모리 효율성 및 처리량을 관리하는 문제가 더 심각해졌습니다.

AI21 랩스는 Jamba라는 새로운 솔루션을 도입했습니다. Jamba는 Transformer와 Mamba 아키텍처의 강점을 결합한 하이브리드 프레임워크를 사용하는 최첨단的大규모 언어 모델(Large Language Model, LLM)입니다. 이 기사에서는 Jamba의 아키텍처, 성능 및 잠재적인 응용 분야에 대해 자세히 설명합니다.

Jamba 개요

Jamba는 AI21 랩스에서 개발한 하이브리드 大규모 언어 모델로, Transformer 레이어와 Mamba 레이어를 결합하고, Mixture-of-Experts (MoE) 모듈을 통합했습니다. 이 아키텍처는 Jamba가 메모리 사용량, 처리량 및 성능을 균형 있게 관리할 수 있도록 해줍니다. 모델은 단일 80GB GPU에 맞춤으로 설계되어 높은 처리량과 작은 메모리 풋프린트를 제공하면서 다양한 벤치마크에서 최첨단 성능을 발휘합니다.

Jamba 아키텍처

Jamba의 아키텍처는 모델의 핵심입니다. 그것은 Transformer 레이어와 Mamba 레이어를 교대로 결합하는 새로운 하이브리드 디자인을 기반으로 하며, MoE 모듈을 통합하여 모델의 용량을 증가시키지 않고도 계산 요구를 크게 증가시키지 않습니다.

1. Transformer 레이어

Transformer 아키텍처는 현대적인 LLM의 표준이 되었습니다. 그것은 병렬 처리를 효율적으로 처리하고 텍스트의 긴 의존성을 캡처하는 능력으로 인해 이러한 지위를 얻었습니다. 그러나 Transformer의 성능은 종종 높은 메모리 및 컴퓨팅 요구로 제한됩니다. 특히 긴 문맥을 처리할 때 이러한 제한이 두드러집니다. Jamba는 이러한 제한을 해결하기 위해 Mamba 레이어를 통합합니다.

2. Mamba 레이어

Mamba는 시퀀스의 긴 거리 관계를 처리하는 데 더 효율적인 최근 상태 공간 모델(State Space Model, SSM)입니다. Mamba 레이어는 Transformer의 키-값 캐시를 저장하는 데 관련된 메모리 풋프린트를 줄이는 데 특히 효과적입니다. Transformer 레이어와 Mamba 레이어를 교대로 결합함으로써 Jamba는 전체 메모리 사용량을 줄이면서 높은 성능을 유지합니다. 특히 긴 문맥을 처리하는 작업에서 이러한 성능이 두드러집니다.

3. Mixture-of-Experts (MoE) 모듈

Jamba의 MoE 모듈은 모델의 용량을 확장하는 데 유연한 접근 방식을 제공합니다. MoE는 모델이 활성 매개변수의 수를 비례적으로 증가시키지 않고도 사용 가능한 매개변수의 수를 증가시킬 수 있습니다. Jamba에서 MoE는 일부 MLP 레이어에 적용되며, 라우터 메커니즘이 각 토큰에 대해 활성화할 전문가를 선택합니다. 이 선택적 활성화는 Jamba가 높은 효율성을 유지하면서 복잡한 작업을 처리할 수 있도록 합니다.

아래 이미지는 하이브리드 Attention-Mamba 모델의 유도 헤드의 기능을示す 예입니다. 이 예에서 주의 헤드는 감성 분석 작업에서 “Positive” 또는 “Negative”와 같은 레이블을 예측하는 데 책임이 있습니다. 강조된 단어는 모델의 주의가 몇샷 예에서 레이블 토큰에 강하게 집중되어 있음을 보여줍니다. 특히 레이블을 예측하기 직전에 이러한 주의 메커니즘은 모델의 문맥 학습 능력에 중요한 역할을 합니다.

MoE를 통합한 Attention-Mamba 하이브리드 아키텍처의 성능 개선은 표에서 강조됩니다. MoE를 사용하여 Jamba는 계산 비용을 비례적으로 증가시키지 않고도 용량을 증가시킵니다. 이는 다양한 벤치마크에서 두드러진 성능 향상으로 나타납니다. 예를 들어, WinoGrande에서 MoE를 사용하면 66.0%의 정확도를 달성할 수 있으며, 이는 MoE 없이 62.5%인 것보다 높습니다. 또한 다양한 도메인에서 로그 확률을 개선합니다(예: C4에서 -0.534).

주요 아키텍처 특징

  • 레이어 구성: Jamba의 아키텍처는 Mamba와 Transformer 레이어를 특정 비율(예: 1:7, 즉 7개의 Mamba 레이어당 1개의 Transformer 레이어)로 결합하는 블록으로 구성됩니다. 이 비율은 최적의 성능과 효율성을 위해 조정됩니다.
  • MoE 통합: MoE 레이어는 몇 개의 레이어마다 적용되며, 16개의 전문가가 사용 가능하고 각 토큰당 상위 2개의 전문가가 활성화됩니다. 이 구성은 Jamba가 효과적으로 확장하면서 메모리 사용량과 계산 효율성 간의 트레이드오프를 관리할 수 있도록 합니다.
  • 정규화 및 안정성: 훈련 중 안정성을 보장하기 위해 Jamba는 Mamba 레이어에서 RMSNorm을 통합합니다. 이는 큰 활성화 스파이크와 같은 문제를 완화하는 데 도움이 됩니다.

Jamba의 성능 및 벤치마킹

Jamba는 다양한 벤치마크에서 경쟁력 있는 성능을 보여주었습니다. 다음 섹션에서는 Jamba가 일반적인 NLP 작업과 긴 문맥 시나리오에서 두드러진 성능을 보여주는 주요 벤치마크를 강조합니다.

1. 일반적인 NLP 벤치마크

Jamba는 여러 학술 벤치마크에서 평가되었습니다.

  • HellaSwag (10샷): Jamba는 87.1%의 성능 점수를 달성하여 많은 경쟁 모델을 초과했습니다.
  • WinoGrande (5샷): Jamba는 82.5%의 점수를 달성하여 복잡한 언어적 추론을 처리하는 능력을 보여주었습니다.
  • ARC-Challenge (25샷): Jamba는 64.4%의 점수를 달성하여 어려운 다중 선택 질문을 관리하는 능력을 보여주었습니다.

집계 벤치마크인 MMLU (5샷)에서 Jamba는 67.4%의 점수를 달성하여 다양한 작업에서 강건함을 보여주었습니다.

2. 긴 문맥 평가

Jamba의 두드러진 기능 중 하나는 매우 긴 문맥을 처리하는 능력입니다. 모델은 최대 256K 토큰의 문맥 길이를 지원하며, 이는 공개적으로 사용 가능한 모델 중 가장 긴 것입니다. 이 기능은 Needle-in-a-Haystack 벤치마크를 사용하여 테스트되었으며, Jamba는 다양한 문맥 길이에서 예외적인 검색 정확도를 보여주었습니다.

3. 처리량 및 효율성

Jamba의 하이브리드 아키텍처는 특히 긴 시퀀스에서 처리량을 크게 개선합니다.

다른 모델과 비교하여 처리량(초당 토큰 수)을 테스트한 결과, Jamba는 특히 큰 배치 크기와 긴 문맥을 포함하는 시나리오에서 일관되게 최고의 성능을 보여주었습니다. 예를 들어, 128K 토큰의 문맥에서 Jamba는 비교 모델인 Mixtral의 3배의 처리량을 달성했습니다.

Jamba 사용: Python

개발자와 연구자들이 Jamba와 실험하고 싶다면, AI21 랩스는 Hugging Face와 같은 플랫폼에서 모델을 제공하여 다양한 응용 분야에 쉽게 접근할 수 있도록 했습니다. 다음 코드 조각은 Jamba를 로드하고 텍스트를 생성하는 방법을示합니다.


<p>from transformers import AutoModelForCausalLM, AutoTokenizer</p>

<p>model = AutoModelForCausalLM.from_pretrained("ai21labs/Jamba-v0.1")</p>
<p>tokenizer = AutoTokenizer.from_pretrained("ai21labs/Jamba-v0.1")</p>

<p>input_ids = tokenizer("최근 Super Bowl LVIII에서", return_tensors='pt').to(model.device)["input_ids"]</p>

<p>outputs = model.generate(input_ids, max_new_tokens=216)</p>

print(tokenizer.batch_decode(outputs))

이 간단한 스크립트는 Jamba 모델과 토크나이저를 로드하고, 주어진 입력 프롬프트에 따라 텍스트를 생성하며, 생성된 출력을 인쇄합니다.

Jamba 미세 조정

Jamba는 기본 모델로 설계되어 특정 작업 또는 응용 분야에 미세 조정할 수 있습니다. 미세 조정은 사용자가 모델을 특수한 도메인에 적응시킬 수 있도록 허용하여 전문 작업의 성능을 향상시킵니다. 다음 예는 PEFT 라이브러리를 사용하여 Jamba를 미세 조정하는 방법을 보여줍니다.

import torch
from datasets import load_dataset
from trl import SFTTrainer, SFTConfig
from peft import LoraConfig
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments

<p>tokenizer = AutoTokenizer.from_pretrained("ai21labs/Jamba-v0.1")</p>
<p>model = AutoModelForCausalLM.from_pretrained("ai21labs/Jamba-v0.1", device_map='auto', torch_dtype=torch.bfloat16)</p>

<p>lora_config = LoraConfig(r=8, target_modules=["embed_tokens","x_proj","in_proj","out_proj", # mamba "gate_proj","up_proj","down_proj", # mlp "q_proj","k_proj","v_proj" # attention], task_type="CAUSAL_LM", bias="none")</p>

<p>dataset = load_dataset("Abirate/english_quotes", split="train")</p>
<p>training_args = SFTConfig(output_dir="./results", num_train_epochs=2, per_device_train_batch_size=4, logging_dir='./logs', logging_steps=10, learning_rate=1e-5, dataset_text_field="quote")</p>
<p>trainer = SFTTrainer(model=model, tokenizer=tokenizer, args=training_args, peft_config=lora_config, train_dataset=dataset)</p>
<p>trainer.train()</p>

이 코드 조각은 영어 인용문 데이터 세트에서 Jamba를 미세 조정합니다. 모델의 매개변수를 특정 작업에 맞게 조정하여 텍스트 생성 작업의 성능을 향상시킵니다.

배포 및 통합

AI21 랩스는 다양한 플랫폼과 배포 옵션을 통해 Jamba 패밀리를 널리 사용할 수 있도록 했습니다.

  1. 클라우드 플랫폼:
    • 구글 클라우드 Vertex AI, 마이크로소프트 애저, NVIDIA NIM (NVDA ) 을 포함한 주요 클라우드 제공업체에서 사용할 수 있습니다.
    • 아마존 베드락, 데이터브릭스 마켓플레이스, 스노플레이크 코텍스에서 곧 제공될 예정입니다.
  2. AI 개발 프레임워크:
    • LangChain 및 LlamaIndex( 即将 제공 )와 같은 인기 있는 프레임워크와의 통합.
  3. AI21 스튜디오:
    • AI21의 자체 개발 플랫폼을 통해 직접 액세스할 수 있습니다.
  4. 허깅페이스:
    • 다운로드 및 실험을 위해 모델이 제공됩니다.
  5. 온프레미스 배포:
    • 특정 보안 또는 규정 준수 요구 사항이 있는 조직을 위해 사내 배포가 가능합니다.
  6. 사용자 정의 솔루션:
    • 엔터프라이즈 클라이언트를 위한 모델 사용자 정의 및 미세 조정 서비스를 AI21이 제공합니다.

개발자 친화적 특징

Jamba 모델은 개발자에게 특히 매력적인 몇 가지 내장 기능을 제공합니다.

  1. 함수 호출: 외부 도구 및 API를 쉽게 AI 워크플로에 통합할 수 있습니다.
  2. 구조화된 JSON 출력: 자연어 입력에서 직접 깨끗한 파싱 가능한 데이터 구조를 생성할 수 있습니다.
  3. 문서 개체 소화: 복잡한 문서 구조를 효율적으로 처리하고 이해할 수 있습니다.
  4. RAG 최적화: 검색 보강 생성 파이프라인을 강화하는 내장 기능입니다.

이러한 기능은 모델의 긴 문맥 창과 효율적인 처리와 결합되어 다양한 개발 시나리오에 유연한 도구를 제공합니다.

윤리적 고려 및 책임 있는 AI

जबक이 Jamba의 기능은 인상적이지만, 그 사용에 책임 있는 AI 사고 방식을 가지고 접근하는 것이 중요합니다. AI21 랩스는 몇 가지 중요한 점을 강조합니다.

  1. 기본 모델 특성: Jamba 1.5 모델은 특정 정렬 또는 지침 튜닝 없이 사전 훈련된 기본 모델입니다.
  2. 내장 보호 장치 없음: 모델에는 내장된 모더레이션 메커니즘이 없습니다.
  3. 주의해서 배포: 추가적인 적응 및 보호 장치가 생산 환경 또는 최종 사용자와 함께 사용하기 전에 구현되어야 합니다.
  4. 데이터 개인 정보 보호: 클라우드 기반 배포를 사용할 때 데이터 처리 및 규정 준수 요구 사항에 주의해야 합니다.
  5. 편향 인식: 모든 대규모 언어 모델과 마찬가지로 Jamba는 훈련 데이터에 존재하는 편향을 반영할 수 있습니다. 사용자는 이 점에 주의해야 하며 적절한 완화 조치를 구현해야 합니다.

이러한 요소를 고려함으로써 개발자와 조직은 Jamba의 기능을 책임 있게 사용할 수 있습니다.

AI 개발의 새로운 장?

AI21 랩스의 Jamba 패밀리 도입은 대규모 언어 모델의 진화에서 중요한 이정표를 나타냅니다. Transformer와 상태 공간 모델의 강점을 결합하고, 전문가混合 기법을 통합하며, 문맥 길이와 처리 속도의 한계를 확장함으로써 Jamba는 산업 전반에 걸친 AI 응용 분야에 새로운 가능성을 열어줍니다.

AI 커뮤니티가 이 혁신적인 아키텍처를 계속 탐색하고 구축함에 따라, 모델 효율성, 긴 문맥 이해 및 실제 AI 배포에서进一步적인 발전이 기대됩니다. Jamba 패밀리는 단순히 새로운 모델 세트가 아니라, 대규모 AI 시스템의 설계 및 구현 방식을 접근하는 새로운 방향을 나타낼 수 있습니다.

지난 5년 동안私は Machine Learning과 Deep Learning의 매혹적인 세계에 몰두해 왔습니다.私の熱情と専門知識は私を50以上의多様한 소프트웨어 엔지니어링 프로젝트에 기여하게 했으며, 특히 AI/ML에 중점을 두었습니다.私の継続的な 호기심은 또한私를自然어 처리로 끌어들였습니다.私は이 분야를さらに 탐구하기를熱望합니다.