Meta เปิดตัว Muse Glimmer โมเดล Multimodal 30B แบบ Open Source เพื่อการใช้งาน Agent ระดับ Local
ข่าวดีสำหรับนักพัฒนาสาย Open Source! Meta เปิดตัว Muse Glimmer โมเดล Multimodal รุ่นล่าสุดที่ออกแบบมาเพื่อการใช้งานในลักษณะ Local Agent โดยเฉพาะ โดยเป็นการกลั่นกรอง (distilled) จากโมเดล Muse จนเหลือขนาด 30B พารามิเตอร์ และเผยแพร่ภายใต้ สัญญาอนุญาต Apache 2.0 ทำให้เหมาะอย่างยิ่งสำหรับการติดตั้งใช้งานภายในเครื่องเพื่อความเป็นส่วนตัวและลดค่าใช้จ่าย ไม่ว่าจะเป็นการเขียนโค้ด วิเคราะห์เอกสาร หรือเป็นผู้ช่วยส่วนตัวในลักษณะเดียวกับ Claw หรือ Hermes เพื่อรองรับการใช้งานทันที Meta ได้ปล่อยการสนับสนุนแบบ Day-0 ในเครื่องมือยอดนิยมอย่าง transformers, llama.cpp, vLLM รวมถึง Inference Endpoints ต่างๆ โดยทีมงานได้สรุปสิ่งที่ค้นพบและเดโมการใช้งานไว้ในบล็อกนี้เพื่อเป็นแรงบันดาลใจให้นักพัฒนา คุณสามารถเข้าถึง Muse Glimmer บน Hugging Face Hub ได้แล้ววันนี้
Benchmarks
ผลการทดสอบ Benchmark
คะแนนถูกรายงานตามที่เผยแพร่ ตัวหนา (Bold) ระบุถึงผลลัพธ์ที่ดีที่สุดในบรรดาโมเดลที่นำมาเปรียบเทียบ; ↓ ระบุว่าค่ายิ่งน้อยยิ่งดี
| หมวดหมู่ | Benchmark | 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 |
| Multimodal | MMMU Pro | 74 | 73 | 75 |
| Safety | CI Memories | Violation (↓): 26.4 Coverage: 64.8 | Violation (↓): 12.1 Coverage: 53.0 | Violation (↓): 53.4 Coverage: 66.9 |
| Safety | Siren AgentDojo | Attack Success Rate (↓): 28.4 Utility: 94.2 | Attack Success Rate (↓): 25.6 Utility: 90.8 | Attack Success Rate (↓): 40.3 Utility: 92.7 |
| General Capabilities and Reasoning | IFBench | 77.0 | 76.0 | 70.8 |
| General Capabilities and Reasoning | AIME 2026 | 94.7 | 89.2 | 94.1 |
| General Capabilities and Reasoning | GPQA Diamond | 83.5 | 85.7 | 84.2 |
| General Capabilities and Reasoning | Humanity’s Last Exam (Text + No Tools) | 22.0 | 23.6 | 23.1 |
| General Capabilities and Reasoning | AA-LCR | 80.0 | 68.3 | 73.3 |
| General Capabilities and Reasoning | Beam 128K | 65.1 | 58.2 | 63.0 |
Architecture
Muse Glimmer เป็นโมเดลแบบ dense ขนาด 30B พารามิเตอร์ ซึ่งมีโครงสร้างหลักประกอบด้วยตัวเข้ารหัสรูปแบบ ViT ขนาด 2B สำหรับประมวลผลภาพ (Perception Encoder) และตัวถอดรหัสข้อความขนาด 28B พารามิเตอร์
นอกจากโมเดล VLM หลักแล้ว ยังมีตัวร่าง (drafter) สำหรับเทคนิค speculative decoding ที่สร้างขึ้นบน DFlash ซึ่งเป็นตัวเลือกเสริมที่ช่วยให้การสร้างข้อมูลรวดเร็วขึ้นอย่างมาก โดยแลกกับการใช้หน่วยความจำเพิ่มขึ้นเล็กน้อย ซึ่งทีมพัฒนาพบว่าตัวร่างนี้มีประสิทธิภาพสูงเป็นพิเศษในงานที่มีโครงสร้างชัดเจน เช่น การเขียนโค้ด
Text Decoder
ในส่วนของโมเดลภาษาใช้สถาปัตยกรรมที่น่าสนใจดังนี้:
- Hybrid attention: ใช้การสลับระหว่างเลเยอร์ sliding window (SWA) 3 เลเยอร์ ร่วมกับ RoPE และตามด้วยเลเยอร์ full attention ที่ใช้ NoPE (no positional embedding) ในเลเยอร์ที่ 4 โดยทำซ้ำรวม 52 เลเยอร์ เพื่อรักษาสมดุลระหว่างข้อมูลระยะสั้นและข้อมูลในระดับสากล
- Gated Grouped-Query Attention: ใช้ key-value head ร่วมกันในทุกๆ 16 query heads ช่วยลดหน่วยความจำ KV-cache ได้ถึง 16 เท่า ส่งผลให้ประมวลผลได้เร็วและประหยัดทรัพยากรขึ้น
- Q-K normalization with extra query scaling: มีการใช้ RMS normalization กับทุก query และ key head เพื่อความเสถียรของ attention logits พร้อมใช้ scale factor ควบคุมระดับเป้าหมายหลังการทำ normalization
Perception Encoder
Muse Glimmer ใช้ตัวเข้ารหัสภาพขนาดใหญ่ 2B เพียงตัวเดียวในการจัดการทั้งรูปภาพและวิดีโอ ซึ่งออกแบบตามสถาปัตยกรรม Perception Encoder ของ Meta โดยตรง ตัวเข้ารหัสจะแบ่งภาพออกเป็นส่วนๆ (patchify) และส่งผ่าน vision tower ที่ประกอบด้วย 50 เลเยอร์ ก่อนจะใช้เทคนิค pixel shuffle เพื่อเชื่อมต่อโทเค็นในเชิงพื้นที่ ซึ่งช่วยลดจำนวน image tokens ลง 4 เท่าโดยไม่สูญเสียข้อมูลสำคัญ
สำหรับการประมวลผลวิดีโอ โมเดลจะวิเคราะห์เฟรมต่อเฟรมโดยจำกัดไว้ที่ 96 เฟรมต่อคลิป (2 เฟรมต่อวินาที) และมีการประทับเวลา (time stamp) แทรกในข้อความเพื่อระบุตำแหน่งของเฟรม เช่น “Time: 0.0s <|video|>” ก่อนที่จะถูกส่งไปยังเลเยอร์โปรเจกต์สุดท้าย
Transformers
หากต้องการเริ่มใช้งาน Muse Glimmer ควรทำการอัปเกรดไลบรารีเป็นเวอร์ชันล่าสุดด้วยคำสั่ง:
pip install --upgrade transformers accelerateโมเดลรองรับ AutoModelForMultimodalLM และ AutoProcessor ทันที ทำให้สามารถโหลดใช้งานบน GPU ได้หลากหลายค่ายทั้ง NVIDIA (CUDA), AMD (ROCm) และ Intel (XPU):
from transformers import AutoProcessor, AutoModelForMultimodalLM
MODEL_ID = "meta-models/Muse-Glimmer-30B"
# Load model
processor = AutoProcessor.from_pretrained(MODEL_ID)
model = AutoModelForMultimodalLM.from_pretrained(
MODEL_ID,
dtype="auto",
device_map="auto"
)Text-only Inference
ตัวอย่างการเรียกใช้งานเพื่อตอบคำถามจากข้อความเพียงอย่างเดียว:
# Prompt
messages = [
{"role": "user", "content": "Write a short joke about saving RAM."},
]
# Process input
inputs = processor.apply_chat_template(
messages,
tokenize=True,
return_dict=True,
return_tensors="pt",
add_generation_prompt=True,
reasoning_strength="low"
).to(model.device)
input_len = inputs["input_ids"].shape[-1]
# Generate output
outputs = model.generate(**inputs, max_new_tokens=1024)
response = processor.decode(outputs[0][input_len:], skip_special_tokens=False)
print(response)Prompting the model with images and text
สำหรับการประมวลผลร่วมกับรูปภาพ จำเป็นต้องติดตั้ง torchvision เพิ่มเติม:
pip install torchvisionจากนั้นสามารถส่ง URL รูปภาพพร้อมคำถามเพื่อให้โมเดลวิเคราะห์ได้ทันที:
messages = [
{
"role": "user", "content": [
{"type": "image", "image": "https://huggingface.co/datasets/merve/vl-test-suite/resolve/main/SF.png"},
{"type": "text", "text": "What is shown in this image?"}
]
}
]
inputs = processor.apply_chat_template(
messages,
tokenize=True,
return_dict=True,
return_tensors="pt",
add_generation_prompt=True,
reasoning_strength="low"
).to(model.device)
input_len = inputs["input_ids"].shape[-1]
# Generate output
outputs = model.generate(**inputs, max_new_tokens=512)
response = processor.decode(outputs[0][input_len:], skip_special_tokens=False)
print(response)Multimodal tool calling
Muse Glimmer รองรับการเรียกใช้เครื่องมือ (Tool Calling) โดยอาศัยข้อมูลจากรูปภาพ เช่น การระบุชื่อเมืองจากภาพถ่ายเพื่อตรวจสอบสภาพอากาศผ่าน API:
import json
import re
tools = [
{
"type": "function",
"function": {
"name": "weather.get",
"description": "Get the current weather for a city.",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"},
},
"required": ["city"],
},
},
}
]
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": "https://huggingface.co/datasets/merve/vl-test-suite/resolve/main/SF.png"},
{"type": "text", "text": "I'm going to the city in this picture. What clothes should I wear?"},
],
},
]
inputs = processor.apply_chat_template(
messages,
tools=tools,
tokenize=True,
return_dict=True,
return_tensors="pt",
add_generation_prompt=True,
reasoning_strength="low"
).to(model.device)
input_len = inputs["input_ids"].shape[-1]
outputs = model.generate(**inputs, max_new_tokens=128)
response = processor.decode(outputs[0][input_len:], skip_special_tokens=False)
parsed = processor.tokenizer.parse_response(response)Object Detection
โมเดลสามารถระบุพิกัดของวัตถุในภาพ (Object Detection) และส่งค่ากลับมาในรูปแบบ JSON ได้แม่นยำ:
import json
messages = [{
"role": "user",
"content": [
{"type": "image", "image": "https://huggingface.co/datasets/merve/vl-test-suite/resolve/main/SF.png"},
{
"type": "text",
"text": (
"Detect the bridge. Return only the detection in the model's "
"native object-detection format, with no explanation."
),
},
],
}]
inputs = processor.apply_chat_template(
messages,
tokenize=True,
return_dict=True,
return_tensors="pt",
add_generation_prompt=True,
).to(model.device)
input_len = inputs["input_ids"].shape[-1]
outputs = model.generate(**inputs, max_new_tokens=128)
response = processor.decode(outputs[0][input_len:], skip_special_tokens=False)
detections = json.loads(response.removesuffix("<|eot|>"))
print(detections)
# [{"x_min": 0, "y_min": 390, "x_max": 520, "y_max": 603}]Video Inference
สำหรับการวิเคราะห์วิดีโอ (ไม่มีเสียง) แนะนำให้ติดตั้ง torchcodec เพื่อประสิทธิภาพสูงสุด:
pip install torchcodecmessages = [
{"role": "system", "content": "You are a helpful assistant."},
{
"role": "user",
"content": [
{"type": "video", "video": "https://huggingface.co/datasets/merve/vl-test-suite/resolve/main/IMG_8137.mp4"},
{"type": "text", "text": "Describe what happens in this video."},
],
},
]
inputs = processor.apply_chat_template(
messages,
tokenize=True,
return_dict=True,
return_tensors="pt",
add_generation_prompt=True,
reasoning_strength="low",
processor_kwargs={"num_frames": 96},
).to(model.device)
input_len = inputs["input_ids"].shape[-1]
outputs = model.generate(**inputs, max_new_tokens=1024)
response = processor.decode(
outputs[0, input_len:],
skip_special_tokens=False,
)
parsed = processor.parse_response(
response,
prefix=inputs["input_ids"],
)
print(parsed)Llama.cpp
Muse Glimmer รองรับ llama.cpp ทันทีตั้งแต่วันแรก โดย Meta ได้เผยแพร่โมเดลแบบ Quantized (GGUF) ไว้ใน repo นี้ ซึ่งช่วยให้ผู้ใช้สามารถรัน AI บนเครื่องส่วนตัวได้ผ่าน WebUI หรือ CLI โดยใช้คำสั่งติดตั้ง:
curl -LsSf https://llama.app/install.sh | sh
llama serve meta-models/Muse-Glimmer-30B-GGUFSpeculative Decoding
การใช้เทคนิค DFlash ในการทำ speculative decoding ช่วยให้ Muse Glimmer สร้างข้อมูลได้รวดเร็วยิ่งขึ้น โดยเฉพาะในงานเขียนโค้ดที่มักมีรูปแบบซ้ำเดิม คุณสามารถเปรียบเทียบความเร็วได้จากวิดีโอเดโมใน llama.cpp webui ซึ่งฝั่งที่มี DFlash (ซ้าย) จะประมวลผลเร็วกว่าการสร้างข้อมูลแบบปกติ (ขวา) อย่างชัดเจน
[
](https://huggingface.co/merve/smol-vision/resolve/main/llama.cpp-spec.mp4)
ตัวอย่างการเปิดใช้งาน Speculative Decoding ใน transformers และ llama.cpp:
# transformers
out = target.generate(**inputs, assistant_model=assistant, speculation_type="dflash", max_new_tokens=64, do_sample=True)# llama.cpp server
llama serve -hf meta-models/Muse-Glimmer-30B-GGUF --spec-type draft-dflash --spec-draft-n-max 15Support for Muse Glimmer vLLM with transformers backend
สำหรับการใช้งานในระดับโปรดักชัน Muse Glimmer รองรับการให้บริการผ่าน vLLM โดยใช้ transformers backend ซึ่งช่วยให้สามารถทำ Tensor Parallelism ข้ามหลาย GPU ได้:
vllm serve meta-models/Muse-Glimmer-30B --model-impl transformers --tensor-parallel-size 4Fine-tuning with TRL
ผู้ใช้สามารถปรับแต่ง (Fine-tune) โมเดล Muse Glimmer ได้หลายวิธีผ่านไลบรารี TRL ตั้งแต่ SFT ไปจนถึง Async GRPO โดยมีข้อกำหนดด้านฮาร์ดแวร์เบื้องต้น เช่น การใช้ LoRA SFT บน GPU VRAM 80GB (เช่น H100) เพียงตัวเดียว
| ปริมาณงาน | ขั้นต่ำที่นำไปใช้จริงได้ |
|---|---|
| การอนุมาน / การประเมินผล, BF16 | 1×80 GB H100 |
| LoRA SFT, BF16 | 1×80 GB H100, microbatch 1 + checkpointing |
| Full SFT, BF16 | 8×80 GB H100 พร้อม FSDP/ZeRO-3 |
| LoRA GRPO, Transformers rollouts | 1×80 GB H100, แต่ช้า/ตึงตัว |
| LoRA GRPO, separate vLLM rollout server | 8×H100: 4 rollout + 4 training |
| Full-finetune GRPO | ปกติแล้ว 8 GPUs ไม่เพียงพอ |
นอกจากนี้ยังมีตัวอย่างการปรับแต่งบน MolmoWeb dataset เพื่อสอนให้โมเดลสร้างผลลัพธ์แบบมีโครงสร้าง และการทดลองใช้ AsyncGRPO กับ OpenCode เพื่อเพิ่มทักษะด้านการเขียนโปรแกรม
Demos
ความโดดเด่นของ Muse Glimmer คือความสามารถในฐานะ Local Assistant ที่เขียนโค้ดได้เก่งมาก ซึ่งหมายความว่ามันสามารถทำ "Self-Quantization" หรือติดตั้งตัวเองไปยังระบบต่างๆ ได้ด้วยตนเอง
Connect OpenClaw to Muse Glimmer
คุณสามารถเชื่อมต่อ Muse Glimmer เข้ากับ OpenClaw โดยกำหนดค่าใน ~/.openclaw/openclaw.json เพื่อใช้เป็น AI Agent หลักประจำเครื่องได้ทันที
{
"models": {
"mode": "merge",
"providers": {
"muse": {
"baseUrl": "https://YOUR-ENDPOINT.endpoints.huggingface.cloud/v1",
"apiKey": {
"source": "env",
"provider": "default",
"id": "HF_TOKEN"
},
"api": "openai-completions",
"authHeader": true,
"models": [{
"id": "meta-models/Muse-Glimmer-30B",
"name": "Muse Glimmer",
"reasoning": false,
"input": ["text", "image"],
"contextWindow": 32768,
"maxTokens": 8192
}]
}
}
},
"agents": {
"defaults": {
"model": { "primary": "muse/meta-models/Muse-Glimmer-30B" }
}
}
}เฮ้ Muse Glimmer ช่วยทำ quantization ตัวเองหน่อย
เมื่อเชื่อมต่อกับ Hugging Face MCP และอัปเดตไฟล์ AGENTS.md โมเดลจะสามารถค้นหาและสร้างเวอร์ชัน GGUF ของตัวมันเองบนเครื่องเพื่อลดการใช้ทรัพยากรได้โดยอัตโนมัติ ตามเดโมด้านล่างนี้:
เฮ้ Muse Glimmer ช่วยติดตั้งตัวเองหน่อย
ในทางกลับกัน Glimmer ยังสามารถช่วยติดตั้งตัวเองบน Hugging Face Inference Endpoints เพื่อใช้งานบนฮาร์ดแวร์ที่แรงขึ้นได้ โดยตัวเอเจนต์จะจัดการตรวจสอบ revision, การตั้งค่า vLLM ไปจนถึงการทดสอบความพร้อมของระบบด้วยตัวเอง
เฮ้ Muse Glimmer ช่วยเพิ่มประสิทธิภาพให้ตัวเองหน่อย
ท้ายที่สุด Muse Glimmer ยังสามารถทำ Recursive Self-Improvement (RSI) แบบง่ายๆ โดยการทดสอบ benchmark บนเครื่อง (เช่น Nvidia H100) เพื่อปรับจูนเอนจินการอนุมานของมันเองให้ได้อัตราการประมวลผล (throughput) สูงสุด และสรุปผลออกมาเป็นภาพ GIF การทดลองตามลำดับเวลา
เฮ้ Muse Glimmer ช่วยค้นหาข้อมูลบน Hub หน่อย
ด้วยการเชื่อมต่อกับ Hugging Face MCP โมเดลสามารถทำหน้าที่เป็นวิจัยเอเจนต์ส่วนตัวที่สามารถค้นหา ตรวจสอบ และสรุปข้อมูลจากโมเดล ชุดข้อมูล หรือเอกสารวิชาการบน Hub ได้อย่างครบถ้วน
บทสรุป
Muse Glimmer พร้อมให้คุณใช้งานแล้วบน Hugging Face Hub ร่วมสัมผัสประสบการณ์โมเดล Muse Glimmer สำหรับโปรเจกต์และการเขียนโค้ดในเครื่องของคุณได้ตั้งแต่วันนี้!
ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
