콘텐츠로 이동

Apple Silicon에서의 Qwen-AgentWorld-35B: 에이전트 루프에 한 자리를 내줄 만한가?

로컬 모델을 돌리고 자율 에이전트를 만드는 사람들을 위한 평가 브리프. 정체: 언어 세계 모델(language world-model) — 어떤 행동 후 터미널이 무엇을 출력할지 예측할 뿐, 직접 행동하지는 않는다. 실행 환경: MLX, 또는 한 줄짜리 메타데이터 오버라이드를 적용한 llama.cpp/Metal(순수 GGUF는 그것 없이는 로드되지 않는다). 공식 MLX 빌드는 없다. 우리가 측정한 단 하나의 차별점: 일반 모델이라면 흔들릴 멀티스텝 시퀀스 전반에서 시뮬레이터 역할을 유지한다. 그 대가: 심각한 과잉 추론 — 제한 가능하다. 수치는 소표본이며 방향성을 가리킬 뿐, 각각 표본 크기가 함께 표기되어 있다. 저자 벤치마크 수치는 주장(claim)으로 표시했다.

M5 Max, MLX 4-bit에서 asiai로, 한 번에 엔진 하나씩, 2026-06에 측정. 정정은 github.com/druide67/asiai로 환영한다.

사용할 때 / 사용하지 말아야 할 때

이렇게 쓰자: 저렴한 에이전트 롤아웃을 위한 환경 시뮬레이터, 도구/터미널 출력을 위한 목(mock), 또는 LLM-as-judge를 대체하는 궤적 검증기로 (검증기 활용 사례는 여기서 미검증 — §6 참고). 어시스턴트로 프롬프팅하면 평범한 35B 일반 모델로서도 충분히 버틴다.

이렇게 쓰지 말자: 일상 어시스턴트로. 저자들은 채팅/코드 사용 경로를 전혀 제공하지 않으며, 가파른 과잉 추론 세금을 동반한다(제한 가능, §5 참고). 그리고 "GPT-5.4를 이긴다"는 397B 변종을 기다리지 말 것 — 다운로드가 불가능하다 (Apache-2.0 발표에도 불구하고 HF가 401을 반환한다).

1. 실행 가능성 & 재현(먼저 읽을 것)

당신의 머신에서 돌아가지 않으면 나머지는 의미가 없다. 솔직한 결론:

  • 오늘 작동하는 경로는 두 가지이며, 둘 다 즉시 쓸 수 있는(turnkey) 것은 아니다. 공식 MLX 빌드는 없다 — 우리는 커뮤니티 MLX 변환본을 썼고, 그것이 우리가 측정한 경로다. GGUF 역시 로드된다(llama.cpp / Metal에서). 다만 즉시는 아니다: 그대로는 missing tensor 'blk.40.attn_norm.weight'로 실패한다(build 9780, 2026-06-25 재확인). 원인은 변환기의 off-by-one이며 가중치 누락이 아니다 — GGUF는 block_count=41(인덱스 40에 MTP 레이어가 하나 추가됨)을 선언하면서도 실제 레이어는 0–39의 40개만 담고 있어, llama.cpp가 존재한 적 없는 레이어를 요청하게 된다. 로드 시 메타데이터를 오버라이드하면 로드되고 생성도 한다: --override-kv qwen35moe.block_count=int:40 --override-kv qwen35moe.nextn_predict_layers=int:0. Ollama와 LM Studio는 llama.cpp를 감싸지만 --override-kv를 안정적으로 노출하지 않으므로, 이 둘은 미검증으로 취급한다. 공식 서버 배포는 vLLM / SGLang / Transformers다.
  • 로드되는 양자화본이 올바른 긴 사고 사슬(chain-of-thought)을 내놓는다는 증거는 아니다 — 로드만이 아니라 생성을 검증하라.

재현 설정:

저장소(Hugging Face) 크기
AgentWorld(전용 모델) jedisct1/Qwen-AgentWorld-35B-A3B-oQ4-MLX ~20 GB
Qwen3.6(일반 모델 기준선) mlx-community/Qwen3.6-35B-A3B-4bit ~19 GB

mlx-lm 0.31.3 · M5 Max 128 GB · 샘플링 temp 0.6 / top-p 0.95 / top-k 20 · 한 번에 모델 하나만 로드.

토큰 예산은 일급(first-class) 설정 변수다

AgentWorld는 매우 긴 추론 트레이스를 내놓는다. max_tokens=4096에서는 출력이 답이 나오기 전에 잘려서 거짓 실패로 채점된다. 일부 사소한 경우조차 완료하려면 8192–12288 추론 토큰이 필요하다. 낮은 예산으로 재실행하는 사람은 AgentWorld에 대해 더 나빠 보이는 수치를 얻게 되는데, 이는 하니스(harness) 아티팩트일 뿐 모델 오류가 아니다.

RAM / 컨텍스트 적합도: 가중치 ~20 GB; 128 GB Mac에서 64K 컨텍스트 시 최대 ~27 GB; KV 캐시는 4K에서 64K로 갈 때 ~5 GB만 늘어난다(공유 하이브리드 아키텍처의 특성). 64 GB Mac은 컨텍스트를 줄이면 여유롭게 돌린다; 36–48 GB는 빠듯하지만 4K–32K에서 쓸 만하다.

2. 정체, 그리고 저자들이 어떻게 자리매김하는가

언어 세계 모델: 상태와 행동(타입이 정해진 명령)이 주어지면, 긴 사고 사슬을 통해 다음 관찰(터미널이 반환하는 것)을 예측한다. 일곱 개의 디지털 도메인(MCP, Search, Terminal, SWE, Android, Web, OS). 환경 안에서 행동하도록이 아니라 환경 그 자체가 되도록 학습되었다.

저자들은 이것을 어시스턴트가 아니라 세계 모델로 출시한다: 시스템 프롬프트는 시뮬레이션 프롬프트이고, 문서화된 채팅/코드 사용 경로가 없다. 따라서 어시스턴트로 쓰면 답을 하는 대신 콘솔 출력을 시뮬레이션하지 않을까 하는 우려는 정당하다. 우리의 테스트는 이를 미묘하게 보정한다(§4): 표준 어시스턴트 프롬프트를 쓰면 일반 모델과 대등하게 코딩하고 추론한다. 이 동작은 잃어버린 능력이 아니라 프롬프트가 결정한다.

세계 모델이라는 단어에 관하여

커뮤니티에서 가장 흔한 반론은 용어상의 것이다: 이것은 다음 텍스트 상태 예측을 수행하는 자기회귀(autoregressive) LLM이지, LeCun이 말한 의미의 비자기회귀 / 에너지 기반 세계 모델이 아니다. 이름이 모델이 충족한다고 주장하지 않는 기대를 심어주기 전에 알아둘 만하다.

검증된 사양(HF 모델 카드, 공개됨):

파라미터 34.66 B 총합 · ~3 B 활성(MoE)
아키텍처 qwen3_5_moe, 하이브리드 Attention + Gated-DeltaNet
전문가(Experts) 256(8개 라우팅 + 1개 공유)
컨텍스트 최대 256K 토큰
라이선스 Apache-2.0(BF16에서 ~65 GB)

3. 차별점: 멀티스텝 역할 충실도

이것이 하나의 새롭고 옹호 가능한 결과이며 — 정확히 저자들 자신의 벤치마크가 결코 측정하지 않는 부분이다(그것은 단일 스텝 전용이다). 테스트: 상태를 쌓는 명령을 연쇄시키고(디렉터리 생성, 진입, 파일 작성, 다시 읽기) 각 스텝마다 모델이 정확한 터미널 출력을 예측하게 한다.

이를 신뢰성 속성 — 형식/역할 규율 — 으로 보라. 이해력 우위가 아니다. Qwen3.6은 터미널을 아주 잘 이해한다(작업 디렉터리를 추적하고, 정확한 줄 수를 센다); 차이는 그것이 때때로 역할을 벗어난다는 점이다.

테스트 AgentWorld Qwen3.6 비고
그럴듯한 출력(ls, git, ps) — N=3 9/9 9/9 동등
시퀀스 A — 6 스텝, 고정(anchored)(4회 실행) 24 스텝 중 역할 이탈 0회 간헐적 역할 유지
시퀀스 B — 8 스텝, 고정(3회 실행) 24 스텝 중 역할 이탈 0회 간헐적 역할 유지
폐루프(자기 입력 공급) — N=2 6/6 ×2 간헐적 역할 유지

정직한 해석: AgentWorld는 두 시퀀스와 네 번의 실행에 걸쳐 관측된 48 스텝 중 0회 역할을 벗어났다. Qwen3.6은 간헐적으로 역할을 벗어난다 — 그 고정 실행은 반복에 따라 0/6 → 6/6으로 요동쳤으므로(N=2), 이것은 비율이 아니라 방향성이다. 실패할 때 그것은 출력을 시뮬레이션하는 대신 행동 JSON을 그대로 되뱉는다:

$ cat log.txt              # log.txt was just deleted → env must return an error

AgentWorld (in role):
  root@host:/home/user# cat log.txt
  cat: log.txt: No such file or directory
  root@host:/home/user#

Qwen3.6 (out of role, ~1 run in 2 here):
  [{"keystrokes": "cat log.txt\n", "duration": 0.1}]    # echoes the input command
                                                        # instead of the output

올바른 답은 흔히 Qwen3.6의 출력 안에 들어 있다 — 오해가 아니라 형식/역할 실패다. 각 스텝이 다음 스텝에서 기계 판독 가능해야 하는 루프에서는 단 한 번의 역할 이탈이 사슬 전체를 오염시키며, 바로 그것을 AgentWorld가 피한다.

측정상의 주의 사항(공개)

명령 에코 줄에 대한 바이트 정확(byte-exact) 채점은 엄격하며, 우리의 시퀀스-D 대 시퀀스-E 픽스처는 cd 관찰이 에코를 포함하는지에 대해 일관되지 않았다 — 따라서 역할 충실도 지표에는 알려진 결함이 하나 있다. 방향성은 네 파일에 걸쳐 견고하지만, 정확한 격차는 그렇지 않다.

4. 일반 능력: 베이스는 저하되지 않았다

소유자의 질문(세계 모델 파인튜닝이 베이스 LLM을 망가뜨렸는가?)은 헤드라인이 아니라 한 개의 절제된 섹션을 차지한다. 짧은 답: 아니다 — N=3, 방향성.

과제 AgentWorld Qwen3.6
추론(검증 가능한 퍼즐 5개, strawberry-'r' 함정 포함) 15/15 15/15 동등
코드 생성(함수 4개, 유닛 테스트로 실행 검증) 12/12 12/12 동등

(시뮬레이터 프롬프트가 아니라) 어시스턴트 프롬프트로 실행하면, AgentWorld는 올바른 코드를 작성하고 올바르게 추론하며, 일반 모델과 대등하다. "탈선"하지 않는다 — 과잉 추론을 하긴 하지만 유능한 일반 모델이다.

5. 대가: 과잉 추론 세금 — 그리고 해법

이것을 각주에서 채택 게이트로 격상하라. 스텝별 검증기로 쓸 경우 이것이 결정적인 수치이기 때문이다 — 다만 해결책이 있다.

결정론적 터미널 케이스에서 측정(케이스당 N=2):

모드 AgentWorld Qwen3.6
추론 켜짐(기본 시뮬레이터 모드) 중앙값 1140 tok/pred, 최대 2558 · ~14 s · 8/8 정확 504 tok · ~4.5 s · 8/8
추론 꺼짐(enable_thinking=false) 45 tok/pred · ~0.5 s · 8/8 정확 45 tok · ~0.4 s · 8/8

AgentWorld는 일반 모델보다 ~2.3배 더 많은 토큰을 내놓으며, 사소한 cd ; pwd에서도 그 추론이 3회 중 2회 8192 토큰을 넘어갔다. 최종 답은 올바르다 — 이것은 스텝당 지연/연산 세금이지 정확성 결함이 아니다.

해법: 제한하라

시뮬레이터 역할에 대해 추론을 끄면 결정론적 케이스에서 바이트 정확 충실도 손실 없이(여전히 8/8) 토큰이 ~25배, 지연이 ~28배 줄어든다. 스텝별 검증기나 목(mock)으로 쓸 때는 enable_thinking=falsemax_tokens 상한을 두고 실행하라. 주의: 이것은 결정론적 케이스에서만 검증되었다 — 추론이 진정으로 도움이 되는 출력(모호한 상태, 복잡한 내용)에서는 추론 끄기가 충실도를 희생시킬 수 있다. 여기서는 미검증이다.

6. 성능(단일 실행, 참고용 ★)

같은 패밀리, 같은 아키텍처이므로 프로파일이 가깝다. 추세로 읽으라.

측정 항목 AgentWorld Qwen3.6 해석
첫 토큰까지 시간 ★ ~360 ms ~510 ms AW 우위
디코드 처리량 ★ ~110 t/s ~117 t/s ~7% 느림
64K 컨텍스트에서 디코드 ~132 t/s ~160 t/s ~73% 유지
메모리 4K → 64K +5 GB +5 GB 하이브리드 아키텍처, AW 고유 아님
컨텍스트 캐시(13K 토큰 접두부 재사용) ~×21 ~×23 MLX 속성, 모델 아님

~7%의 디코드 격차는 십중팔구 4-bit 레시피(AgentWorld는 자신의 선형 어텐션 투영을 6-bit로 보호하고, Qwen3.6은 MoE 게이트를 8-bit로 보호한다)와, 동일하지 않은 출력 길이가 겹친 결과다 — 모델의 불리함이 아니라 교란 변수(confound)다. 프롬프트 캐싱은 두 모델에서 동일한 mlx-lm 기능이며, 그 ~20배 이득은 캐시된 접두부 길이에 비례해 늘어날 뿐 AgentWorld의 속성이 아니다.

미검증이지만 가치가 큰 항목(커뮤니티의 2순위 활용 사례): 다음 상태 예측을 궤적 검증기로 사용하기 — 실제 환경이 예측에서 벗어나면 그것은 경로를 이탈한 에이전트를 가리킨다. 우리는 그것의 거짓 양성 / 거짓 음성 거동을 측정하지 않았다. 열린 질문이다.

7. 저자들의 주장

저자 벤치마크 — 측정이 아니라 주장

자체 벤치마크(AgentWorldBench)에서 AgentWorld-35B는 56.4를 기록하며, Claude Sonnet 4.6(56.0)과 동등하다. 그들이 전문화 덕으로 돌리는 향상은 베이스 Qwen3.5에 대한 어블레이션(self-report, Qwen3.6과의 정면 비교가 아님)으로: 도구 사용(MCP) +21.9, 소프트웨어 엔지니어링 +18.1, 터미널 +10.2. 논지: 세계 모델 전문화가 세대적 개선을 이긴다 — 일반 모델 Qwen3.6은 시뮬레이션 충실도에서 베이스보다 낮은 점수(42.9 대 47.7)를 받는데, 상태를 예측하도록이 아니라 행동하도록 튜닝되었기 때문이다.

이 수치들은 단일 출처의 사내 벤치마크에서 LLM 심판이 채점한 것으로, 출판 시점에 48시간이 채 안 된 모델에 대한 것이다 — 제3자 재현 없음. 그들 표의 최상위는 한 심판 아래 ~2점 안에 들어 있으므로, 최상위권 순위는 노이즈 범위 안이다; 397B의 "GPT-5.4를 이긴다" 마진은 +0.46(노이즈)이며, 그 변종은 Apache-2.0 발표에도 불구하고 비공개다(HF 401).

우리의 멀티스텝 결과(§3)는 그들의 단일 스텝 벤치와는 다른, 재현되지 않은 지표에 대한 것이다; 같은 방향을 가리키지만(Qwen3.6이 시뮬레이션에서 더 약함), 그것은 논지 수렴이지 확증이 아니다.

8. 나라면 어떻게 연결할까

  • 프롬프트: 환경으로 실행하려면 공식 터미널 시뮬레이션 시스템 프롬프트를 사용하라; 일반 출력을 원할 때만 평범한 어시스턴트 프롬프트를 사용하라. 두 모드는 서로 다른 일이다.
  • 비용 통제: 시뮬레이터 역할에는 enable_thinking=false + max_tokens 상한(§5). 추론을 켤 때는 스텝당 ~1000–2500 토큰을 예산으로 잡으라.
  • 폐루프: 모델 자신의 예측을 다시 입력하되, 가능하면 실제 환경에 고정(anchor)하라; 형식 엄격성이 중요해질 것을 예상하라(에코 줄).
  • 풋프린트: 가중치 ~20 GB, 64K에서 최대 ~27 GB.
  • 자체 제작 대 채택 질문: "결코 역할을 벗어나지 않음"은 세계 모델 학습에 본질적인 것인가, 아니면 일반 모델 + 문법 제약 디코딩으로 격차의 대부분을 메울 수 있는가? 우리는 제약된 일반 모델 대안을 테스트하지 않았다 — 전용 모델을 채택하기 전에 저울질하라.

이 벤치의 한계

  • 소표본(N=1–5, 표준편차 없음). 모든 수치적 격차는 통계적 결과가 아니라 추세다.
  • 두 핵심 결과에 대해 단일 도메인(터미널 시퀀스). "루프 안에서의" 역할 유지는 다른 곳에서 확인이 남아 있다.
  • 양자화 미분리: 두 4-bit 레시피가 약간 다르다; 디코드 격차는 그것과 연관될 가능성이 높지만 여기서 입증되지 않았다.
  • 아직 미검증: 무작위/복잡 시나리오, 두 번째 도메인, 파인튜닝의 정확한 효과를 분리하기 위한 베이스 Qwen3.5와의 3자 비교, 그리고 궤적 검증기 활용 사례.
  • 35B만 공개되어 있다. 397B 변종은 다운로드할 수 없다.

출처: arXiv 2606.24597 · Qwen-AgentWorld-35B-A3B(Apache-2.0). 결과는 출판 전 편향에 대해 내부적으로 교차 검토됨. ★ = 단일, 참고용 측정.