오픈 소스 LLM 분야의 선구자들로부터 좋은 소식이 전해졌습니다! 오늘 공개된 Muse Glimmer는 Meta의 새로운 멀티모달 모델로, 특히 로컬 환경에서의 에이전트 기반 사용 사례를 위해 설계되었습니다. Muse에서 파생되어 30B 매개변수를 가지며, Apache 2.0 라이선스 하에 출시되어 개인 정보 보호(privacy)를 위한 로컬 배포, 비용 절감 또는 단순히 실험적인 활용에 이상적입니다. 이 모델은 코딩, 문서 분석, 개인 비서, Claw 또는 Hermes와 유사한 설정과 같이 프라이버시를 고려하는 애플리케이션을 목표로 합니다.
축하하기 위해, 저희는 transformers, llama.cpp, vLLM 및 Inference Endpoints와 같은 라이브러리와 Meta day-0 지원을 함께 제공합니다. 이 블로그에서 우리가 구축한 몇 가지 흥미로운 것들과 우리의 발견 사항들을 설명해 드립니다.
Muse Glimmer는 Hugging Face Hub에서 찾을 수 있습니다.
벤치마크 결과
점수는 발표된 대로 보고되었습니다. 굵게 표시된 부분은 비교된 모델 중 가장 좋은 결과를 나타내며, ↓는 낮을수록 좋습니다.
| 카테고리 | 벤치마크 | Muse Glimmer-30B High Reasoning | Gemma4-31B Thinking Mode | Qwen3.6-27B Thinking Mode |
|---|
| 일반 에이전트 기반 (General Agentic) | MCP Atlas | 75.5 | 54.2 | 62.5 |
| 일반 에이전트 기반 (General Agentic) | DeepSearch QA | 74.6 | 61.7 | 71.1 |
| 일반 에이전트 기반 (General Agentic) | τ³-Banking | 23.5 | 15.1 | 16.7 |
| 일반 에이전트 기반 (General Agentic) | WildClawBench | 47.6 | 37.6 | 43.2 |
| 일반 에이전트 기반 (General Agentic) | GDPval-AA | 953 | 811 | 1141 |
| 일반 에이전트 기반 (General Agentic) | GAIA2 | 43.3 | 36.4 | 40.0 |
| 일반 에이전트 기반 (General Agentic) | SkillsBench (With Skills) | 44.3 | 32.4 | 46.6 |
| 일반 에이전트 기반 (General Agentic) | OSWorld-Verified | 65.9 | 58.5 | 75.6 |
| 에이전트 코딩 (Agentic Coding) | SWE-Bench Pro | 51.2 | 36.9 | 50.2 |
| 에이전트 코딩 (Agentic Coding) | SWE-Bench Verified | 76.0 | 66.6 | 77.2 |
| 에이전트 코딩 (Agentic Coding) | TerminalBench 2.1 | 51.7 | 43.4 | 60.7 |
| 에이전트 코딩 (Agentic Coding) | SciCode | 43.6 | 43.4 | 39.8 |
| 멀티모달 (Multimodal) | Charxiv Reasoning | 78.8 | 77.7 | 78.4 |
| 멀티모달 (Multimodal) | ScreenSpot Pro | 75.4 | 75.9 | 76.1 |
| 멀티모달 (Multimodal) | OmniDocBench v1.5 | 75.8 | 72.5 | 77.8 |
| ... | | | | |
|Violation (↓): 12.1커버리지: 53.0 |
Violation (↓): 53.4 커버리지: 66.9 |
| 안전성 | Siren AgentDojo | 공격 성공률 (↓): 28.4 유틸리티: 94.2 |
공격 성공률 (↓): 25.6유틸리티: 90.8 |
공격 성공률 (↓): 40.3 유틸리티: 92.7 |
| 일반 역량 및 추론 | IFBench | 77.0 |
76.0 | 70.8 |
| 일반 역량 및 추론 | AIME 2026 | 94.7 |
89.2 | 94.1 |
| 일반 역량 및 추론 | GPQA Diamond | 83.5 | 85.7 |
84.2 |
| 일반 역량 및 추론 | Humanity’s Last Exam (Text + No Tools) | 22.0 | 23.6 |
23.1 |
| 일반 역량 및 추론 | AA-LCR | 80.0 |
68.3 | 73.3 |
| 일반 역량 및 추론 | Beam 128K | 65.1 |
58.2 | 63.0 |
Muse Glimmer는 다음으로 구성된 밀집(dense) 30B 파라미터 모델입니다:
- 비전용 2B ViT 스타일 인코더 (지각 인코더, Perception Encoder)
- 28B 파라미터 텍스트 디코더
주요 VLM 외에도 DFlash에 구현된 추측적 디코딩(speculative decoding) 드래프터가 있습니다. 이 모듈의 사용은 선택 사항이며, 일부 메모리 비용을 감수하는 대신 훨씬 빠른 생성을 제공할 수 있습니다. 우리는 이 드래프터가 코딩과 같은 구조화된 콘텐츠 생성에 특히 적합하다고 판단했습니다.
해당 언어 모델은 다음 아키텍처 구성 요소를 사용합니다:
하이브리드 어텐션(Hybrid attention): 로터리 위치 임베딩(RoPE)을 사용하여 세 개의 슬라이딩 윈도우 레이어(2,048 토큰 크기)를 번갈아 사용하고, 이어서 풀 어텐션과 포지션 임베딩 없음(NoPE)을 사용하는 네 번째 레이어를 사용합니다. 따라서 패턴은 (SWA, SWA, SWA, Full)이며, 이를 총 52개 레이어에 걸쳐 13회 반복합니다. 이는 모델이 RoPE를 통해 상대적 순서 및 거리 정보를 유지하고 NoPE를 통해 전역적으로 정보를 보존할 수 있게 합니다.게이티드 그룹화된-쿼리 어텐션(Gated Grouped-Query Attention): 각 키-값 헤드는 16개의 쿼리 헤드가 공유하며, 이는 KV-캐시 메모리를 16배 줄이고 생성 속도를 높이며 비용을 절감합니다.추가 쿼리 스케일링이 적용된 Q-K 정규화: 어텐션을 계산하기 전에 Muse Glimmer는 모든 쿼리와 키 헤드에 RMS 정규화를 적용하여 어텐션 로짓(logits)의 안정성을 유지합니다. 그 후, 쿼리는 스케일 팩터와 곱해져 정규화 후 목표 로짓 스케일을 설정합니다. 이 추가 쿼리 스케일링은 소프트맥스(softmax) 레벨에서 역 온도(inverse temperature)처럼 작동합니다.
Muse Glimmer는 이미지와 비디오를 모두 처리하기 위해 하나의 이미지 인코더를 사용합니다. 다른 VLM(Vision-Language Models)에서 사용되는 비교적 작은 비전 인코더와 달리, 이것은 Perception Encoder 아키텍처를 기반으로 설계된 상당한 크기의 2B ViT 유사 모델입니다. Perception Encoder는 이전에 Meta에 의해 다양한 다운스트림 공간 및 멀티모달 태스크의 백본(backbone)으로 소개되었습니다.
인코더는 이미지를 2 프레임 x 3 채널 x 14 x 14 크기로 패치화하고, 이를 선형 레이어(linear layer)를 통해 투영합니다. 이후 학습된 위치 테이블에서 보간된 절대 위치 임베딩이 이 임베딩에 추가됩니다. 그리고 이것들은 50개 레이어와 GELU MLP로 구성된 비전 타워(vision tower)로 전송됩니다. 언어 모델과 유사하게, 어텐션 패턴은 세 개의 윈도우 어텐션 레이어 다음에 하나의 풀 어텐션 레이어로 구성됩니다. 어텐션 레이어 내부에서는 쿼리와 키에 2D RoPE가 적용됩니다.
트랜스포머(transformer) 이후, 픽셀 셔플(pixel shuffle)은 인접한 공간 토큰(spatial tokens)의 2x2 그룹을 연결하여 채널을 버리지 않으면서 이미지 토큰 수를 4배 줄입니다. 병합된 특징(merged features)은 텍스트 디코더(text decoder)의 공유 임베딩 공간으로 투영됩니다.
비디오는 동일한 인코더를 통해 프레임별로 처리되며, 각 프레임은 패치(shape: [batch, temporal groups, grid height, grid width, 2 frames, 3 channels, 14, 14])로 변환됩니다. 프로세서는 초당 2프레임을 목표로 하며, 클립을 비디오 전체에 걸쳐 균등하게 샘플링된 최대 96프레임으로 제한합니다. 프로세서는 타임스탬프가 찍힌 비디오 플레이스홀더를 생성하며, 텍스트와 프레임을 번갈아 배치(interleaving)합니다 (예: “Time: 0.0s 🎥 x N”). 이 과정에서 최종 비디오 임베딩은 최종 투영 계층(final projection layer) 전에 대체됩니다.
Muse Glimmer를 사용하려면 transformers 라이브러리를 최신 버전으로 업그레이드해야 합니다.
pip install --upgrade transformers accelerate
Muse Glimmer는 메인 모델과 추측 디코딩(speculative decoding) 드래프터 모두에서 transformers에 day-0 지원을 제공합니다. 모델과 프로세서를 로드하려면 AutoModelForMultimodalLM 및 AutoProcessor 클래스를 사용할 수 있습니다.
from transformers import AutoProcessor, AutoModelForMultimodalLM
MODEL_ID = "meta-models/Muse-Glimmer-30B"
# Load model
...
동일한 코드 스니펫은 NVIDIA (CUDA), AMD (ROCm), 그리고 Intel (XPU) GPU에서 변경 없이 실행되며, device_map="auto"는 사용 가능한 어떤 가속기(accelerator)에 모델을 배치합니다.
모델 로드 후에는 다음과 같이 텍스트 전용 추론(text-only inference)을 수행할 수 있습니다.
from transformers import AutoProcessor, AutoModelForMultimodalLM
MODEL_ID = "meta-models/Muse-Glimmer-30B"
# Load model
...
이미지와 텍스트를 사용하려면 torchvision이 필요합니다.
Muse Glimmer는 이미지 입력을 허용하며, 다음에서 시연됩니다:
from transformers import AutoProcessor, AutoModelForMultimodalLM
MODEL_ID = "meta-models/Muse-Glimmer-30B"
# Load model
...
비디오를 처리하려면 환경에 torchcodec을 설치하는 것을 권장합니다.
pip install torchcodec
Muse Glimmer는 오디오가 없는 비디오에 대한 복잡한 질문에 답할 수 있습니다. 다음과 같이 비디오 추론을 수행할 수 있으며, 여기는 가장 인기 있는 비디오 질의응답 벤치마크인 VideoMME2의 예시입니다.
from transformers import AutoProcessor, AutoModelForMultimodalLM
MODEL_ID = "meta-models/Muse-Glimmer-30B"
# 모델 로드
...
Muse Glimmer는 멀티모달 도구 호출(multimodal tool calling)을 수행할 수 있으며, 그 방법은 다음과 같습니다. 아래 예시에서는 이미지에 있는 도시를 기반으로 날씨 도구를 호출하도록 모델에게 요청합니다.
import json
import re
from transformers import AutoProcessor, AutoModelForMultimodalLM
...
다음과 같이 Muse Glimmer를 사용하여 이미지에서 개방형 객체 탐지(open ended object detection)를 수행할 수 있습니다.
from transformers import AutoProcessor, AutoModelForMultimodalLM
MODEL_ID = "meta-models/Muse-Glimmer-30B"
# 모델 로드
...
객체 탐지를 수행하기 위한 엔드투엔드 스크립트는 GitHub Gist에서 확인할 수 있습니다.
Muse Glimmer는 day-0 llama.cpp 지원을 제공합니다. Meta는 이 리포지토리에 보정된 양자화(calibrated quants)를 배포했으며, Unsloth 역시 최적화된 양자화를 출시하고 있습니다. DFlash 추측 디코딩(speculative decoding)도 지원됩니다. 사전 구축된 llama 바이너리를 사용하여 llama 서버 또는 CLI를 시작할 수 있습니다. llama.cpp를 설치하려면 다음을 실행하십시오:
curl -LsSf https://llama.app/install.sh | sh
그런 다음 다음과 같이 서버를 시작할 수 있습니다.
llama serve -hf meta-models/Muse-Glimmer-30B-GGUF
서버가 시작되면, 내장 WebUI에서 채팅을 하려면 localhost:8080으로 이동할 수 있습니다.
또한 다음과 같이 서버에 쿼리할 수도 있습니다.
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
...
Pi와 같은 코딩 에이전트(coding agents)와도 llama 서버를 사용할 수 있습니다.
DFlash는 경량 블록 확산 드래프터 모델(lightweight block-diffusion drafter model)을 사용하여 디코딩 단계에서 추가적인 속도 향상을 제공하면서 동일한 출력을 제공합니다. Transformers와 llama.cpp는 Muse Glimmer day-0의 DFlash 드래프터를 지원합니다.
현실적인 환경에서 추측 디코딩(speculative decoding)이 어떻게 생성을 가속화할 수 있는지 아래에서 확인할 수 있습니다. 비디오는 왼쪽의 DFlash와 오른쪽의 일반 생성 방식을 보여주는 llama.cpp webui를 보여줍니다.
드래프터(drafter)와 모델을 다음과 같이 로드하고, 추가 매개변수(다음 스니펫에 표시됨)를 사용하여 기본 모델로 추론할 수 있습니다.
import torch
from transformers import AutoProcessor, MuseGlimmerAssistantModel, MuseGlimmerForConditionalGeneration
model_id = "meta-models/Muse-Glimmer-30B"
...
다음 명령어를 사용하여 llama 서버를 시작할 수 있습니다. --spec-draft-n-max 인수는 각 추측 디코딩 단계에서 DFlash가 제안하는 미래 토큰의 개수를 제어합니다. Muse Glimmer의 DFlash 모델은 블록 크기 16(앵커 토큰 1개 + 제안된 토큰 15개)으로 학습되었으므로, 15를 초과하는 값은 모두 15로 제한됩니다.
llama serve -hf meta-models/Muse-Glimmer-30B-GGUF --spec-type draft-dflash --spec-draft-n-max 15
또한 다음과 같이 추측 디코딩 드래프터와 함께 llama cli를 사용할 수 있습니다.
llama cli -hf meta-models/Muse-Glimmer-30B-GGUF --spec-type draft-dflash
관리형 자동 스케일링 배포를 위해서는 Muse Glimmer 30B 추론 엔드포인트(Inference Endpoints) 프리셋을 여십시오. 모델은 이미 선택되어 있습니다: 조직, 클라우드 제공업체, 리전, 호환 가능한 GPU 인스턴스, 인증 및 자동 스케일링 설정을 선택한 다음, 시간당 가격을 검토하고 **엔드포인트 생성(Create Endpoint)**을 클릭하십시오. 상태가 **실행 중(Running)**이 되면 Playground에서 테스트할 수 있으며 개요(Overview)에서 엔드포인트 URL과 모델 이름을 복사할 수 있습니다.
배포된 모델은 OpenAI와 호환되는 채팅 완성(Chat Completions) API를 노출합니다. Hugging Face 토큰을 환경 변수에 유지하고, 개요에 표시된 URL에서 /v1을 제외하여 HF_ENDPOINT_URL을 설정하고, HF_ENDPOINT_MODEL을 엔드포인트의 모델 이름으로 설정하십시오.
export HF_TOKEN="hf_..."
export HF_ENDPOINT_URL="https://<endpoint-id>.<region>.<cloud>.endpoints.huggingface.cloud"
export HF_ENDPOINT_MODEL="<endpoint-model-name>"
...
import os
from openai import OpenAI
client = OpenAI(
...
구성, 자동 스케일링(autoscaling), 보안, 로그 및 모니터링에 대한 내용은 Inference Endpoints 문서를 참조하십시오.
이번 릴리스에서는 transformers 백엔드를 사용하는 vLLM 지원을 제공합니다.
tensor parallel serving across 4 GPUs
vllm serve meta-models/Muse-Glimmer-30B --model-impl transformers --tensor-parallel-size 4
infer
...
TRL을 사용하여 SFT부터 Async GRPO까지 다양한 방법으로 Muse Glimmer를 미세 조정(fine-tune)할 수 있습니다. 저희는 각각 80GB VRAM을 가진 Hopper급 GPU에서 bf16을 사용하여 두 가지 실험을 수행했습니다.
| 워크로드 | 실질적 최소 사양 |
|---|---|
| 추론/평가, BF16 | 1×80 GB H100 |
| ... |
이번 릴리스의 일부로, MolmoWeb 데이터셋의 작은 분할(small split)에 Muse Glimmer를 미세 조정하는 예시를 제공합니다. 이를 통해 모델이 구조화된 출력(structured outputs)을 생성하는 방법과 이미지에 대해 미세 조정하는 방법을 보여줍니다.
또한 OpenEnv에서 AsyncGRPO 예시와 함께 OpenCode에서 모델을 실행하는 실험도 진행했습니다. 모델은 강력한 코딩 능력을 보여주므로, OpenEnv 및 TRL에서 코딩 환경으로 훈련해 보시는 것을 권장합니다.
Muse Glimmer를 사용해 볼 수 있는 몇 가지 재미있는 방법들이 있습니다. 저희가 생각하기에 이 모델의 가장 멋진 점은 로컬 규모의 개인 비서(personal assistant)이며, 코딩까지 할 수 있다는 것입니다. 이는 스스로 양자화(quantize)하고, Hub에서 양자화된 가중치(quantized weights)를 찾고, 추론 엔드포인트에 배포하며, 심지어 특정 하드웨어에 맞게 최적화하는 것과 같은 작업을 수행할 수 있음을 의미합니다! 팀 로컬(team local)로 갑시다 🚀
Inference Endpoint가 OpenAI와 호환되는 `/v1` API를 노출한다고 가정해 봅시다.
OpenClaw 게이트웨이 환경에 `HF_TOKEN`을 설정한 다음, 이를 `~/.openclaw/openclaw.json` 파일에 추가하십시오:
## OpenClaw 구성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
models: {
mode: "merge",
...
}
}
openclaw gateway restart