<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>choonsik_mom</title>
        <link>https://velog.io/</link>
        <description>AI에 대체되지 않는 인재가 되자</description>
        <lastBuildDate>Sun, 26 Apr 2026 13:34:02 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>choonsik_mom</title>
            <url>https://velog.velcdn.com/images/choonsik_mom/profile/fd69b914-bef2-43d9-9300-1308d395ac41/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. choonsik_mom. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/choonsik_mom" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[VLA(Vision-Language-Action) 모델 발전사에 대하여]]></title>
            <link>https://velog.io/@choonsik_mom/VLAVision-Language-Action-%EB%AA%A8%EB%8D%B8-%EB%B0%9C%EC%A0%84%EC%82%AC</link>
            <guid>https://velog.io/@choonsik_mom/VLAVision-Language-Action-%EB%AA%A8%EB%8D%B8-%EB%B0%9C%EC%A0%84%EC%82%AC</guid>
            <pubDate>Sun, 26 Apr 2026 13:34:02 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/37038819-f8ed-4522-800a-3235224893b2/image.png" alt=""></p>
<h2 id="intro-physical-ai의-패러다임-전환과-vla의-부상">Intro: Physical AI의 패러다임 전환과 VLA의 부상</h2>
<p>로봇 제어 기술의 역사는 좁은 범위의 특정 작업을 수행하기 위해 고안된 하드코딩 기반 제어기에서 시작하여, 2020년대 중반에 이르러 Physical AI의 구현을 목표로 하는 파운데이션 모델, Vision-Language-Action(VLA) 시대로 급격한 패러다임 전환을 맞이했다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4d47f138-7cbe-4eca-bc65-6a0e7b563612/image.png" alt=""></p>
<p>VLA 모델은 시각적 입력과 고차원 센서 모터 상태(Proprioceptive state)를 자연어 명령과 함께 융합하여 로봇의 관절 및 말단 장치(End-effector)를 직접 제어하는 저수준의 모터 명령(Low-level motor command)을 출력하는 구조를 갖는다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/8c4c1296-3135-4159-99f8-e96c33282aab/image.png" alt=""></p>
<p>전통적인 로봇 공학이 직면했던 &#39;<strong>모라벡의 역설(Moravec&#39;s paradox)</strong>&#39;을 극복하기 위해 제안된 이 아키텍처는, LLM이 텍스트 공간에서 보여주었던 경이로운 일반화 능력을 물리적 세계로 확장하려는 시도에서 출발했다.</p>
<p>2026년 현재, VLA 모델의 아키텍처 환경은 초기 Autoregressive(자기회귀) 기반의 <strong>Discretization</strong>(이산화) 모델에서 벗어나, Continuous Generative Action Modeling(연속적 행동 모델링) 기법인 <strong>Flow Matching</strong>으로 그 중심축이 이동했다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/dd93ead6-0fc5-40c7-8481-c39abc06ae3c/image.png" alt=""></p>
<p>더 나아가 주요 빅테크 및 로보틱스 선도 기업들은 모델의 인지 구조를 설계함에 있어, Daniel Kahneman의 인지 이론(Thinking, Fast and Slow, 2011)에 기반한 <strong>이중 시스템(System 1 / System 2) 토폴로지</strong>를 채택하거나, 이를 정면으로 반박하며 인지와 행동을 단일 스트림으로 융합하는 <strong>조화 추론(Harmonic Reasoning)</strong> 아키텍처를 독자적으로 구축하는 등 철학적·방법론적 분기점을 형성하고 있다.</p>
<h3 id="vla-발전-궤적-따라가기">VLA 발전 궤적 따라가기</h3>
<p>본 글에서 추적하는 VLA의 발전 궤적은 다음 네 단계로 요약된다.</p>
<blockquote>
</blockquote>
<ol>
<li><strong>Discrete action token + Autoregressive</strong> — RT-1, RT-2, RT-X, OpenVLA 등 이산화 기반 모델군 (2022–2023) </li>
<li><strong>Diffusion / Flow matching action head</strong> — Diffusion Policy, Octo, RDT-1B, π₀, CogACT 등 (2024)</li>
<li><strong>System 1 / System 2 분리, FAST 토크나이저, Knowledge Insulation</strong> — GR00T N1, Helix, π₀.₅, Gemini Robotics, OpenVLA-OFT 등 (2025 상반기)</li>
<li><strong>RL 기반 자기개선, Embodied Reasoning, On-device, World-model 결합</strong> — π*₀.₆, Gemini Robotics 1.5/-ER 1.6, Helix 02, GR00T N1.7 등 (2025 하반기–2026)</li>
</ol>
<p>본문에서는 이 기술의 출발점인 RT 시리즈와 OpenVLA의 출현을 먼저 고찰하고, 이후 2024–2026년의 최신 VLA 모델 시리즈·버전별 구조적 차이점, 설계 철학, 장단점을 순차적으로 분석한다.</p>
<hr>
<h2 id="1-vla의-태동과-이산화discretization의-한계-rt-시리즈와-openvla">1. VLA의 태동과 이산화(Discretization)의 한계: RT 시리즈와 OpenVLA</h2>
<p>범용 로봇 정책(Generalist Robot Policy)의 초기 형태는 거대 언어 모델(LLM)과 비전-언어 모델(VLM)의 트랜스포머 아키텍처를 로봇 제어에 이식하는 시도에서 비롯됐다. 이는 연속적인 물리적 공간을 언어와 유사한 이산적인 토큰으로 변환하는 접근법을 취했다.</p>
<h3 id="11-rt-1-및-rt-x-로봇-제어의-언어-모델화">1.1 RT-1 및 RT-X: 로봇 제어의 언어 모델화</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/04070fdb-dd42-4c20-91d6-b1acc27cb6c7/image.png" alt=""></p>
<ul>
<li><p><strong>아키텍처</strong>
Google DeepMind가 발표한 <strong>Robotics Transformer 1 (RT-1)</strong>은 자기회귀 기반 VLA의 실현 가능성을 입증한 기념비적인 아키텍처다. RT-1은 35M개 파라미터로 구성된 효율적인 트랜스포머 아키텍처를 채택하고, 15프레임의 이미지 히스토리와 자연어 명령을 입력으로 한다.</p>
<p>각 이미지는 ImageNet으로 사전 학습된 <strong>EfficientNet-B3</strong> 모델을 통과하여 81개의 visual token으로 평탄화(Flattening)되며, 자연어 지시문은 <strong>Universal Sentence Encoder(USE)</strong>를 통해 임베딩된다. </p>
<p>텍스트 임베딩은 <strong>FiLM</strong> 레이어를 통해 이미지 특징을 조건화(텍스트 지시에 따라 이미지 특징 해석 방식을 동적으로 조정)하고, 추론 속도를 높이기 위해 어텐션 기반 토큰 압축 모듈인 <strong>TokenLearner</strong>를 도입하여 visual token 수를 동적으로 축소함으로써 2.4배의 추론 가속을 달성했다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/8cf7129c-a8a3-43fe-b34e-e9555bfa5520/image.png" alt=""></p>
<ul>
<li><p><strong>Action Tokenization</strong>
RT-1의 핵심 설계 철학은 &#39;<strong>행동의 토큰화</strong>&#39;에 있다. </p>
<p>로봇의 연속적인 모터 명령(팔의 움직임 7자유도, 베이스 움직임 3자유도, 모드 전환 스위치 등)은 각 차원별로 256개의 동일한 크기를 가진 <strong>이산적인 구간(Bin)으로 균등 분할</strong>된다. </p>
<p>예를 들어 −1.0에서 1.0 사이의 연속적인 동작 값이 주어졌을 때, 이를 255개의 구간으로 나누어 약 0.00784 너비의 토큰으로 변환하는 식이다. 모델은 Causal masking이 적용된 decoder를 통해 Categorical cross-entropy objective function을 사용하여 이 action token을 예측한다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/23e80432-70cb-4f1c-832d-103775bd4e1c/image.png" alt=""></p>
<ul>
<li><p><strong>RT-X 및 Cross-Embodiment</strong>
이러한 패러다임은 RT-X 및 RT-2로 이어지며 교차 신체성(Cross-Embodiment) 획득에 크게 기여했다. 전 세계 33개 연구실과 협력하여 22종의 서로 다른 로봇으로부터 52만 7천 개의 궤적을 수집한 <strong>Open X-Embodiment(OXE) 데이터셋</strong>을 바탕으로 훈련된 RT-1-X는 단일 모델이 여러 로봇 형태를 제어할 수 있음을 입증했으며, 개별 로봇 전용 정책보다 평균 50% 향상된 성공률을 보였다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/6fe29d36-1c6f-46cc-b996-ae1537fb1da6/image.png" alt=""></p>
<p>RT-2는 VLM(ViT 및 UL2 백본)을 로봇 데이터에 미세조정하여 토큰화된 로봇 행동을 일반 텍스트 토큰과 동일한 공간에서 출력하도록 규모를 확장했다. 
PaLI-X-55B 기반의 RT-2는 추상 개념을 처리하는 Emergent Reasoning에서 RT-1 대비 3배 수준의 일반화 성능 향상을 달성했다.</p>
</li>
</ul>
<ul>
<li><p><strong>RT 시리즈가 갖는 계보적 의미</strong>
RT-1은 엄밀히 말해 VLA가 아니다. Internet-scale VLM을 사용하지 않고 ImageNet-pretrained vision encoder + USE embedding만 사용한다는 점에서 RT-2와 본질적으로 갈라지는 지점이다. </p>
<p>그러나 (1) 7-DoF action을 256 bin으로 <strong>이산화</strong>하고, (2) 이를 <strong>시퀀스 모델링</strong>으로 푸는 방법은 이후 모든 VLA의 초석이 됐다는 점에서 역사적 의의가 크다. 추론 속도가 3Hz에 불과하다는 점도 실시간성과 모델 용량 사이의 트레이드오프를 처음으로 명시적으로 다룬 사례로 기억된다.</p>
</li>
</ul>
<h3 id="12-rt-h-action-hierarchies를-통한-이중-구조">1.2 RT-H: Action Hierarchies를 통한 이중 구조</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e246edf2-7152-4e54-a31f-3074bfbf5b92/image.png" alt=""></p>
<p>2024년 발표된 <strong>RT-H(Action Hierarchies via Language)</strong>는 단순 이산화 토큰화에서 한 발 더 나아가, <strong>high-level task→ language motion→ low-level action</strong>이라는 위계 구조를 도입했다. </p>
<p>PaLI-X 기반 단일 모델로 두 단계를 모두 출력(RT-H-Joint)하며, Diverse+Kitchen 데이터에서 RT-2 대비 +15% 평균 성공률, action MSE 약 20% 개선을 달성했다.</p>
<p>계보적 의미에서 RT-H는 Dual-system 사고의 초기 형태로, 이후 2025년의 Helix, Gemini Robotics 1.5의 internal reasoning, Hi Robot으로 직접 연결되는 발판이 됐다. 또한 사람의 language-level intervention으로 정책을 즉석 교정할 수 있다는 점은 Human-Robot Interaction 관점에서도 중요한 기여다.</p>
<h3 id="13-openvla-오픈소스-vla의-표준화">1.3 OpenVLA: 오픈소스 VLA의 표준화</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/b5af085e-a2d8-4e3c-a935-f9f40f85479c/image.png" alt=""></p>
<ul>
<li><p><strong>아키텍처 및 특징</strong>
RT-2의 성공 이후 완전한 오픈소스 및 상업적 이용이 가능한 VLA에 대한 수요는 2024년 OpenVLA의 출시로 충족됐다. 70억 파라미터(7B)를 갖춘 OpenVLA는 <strong>Llama-2 7B</strong> language backbone과 <strong>SigLIP visual encoder</strong>를 결합하여 단일 A100 GPU에서도 추론이 가능하도록 설계됐다. </p>
<p>RT-X 데이터셋 전체를 활용하여 사전 학습된 OpenVLA는 이산화된 행동 토큰을 예측하는 RT 시리즈의 방법론을 계승하여 강력한 Zero-shot 능력을 발휘했다.</p>
</li>
<li><p><strong>한계와 개선: OpenVLA-OFT</strong>
그러나 OpenVLA는 완전히 새로운 환경이나 복잡한 언어적 변형이 주어졌을 때 일반화 성능이 급격히 저하되는 취약점을 보였다. 이를 해결하기 위해 <strong>OpenVLA-OFT(2025)</strong>에서는 다음 두 가지 핵심 개선이 이루어졌다.</p>
<ul>
<li>합성 지시어 증강(Synthetic Instruction Augmentation): LLM을 활용하여 기존 로봇 궤적에 대해 의미론적으로 동일하지만 구조적으로 다양한 지시어를 대량 합성</li>
<li>최적화된 미세조정(OFT): LoRA 기반 효율적 미세조정을 통해 Parallel decoding + L1 손실 함수 조합으로 추론 속도와 정밀도를 동시에 개선</li>
</ul>
</li>
</ul>
<p> 이러한 개선은 인간의 복잡한 의도와 로봇의 저수준 제어 사이의 간극을 메우는 데 성공적으로 기여했으며, 이후 MiniVLA, SmolVLA, TinyVLA와 같은 경량화 파생 모델의 기반이 됐다.</p>
<h3 id="14-autoregressive-tokenization의-구조적-한계">1.4 Autoregressive tokenization의 구조적 한계</h3>
<p>RT 시리즈와 OpenVLA가 채택한 이산화 및 자기회귀 기반 아키텍처는 로봇 제어를 언어 모델링의 영역으로 편입시켰다는 데 큰 의의가 있으나, 본질적인 수학적 한계를 지녔다. 이를 두 가지 핵심 문제로 요약할 수 있다.</p>
<ul>
<li><p><strong>양자화 오차(Quantization Error)</strong>: 256개의 구간으로 물리적 행동을 균등 분할하는 Binning 방식은 저주파수(1–10 Hz)의 대략적 제어에는 적합하나, 고주파수(50 Hz 이상)의 복잡하고 세밀한 조작(Dexterous Manipulation)을 수행하기에는 양자화 오차가 지나치게 컸다.</p>
</li>
<li><p><strong>추론 지연(Inference Latency)</strong>: 트랜스포머의 자기회귀적 디코딩 특성상 토큰을 순차적으로 예측해야 하므로, 실시간 피드백 루프가 필수적인 로봇 제어 환경에서 치명적인 추론 지연을 유발했다.</p>
</li>
</ul>
<p>이 두 가지 병목 현상은 VLA 아키텍처가 연속적인 행동 공간을 직접 모델링하는 생성형 방법론, 즉 <strong>Diffusion Policy</strong>와 <strong>Flow Matching</strong>으로 진화하는 강력한 동인이 됐다. 이 전환이 바로 다음 세대 모델들의 핵심 혁신이다.</p>
<hr>
<h2 id="2-생성형-행동-모델링으로의-전환-diffusion-flow-matching">2. 생성형 행동 모델링으로의 전환: Diffusion, Flow Matching</h2>
<p>앞 장에서 살펴본 이산화(Discretization) 기반 자기회귀 VLA의 두 가지 구조적 한계는 VLA Action head의 근본적인 재설계를 요구했다. 그 해답은 이미지 합성 분야에서 큰 성공을 거둔 Diffusion Model과, 이를 발전시킨 Flow Matching에 있었다. 이 두 패러다임의 전환을 이해하는 것은 현재 주류 VLA 아키텍처의 설계 철학을 파악하는 데 있어 필수적이다.</p>
<h3 id="21-diffusion-policy의-등장과-핵심-통찰">2.1 Diffusion Policy의 등장과 핵심 통찰</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/dfe27a2c-d5d6-42cc-af50-ced070fb1e05/image.png" alt=""></p>
<ul>
<li><strong>배경: Behavior Cloning(BC)의 구조적 약점</strong>
기존 Behavior Cloning(BC)의 고전적 약점은 <strong>Multimodal action distribution</strong> 문제에 있다. 동일한 시각적 관측에 대해 합리적인 행동이 여러 개 존재할 때, MSE Regression은 모든 가능한 행동의 평균을 학습하는 반면, 확산 모델은 이 다중 모드를 그대로 보존하여 각각의 합리적인 행동을 생성할 수 있다. <strong>Diffusion Policy(2023)</strong>는 이 문제를 정면으로 돌파하여, 12개 태스크에서 기존 명시적·암시적 정책 대비 평균 46.9% 향상을 달성했다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/44b79a5a-aed4-43e6-9da8-702652a1808d/image.png" alt=""></p>
<ul>
<li><strong>아키텍처: DDPM(Denoising Diffusion Probabilistic Model) 기반 행동 생성</strong>
Diffusion Policy의 아키텍처는 ResNet 기반 시각 인코더를 통해 관측치를 압축하고, <strong>조건부 DDPM</strong>이 1D 합성곱 U-Net 또는 트랜스포머를 통해 <strong>노이즈 상태의 행동 벡터를 단계적으로 제거(Denoising)</strong>하여 <strong>실제 Action chunk</strong>를 생성하는 방식이다. </li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/40b2c16b-bed7-4a64-a35b-622eee8a8e20/image.png" alt=""></p>
<p> 핵심 설계 선택으로는 예측 16스텝, 실행 8스텝으로 구성된 &#39;<strong>점진적 수평선 제어(Receding-horizon control)</strong>&#39;와 <strong>End-effector position</strong> 제어 방식이 채택됐다.</p>
<p> 계보적 측면에서 Diffusion Policy의 통찰은 이후 Octo, RDT-1B, π₀, CogACT, GR00T N1의 Action expert가 모두 직계 후손으로 발전했다는 점에서 그 의의가 크다. 다만 전통적으로 100단계의 디노이징 스텝이 필요하다는 점은 실시간성에 부담이 됐으며, 이후 Consistency model과 플로우 매칭 등 후속 가속 연구로 이어지게 되었다.</p>
<h3 id="22-octo-diffusion-policy의-파운데이션-모델화">2.2 Octo: Diffusion Policy의 파운데이션 모델화</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/c7fa8e94-5183-472a-99c9-f4b89af06573/image.png" alt=""></p>
<ul>
<li><p><strong>아키텍처</strong></p>
</li>
<li><p><em>Octo*</em>는 Diffusion Policy를 로봇 파운데이션 모델에 적용한 대표적인 오픈소스 아키텍처다. Open X-Embodiment 데이터셋의 80만 개 궤적으로 학습한 Octo는 2,700만 매개변수의 Octo-Small과 9,300만 매개변수의 Octo-Base 두 버전으로 제공된다.</p>
<p>Octo의 핵심 설계는 <strong>트랜스포머 백본</strong>과 <strong>경량 확산 행동 헤드(약 3M 매개변수, ~5단계 디노이징)</strong>의 조합이다. 시각적 관측치와 자연어 명령은 모달리티별 토크나이저(Modality-specific tokenizers)를 통해 공통 토큰 형식으로 변환되어 트랜스포머 백본을 통과한다. </p>
<p>BERT의 [CLS] 토큰과 유사한 &#39;<strong>판독 토큰(Readout token)</strong>&#39;을 통해 과거 관측 시퀀스의 압축된 벡터 임베딩을 생성하고, 이를 확산 행동 헤드의 조건부 입력으로 제공한다. Block-wise causal attention 덕분에 새로운 관측 입력이나 행동 출력 헤드 추가 시 백본을 고정한 채 가벼운 매개변수만 튜닝할 수 있다.</p>
</li>
<li><p><strong>한계: action head 용량의 병목</strong>
Octo의 핵심 한계는 경량 diffusion head의 용량 제약이다. 이후 RDT-1B와 CogACT가 &#39;경량 헤드로는 부족하다&#39;며 헤드 자체를 키우는 방향으로 분기한 것은 바로 이 지점에서 출발한다. 또한 이산화 기반 RT-2-X 대비 Long-horizon dexterous task에서 성능이 부족하다는 점이 π₀ 비교 평가에서 명확히 드러났다. 오픈소스 라이선스, 코드 품질, 미세조정 용이성 측면에서는 사실상 표준이 되었다.</p>
</li>
</ul>
<h3 id="23-플로우-매칭flow-matching의-수학적-우수성">2.3 플로우 매칭(Flow Matching)의 수학적 우수성</h3>
<ul>
<li><p><strong>Diffusion Policy vs Flow Matching : SDE vs ODE</strong>
2025년 하반기부터 2026년에 이르러 최첨단 VLA 구현의 표준은 확산 정책에서 플로우 매칭으로 급격히 재편됐다. 두 방법론 모두 연속적인 시간을 다루지만, 그 수학적 기반에서 결정적 차이가 있다.</p>
<p>Diffusion 모델은 <strong>확률 미분 방정식(Stochastic Differential Equation, SDE)</strong>을 통해 <strong>노이즈를 점진적으로 제거</strong>하는 방향성을 추구한다. 반면 Flow Matching은 <strong>상미분 방정식(Ordinary Differential Equation, ODE)</strong>을 기반으로 <strong>시간의 흐름에 따른 벡터장(Vector field)을 직접 학습</strong>하여, 단순한 기저 분포를 복잡한 대상 데이터 분포로 매핑한다. </p>
<p>수학적으로 플로우 매칭은 Conditional Flow Matching 손실 함수가 Diffusion의 noise prediction과 등가이지만, 노이즈와 최종 행동 궤적 사이의 직진성이 강한 <strong>Velocity field</strong>를 학습하므로 샘플링 경로가 훨씬 단순화된다.</p>
</li>
<li><p><strong>실용적 우위: 추론 속도와 실시간 제어</strong>
확산 모델이 20<del>50단계에 걸쳐 달성했던 추론 품질을 단 5</del>10단계의 추론만으로 달성할 수 있어 지연 시간(Latency)이 획기적으로 줄었다. 또한 에너지 기반 모델에서 필수적이었던 Negative sample extraction의 복잡성이 제거되어 훈련 속도가 가속화됐다. </p>
<p>이러한 속도와 예측 가능성의 결합은 로봇 제어에서 필수적인 실시간 폐루프 제어를 가능케 했으며, 이후 π₀, GR00T N1, SmolVLA, Helix S1, Gemini Robotics On-Device에서 모두 Flow Matching 헤드를 채택하는 계기가 됐다.</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>특성</th>
<th>Diffusion Policy</th>
<th>Flow Matching</th>
</tr>
</thead>
<tbody><tr>
<td><strong>수학적 기반</strong></td>
<td>확률 미분 방정식 (SDE) 기반 노이즈 예측</td>
<td>상미분 방정식 (ODE) 기반 벡터장(속도) 예측</td>
</tr>
<tr>
<td><strong>샘플링 경로</strong></td>
<td>비선형적이며 예측 불가능한 경로</td>
<td>노이즈와 최종 이미지/행동을 잇는 직관적이고 직선에 가까운 경로</td>
</tr>
<tr>
<td><strong>필요 추론 단계</strong></td>
<td>20 ~ 50 단계 (실시간 적용에 불리함)</td>
<td>5 ~ 10 단계 (실시간 및 엣지 컴퓨팅에 최적화)</td>
</tr>
<tr>
<td><strong>훈련 및 안정성</strong></td>
<td>훈련이 상대적으로 안정적이고 레시피가 성숙함</td>
<td>훈련 과정이 민감할 수 있으나, 훈련 후 추론은 매우 결정적이고 견고함</td>
</tr>
</tbody></table>
<hr>
<h2 id="3-오픈소스-vla의-진화">3. 오픈소스 VLA의 진화</h2>
<p>플로우 매칭의 도입은 무거운 VLA 모델을 경량화하여 소비자용 하드웨어에서도 훈련 및 배포가 가능하도록 만드는 오픈소스 생태계의 폭발적인 성장을 이끌었다. 본 장에서는 몇가지 주요 오픈소스 VLA 모델들에 대해 정리하고 비교한다. </p>
<h3 id="31-smolvla">3.1. SmolVLA</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/dfc40e35-9a86-4714-92da-6305d2b9d384/image.png" alt=""></p>
<ul>
<li><p><strong>구조</strong>
SmolVLA는 약 450M 파라미터의 <strong>flow matching 기반 경량 VLA</strong>로, 작은 <strong>VLM backbone(SmolLM2 + SigLIP) + flow matching action expert</strong> 구조다. π₀의 dual-expert(VLM + action expert) 구조를 거의 그대로 가져오되, <strong>layer skipping</strong>(VLM의 절반만 forward 통과)과 <strong>interleaved cross-attention, self-attention</strong>으로 비용을 줄였다. </p>
<p>학습 데이터는 OpenVLA의 1M 대비 4%인 <strong>23k trajectory</strong>(LeRobot 커뮤니티가 모은 SO-100/SO-101 SO-ARM dataset과 일부 OXE 부분집합)를 사용하였다. 학습은 single GPU에서 가능하고, 추론은 consumer GPU/CPU에서 가능한 수준이다.</p>
</li>
<li><p><strong>설계 철학</strong>
SmolVLA의 철학은 <strong>&quot;오픈소스의 진짜 의미는 weight 공개가 아니라 <em>학습/추론까지</em> consumer 하드웨어에서 가능해야 한다는 것&quot;</strong>이다. OpenVLA는 weight를 공개했지만 fine-tuning에는 여전히 A100급 GPU가 필요하고, 추론도 Jetson 같은 임베디드에서는 어렵다. </p>
<p>SmolVLA는 LeRobot 생태계와 통합되어 SO-100/SO-101 같은 €500 짜리 robot arm에서 즉시 동작 가능하다. Flow matching을 채택한 것은 π₀의 50 Hz output을 작은 모델 사이즈에서 재현하기 위함이며, 데이터 23k trajectory는 &quot;거대 사전학습 없이도 LeRobot 커뮤니티 데이터만으로 어디까지 가능한가&quot;를 묻는 실험적 시도이기도 하다.</p>
</li>
<li><p><strong>성능 및 기여</strong>
LeRobot 플랫폼(SO-ARM)에서 다양한 manipulation task 데모가 가능하다. 다만 RoboGate adversarial benchmark에서 cross-embodiment zero-shot 성공률이 0%로 보고된 바 있어, <strong>작은 VLA의 일반화 한계</strong>는 분명하다. </p>
<p>SmolVLA의 기여는 성능 자체보다 (a) LeRobot 생태계의 베이스 모델로 자리잡은 것, (b) HuggingFace Trainer/PEFT/Datasets에 native 통합되어 fine-tuning 진입 장벽을 한 단계 더 낮춘 것, (c) 학계가 &quot;VLA 연구를 1× GPU에서 시작 가능&quot;하게 만든 것이다. </p>
</li>
</ul>
<h3 id="32-cogact">3.2. CogACT</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/83dce7c0-9f20-4c9e-9243-7430539f12cc/image.png" alt=""></p>
<ul>
<li><p><strong>구조</strong>
CogACT는 <strong>&quot;cognition은 VLM, action은 별도 transformer&quot;</strong>라는 인지/운동 cortex 분리 비유로 설계된 모델이다. Vision은 DINOv2+SigLIP fused(OpenVLA와 동일), backbone은 Llama 계열의 7B VLM(OpenVLA와 호환), 그 위에 <strong>DiT(Diffusion Transformer) action head</strong>를 Base/Large로 얹는다. </p>
<p>DiT-Base는 약 80M, DiT-Large는 약 300M 파라미터로 Octo의 3M head보다 훨씬 크다. VLM의 cognition feature가 condition으로 DiT에 들어가고, DiT는 action chunk(보통 16 step)를 diffusion으로 denoise한다. 학습은 OXE 0.4M trajectory로 사전학습 후 태스크별로 파인튜닝된다. </p>
</li>
<li><p><strong>설계 철학</strong>
CogACT의 핵심 주장은 <strong>&quot;Octo-style의 작은 diffusion head는 multimodal action distribution을 정확히 모델링하지 못한다&quot;</strong>이다. Diffusion head가 충분한 capacity를 가져야만 같은 관찰에서 갈라지는 여러 합리적 action들을 모드 보존하며 학습할 수 있다는 것이다. </p>
<p>이는 π₀의 별도 action expert(300M)와 같은 정신이지만, π₀가 PaLiGemma backbone에 expert를 추가한 것에 비해 CogACT는 <strong>OpenVLA backbone을 그대로 쓰고 head만 키우는</strong> 방식을 택했다. 즉 OpenVLA의 weight를 활용하면서도 head의 한계를 돌파하는 실용적 접근이라고 할 수 있다.</p>
</li>
<li><p><strong>성능 및 기여</strong>
OXE 0.4M으로만 사전학습한 7B+DiT-L 모델이 <strong>simulation에서 OpenVLA(7B) 대비 +35%, real robot에서 +55%, RT-2-X(55B) 대비 +18%</strong> 성능 향상을 보고했다. 특히 SimplerEnv Google robot/WidowX zero-shot에서 RT-1, RT-1-X, RT-2-X, Octo, OpenVLA를 모두 넘어섰다. </p>
<p>CogACT의 기여는 (a) <strong>&quot;action head 크기가 결정적&quot;</strong>이라는 정량 증명, (b) OpenVLA backbone + 큰 DiT head라는 hybrid 패턴을 제시해 후속 연구에 영향을 주었고, (c) cognition/action 분리가 dual-system VLA의 정신적 토대를 제공한 것이다.</p>
</li>
</ul>
<h3 id="33-rdt-1b">3.3. RDT-1B</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4c402ad3-3b0a-414c-a8e8-93bcb6e3b299/image.png" alt=""></p>
<ul>
<li><p><strong>구조</strong>
<strong>RDT-1B</strong>는 1.2B 파라미터 규모의 로봇 조작을 위한 <strong>Diffusion Transformer(DiT)</strong> 기반 파운데이션 모델이다. Vision은 사전 학습된 <strong>SigLIP</strong> (3-view: 외부, 양쪽 손목)으로, Text는 T5-XXL로 인코딩하며, 두 모델의 가중치는 동결(Freeze)하여 사용한다. 백본인 DiT 구조가 노이즈에서 연속적인 Action Chunk를 디노이징하며, Action Chunk 크기는 64 스텝이다.</p>
<p>기존 모델들처럼 특정 주파수에 고정되지 않고 <strong>각기 다른 데이터셋의 제어 주파수($c$) 자체를 입력 토큰으로 수용하여 가변적으로 처리</strong>하는 것이 특징입니다. 가장 중요한 혁신은 <strong>&#39;물리적으로 해석 가능한 통합 행동 공간 (Physically Interpretable Unified Action Space)&#39;</strong>이다. 구조가 다른 로봇들의 양팔, 관절, 말단 장치(EEF), 바퀴 구동 등의 행동을 물리적 의미를 보존한 채 단일 128차원 벡터 공간에 매핑한다. 이를 통해 46개 데이터셋, 100만 개 이상의 에피소드로 사전 학습한 뒤, 자체 수집한 ALOHA 양팔 로봇 데이터셋(6K+ 에피소드)으로 파인튜닝된다.</p>
</li>
<li><p><strong>설계 철학</strong>
RDT-1B의 철학은 시각/언어의 복잡한 표현은 이미 대규모 데이터로 학습된 인터넷 기반 파운데이션 모델(SigLIP, T5)에 맡기고, 로봇 제어를 위한 파라미터는 본질적으로 <strong>물리적인 &#39;행동 모델링(Action Modeling)&#39;의 스케일을 키우는 데 집중</strong>해야 한다는 것이다. </p>
<p>양팔 로봇 제어가 지니는 다형성(Multi-modality)을 정확히 포착하기 위해 표현력이 뛰어난 Diffusion 모델을 채택했으며, 형태가 다른 다기종 로봇의 데이터를 낭비 없이 하나로 통합 학습하여 범용적인 물리 법칙을 깨우치게 하기 위해 통합 행동 공간을 고안했다.</p>
<p>시각 토큰이 언어 토큰보다 많아 지시어 정보를 잃어버리는 현상을 방지하기 위해, 각 <strong>cross-attention 레이어에 시각과 언어 토큰을 번갈아 주입</strong>하는 <strong>&#39;교차 조건 주입(Alternating Condition Injection, ACI)&#39;</strong> 방식을 사용하여 지시 수행 능력을 크게 향상시켰다. </p>
<p>또한 1.2B의 크기로 인한 추론 속도 문제를 극복하기 위해 가속화 샘플링 기법인 DPM-Solver++를 적용, 탑재된 RTX 4090 GPU 환경에서 확산 스텝을 1000에서 5단계로 줄임으로써 <strong>초당 6회의 action chunk 추론(평균 초당 381 액션)을 달성하여 실시간 제어가 가능</strong>하도록 만들었다.</p>
</li>
<li><p><strong>성능 및 기여</strong>
실제 로봇 평가에서 ACT, OpenVLA, Octo 등의 최신 SOTA 모델들을 제치고 <strong>광범위한 작업에서 성공률을 56% 향상</strong>시켰다. 섬세한 양팔 조작(Dexterous bimanual)에서의 결정적 우위는 <strong>&#39;비선형 MLP 디코더&#39; 도입과 확산 모델링</strong>에서 비롯되며, 로봇 개 조이스틱 조종과 같은 고도의 비선형적이고 정밀한 작업도 성공적으로 수행합니다. 이 모델의 핵심 기여는 다음과 같다. </p>
<p>(a) 매개변수를 1.2B로 확장한 현재까지 가장 큰 확산 기반 로봇 파운데이션 모델
(b) 처음 보는(Unseen) 객체와 환경, 지시어에 대해서도 강력한 Zero-shot 일반화 능력
(c) 1~5회의 시연만으로도 물건 건네주기, 옷 개기 등 완전히 새로운 기술을 배우는 강력한 Few-shot 학습 능력 증명</p>
</li>
</ul>
<h3 id="34-cot-vla">3.4. CoT-VLA</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/3f215466-05bd-436e-97f1-394f505dd3ef/image.png" alt=""></p>
<ul>
<li><p><strong>구조</strong>
CoT-VLA는 <strong>VILA-U 7B를 base</strong>로 하는 unified multimodal foundation model을 fine-tune한 모델이다. VILA-U는 text와 image 토큰을 모두 understand·generate 가능한 unified-tokenizer 모델로, 이를 활용해 CoT-VLA는 다음과 같은 출력 시퀀스를 생성한다: [language] → [current obs $s$] → [subgoal image $s_{t+n}$: 256 image tokens, causal attention] → [action chunk: $K$ actions, full attention] </p>
<p>즉 &quot;행동 전에 미래 프레임을 먼저 그린 후 그것을 보고 행동&quot;하는 hybrid attention 구조다. 학습 데이터는 (a) Open X-Embodiment robot demonstration, (b) <strong>action label 없는 인터넷 비디오</strong>(EPIC-KITCHEN-100, Something-Something)로, action-less video는 subgoal 생성 능력만 학습한다.</p>
</li>
<li><p><strong>설계 철학</strong>
CoT-VLA가 던진 질문은 <strong>&quot;LLM의 chain-of-thought에 해당하는 robotics CoT는 어떤 모달리티여야 하는가?&quot;</strong>이다. Bbox나 keypoint 같은 abstract 표현 대신 <strong>subgoal image를 pixel-space에서 직접 생성</strong>하기로 결정한 이유는 다음 두 가지다: 
(a) <strong>interpretable</strong> — 실패가 나면 subgoal 생성이 잘못된 건지 action 실행이 잘못된 건지 바로 진단 가능함
(b) <strong>action-less video를 자연스럽게 흡수</strong> — 인터넷의 human video에는 action label이 없지만 subgoal 생성 학습에는 그대로 사용 가능함</p>
<p>Hybrid attention(subgoal은 causal, action은 full)은 OpenVLA-OFT의 parallel decoding 통찰을 시퀀스의 한 부분에만 적용한 것으로, &quot;예측은 sequential, 행동은 parallel&quot;이라는 일반 패턴을 제시한다.</p>
</li>
<li><p><strong>성능 및 기여</strong>
LIBERO 4 suite에서 발표 시점 SOTA, real-world Franka tabletop 6 task 평균 best — base VILA-U 직접 fine-tune 대비 <strong>+46.7% relative improvement</strong>. CoT-VLA의 진짜 기여는 정량 SOTA보다 <strong>세 가지 구조적 통찰</strong>이다. 
첫째, &quot;action-less video도 VLA 학습에 직접 기여 가능&quot;이라는 데이터 활용 패러다임. 
둘째, hybrid attention으로 video token 생성과 action 생성을 한 모델에서 분리. 
셋째, unified multimodal foundation model(VILA-U 등)을 robotics에 fine-tune하는 표준 recipe 제시. 이 세 통찰은 이후 Gemini Robotics 1.5의 interleaved internal reasoning, π₀.₇의 visual subgoal conditioning에 직접 영향을 줬다.</p>
</li>
</ul>
<h3 id="35-video-prediction-policy-vpp">3.5. Video Prediction Policy (VPP)</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/cb0b3f6e-68fd-45ab-bde7-577bd5f98793/image.png" alt=""></p>
<ul>
<li><p><strong>구조</strong>
VPP는 <strong>2-stage 학습 구조</strong>다. Stage 1에서 <strong>Stable Video Diffusion(SVD)</strong>를 robot manipulation 데이터(OXE 등) + 인터넷 인간 manipulation 영상(Something-Something v2)으로 fine-tune해 manipulation-specialized text-guided video prediction(TVP) 모델을 만든다. Stage 2에서 <strong>denoising을 끝까지 돌리지 않고</strong>, TVP의 단일 timestep forward pass에서 중간 layer feature(코드상 <code>Diffusion_feature_extractor</code>의 <code>extract_layer_idx</code>)를 추출 → Video Former 3D resampler → <strong>MDT(Masked Diffusion Transformer) policy</strong>에 condition으로 들어가 action chunk를 score matching loss로 학습한다. 즉 video model은 <strong>representation extractor로 격하</strong>되고 action은 별도 head가 출력한다.</p>
</li>
<li><p><strong>설계 철학</strong>
VPP의 핵심 가설은 <strong>&quot;Video Diffusion Model의 internal representation은 본질적으로 <em>현재 + 예측된 미래</em>를 함께 인코딩하는 predictive visual representation이다&quot;</strong>라는 것. 기존 vision encoder(MAE, CLIP, DINO, SigLIP)는 단일 이미지 또는 두 이미지 contrastive로 학습되어 static 정보 위주였고, embodied task에 결정적인 dynamics 정보가 없었다. VDM은 비디오 생성 학습 자체로 dynamics를 흡수했으므로, <strong>굳이 비디오를 끝까지 생성하지 않고 internal feature만 뽑아도 dynamics-aware representation이 된다</strong>. 이 결정 하나가 video-based VLA의 실용성을 결정했다 — UniPi(2023)가 video를 끝까지 생성해 매우 느렸던 것과 정확히 반대 방향.</p>
</li>
<li><p><strong>성능 및 기여</strong></p>
<p>CALVIN ABC→D 일반화 벤치마크에서 이전 SOTA 대비 <strong>18.6% relative improvement</strong> (v1) / <strong>41.5% relative improvement</strong> (v2). Real-world XHand 5-finger dexterous platform에서 100+ task / 13 카테고리 / 4k trajectory 수집 후 단일 generalist policy로 평균 <strong>+31.6% 성공률</strong> vs 강한 baseline. VPP의 기여는 (a) <strong>&quot;video model을 정책 그 자체로 쓰지 말고 feature extractor로 쓰라&quot;</strong>는 video-VLA 실용화의 결정적 recipe 제시, (b) Stable Video Diffusion 같은 오픈 video model로도 충분함을 보여 학계 진입 장벽 낮춤, (c) CoT-VLA와 정확히 정반대 방향(픽셀 vs feature)의 design space 제시로 후속 연구가 둘 사이에서 trade-off 탐색 가능하게 함.</p>
</li>
</ul>
<h3 id="36-x-vla">3.6. X-VLA</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/6fc6f39d-b4ca-44aa-8888-e098d1b2439f/image.png" alt=""></p>
<ul>
<li><p><strong>구조</strong>
X-VLA는 0.9B 파라미터의 cross-embodiment VLA로, <strong>Florence-Large vision encoder + 표준 transformer + flow matching action head</strong> 구조다. 가장 결정적인 혁신은 <strong>각 데이터 소스(embodiment)마다 별도의 soft prompt embedding 세트</strong>를 학습한다는 것 — 즉 UR5, Franka, ALOHA, WidowX 같은 다른 robot에 대해 각각 학습되는 작은 prompt vector 집합이 있고, 모델 자체는 공유된다. 학습 시 각 episode가 어느 embodiment에서 왔는지에 따라 해당 soft prompt가 prepend된다.</p>
</li>
<li><p><strong>설계 철학</strong>
X-VLA의 철학은 <strong>&quot;cross-embodiment 학습의 본질은 모델 통합이 아니라 conditioning 분리&quot;</strong>라는 것. RDT-1B의 unified action space가 robot 차이를 <em>공유 표현 공간으로 흡수</em>하려 한 반면, X-VLA는 차이를 <strong>soft prompt에 격리</strong>시켜 모델 본체는 robot-agnostic하게 유지한다. 이는 LLM의 prompt tuning에서 유래한 발상으로, 새로운 robot에 transfer할 때 (a) 모델 전체를 fine-tune할 필요 없이, (b) soft prompt만 학습하거나 기존 prompt를 부분적으로 frozen해도 초기 단계 transfer가 가능하다는 매우 실용적 이점이 있다. π₀.₇의 &quot;metadata로 disambiguate&quot;와 같은 정신의 다른 구현으로 볼 수 있다.</p>
</li>
<li><p><strong>성능 및 기여</strong>
6 simulation + 3 real platform에서 SOTA 보고. UR5에서 학습한 prompt를 WidowX에 부분적으로 frozen 사용해도 초기 단계 transfer 효과가 큼을 입증. X-VLA의 기여는 (a) <strong>&quot;cross-embodiment를 학습할 때 soft prompt가 unified action space보다 단순하면서 효과적일 수 있다&quot;</strong>는 새로운 design space 제시, (b) RDT-1B(통합)와 X-VLA(분리)라는 두 cross-embodiment 패러다임의 명시적 대비를 만든 것, (c) prompt-tuning 기법을 robotics fine-tuning에 정식 도입한 첫 사례 중 하나.</p>
</li>
</ul>
<h3 id="37-모델-요약표">3.7. 모델 요약표</h3>
<table>
<thead>
<tr>
<th>모델 (연도)</th>
<th>기관</th>
<th>매개변수</th>
<th>행동 생성 방식</th>
<th>핵심 혁신</th>
<th>주요 한계</th>
</tr>
</thead>
<tbody><tr>
<td>Diffusion Policy (2023)</td>
<td>Columbia / TRI</td>
<td>~80M</td>
<td>DDPM (100 steps)</td>
<td>Multimodal action distribution preservation</td>
<td>Slow inference (100 denoising steps)</td>
</tr>
<tr>
<td>Octo (2024)</td>
<td>UC Berkeley</td>
<td>27M / 93M</td>
<td>Diffusion head (~5 steps)</td>
<td>Modular foundation model, readout token</td>
<td>Limited action head capacity</td>
</tr>
<tr>
<td>OpenVLA (2024)</td>
<td>Stanford / Berkeley</td>
<td>7B</td>
<td>256-bin discrete AR</td>
<td>Open-source VLA standard, LoRA fine-tuning</td>
<td>AR inference latency (~5 Hz), quantization error</td>
</tr>
<tr>
<td>OpenVLA-OFT (2025)</td>
<td>Stanford</td>
<td>7B</td>
<td>Parallel L1 continuous (chunk 8/25)</td>
<td>Parallel decoding + L1 loss, 26× throughput</td>
<td>Per-task fine-tuning required</td>
</tr>
<tr>
<td>RDT-1B (2024)</td>
<td>Tsinghua</td>
<td>1.2B</td>
<td>DiT flow matching (chunk 64)</td>
<td>Unified physical action space, bimanual specialization</td>
<td>High compute cost</td>
</tr>
<tr>
<td>CogACT (2024)</td>
<td>Microsoft</td>
<td>7B+α</td>
<td>DiT diffusion action expert</td>
<td>Explicit cognition-action separation (DiT-B/L head)</td>
<td>Increased cost with larger head</td>
</tr>
<tr>
<td>SmolVLA (2025)</td>
<td>Hugging Face</td>
<td>450M</td>
<td>Flow matching, async inference</td>
<td>Async inference 30% speedup, interleaved cross-attention</td>
<td>Limited zero-shot generalization</td>
</tr>
<tr>
<td>X-VLA (2025)</td>
<td>—</td>
<td>0.9B</td>
<td>Flow matching (10 steps)</td>
<td>Soft prompt cross-embodiment adaptation, 1% param tuning</td>
<td>Max 30 robot configs supported</td>
</tr>
<tr>
<td>VPP (2024)</td>
<td>—</td>
<td>—</td>
<td>Predictive visual representation + DiT policy</td>
<td>Video diffusion internal latent as policy condition, 50 Hz (no full denoise)</td>
<td>High pretraining cost on video data</td>
</tr>
<tr>
<td>CoT-VLA (2025)</td>
<td>Stanford / NVIDIA</td>
<td>7B</td>
<td>Hybrid (causal AR for image/text + full attention for action)</td>
<td>Visual chain-of-thought via autoregressive subgoal image generation</td>
<td>Subgoal image quality bottleneck</td>
</tr>
</tbody></table>
<hr>
<h2 id="4-메인스트림-기업들의-vla-설계-철학-비교">4. 메인스트림 기업들의 VLA 설계 철학 비교</h2>
<h3 id="41-physical-intelligencepi---openpi-시리즈">4.1. Physical Intelligence(PI) - OpenPI 시리즈</h3>
<p>Physical Intelligence는 인터넷 규모의 거대 시각-언어 모델(VLM)이 지닌 풍부한 의미론적 지식을 물리적 모터 제어와 결합하는 데 엔지니어링 역량을 집중했다. 모델의 진화 단계마다 행동 출력 방식 — 연속적 플로우 매칭과 이산적 자기회귀 — 을 번갈아 실험하며 최적 아키텍처를 탐구한 것이 이 시리즈의 핵심 서사다. 그 결과물인 π₀ 시리즈는 2024년 하반기부터 2026년 4월까지 약 6개월 주기로 갱신되며 사실상 로보틱스 분야의 GPT 시리즈에 해당하는 계보를 구축하고 있다.</p>
<h4 id="π₀-고주파수-플로우-매칭의-기준점">π₀: 고주파수 플로우 매칭의 기준점</h4>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/c21e1939-ae6a-434d-83a6-36a45117c1cb/image.png" alt=""></p>
<p>시리즈의 첫 번째 모델인 π₀는 사전 학습된 PaLiGemma 3B VLM 백본 위에 약 300M 매개변수 규모의 플로우 매칭 행동 전문가(Action expert)를 접목한 구조다. VLM이 이미지와 텍스트를 처리하는 동안, 행동 전문가는 고유 감각 정보(Proprioception)와 노이즈가 포함된 행동 청크를 입력으로 받아 조건부 플로우 매칭(Conditional Flow Matching, CFM)으로 50Hz 이상의 고주파수 연속 모터 명령을 출력한다.</p>
<p>Block-wise causal masking 덕분에 VLM 블록은 자기 자신에만, 상태는 자신과 VLM에, 행동은 모든 블록에 어텐션할 수 있어 KV 캐시 재활용이 가능하다. 훈련 시에는 플로우 매칭 타임스텝을 균일 분포 대신 초기 단계에 집중하는 베타 분포(β-distribution)로 샘플링하여 실용적인 가속을 구현했다. 빨래 개기, 상자 조립 등 수 분에 걸친 정밀 작업에서 OpenVLA와 Octo 대비 압도적인 성능을 보였으나, 대규모 훈련에 필요한 연산 비용이 매우 높다는 한계가 있었다.</p>
<h4 id="π₀-fast-dct-기반-시계열-압축과-자기회귀적-효율성">π₀-FAST: DCT 기반 시계열 압축과 자기회귀적 효율성</h4>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/6719c6b2-ab90-42d2-be8c-973a18e1c6e3/image.png" alt=""></p>
<p>π₀ 훈련의 연산 병목을 해결하기 위해 도출된 π₀-FAST는 플로우 매칭을 완전히 제거하고, 혁신적인 <strong>FAST(Frequency-space Action Sequence Tokenization) 토크나이저</strong>를 도입하여 다시 자기회귀 기반으로 회귀했다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/2b60788e-c440-4f66-90e5-793cb42351c4/image.png" alt=""></p>
<p>FAST 토크나이저의 구현은 다음과 같다. 먼저 행동 청크에 이산 코사인 변환(DCT)을 적용하여 MP3·JPEG 압축과 동일한 원리로 저주파수와 고주파수 성분을 분리한다. 이후 양자화와 평탄화를 거친 다음, 바이트 페어 인코딩(BPE) 알고리즘으로 빈출 패턴을 단일 토큰으로 압축한다. </p>
<p>이 과정으로 원시 행동 데이터가 단 30~60개의 조밀한 토큰으로 변환되어 기존 균등 비닝 대비 10배 이상의 압축률을 달성했다. 그 결과 기존 플로우 기반 π₀ 대비 훈련 속도가 5배 빨라졌으며, 대규모 데이터셋에서는 3배 더 빠른 수렴과 더 나은 언어 지시 수행 능력을 보여주었다. 추론 시 자기회귀적 순차 디코딩으로 인해 플로우 매칭보다 지연이 발생한다는 점이 교환 조건으로 남았다.</p>
<h4 id="ki-π₀와-π₀₅-지식-절연과-계층-구조의-완성">KI-π₀와 π₀.₅: 지식 절연과 계층 구조의 완성</h4>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/c64337b7-a087-48c1-ad1e-d7c1f67d9b8c/image.png" alt=""></p>
<p>행동 전문가를 VLM 백본에 직접 연결하여 훈련하면, 회귀 방식 행동 생성 손실의 역전파 그래디언트가 VLM 내부의 언어적 의미 표현 공간을 교란하여 모델이 언어 이해 능력을 상실하는 &#39;망각(Forgetfulness)&#39; 현상이 발생한다. KI(Knowledge Insulation)-π₀는 이를 세 가지 메커니즘의 동시 적용으로 해결했다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/ae2611dd-c672-4995-8628-e9bbc2505b9d/image.png" alt=""></p>
<p>•    기울기 중단(Stop-gradient): 행동 전문가에서 발생한 그래디언트가 VLM 백본으로 흘러 들어가는 것을 강제 차단
•    이중 손실 공동 훈련(Joint discrete + continuous): 백본은 FAST 토큰화된 행동으로 교차 엔트로피 손실, 행동 전문가는 플로우 매칭으로 연속 출력 손실을 동시 학습
•    VLM 데이터 공동 훈련(VLM data co-training): 일반 시각-언어 QA 데이터를 함께 학습하여 백본의 의미론적 표현 보존
추론 단계에서는 이산화된 토큰 경로가 버려지고 플로우 매칭 전문가만 활성화. 이 구조 덕분에 기존 π₀ 대비 7.5배 빠른 훈련 속도를 달성하면서 LIBERO-90, LIBERO-Spatial SOTA를 기록</p>
<h4 id="π₀₅-hi-robot-계층-구조와-개방형-세계-일반화">π₀.₅: Hi Robot 계층 구조와 개방형 세계 일반화</h4>
<p>π₀.₅는 KI-π₀의 지식 절연을 계승하면서 &#39;Hi Robot&#39; 이중 토폴로지 아키텍처를 완성했다. 저수준 정밀 제어를 위한 300M 행동 전문가의 플로우 매칭 경로(System 1), 고차원 의미 추론을 위한 자기회귀적 이산 텍스트 디코딩 경로(System 2)가 단일 모델 내에 공존한다. </p>
<p>이기종 다중 로봇, 웹 데이터, 고차원 의미 예측을 혼합 학습하여 실험실 외부의 일반 가정에서 처음 보는 환경의 식기 정리, 침대 정돈 등을 수행하는 최초의 엔드-투-엔드 학습 시스템으로 인정받았다.</p>
<h4 id="π₀₆--recap과-π₀₇">π*₀.₆ + RECAP과 π₀.₇</h4>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e9f666ed-66ff-41c9-87b4-ab56af8d49a0/image.png" alt=""></p>
<p>π*₀.₆은 Gemma 3 4B VLM 백본에 860M 규모의 행동 전문가(π₀의 약 3배)를 결합하고, RECAP(RL with Experience and Corrections via Advantage-conditioned Policies)이라는 새로운 RL 프레임워크를 도입했다. </p>
<p>RECAP은 어드밴티지 레이블과 함께 오프라인 RL 사전 학습 → 목표 작업 시연으로 지도 학습 → 자율 롤아웃과 사람의 텔레오퍼레이션 개입을 어드밴티지 레이블과 함께 수집하는 온라인 RL의 3단계로 구성된다. 전통적인 PPO/SAC 대신 어드밴티지 조건화(Advantage conditioning)로 RL을 우회한 것은, 플로우 매칭 정책의 로그 확률이 수학적으로 정의되지 않는다는 근본 문제에 대한 영리한 해결책이다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/155154b6-dd9e-43f1-a528-0f67ae814bce/image.png" alt=""></p>
<p>2026년 4월 발표된 π₀.₇은 멀티모달 프롬프팅을 통해 단일 제너럴리스트 모델이 조합적 일반화(Compositional generalization)를 달성한다는 점을 보여주었다. 다양한 언어 지시, 속도·품질 메타데이터, 제어 모달리티 레이블, 시각적 서브골 이미지의 4종 멀티모달 프롬프트로 이기종 데이터를 단일 모델이 흡수한다. 추론 시에는 상위 정책이 서브태스크 명령 시퀀스를 생성하고, 경량 월드 모델이 각 서브태스크에 대한 시각적 서브골 이미지를 합성하며, π₀.₇ VLA가 이를 받아 실제 행동을 출력하는 계층 구조로 동작한다.</p>
<p>다만 몇 가지 사항을 유의해야 한다. π₀.₇은 현재 학술 사전 인쇄 논문 없이 공식 블로그와 PDF만 공개된 상태이며, 모델 크기·백본 세부 사양이 미공개다. 에어 프라이어 실험에서 초기 성공률 5%가 30분간의 프롬프트 표현 개선으로 95%에 도달했다는 사실은, 진정한 제로샷이라기보다 프롬프트 엔지니어링의 역할이 결정적임을 시사한다.</p>
<h3 id="42-google-deepmind---gemini-robotics">4.2. Google DeepMind - Gemini Robotics</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/36d5167d-4b40-4d7b-9ec0-31872206740c/image.png" alt=""></p>
<p>Google DeepMind가 발표한 Gemini Robotics 시리즈는 로봇을 단순한 명령 수행 기계가 아닌 자율적인 에이전트로 끌어올리는 데 중점을 둔다. 이 아키텍처의 본질적 설계 원칙은 고차원 오케스트레이터와 저수준 VLA 실행기의 완벽한 분업 체계다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/baef2f5c-0c93-42f5-aea2-e57ad7d23bc2/image.png" alt=""></p>
<h4 id="gemini-robotics-er-구체화된-추론-특화-오케스트레이터">Gemini Robotics-ER: 구체화된 추론 특화 오케스트레이터</h4>
<p>시스템 최상단에는 구체화된 추론(Embodied Reasoning, ER)에 특화된 Gemini Robotics-ER 모델이 오케스트레이터 역할을 수행한다. Gemini 2.0(1.5 버전에서는 3.0 Flash)을 백본으로 시공간적 이해력을 극대화한 이 모델은 3D 경계 상자(Bounding box) 예측, 2D 포인팅, 파지(Grasp) 자세 예측, 다중 뷰 대응성(Multi-view correspondence), 궤적 예측 등을 네이티브 출력으로 가지며, 공개한 ERQA 벤치마크에서 SOTA를 달성했다.</p>
<p>ER 1.5 모델의 강력한 무기는 고도의 작업 계획 수립 및 디지털 도구 사용 능력이다. 장기적인 다단계 문제(Long-horizon task)에 직면했을 때, 스스로 코드를 작성하여 로봇 API를 호출하거나 부족한 정보 수집을 위해 웹 검색 도구를 활용하는 고차원 에이전트 행동을 보여준다. 이는 기존 RT-H의 언어적 움직임 지시와 CoT-VLA의 시각적 연쇄 사고를 통합 발전시킨 것으로 볼 수 있다.</p>
<h4 id="gemini-robotics-15-vla-동작-전이와-사고하는-vla">Gemini Robotics 1.5 VLA: 동작 전이와 사고하는 VLA</h4>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e1778b0c-e2b0-4eb8-b9ce-021ec6be68af/image.png" alt=""></p>
<p>오케스트레이터가 수립한 의미론적 계획은 특화된 도구로 취급되는 Gemini Robotics 1.5 VLA에 의해 실제 움직임으로 번역된다. 이 VLA 아키텍처는 두 가지 핵심 혁신을 내장하고 있다.</p>
<p>첫째, 이기종 다중 형태 로봇 데이터를 일반화하는 동작 전이(Motion Transfer, MT) 메커니즘이다. 물리적 형태가 전혀 다른 로봇들의 움직임과 물리학을 공통된 추상 이해 공간으로 통일함으로써, 훈련 데이터에서 ALOHA 2 로봇 팔만 학습한 작업을 형태가 완전히 다른 휴머노이드 로봇 Apollo나 양팔 로봇 Franka에 추가 미세조정 없이 즉각 이식하는 제로샷 전이를 실현했다.</p>
<p>둘째, &#39;사고하는 VLA(Thinking VLA)&#39;의 구현이다. 행동을 출력하기 직전, 모델은 시각적 관측치와 지시문을 바탕으로 다단계의 연속적인 &#39;생각의 흐름(Stream of thoughts)&#39;을 자연어로 생성하여 컨텍스트 윈도우에 추가한다. 이로써 모델의 의사 결정 투명성이 극대화되었으며, 예기치 않은 방해나 오류를 스스로 감지하여 내부 언어 추론을 통한 즉각적인 복구 행동을 제안·실행하는 자율 회복성을 갖추게 됐다.</p>
<h3 id="43-nvidia---isaac-gr00t">4.3. NVIDIA - Isaac GR00T</h3>
<p>NVIDIA는 하드웨어 인프라 및 물리 시뮬레이션 분야의 절대적 우위를 바탕으로, 휴머노이드 로봇에 특화된 오픈 파운데이션 모델인 Isaac GR00T N1을 통해 VLA 패러다임에 독특한 접근법을 제시했다.</p>
<h4 id="gr00t-n1-n15-n17">GR00T-N1, N1.5, N1.7</h4>
<p>GR00T-N1은 명시적인 이중 시스템 구조를 채택했다. System 1은 DiT(Diffusion Transformer) 스타일의 플로우 매칭 행동 모듈이 담당하며, 추상 계획을 16단계 청크(약 63.9ms)로 정밀하게 번역한다. System 2는 NVIDIA Eagle-2 VLM(1.34B)이 담당하며, 환경의 시각적 맥락과 복잡한 다단계 지시를 분석하여 작업 계획을 수립한다(10Hz). 두 시스템은 Cross-attention으로 결합되어 end-to-end로 공동 훈련된다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/2eb90232-d0c1-4b70-80dd-f4f61e34334e/image.png" alt=""></p>
<p>버전별 주요 변화를 살펴보면, N1.5(3B)에서는 Eagle-2 백본이 SigLIP2+T5로 교체되고 월드 모델링 공동 목적 함수가 추가됐다. N1.7(2026)에서는 백본이 Cosmos-Reason2-2B(Qwen3-VL 아키텍처)로 교체되고, 절대 좌표 대신 현재 자세 기준 델타를 사용하는 Relative EEF action space가 도입됐다. </p>
<p>이는 로봇·인간 데이터 간의 전이를 가능케 하는 핵심 설계 선택이다. 또한 20,000시간 분량의 EgoScale 인간 비디오 사전 학습이 추가됐다.</p>
<p>NVIDIA 방법론의 본질적 차별점은 훈련 데이터 조달 방식에 있다. Isaac GR00T Blueprint를 통해 Omniverse 플랫폼과 Newton 물리 엔진을 결합하여 대규모 합성 동작 궤적을 생성하는 플라이휠을 구축했다. 단 11시간 만에 78만 개의 합성 궤적을 생성했는데, 이는 인간이 쉬지 않고 시연할 경우 약 9개월(6,500시간)이 걸리는 분량이다.</p>
<p>DexMimicGen으로 수십 개의 실제 시연에서 54만 개의 합성 시연을 생성하는 파이프라인, 자체 GR-1 데이터셋에 미세조정된 이미지-비디오 모델로 추가 궤적을 합성하는 뉴럴 생성 궤적 파이프라인, 그리고 실제 텔레오퍼레이션 데이터를 혼합하는 방식이 결합된다. 합성 데이터와 실제 데이터의 혼합 결과 실제 데이터만 사용했을 때 대비 성능이 40% 향상됐다.</p>
<table>
<thead>
<tr>
<th>버전</th>
<th>N1</th>
<th>N1.5</th>
<th>N1.7</th>
</tr>
</thead>
<tbody><tr>
<td><strong>VLM 백본</strong></td>
<td>Eagle-2</td>
<td>Eagle-2.5</td>
<td>Cosmos-Reason2-2B (Qwen3-VL)</td>
</tr>
<tr>
<td><strong>액션 모듈</strong></td>
<td>DiT + Flow Matching</td>
<td>DiT + Flow Matching + FLARE</td>
<td>DiT + Flow Matching (상대 EEF)</td>
</tr>
<tr>
<td><strong>합성 데이터</strong></td>
<td>GR00T-Mimic</td>
<td>DreamGen</td>
<td>Isaac Lab + EgoScale</td>
</tr>
<tr>
<td><strong>인간 비디오</strong></td>
<td>일부 활용</td>
<td>FLARE로 활용 확대</td>
<td>20,854시간 EgoScale</td>
</tr>
<tr>
<td><strong>주요 개선</strong></td>
<td>최초 오픈 VLA</td>
<td>언어 지시 따르기 2배↑</td>
<td>스케일링 법칙 발견</td>
</tr>
</tbody></table>
<hr>
<h3 id="44-generalist-ai---gen">4.4. Generalist AI - Gen</h3>
<p>2026년 주류 기업들의 VLA 아키텍처 중 가장 이질적이고 근본주의적인 접근을 취하는 곳은 Generalist AI다. 이들은 LLM 백본에 로봇 행동 헤드를 덧붙이는 산업계의 지배적 트렌드를 거부하고, 처음부터 오직 물리적 상호작용만을 위해 파운데이션 모델을 바닥부터 훈련하는 독자 노선을 개척했다.</p>
<h4 id="vla-및-세계-모델-방법론에-대한-철학적-거부">&#39;VLA&#39; 및 &#39;세계 모델&#39; 방법론에 대한 철학적 거부</h4>
<p>Generalist AI의 설계 철학은 목표 주도형(Goal-driven) 연구에 뿌리를 두고 있다. 이들은 자사 파운데이션 모델을 &#39;VLA&#39;나 &#39;세계 모델(World Model)&#39;로 부르는 것을 의도적으로 기피한다. 기존 VLA는 텍스트 위주로 학습된 VLM에 로봇 동작을 억지로 끼워 맞춘 형태에 불과하며, 세계 모델에 대한 학계의 열광은 물리적 폐루프 제어(Closed-loop control)라는 본질적 목표에서 벗어난 일시적 유행에 가깝다고 비판한다. 이들의 철학은 확고하다 — 충분한 데이터와 컴퓨팅 자원이 확보된다면, 인간의 텍스트 편향을 배제하고 오직 물리적 센서-모터 상호작용 데이터만으로 밑바닥부터 훈련하는 것이 물리적 지능 달성의 가장 강력한 방법이라는 것이다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/964b9034-b271-49a4-b487-e873fdf46a70/image.png" alt=""></p>
<h4 id="gen0-scaling-laws-증명과-harmonic-reasoning">Gen0: Scaling Laws 증명과 Harmonic Reasoning</h4>
<p>2025년 11월 발표된 Gen0는 27만 시간 이상의 고품질 실제 로봇 상호작용 데이터로 훈련됐다. 로봇 공학에서도 언어 모델과 마찬가지로 강력한 확장 법칙(Scaling Laws)이 존재함을 최초로 규명했다는 점에서 역사적 의의가 있다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/0f30d84f-6cc3-4b95-89d6-03c8ab1291d4/image.png" alt=""></p>
<p>10B 매개변수 이하의 작은 모델들은 데이터가 너무 많아질 경우 새로운 정보를 통합하지 못하고 경직되는 &#39;골화 현상(Ossification)&#39;을 겪는 반면, 10B 이상의 모델은 방대한 물리적 상호작용 데이터를 완벽히 흡수하며 암묵적인 &#39;물리적 상식(Physical commonsense)&#39;을 발현하기 시작한다는 &#39;상전이(Phase transition)&#39; 현상이 관찰됐다.</p>
<p>Gen0의 가장 혁신적인 구조적 차별점은 조화 추론(Harmonic Reasoning) 아키텍처다. 기존 최첨단 시스템들이 인지 모델(System 2)이 생각할 시간을 확보한 뒤 행동 모델(System 1)에 명령을 하달하는 계층 구조를 취하는 반면, Generalist AI는 현실 세계의 물리학은 로봇이 생각할 때까지 기다려주지 않는다고 주장한다. </p>
<p>조화 추론은 센싱 토큰(감각)과 액팅 토큰(행동)의 비동기적이고 연속적인 시간 스트림 사이의 조화로운 상호작용을 모델 훈련 단계부터 근본적으로 통합하여, 별도의 하위 제어기나 이중 시스템 분리 구조 없이도 단일 모델 내에서 인지와 행동을 실시간 동시 수행한다.</p>
<h4 id="gen1-웨어러블-데이터와-숙달-임계점-돌파">Gen1: 웨어러블 데이터와 숙달 임계점 돌파</h4>
<p>2026년 4월에 출시된 Gen1은 기초적인 단순 물리 작업에서 99%의 성공률을 돌파하며 로봇 제어의 &#39;숙달(Mastery)&#39; 임계점을 넘어섰다. 기존 최첨단 모델들이 달성했던 64%의 성공률을 압도했을 뿐 아니라, 상자 조립 벤치마크에서 기존 34초 걸리던 작업을 12.1초 만에 완료하여 약 3배 빠른 실행 속도를 보였다.</p>
<p>Gen1의 가장 파격적인 특징은 사전 학습 데이터에 실제 로봇 제어 데이터가 단 하나도 포함되어 있지 않다는 점이다. 대신 사람에게 저비용 웨어러블 디바이스를 착용시켜 수집한 수백만 가지의 빠르고 자연스러운 일상 활동 데이터를 기반으로 훈련됐다. 이는 로봇이 특정 작업에 처음 투입될 때, 작업의 역학뿐만 아니라 해당 로봇의 하드웨어 특성에 대해서도 동시에 적응하며 즉각적인 제어 능력을 발휘한다는 것을 의미한다. 단 1시간 분량의 작업별 미세조정 데이터만으로 숙달 수준에 도달하는 압도적인 데이터 효율성을 보여준다.</p>
<p>아키텍처 면에서는 Gen0의 조화 추론을 심화시키면서 장기적 물리 상호작용을 지연 없이 실시간 처리하기 위해 맞춤형 컴퓨팅 커널과 로봇 공학에 최적화된 새로운 형태의 Paged attention 기술을 도입했다.</p>
<hr>
<h2 id="5-outro">5. Outro</h2>
<p>2022년부터 2026년까지의 VLA 패러다임 전환을 정리하면 다음과 같다.</p>
<table>
<thead>
<tr>
<th>시기</th>
<th>핵심 기술</th>
<th>대표 모델</th>
<th>비고</th>
</tr>
</thead>
<tbody><tr>
<td>2022–2023</td>
<td>Discretized Action Token + Autoregressive</td>
<td>RT-1, RT-2, OpenVLA</td>
<td>256-bin 비닝, 텍스트 토큰 매핑. 오늘날 신규 설계에서는 FAST처럼 훈련 효율을 위한 보조 경로로만 활용</td>
</tr>
<tr>
<td>2024 상반기</td>
<td>Diffusion action head 분리</td>
<td>Diffusion Policy, Octo, RDT-1B, CogACT</td>
<td>multimodal distribution 보존. 다만 20–50 step 샘플링이 실시간성의 걸림돌</td>
</tr>
<tr>
<td>2024 하반기</td>
<td>Flow Matching</td>
<td>π₀</td>
<td>VLM + 플로우 전문가 결합으로 50Hz 달성. 세대 2 아키텍처의 정점. 이후 GR00T N1·Helix·Gemini On-Device의 청사진</td>
</tr>
<tr>
<td>2025 상반기</td>
<td>이중 시스템 + FAST 토크나이저 + Knowledge Insulation</td>
<td>GR00T N1, Helix, KI-π₀, Gemini Robotics, OpenVLA-OFT</td>
<td>세 요소의 조합 표준화. OFT는 &quot;단순 L1도 확산과 동등&quot;이라는 반례 제시</td>
</tr>
<tr>
<td>2025 후반–2026</td>
<td>RL 기반 자기개선 + 온디바이스 배포 + 월드 모델 결합 + 인간 비디오 사전학습</td>
<td>π*₀.₆, π₀.₇, GR00T N1.7, Gemini Robotics On-Device, Gen1</td>
<td>조합적 일반화, EgoScale 20K h 사전학습, 엣지 배포, 웨어러블 데이터 From scratch(Gen1) 모두 현재 진행형</td>
</tr>
</tbody></table>
<hr>
<h2 id="references">References</h2>
<ul>
<li>Brohan, A. et al. (2022). RT-1: Robotics Transformer for Real-World Control at Scale. arXiv:2212.06817. RSS 2023.</li>
<li>Brohan, A., Zitkovich, B. et al. (2023). RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control. arXiv:2307.15818. CoRL 2023.</li>
<li>Padalkar, A. et al. (2023). Open X-Embodiment: Robotic Learning Datasets and RT-X Models. arXiv:2310.08864.</li>
<li>Belkhale, S. et al. (2024). RT-H: Action Hierarchies Using Language. arXiv:2403.01823. RSS 2024.</li>
<li>Kim, M. J. et al. (2024). OpenVLA: An Open-Source Vision-Language-Action Model. arXiv:2406.09246.</li>
<li>Chi, C. et al. (2023). Diffusion Policy: Visuomotor Policy Learning via Action Diffusion. arXiv:2303.04137. RSS 2023 / IJRR 2024.</li>
<li>Team, O. et al. (2024). Octo: An Open-Source Generalist Robot Policy. arXiv:2405.12213. RSS 2024.</li>
<li>Kim, M. J., Finn, C. &amp; Liang, P. (2025). Fine-Tuning Vision-Language-Action Models: Optimizing Speed and Success. arXiv:2502.19645. (OpenVLA-OFT)</li>
<li>Liu, S. et al. (2024). RDT-1B: a Diffusion Foundation Model for Bimanual Manipulation. arXiv:2410.07864. ICLR 2025.</li>
<li>Li, Q. et al. (2024). CogACT: A Foundational Vision-Language-Action Model for Synergizing Cognition and Action in Robotic Manipulation. arXiv:2411.19650.</li>
<li>Shukor, M. et al. (2025). SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics. arXiv:2506.01844.</li>
<li>Zhao, Z. et al. (2025). CoT-VLA: Visual Chain-of-Thought Reasoning for Vision-Language-Action Models. arXiv:2503.22020. CVPR 2025.</li>
<li>Zheng, Z. et al. (2025). X-VLA: Learning a Cross-Embodiment Visual Language Action Model from Demonstrations and World Models. arXiv:2510.10274. ICLR 2026.</li>
<li>Black, K. et al. (2024). π₀: A Vision-Language-Action Flow Model for General Robot Control. arXiv:2410.24164.</li>
<li>Pertsch, K. et al. (2025). FAST: Efficient Action Tokenization for Vision-Language-Action Models. arXiv:2501.09747.</li>
<li>Physical Intelligence (2025). π₀.₅: Open-World Generalization. arXiv:2504.16054.</li>
<li>Shi, L. et al. (2025). Hi Robot: Open-Ended Instruction Following with Hierarchical Vision-Language-Action Models. arXiv:2502.19417.</li>
<li>Driess, D. et al. (2025). Knowledge Insulation for Vision-Language-Action Models. arXiv:2505.23705. NeurIPS 2025.</li>
<li>Physical Intelligence (2025). π*₀.₆ + RECAP: RL with Experience and Corrections via Advantage-conditioned Policies. arXiv:2511.14759.</li>
<li>Physical Intelligence (2026). π₀.₇: Steerable Generalist Robot Policy. pi.website/blog/pi07. </li>
<li>Gemini Robotics Team (2025). Gemini Robotics: Bringing AI into the Physical World. arXiv:2503.20020.</li>
<li>Gemini Robotics Team (2025). Gemini Robotics 1.5. arXiv:2510.03342.</li>
<li>Bjorck, J. et al. (2025). GR00T N1: An Open Foundation Model for Generalist Humanoid Robots. arXiv:2503.14734.</li>
<li>Nvidia (2025). GR00T N1.5: An Improved Open Foundation Model for Generalist Humanoid Robots (article)</li>
<li>Nvidia (2026). Isaac GR00T N1.7: Open Reasoning VLA Model for Humanoid Robots</li>
<li>Generalist AI (2025). Gen0: Scaling Laws for Physical Intelligence. </li>
<li>Generalist AI (2026). Gen1: Scaling Embodied Foundation Models to Mastery. </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[PPO: Proximal Policy Optimization Algorithms (2017)]]></title>
            <link>https://velog.io/@choonsik_mom/PPO-Proximal-Policy-Optimization-Algorithms-2017</link>
            <guid>https://velog.io/@choonsik_mom/PPO-Proximal-Policy-Optimization-Algorithms-2017</guid>
            <pubDate>Wed, 15 Apr 2026 16:29:33 GMT</pubDate>
            <description><![CDATA[<table>
<thead>
<tr>
<th>항목</th>
<th>내용</th>
</tr>
</thead>
<tbody><tr>
<td><strong>제목</strong></td>
<td><a href="https://arxiv.org/pdf/1707.06347">Proximal Policy Optimization Algorithms</a></td>
</tr>
<tr>
<td><strong>저자</strong></td>
<td>John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Radford, Oleg Klimov</td>
</tr>
<tr>
<td><strong>소속</strong></td>
<td>OpenAI</td>
</tr>
<tr>
<td><strong>발표</strong></td>
<td>2017 (arXiv)</td>
</tr>
<tr>
<td><strong>분야</strong></td>
<td>강화학습 (Policy Gradient Optimization)</td>
</tr>
</tbody></table>
<hr>
<h2 id="main-idea">Main Idea</h2>
<h3 id="문제-기존-강화학습-방법론의-결함">문제: 기존 강화학습 방법론의 결함</h3>
<p>2017년 당시 딥러닝 기반 강화학습의 주요 알고리즘들은 각기 다른 방향에서 막혀 있었다.</p>
<ul>
<li><p><strong>DQN(Deep Q-learning)</strong>은 이산 행동 공간에 특화된 구조상, 로봇 제어처럼 연속적이고 고차원적인 행동 공간에 적용하기 어렵다. </p>
</li>
<li><p><strong>Vanilla policy gradient(A2C/A3C)</strong>는 구현이 단순하지만, 수집한 데이터로 딱 한 번만 gradient 업데이트를 수행한다는 구조적 한계 때문에 샘플 효율이 낮다. 같은 데이터로 여러 번 업데이트를 시도하면 정책이 붕괴(policy collapse)한다.</p>
</li>
<li><p><strong>TRPO(Trust Region Policy Optimization)</strong>는 이 안정성 문제를 이론적으로 해결했다. policy update 시 <code>KL divergence</code>를 명시적 제약(constraint)으로 두어 <strong>monotonic improvement를 보장</strong>한다. </p>
<p>그러나 이 제약을 만족시키기 위해 <strong>2차 최적화(conjugate gradient + Fisher-vector product + line search)</strong>가 필요하고, 구현 복잡도가 수백 줄에 달하며, dropout이나 파라미터 공유 아키텍처와 구조적으로 호환되지 않는다.</p>
</li>
</ul>
<p>PPO의 출발점은 명확하다: <strong>TRPO가 주는 안정성을, 1차 최적화(Adam)만으로 달성할 수 있는가?</strong></p>
<h3 id="해결-clipped-surrogate-objective">해결: Clipped Surrogate Objective</h3>
<p>이 질문에 대한 답이 논문 전체의 핵심이다. 먼저 확률 비율을 정의한다:</p>
<p>$$
r_t(\theta) = \frac{\pi_\theta(a_t \mid s_t)}{\pi_{\theta_\text{old}}(a_t \mid s_t)}
$$</p>
<p>$r_t = 1$은 현재 정책과 이전 정책이 동일함을 의미한다. TRPO가 최대화하는 CPI objective는:</p>
<p>$$
L^{CPI}(\theta) = \hat{\mathbb{E}}_t\left[r_t(\theta),\hat{A}_t\right]
$$</p>
<p>이를 KL 제약 없이 그대로 최대화하면 $r_t$가 폭발적으로 커지며 정책이 과도하게 변한다. PPO는 제약 대신 <strong>클리핑(clipping)</strong>으로 이를 방지한다:</p>
<p>$$
L^{CLIP}(\theta) = \hat{\mathbb{E}}_t\left[\min!\left(r_t(\theta),\hat{A}_t,\ \operatorname{clip}(r_t(\theta),, 1-\epsilon,, 1+\epsilon),\hat{A}_t\right)\right]
$$</p>
<p>이 식에서 $\min$이 핵심 설계 결정이다. 단순히 $r_t$를 클리핑한 값을 쓰는 것과 달리, 클리핑된 값과 클리핑되지 않은 값 중 <strong>더 비관적인(pessimistic) 값</strong>을 선택한다. 이 동작을 경우의 수로 분해하면 설계 의도가 명확해진다:</p>
<table>
<thead>
<tr>
<th>조건</th>
<th>$r_t$ 범위</th>
<th>$\min$ 선택</th>
<th>효과</th>
</tr>
</thead>
<tbody><tr>
<td>$\hat{A}_t &gt; 0$ (좋은 행동), $r_t \leq 1+\epsilon$</td>
<td>정상</td>
<td>unclipped</td>
<td>정상 학습</td>
</tr>
<tr>
<td>$\hat{A}_t &gt; 0$, $r_t &gt; 1+\epsilon$</td>
<td>과도 증가</td>
<td><strong>clipped</strong> $(= (1+\epsilon)\hat{A}_t)$</td>
<td>gradient 차단</td>
</tr>
<tr>
<td>$\hat{A}_t &lt; 0$ (나쁜 행동), $r_t \geq 1-\epsilon$</td>
<td>정상</td>
<td>unclipped</td>
<td>정상 학습</td>
</tr>
<tr>
<td>$\hat{A}_t &lt; 0$, $r_t &lt; 1-\epsilon$</td>
<td>과도 감소</td>
<td><strong>clipped</strong> $(= (1-\epsilon)\hat{A}_t)$</td>
<td>gradient 차단</td>
</tr>
</tbody></table>
<p>결과적으로 objective가 <em>개선되는</em> 방향으로 $r_t$가 범위를 벗어나면 이득을 무시하고, <em>악화되는</em> 방향에서는 끝까지 페널티를 부과하는 <strong>단방향 보수주의(one-sided conservatism)</strong>가 구현된다.</p>
<p>이것이 단순 클리핑인 $\operatorname{clip}(r_t, 1-\epsilon, 1+\epsilon)\hat{A}_t$와 다른 이유도 여기서 드러난다. 단순 클리핑은 $r_t &gt; 1+\epsilon$이고 $\hat{A}_t &lt; 0$인 상황, 즉 나쁜 행동의 확률이 과도하게 높아지는 경우에도 gradient를 차단해버려 나쁜 방향으로의 이탈을 방치한다. $\min$을 사용하면 이 경우 unclipped 값이 더 작으므로 페널티가 온전히 전달된다.</p>
<p>머신러닝 관점에서 $L^{CLIP}$은 파라미터 공간 대신 <strong>정책 확률 비율 공간에서의 암묵적 근위(proximal) 정규화</strong>로 해석할 수 있다. $\ell_2$ 정규화가 파라미터 변화를 제한하듯, clipping은 policy 자체의 변화를 제한하며 — TRPO의 명시적 KL 제약과 기능적으로 유사하되 훨씬 단순한 형태를 취한다.</p>
<hr>
<h2 id="1-introduction">1. Introduction</h2>
<p>딥러닝 기반 강화학습은 2017년 당시 세 가지 주류 접근법이 경쟁하고 있었다. </p>
<p>Deep Q-Network 계열은 이산 행동 공간에 특화되어 연속 제어에 적용하기 어려웠고, vanilla policy gradient(A3C/A2C)는 동일한 데이터를 단 한 번의 업데이트에만 사용할 수 있어 샘플 효율이 낮았다. </p>
<p>TRPO는 이론적으로 가장 탄탄했지만—단조적 성능 향상을 보장하는 constraint 최적화—conjugate gradient와 Fisher-vector product 계산을 요구하는 2차 최적화 특성상 구현 복잡도가 높고, dropout이나 파라미터 공유 아키텍처와 호환되지 않았다.</p>
<p>PPO의 출발점은 단순한 질문이다: <strong>TRPO가 제공하는 안정성을 1차 최적화만으로 달성할 수 있는가?</strong> 논문의 답은 “<strong>확률 비율을 클리핑하면 된다</strong>”이다. </p>
<p>이 아이디어는 구현 관점에서는 loss 함수 한 줄을 바꾸는 수준이지만, 그 효과는 TRPO에 필적하거나 능가한다.</p>
<p>PPO가 주장하는 바는 세 가지로 요약된다. </p>
<p>첫째, clipped surrogate objective를 통해 과도한 정책 업데이트를 방지한다. </p>
<p>둘째, 동일한 rollout 데이터로 여러 에폭 동안 SGD 업데이트를 수행하여 샘플 효율을 높인다. </p>
<p>셋째, 아키텍처 제약이 없어(단순한 구조, 범용성) 다양한 실험 설정에 그대로 적용 가능하다.</p>
<hr>
<h2 id="2-background-policy-optimization">2. Background: Policy Optimization</h2>
<h3 id="21-policy-gradient-methods">2.1 Policy Gradient Methods</h3>
<p>Policy gradient의 기본 목표는 기대 누적 보상 $J(\pi_\theta) = \mathbb{E}_\tau[\sum_t r_t]$를 최대화하는 것이다. Policy gradient 정리에 따라 gradient는:</p>
<p>$$
\hat{g} = \hat{\mathbb{E}}_t\left[\nabla_\theta \log \pi_\theta(a_t|s_t) \hat{A}_t\right]
$$</p>
<p>여기서 $\hat{A}_t$는 어드밴티지 추정값으로, 행동 $a_t$가 기준선(value function)보다 얼마나 좋은지를 나타낸다. 이 gradient를 사용하는 objective를 명시적으로 쓰면:</p>
<p>$$
L^{PG}(\theta) = \hat{\mathbb{E}}_t\left[\log \pi_\theta(a_t|s_t) \hat{A}_t\right]
$$</p>
<p>vanilla policy gradient의 핵심 제약은 <strong>동일한 샘플로 한 번만 업데이트</strong>해야 한다는 것이다. 같은 데이터를 여러 번 사용하면 $\pi_\theta$와 샘플을 생성한 $\pi_{\theta_\text{old}}$ 사이의 괴리가 커져 gradient 추정이 편향되고 정책이 붕괴(policy collapse)할 수 있다.</p>
<h3 id="22-trust-region-methods">2.2 Trust Region Methods</h3>
<p>TRPO는 이 문제를 constraint 최적화로 해결한다. 핵심 아이디어는 CPI(Conservative Policy Iteration) objective인 $L^{CPI}$를 KL divergence constraint 하에 최대화하는 것이다.</p>
<p>확률 비율(&quot;지금 정책이 예전 정책보다 이 행동을 얼마나 더/덜 선택하냐&quot; ) $r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_\text{old}}(a_t|s_t)}$를 도입하면, $L^{CPI}$는:</p>
<p>$$
L^{CPI}(\theta) = \hat{\mathbb{E}}_t\left[r_t(\theta)\hat{A}_t\right]
$$</p>
<p>$\theta = \theta_\text{old}$에서 $r_t = 1$이 되므로 $L^{CPI}$는 $L^{PG}$와 동일한 gradient를 갖는다. TRPO는 이를:</p>
<p>$$
\underset{\theta}{\text{maximize}} ; L^{CPI}(\theta) \quad \text{subject to} \quad \hat{\mathbb{E}}<em>t\left[\text{KL}[\pi</em>{\theta_\text{old}}(\cdot|s_t),, \pi_\theta(\cdot|s_t)]\right] \leq \delta
$$</p>
<p>로 최적화한다. 이 constraint는 정책이 너무 크게 변하지 못하도록 보장하며, Kakade &amp; Langford(2002)의 이론에 의해 $J(\pi_\theta)$의 단조 향상이 보장된다. 그러나 constraint를 만족하면서 최적화하려면 conjugate gradient로 natural gradient를 계산하고, line search로 step size를 결정해야 한다—이는 2차 최적화에 해당하며, 구현 복잡도가 극적으로 높아진다.</p>
<p>또한 패널티 계수 $\beta$를 최적 효율로 튜닝하는것이 어렵다. (동일한 훈련 과정에서도 초반에는  $\beta$값을 크기, 후반부에는 작게 조정해야 최적 효율이 나옴)</p>
<h2 id="3-clipped-surrogate-objective">3. Clipped Surrogate Objective</h2>
<p>PPO의 핵심 기여는 TRPO의 KL constraint를 <strong>클리핑</strong>으로 대체하는 것이다:</p>
<p>$$
L^{CLIP}(\theta) = \hat{\mathbb{E}}_t\left[\min\left(r_t(\theta)\hat{A}_t,; \text{clip}(r_t(\theta),, 1-\epsilon,, 1+\epsilon)\hat{A}_t\right)\right]
$$</p>
<p>이 식을 제대로 이해하려면 경우의 수를 분해해야 한다:</p>
<table>
<thead>
<tr>
<th>조건</th>
<th>$r_t$ 범위</th>
<th>$\min$ 선택</th>
<th>해석</th>
</tr>
</thead>
<tbody><tr>
<td>$\hat{A}_t &gt; 0$, $r_t \leq 1+\epsilon$</td>
<td>정상</td>
<td>$r_t\hat{A}_t$ (unclipped)</td>
<td>정상 gradient 흐름</td>
</tr>
<tr>
<td>$\hat{A}_t &gt; 0$, $r_t &gt; 1+\epsilon$</td>
<td>과도 증가</td>
<td>$(1+\epsilon)\hat{A}_t$ (clipped)</td>
<td>gradient 차단</td>
</tr>
<tr>
<td>$\hat{A}_t &lt; 0$, $r_t \geq 1-\epsilon$</td>
<td>정상</td>
<td>$r_t\hat{A}_t$ (unclipped)</td>
<td>정상 gradient 흐름</td>
</tr>
<tr>
<td>$\hat{A}_t &lt; 0$, $r_t &lt; 1-\epsilon$</td>
<td>과도 감소</td>
<td>$(1-\epsilon)\hat{A}_t$ (clipped)</td>
<td>gradient 차단</td>
</tr>
</tbody></table>
<p>$\min$을 취하는 설계 결정이 핵심이다. </p>
<p>$\hat{A}_t &gt; 0$인 경우, $r_t &gt; 1+\epsilon$이면 $r_t\hat{A}_t &gt; (1+\epsilon)\hat{A}_t$이므로 <code>min</code>이 clipped 값을 선택하고 gradient가 0이 된다. </p>
<p>반대로 $r_t &lt; 1-\epsilon$이면 $r_t\hat{A}_t &lt; (1-\epsilon)\hat{A}_t$이므로 <code>min</code>이 unclipped 값을 선택하여 페널티가 그대로 흐른다.</p>
<p>이 메커니즘이 구현하는 것은 <strong>단방향 보수주의</strong>다: objective가 좋아지는 방향으로 $r_t$가 범위를 벗어나면 그 이득을 무시하고, 나빠지는 방향으로 벗어나면 끝까지 페널티를 준다. </p>
<p>$\text{min}$을 사용하지 않고 $\text{clip}(r_t, 1-\epsilon, 1+\epsilon)\hat{A}_t$만 썼다고 가정하면, $\hat{A}_t &lt; 0$ (결과가 나쁜 행동), $r_t &gt; 1+\epsilon$인 상황에서 나쁜 방향으로의 과도한 움직임을 허용한다. $r_t$ 값이 상한선인 $1+\epsilon$으로 잘리면서 목적 함수 값이 상수로 고정되어 버리기 때문이다. </p>
<p>즉, 평탄 구간 gradient가 0이 되고 기울기가 차단되어 결과적으로 모델이 나쁜 방향으로 과도하게 움직이는 것을 그대로 허용하고 방치하게 된다.</p>
<p>머신러닝 관점에서 $L^{CLIP}$은 <strong>함수 공간에서의 암묵적 정규화</strong>로 해석할 수 있다. 일반적인 딥러닝에서 $\ell_2$ 정규화가 가중치 파라미터가 비정상적으로 커지는 것을 억제하듯, PPO의 클리핑 메커니즘은 이전 정책과 현재 정책 간의 &#39;확률 비율($r_t$)&#39; 변화를 제한한다. </p>
<p>이전 세대의 TRPO 알고리즘이 정책 붕괴를 막기 위해 무거운 연산량을 동원하여 명시적인 KL 제약을 외부에 억지로 걸어야 했던 것과 대조적이다. PPO는 목적 함수 수식 자체에 min과 clip의 조합을 통해 이 강력한 제약과 방어 기제를 내재화한 것이다.</p>
<p><strong>Figure 1</strong>은 단일 타임스텝에서 $L^{CLIP}$의 형태를 시각화한다: A &gt; 0 (좋은 행동), A &lt; 0 (나쁜 행동):</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e461fe27-2987-4ab9-b923-65130c08ef25/image.png" alt=""></p>
<p>$r=1$ (점선 원)은 업데이트 전 초기 상태를 나타내며, 클리핑 구간을 벗어나는 영역에서 objective가 평탄해진다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/f99471bc-1431-4ba9-846d-e5d6c88be0e7/image.png" alt=""></p>
<p><strong>Figure 2</strong>는 실제 Hopper-v1의 첫 번째 업데이트에서 $\theta_\text{old}$에서 새로운 $\theta$ 방향으로의 선형 보간 경로를 따라 각 objective를 비교한다. </p>
<p>$L^{CPI}$는 단조 증가하지만 $L^{CLIP}$은 policy가 너무 멀어지면 감소하기 시작하는 lower bound를 형성한다—$L^{CLIP}$이 $L^{CPI}$의 pessimistic lower bound임이 직관적으로 확인된다.</p>
<hr>
<h2 id="4-adaptive-kl-penalty-coefficient">4. Adaptive KL Penalty Coefficient</h2>
<p>PPO가 제시하는 두 번째 변형은 KL divergence를 penalty로 사용하되 계수 $\beta$를 자동으로 조정하는 방식이다:</p>
<p>$$
L^{KLPEN}(\theta) = \hat{\mathbb{E}}<em>t\left[r_t(\theta)\hat{A}_t - \beta,\text{KL}[\pi</em>{\theta_\text{old}}(\cdot|s_t),, \pi_\theta(\cdot|s_t)]\right]
$$</p>
<p>각 업데이트 후, 실제 KL $d = \hat{\mathbb{E}}<em>t[\text{KL}[\pi</em>{\theta_\text{old}}, \pi_\theta]]$를 측정하여 $\beta$를 갱신한다:</p>
<p>$$
\beta \leftarrow \begin{cases} \beta / 2 &amp; \text{if } d &lt; d_\text{targ}/1.5 \ \beta \times 2 &amp; \text{if } d &gt; d_\text{targ} \times 1.5 \ \beta &amp; \text{otherwise} \end{cases}
$$</p>
<p>1.5와 2라는 숫자는 완전한 heuristic이며, 논문 자체도 알고리즘이 이에 민감하지 않다고 인정한다. 지수적 조정($\times 2$ 또는 $/2$)을 택한 이유는 $\beta$의 초기값과 무관하게 빠르게 수렴하기 위해서다—PID 제어기의 적분항(I)과 구조적으로 유사하다.</p>
<p>그러나 이 방식은 근본적인 약점을 가진다. <strong>한 번의 업데이트 이터레이션 내에서는 $\beta$가 고정된 채로 미니배치 SGD가 진행된다</strong>. KL이 이미 목표를 초과해도 $\beta$가 즉각 반응하지 않는다. </p>
<p>반면 clipping은 매 gradient step마다 자동으로 보호 작용을 한다—이것이 실험에서 Adaptive KL이 Clipping에 뒤지는 주요 원인으로 추정된다.</p>
<hr>
<h2 id="5-algorithm">5. Algorithm</h2>
<p>PPO 알고리즘은 다음의 세 가지 항을 동시에 최적화하는 단일 목적 함수를 사용한다.</p>
<p>$$
L^{CLIP+VF+S}(\theta) = \hat{\mathbb{E}}_t\left[L^{CLIP}_t(\theta) - c_1 L^{VF}_t(\theta) + c_2 S<a href="s_t">\pi_\theta</a>\right]
$$</p>
<blockquote>
<p><strong>각 항의 역할 및 세부 정의</strong></p>
</blockquote>
<ul>
<li>$L_t^{CLIP}(\theta)$: 정책 개선(Policy Improvement)을 담당. $\epsilon$ 범위 내에서 클리핑을 적용하여 파괴적인 업데이트 방지  <blockquote>
</blockquote>
</li>
<li>$L_t^{VF}(\theta)$: 가치 함수(Value Function) 학습을 위한 평균 제곱 오차(Squared-error Loss)<blockquote>
</blockquote>
</li>
<li>$$L_t^{VF} = (V_\theta(s_t) - V_t^{targ})^2$$여기서 $V_t^{targ}$는 시간차 타겟(TD Target)의 변형으로, 보통 $\hat{A}<em>t + V</em>{\theta_{old}}(s_t)$ 로 정의됨. 
즉, 실제 얻은 보상 기반의 총합(실제 Return 추정값)을 향해 가치 함수가 수렴하도록 학습시킴.<blockquote>
</blockquote>
</li>
<li>$S<a href="s_t">\pi_\theta</a>$: 엔트로피 보너스(Entropy Bonus). 정책의 확률 분포가 너무 일찍 하나로 굳어지는 것을 막고, 다양한 행동을 시도하도록 탐험(Exploration)을 장려.</li>
</ul>
<p>$c_1$과 $c_2$는 각 항의 영향력을 조절하는 가중치(Coefficient)다. Policy와 value function이 파라미터를 공유하는 경우 $c_1$이 중요해진다—두 loss의 스케일이 다르면 학습이 불안정해지기 때문이다. </p>
<ul>
<li><p>관측치(Observation)를 처리하는 공통 백본(Shared Backbone) 위에 정책 헤드(Actor)와 가치 헤드(Critic)가 동시에 존재하는 경우, 하나의 가중치 $\theta$로 두 손실을 동시에 최적화해야 한다.</p>
</li>
<li><p>이때 $L_t^{CLIP}$은 확률 비율이므로 보통 $[-0.1, 0.1]$의 매우 작은 스케일을 가지지만, $L_t^{VF}$는 환경 보상에 따라 수십에서 수백 스케일로 커질 수 있다.</p>
</li>
<li><p>$c_1$ 수치(보통 0.5)로 스케일을 강제로 조정하지 않으면 가치 함수의 거대한 기울기(Gradient)가 전체 신경망 학습을 지배해 버려 정책 학습이 붕괴된다.</p>
</li>
</ul>
<p>PPO 알고리즘의 전체 흐름(Algorithm 1)은 다음과 같다:</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/37e867fe-fd6d-4721-836a-752ef722940a/image.png" alt=""></p>
<blockquote>
<h4 id="step-1-데이터-수집-inner-for-loop">Step 1: 데이터 수집 (Inner For Loop)</h4>
</blockquote>
<ul>
<li>$N$명의 액터가 환경과 병렬로 상호작용하며, 각각 $T$ 타임스텝 동안 현재 정책 $\pi_{\theta_{old}}$로 롤아웃(Rollout)을 수행</li>
<li>(총 $N \times T$ 데이터 수집)각 타임스텝마다 일반화된 어드밴티지 추정(Generalized Advantage Estimation, GAE)을 통해 어드밴티지 $\hat{A}_t$를 계산<blockquote>
</blockquote>
$$
\hat{A}<em>t = \sum</em>{l=0}^{T-t-1}(\gamma\lambda)^l\delta_{t+l}, \quad \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)
$$<blockquote>
<h4 id="step-2-대리-목적-함수-최적화-surrogate-optimization">Step 2: 대리 목적 함수 최적화 (Surrogate Optimization)</h4>
</blockquote>
</li>
<li>수집한 $N \times T$개의 데이터 전체를 미니배치(Minibatch) 크기 $M$(보통 64 또는 256)으로 나누어 그래디언트 업데이트를 수행.<blockquote>
</blockquote>
</li>
<li>이 과정을 $K$ 에포크(Epochs)만큼 반복함. TRPO는 수집한 데이터를 한 번만 쓰고 버려 샘플 효율(Sample Efficiency)이 극도로 나빴지만, PPO는 클리핑이 정책 변화를 방어해 주므로 같은 데이터를 $K$번 안전하게 재사용 가능. (단, $K$가 너무 크면 클리핑 효과가 무력화될 수 있다.)</li>
</ul>
<blockquote>
<h4 id="step-3-정책-동기화-policy-update">Step 3: 정책 동기화 (Policy Update)</h4>
</blockquote>
<ul>
<li>$K$번의 반복 학습이 완료되면, 이전 정책 $\theta_{old}$를 새롭게 최적화된 정책 $\theta$로 교체하고, 이 새로운 정책으로 다시 Step 1의 데이터 수집 시작.</li>
</ul>
<p>기존 표준 정책 경사 Vanilla Policy Gradient 방식과의 가장 큰 차별점은 한 번 수집한 데이터를 $K$ epoch동안 버리지 않고 재사용한다는 것이다.</p>
<p>이때 $N$개의 병렬 액터가 각기 다른 탐험 궤적 을 동시에 수집하여 미니배치에 섞어 넣는다. </p>
<p>$K$ epoch동안 미니배치 학습이 반복되면서 업데이트할 가중치 $\theta$는 계속 변한다. 하지만 목적 함수 수식 $r_t(\theta) = \frac{\pi_\theta}{\pi_{\theta_{old}}}$의 분모에 있는 $\theta_{old}$는 이터레이션 시작 시점의 낡은 가중치로 고정되어 있다.</p>
<p>결국 후반부 에포크로 갈수록 비교 기준점($\theta_{old}$)이 너무 옛날 모델이 되어 심각한 편향이 발생한다. </p>
<p>이때 PPO의 클리핑 Clipping 메커니즘이 진가를 발휘한다. 두 정책 간의 확률 비율이 허용 범위를 벗어나지 못하게 잘라냄으로써, 이 낡은 기준점으로 인해 발생하는 편향이 무한정 증폭되는 것을 막아주는 이중 방어선 역할을 수행한다.</p>
<p>어드밴티지 $\hat{A}_t$ 계산에 쓰이는 GAE 파라미터 $\lambda$는 모델의 성능 평가 방식을 조율한다.</p>
<ul>
<li>$\lambda=0$: 바로 다음 스텝의 보상만 보는 1-step TD. 평가는 안정적이나 Variance 이 낮음, 시야가 좁아 편향이 높다(근시안적 평가).</li>
<li>$\lambda=1$: 에피소드 끝까지 실제 받은 보상을 다 더하는 Monte Carlo 리턴. 시야가 넓어 편향은 낮으나, 운에 따른 노이즈가 심해 분산이 높다.</li>
</ul>
<p>본 논문은 $\lambda=0.95$를 채택하여 두 극단 사이의 최적의 균형을 잡는다.</p>
<p>어드밴티지 $\hat{A}_t$ 의 1회 계산 및 재사용은 연산 효율을 극대화하는 핵심 포인트다. GAE로 정교하게 계산된 $\hat{A}_t$ 값은 매 에포크마다 새롭게 계산하는 것이 아니다. </p>
<p>이터레이션 초기에 $\theta_{old}$ 정책으로 롤아웃 Rollout 을 수행할 때 딱 한 번만 계산해 두고, 이후 $K$ 에포크의 반복 학습 내내 고정된 상수로 재사용한다.</p>
<hr>
<h2 id="6-experiments">6. Experiments</h2>
<h3 id="61-comparison-of-surrogate-objectives">6.1 Comparison of Surrogate Objectives</h3>
<p>Section 3과 4에서 제안한 objective 변형들을 직접 비교한다. MuJoCo 7개 연속 제어 환경(HalfCheetah, Hopper, InvertedDoublePendulum, InvertedPendulum, Reacher, Swimmer, Walker2d)에서 각 알고리즘을 3개 랜덤 시드로 1M 타임스텝 학습하여 총 21회 실행의 결과를 정규화한다.</p>
<p>정규화 방식: 각 환경에서 랜덤 정책의 점수를 0, 해당 실험의 최고 점수를 1로 shift/scale한 후 21개 실행을 평균낸다. 이 정규화는 HalfCheetah처럼 보상 절대값이 큰 환경이 결과를 지배하는 것을 방지한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/526540e5-de0b-4f88-bac1-9dc891e21cb6/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4493678c-5db0-4e45-9b00-befdaeaf9fa5/image.png" alt=""></p>
<p>No clipping이 -0.39라는 최악의 점수를 기록한 이유는 HalfCheetah에서 정책이 붕괴했기 때문이다—랜덤 정책보다도 나쁜 성능으로 평균을 극단적으로 끌어내렸다. 이것이 같은 데이터로 여러 번 unconstrained 업데이트를 하면 어떤 일이 생기는지를 실증적으로 보여준다.</p>
<p>Clipping에서 $\epsilon=0.2$가 최고(0.82)이며, $\epsilon$이 작으면(0.1) 업데이트가 지나치게 보수적이어서 학습이 느리고, 크면(0.3) 안정성을 잃는다. Adaptive KL은 Fixed KL보다 전반적으로 우수하지만 Clipping에는 미치지 못한다—앞서 설명한 이터레이션 내 $\beta$ 고정 문제가 원인으로 추정된다.</p>
<h3 id="62-comparison-to-other-algorithms-in-the-continuous-domain">6.2 Comparison to Other Algorithms in the Continuous Domain</h3>
<p>동일한 MuJoCo 7개 환경에서 6개 알고리즘을 1M 타임스텝 동안 비교한다: A2C, A2C+Trust Region, CEM(Cross-Entropy Method), PPO(Clip), Vanilla PG(Adaptive KL), TRPO.</p>
<p>전반적 결과: PPO는 “거의 모든” 환경에서 1위 또는 그에 준하는 성능을 보인다.</p>
<p>주목할 만한 환경별 관찰:</p>
<ul>
<li><strong>Walker2d</strong>: PPO가 3000+ 달성, 다른 방법들을 압도적으로 능가</li>
<li><strong>HalfCheetah</strong>: PPO가 초기 학습 속도 최고, 최종 성능도 우수</li>
<li><strong>Hopper</strong>: PPO &gt; TRPO, A2C는 낮은 성능대에 머뭄</li>
<li><strong>Swimmer</strong>: Vanilla PG Adaptive가 의외로 경쟁력 있음—환경 특성에 따른 예외</li>
</ul>
<p>비교의 공정성에 관해 한 가지 언급이 필요하다. CEM은 파라미터가 없는 진화적 방법으로 DNN과 결합 시 스케일링 문제가 있어 낮은 성능이 예상 가능하다. </p>
<p>더 의미 있는 비교는 PPO vs TRPO로, 둘이 유사하거나 PPO가 우세한 성능을 내면서 구현 복잡도는 PPO가 훨씬 낮다—이것이 PPO의 실용적 가치를 가장 잘 드러내는 비교다.</p>
<h3 id="63-showcase-in-the-continuous-domain-humanoid-running-and-steering">6.3 Showcase in the Continuous Domain: Humanoid Running and Steering</h3>
<p>고차원 연속 제어의 대규모 실험으로 세 가지 Roboschool 과제에서 PPO를 단독으로 학습한다:</p>
<ul>
<li><strong>RoboschoolHumanoid</strong>: 50M 스텝, ~3500 보상으로 안정적 수렴</li>
<li><strong>RoboschoolHumanoidFlagrun</strong>: 100M 스텝, ~2000 달성 (목표 위치가 주기적으로 무작위 변경)</li>
<li><strong>RoboschoolHumanoidFlagrunHarder</strong>: 100M 스텝, ~2500 달성 (큐브에 맞은 후 쓰러진 상태에서 일어나야 함)</li>
</ul>
<p>이 섹션의 한계는 다른 알고리즘과의 비교 없이 PPO 단독 결과만 제시한다는 점이다. 섹션 제목 “showcase”가 시사하듯, 정량적 우위 증명보다는 PPO가 장기간 대규모 고차원 문제에서도 안정적으로 학습 가능함을 질적으로 보여주는 것이 목적이다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/b12eef78-11dc-49c1-a614-9445067ade79/image.png" alt=""></p>
<p><strong>Figure 5</strong>의 프레임 시퀀스는 로봇이 목표 방향으로 달리다가 목표 위치 변경 후 방향을 전환하는 자연스러운 locomotion 행동이 창발했음을 시각적으로 확인한다.</p>
<p>이 실험과 병행하여 Heess et al.(2017)이 PPO의 Adaptive KL variant를 독립적으로 사용하여 유사한 humanoid 제어 결과를 얻었다고 논문은 언급한다.</p>
<h3 id="64-comparison-to-other-algorithms-on-the-atari-domain">6.4 Comparison to Other Algorithms on the Atari Domain</h3>
<p>Atari 49개 게임에서 A2C, ACER, PPO를 각 3개 시드로 40M 프레임(= 10M timesteps) 학습한다. 비교 기준은 두 가지다: 전체 학습 기간의 평균 보상(빠른 학습 능력)과 마지막 100 에피소드의 평균 보상(최종 성능).</p>
<p><strong>Table 2 — 49개 게임 “승리” 횟수</strong></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/8d0f8775-a415-471f-913b-b9c867392a4e/image.png" alt=""></p>
<p>두 기준의 결과가 역전되는 것이 흥미롭다. PPO는 초기 학습 속도에서 압도적으로 우세(30승)하지만, 최종 성능에서는 ACER에 뒤진다(19승 vs 28승). </p>
<p>이 역전의 구조적 원인은 ACER의 experience replay에 있다: </p>
<p>ACER는 과거 데이터를 off-policy correction과 함께 재사용하므로 같은 프레임 수에서 더 많은 학습이 누적된다. </p>
<p>PPO는 on-policy 알고리즘으로 각 이터레이션의 NT 샘플을 K 에폭 후 버리기 때문에, 학습 후반부로 갈수록 누적 샘플 활용 효율에서 뒤처진다.</p>
<p>PPO가 압도적인 게임들(Enduro, Kangaroo, 원문 Table 6 참조)의 공통점은 exploration보다 안정적인 정책 실행이 중요한 경우다. </p>
<p>PPO의 entropy bonus가 이 게임들에서 효과적으로 작용했을 가능성이 있다. MontezumaRevenge에서 PPO가 42점을 기록한 것은 셋 중 유일하게 0을 넘은 것이지만, 이 게임의 최고 기록은 수천 점이므로 실질적 의미는 제한적이다.</p>
<p>40M 프레임이라는 실험 범위에 관해서도 주의가 필요하다. Atari에서 인간 수준 성능에는 보통 수억 프레임이 필요하다. PPO의 초기 학습 속도 이점이 더 긴 학습에서도 유지되는지는 이 실험만으로 알 수 없다.</p>
<h2 id="7-conclusion">7. Conclusion</h2>
<p>논문은 PPO를 세 가지 측면에서 정리한다.</p>
<ul>
<li><p><strong>달성한 것</strong>: TRPO가 constraint 최적화로 달성한 안정적 업데이트를, clipped surrogate objective라는 단순한 1차 최적화 기법으로 재현했다. 동일 데이터의 다중 에폭 재사용을 안전하게 가능하게 하여 샘플 효율을 높였다.</p>
</li>
<li><p><strong>실증적 우위</strong>: MuJoCo 7개 환경과 Atari 49개 게임을 포함한 총 59개 이상의 태스크에서 A2C, TRPO 등 기존 방법들 대비 경쟁력 있는 성능을 일관되게 보였다.</p>
</li>
<li><p><strong>남겨진 것</strong>: 논문 스스로도 인정하듯, clipping이 policy improvement를 보장한다는 이론적 증명은 없다. 
TRPO의 단조 향상 보장과 달리 PPO는 “경험적으로” 작동한다. 또한 K 에폭, T horizon, N 액터 수 등 하이퍼파라미터의 선택이 환경마다 달라 새 환경에 적용할 때의 가이드가 부족하다.</p>
</li>
</ul>
<p>실용적 관점에서 PPO의 가장 큰 의의는 “좋은 알고리즘이 반드시 복잡할 필요는 없다”는 것을 보여준 데 있다. </p>
<p>이 단순성이 이후 PPO가 RLHF(InstructGPT, ChatGPT)의 표준 알고리즘으로 채택된 배경이다.</p>
<hr>
<h2 id="appendix">Appendix</h2>
<h3 id="a-hyperparameters">A. Hyperparameters</h3>
<p>세 가지 도메인에 사용된 하이퍼파라미터를 정리한다:</p>
<table>
<thead>
<tr>
<th>파라미터</th>
<th>MuJoCo</th>
<th>Roboschool</th>
<th>Atari</th>
</tr>
</thead>
<tbody><tr>
<td>Horizon $T$</td>
<td>2048</td>
<td>512</td>
<td>128</td>
</tr>
<tr>
<td># epochs $K$</td>
<td>10</td>
<td>15</td>
<td>3</td>
</tr>
<tr>
<td>Minibatch size</td>
<td>64</td>
<td>4096</td>
<td>256 (32×8)</td>
</tr>
<tr>
<td>Discount $\gamma$</td>
<td>0.99</td>
<td>0.99</td>
<td>0.99</td>
</tr>
<tr>
<td>GAE $\lambda$</td>
<td>0.95</td>
<td>0.95</td>
<td>0.95</td>
</tr>
<tr>
<td>Adam stepsize</td>
<td>$3\times10^{-4}$</td>
<td>adaptive</td>
<td>$2.5\times10^{-4}\times\alpha$</td>
</tr>
<tr>
<td>Clipping $\epsilon$</td>
<td>0.2</td>
<td>—</td>
<td>$0.1\times\alpha$</td>
</tr>
<tr>
<td># actors $N$</td>
<td>—</td>
<td>32~128</td>
<td>8</td>
</tr>
</tbody></table>
<p>Atari에서 $\alpha$는 학습 진행에 따라 $1 \to 0$으로 선형 감소(annealing)된다. 즉 stepsize와 clipping 범위가 동시에 줄어들어 학습 후반에 점점 더 보수적인 업데이트를 수행한다—이는 fine-tuning 효과를 낸다. 이 annealing이 Atari 결과에 얼마나 기여했는지 ablation이 없다는 점은 이 실험 설계의 주요 누락이다.</p>
<p>도메인 간 $K$의 차이(MuJoCo 10, Atari 3)도 주목할 만하다. Atari에서 $K=3$으로 제한한 것은 연속 행동 공간보다 이산 Atari에서 다중 에폭 업데이트가 정책을 더 빠르게 불안정하게 만들기 때문으로 추정된다. </p>
<p>MuJoCo에서는 $T=2048$의 긴 horizon으로 충분한 데이터를 확보하고 10 에폭을 사용하는 반면, Atari는 $T=128$의 짧은 horizon으로 빠르게 rollout하고 에폭을 제한한다.</p>
<h3 id="b-performance-on-more-atari-games">B. Performance on More Atari Games</h3>
<p>Appendix B는 49개 게임 전체의 개별 점수를 제시한다(Table 6). 마지막 100 에피소드 기준으로 일부 주목할 수치를 정리한다:</p>
<p>게임마다 우위 알고리즘이 달라 패턴을 단순화하기 어렵다. 전반적으로 ACER는 장기 학습에서 높은 최댓값에 도달하는 게임이 많고, PPO는 일관되게 A2C를 능가하면서 상당수 게임에서 ACER와 경쟁한다. </p>
<p>Figure 6의 학습 곡선은 3개 시드의 분산이 게임마다 매우 다름을 보여주며, 일부 게임에서는 시드 간 차이가 알고리즘 간 차이보다 크다—이는 단순 “승리 횟수” 집계의 통계적 취약점이다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[DAgger : A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning (2011)]]></title>
            <link>https://velog.io/@choonsik_mom/DAgger-A-Reduction-of-Imitation-Learning-and-Structured-Prediction-to-No-Regret-Online-Learning-2011</link>
            <guid>https://velog.io/@choonsik_mom/DAgger-A-Reduction-of-Imitation-Learning-and-Structured-Prediction-to-No-Regret-Online-Learning-2011</guid>
            <pubDate>Sat, 11 Apr 2026 00:16:23 GMT</pubDate>
            <description><![CDATA[<table>
<thead>
<tr>
<th>항목</th>
<th>내용</th>
</tr>
</thead>
<tbody><tr>
<td><strong>제목</strong></td>
<td><a href="https://arxiv.org/pdf/1011.0686">A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning </a></td>
</tr>
<tr>
<td><strong>저자</strong></td>
<td>Stéphane Ross, Geoffrey J. Gordon, J. Andrew Bagnell</td>
</tr>
<tr>
<td><strong>발표</strong></td>
<td>AISTATS 2011 (Proceedings of the 14th International Conference on Artificial Intelligence and Statistics)</td>
</tr>
<tr>
<td><strong>소속</strong></td>
<td>Carnegie Mellon University</td>
</tr>
<tr>
<td><strong>핵심 알고리즘</strong></td>
<td>DAgger (Dataset Aggregation)</td>
</tr>
</tbody></table>
<hr>
<h2 id="main-idea">Main Idea</h2>
<h3 id="문제-분포-이동과-오류의-제곱적-복합">문제: 분포 이동과 오류의 제곱적 복합</h3>
<p>순차 예측(sequential prediction)이란 시간 $t = 1, 2, \ldots, T$에 걸쳐 현재 상태 $s_t$를 관측하고 행동 $a_t$를 선택하는 과정이다. 전통적인 지도학습 기반 모방 학습은 전문가(expert) $\pi^<em>$가 방문하는 상태 분포 $d_{\pi^</em>}$ 위에서 정책 $\hat{\pi}$을 학습한다. 즉, 전문가 궤적에서 (상태, 행동) 쌍을 수집하고 지도학습으로 정책을 학습하는 것이다.</p>
<p>그러나 <strong>실행 시(test time)에는 $\hat{\pi}$ 자신이 유도하는 분포 $d_{\hat{\pi}}$에서 행동해야 한다.</strong> $\hat{\pi}$가 전문가와 조금이라도 다른 행동을 하면, 그 이후로 전문가가 방문하지 않던 새로운 상태에 진입하게 되고, 그 상태에서 또 오류를 범하며 더욱 낯선 상태로 벗어난다. 이것이 <strong>오류의 복합(compounding errors)</strong> 문제다.</p>
<p>정량적으로, 전문가 분포 하에서 학습된 정책의 시간당 평균 오류가 $\epsilon$이라면, 실행 시 실제 비용은 최대 다음과 같이 증가한다:</p>
<p>$$
J(\hat{\pi}) \leq J(\pi^*) + uT^2\epsilon
$$</p>
<p>여기서 $T$는 궤적 길이(horizon), $u$는 하나의 실수가 미래에 미치는 최대 추가 비용, $\epsilon$은 전문가 분포 하에서의 최선 모방 오류다. 즉, 단순 지도학습은 $T^2$ 수준의 <strong>제곱적 성능 저하</strong>를 피할 수 없다.</p>
<p>이 문제를 해결하려는 기존 접근법들은 각각 고유한 한계를 가졌다.</p>
<table>
<thead>
<tr>
<th>방법</th>
<th>정책 유형</th>
<th>이터레이션 수</th>
<th>성능 보장</th>
</tr>
</thead>
<tbody><tr>
<td>지도학습 (Supervised)</td>
<td>결정론적 정상</td>
<td>1</td>
<td>$J(\pi^*) + uT^2\epsilon$</td>
</tr>
<tr>
<td>Forward Training</td>
<td>비정상(T개 분리)</td>
<td>$T$</td>
<td>$J(\pi^*) + uT\epsilon$</td>
</tr>
<tr>
<td>SMILe / SEARN</td>
<td>확률적 정상(혼합)</td>
<td>$O(T^2 \log T)$</td>
<td>$J(\pi^*) + uT\epsilon$</td>
</tr>
<tr>
<td><strong>DAGGER</strong></td>
<td><strong>결정론적 정상</strong></td>
<td><strong>$\tilde{O}(T)$</strong></td>
<td><strong>$J(\pi^*) + uT\epsilon_N$</strong></td>
</tr>
</tbody></table>
<p>Forward Training은 $T$가 크거나 미리 정의되지 않으면 비현실적이다. SMILe과 SEARN은 성능 보장을 선형으로 개선하지만, 반복마다 이전 정책들을 혼합하는 <strong>확률적(stochastic) 정책</strong>을 학습하므로 실행 시 불안정하고, 과도하게 많은 이터레이션($O(T^2 \log T)$)이 필요하다.</p>
<h3 id="해결-no-regret-온라인-학습으로의-환원">해결: No-Regret 온라인 학습으로의 환원</h3>
<p>DAGGER의 핵심 통찰은 위 문제를 <strong>온라인 학습으로의 환원(reduction)</strong>으로 재해석하는 것이다.</p>
<p>원래 목표는 다음의 비볼록(non-convex) 문제를 푸는 것이다:</p>
<p>$$
\hat{\pi} = \arg\min_{\pi \in \Pi} \mathbb{E}_{s \sim d_\pi}[\ell(s, \pi)]
$$</p>
<p>이것이 비볼록인 이유는 <strong>목적함수의 입력 분포 $d_\pi$ 자체가 최적화 변수 $\pi$에 의존</strong>하기 때문이다. $\ell(s, \cdot)$이 볼록이더라도 $\mathbb{E}_{s \sim d_\pi}[\ell(s,\pi)]$는 볼록이 아니다.</p>
<p>DAGGER는 이 문제를 다음과 같이 우회한다. 이터레이션 $i$에서 <strong>분포를 고정</strong>시키고, 고정된 분포 $d_{\pi_i}$ 위에서의 손실을:</p>
<p>$$
\ell_i(\pi) = \mathbb{E}<em>{s \sim d</em>{\pi_i}}[\ell(s, \pi)]
$$</p>
<p>로 정의한다. 이 손실은 $\pi$에 대해 <strong>볼록(convex)</strong>이다(분포가 $\pi$에 독립적이므로). 이제 각 라운드에서 볼록 손실이 주어지는 온라인 학습 게임으로 환원되었으므로, Follow-The-Leader(FTL) 등 임의의 <strong>no-regret 알고리즘</strong>을 적용할 수 있다.</p>
<p>No-regret 조건은 다음과 같이 표현된다:</p>
<p>$$
\frac{1}{N}\sum_{i=1}^N \ell_i(\hat{\pi}<em>i) - \min</em>{\pi \in \Pi} \frac{1}{N}\sum_{i=1}^N \ell_i(\pi) \leq \gamma_N, \quad \gamma_N \to 0 \text{ as } N \to \infty
$$</p>
<p>이 온라인 학습의 후회(regret)가 0에 수렴하면, DAGGER는 목표 최적화 문제의 해에 점근적으로 도달한다.</p>
<hr>
<h2 id="introduction">Introduction</h2>
<h3 id="문제-설정과-동기">문제 설정과 동기</h3>
<p>모방 학습(imitation learning)의 전통적인 접근은 전문가(expert)의 시연 데이터를 수집하고, 이를 지도학습으로 학습하여 정책(policy)을 만드는 것이다. 그러나 이 접근에는 근본적인 결함이 있다. 학습 시 사용한 전문가 시연의 상태 분포 $d_{\pi^*}$와, 학습된 정책 $\hat{\pi}$가 실제 실행 시 방문하는 상태 분포 $d_{\hat{\pi}}$가 서로 다르기 때문이다.</p>
<p>이 문제를 직관적으로 이해하면 다음과 같다. 자율주행 정책이 학습 시 한 번도 보지 못한 차선 이탈 상황에 처하면, 그 상황에서 어떻게 복구해야 하는지 전혀 학습하지 못했으므로 추가적인 실수를 범하고, 이 실수가 또 다른 전문가가 방문하지 않은 상태를 만들며 오류가 연쇄적으로 복합된다. $T$스텝 문제에서 이 복합 효과는 최악의 경우 비용을 $T^2$ 배로 증폭시킨다.</p>
<h3 id="기존-접근법의-한계">기존 접근법의 한계</h3>
<p>논문은 기존 해결책들을 세 가지로 정리하고 각각의 한계를 명확히 진단한다.</p>
<blockquote>
</blockquote>
<ul>
<li><strong>지도학습(Supervised Approach)</strong>: 가장 단순하지만 distribution shift로 인해 $T^2\epsilon$ 오류를 피할 수 없다.  <blockquote>
</blockquote>
</li>
<li><strong>Forward Training</strong>: 각 타임스텝 $t$마다 별도의 정책 $\pi_t$를 순차 학습하여 비정상(non-stationary) 정책을 만든다. 이론적으로 성능 보장이 있으나 $T$가 크거나 미리 정해지지 않으면 비현실적이며, $T$개의 정책을 모두 저장하고 실행해야 한다.<blockquote>
</blockquote>
</li>
<li><strong>SMILe / SEARN</strong>: 반복마다 새 정책을 이전 정책들과 혼합(mix)하여 점진적으로 학습 분포를 개선한다. 그러나 두 가지 근본적 한계가 있다. 첫째, 반환되는 정책이 여러 정책의 확률적 혼합(stochastic mixture)이므로, 실행 중 무작위로 나쁜 정책을 선택할 가능성이 상존한다. 둘째, 이론적 보장을 위해 $O(T^2 \log T)$번의 이터레이션이 필요하다.</li>
</ul>
<h3 id="dagger의-위치">DAGGER의 위치</h3>
<p>이러한 배경에서 DAGGER는 다음 목표를 동시에 달성한다.</p>
<ul>
<li><strong>결정론적 정상 정책</strong>: 실행 시 무작위성이 없는 단일 정책</li>
<li><strong>선형 성능 보장</strong>: $J(\hat{\pi}) \leq J(\pi^*) + uT\epsilon_N$ ($u$는 환경 상수, $\epsilon_N$은 학습 오류)</li>
<li><strong>효율적 이터레이션</strong>: $\tilde{O}(T)$ 이터레이션으로 충분</li>
<li><strong>단순한 구현</strong>: 기존 지도학습 알고리즘을 블랙박스로 재사용 가능</li>
</ul>
<hr>
<h2 id="2-preliminaries">2. Preliminaries</h2>
<h3 id="기본-표기법과-문제-정의">기본 표기법과 문제 정의</h3>
<p>논문은 다음 설정 하에서 순차 예측을 정의한다.</p>
<ul>
<li><strong>상태 공간</strong> $\mathcal{S}$: 입력 상태(이미지, 텍스트 컨텍스트 등)</li>
<li><strong>행동 공간</strong> $\mathcal{A}$: 정책의 출력(조향값, 다음 문자 등)</li>
<li><strong>정책(policy)</strong> $\pi: \mathcal{S} \to \mathcal{A}$: 상태를 행동으로 매핑하는 함수</li>
<li><strong>지평선(horizon)</strong> $T$: 예측 스텝 수</li>
<li><strong>비용 함수</strong> $C: \mathcal{S} \times \mathcal{A} \to [0, 1]$: 각 스텝의 즉각적 비용</li>
<li><strong>전문가 정책</strong> $\pi^*$: 최적 또는 근사 최적 참조 정책</li>
</ul>
<p>정책 $\pi$의 총 기대 비용은</p>
<p>$$
J(\pi) = \sum_{t=1}^T \mathbb{E}_{s_t \sim d_\pi^t}[C(s_t, \pi(s_t))]
$$</p>
<p>이고, 여기서 $d_\pi^t$는 정책 $\pi$가 $t$번째 스텝에서 방문하는 상태의 분포이다. $d_\pi = \frac{1}{T}\sum_{t=1}^T d_\pi^t$를 정책 $\pi$의 평균 상태 방문 분포(average state visitation distribution)로 정의하면</p>
<p>$$
J(\pi) = T \cdot \mathbb{E}_{s \sim d_\pi}[C(s, \pi(s))]
$$</p>
<p>로 간결하게 쓸 수 있다. 대리 손실(surrogate loss) $\ell: \mathcal{S} \times \mathcal{A} \to [0, 1]$은 $C$를 상한(upper bound)하도록 선택되며, 0-1 분류 오류가 대표적인 예이다.</p>
<p>정책 클래스 $\Pi$ 내에서 DAGGER가 달성하려는 목표는</p>
<p>$$
\hat{\pi} = \arg\min_{\pi \in \Pi} \mathbb{E}_{s \sim d_\pi}[\ell(s, \pi)]
$$</p>
<p>이다. 이 문제가 직접 풀기 어려운 근본 이유는 <strong>목적함수의 입력 분포 $d_\pi$ 자체가 최적화 변수 $\pi$에 의존</strong>하기 때문이다. $\ell(s, \pi)$이 $\pi$에 대해 볼록이더라도 $\mathbb{E}<em>{s \sim d_\pi}[\ell(s, \pi)]$은 비볼록(non-convex)이 된다. 두 정책 $\pi_A$와 $\pi_B$의 볼록 결합 $\pi_\lambda$에 대해 $d</em>{\pi_\lambda} \neq \lambda d_{\pi_A} + (1-\lambda)d_{\pi_B}$이므로 표준 볼록 최적화 도구를 직접 적용할 수 없다.</p>
<p><strong>Theorem 2.1 (Ross and Bagnell, 2010)</strong> Theorem 2.2를 통해 전문가 Q-함수와 대리 손실 간의 연결이 확립된다. $\pi$와 $\pi^*$ 사이의 행동 차이로 인한 미래 누적 비용 증가분이</p>
<p>$$
Q^{\pi^<em>}_{T-t+1}(s, a) - Q^{\pi^</em>}_{T-t+1}(s, \pi^*(s)) \leq u \cdot \ell(s, \pi)
$$</p>
<p>를 만족하는 상수 $u$가 존재하면, 정책 $\pi$의 기대 총 비용은</p>
<p>$$
J(\pi) \leq J(\pi^*) + uT \cdot \mathbb{E}_{s \sim d_\pi}[\ell(s, \pi)]
$$</p>
<p>로 바운드된다. 이 결과는 DAGGER가 $\mathbb{E}_{s \sim d_\pi}[\ell(s, \pi)]$를 최소화하는 것이 곧 $J(\pi)$를 $J(\pi^*)$에 가깝게 만드는 것임을 보장한다.</p>
<h3 id="21-supervised-approach-to-imitation">2.1 Supervised Approach to Imitation</h3>
<h4 id="지도학습의-오류-복합-분석">지도학습의 오류 복합 분석</h4>
<p>가장 단순한 모방 학습은 전문가가 방문하는 상태에서 행동 데이터를 수집하고 지도학습을 수행하는 것이다:</p>
<p>$$
\hat{\pi} = \arg\min_{\pi \in \Pi} \mathbb{E}<em>{s \sim d</em>{\pi^*}}[\ell(s, \pi)]
$$</p>
<p>이 방법의 문제를 수식으로 이해하면 명확하다. 학습된 정책이 달성하는 전문가 분포에서의 손실을 $\epsilon$이라 하면 $\mathbb{E}<em>{s \sim d</em>{\pi^*}}[\ell(s, \hat{\pi})] \leq \epsilon$이다. 그러나 우리가 실제로 원하는 것은 자신의 분포에서의 성능 $\mathbb{E}<em>{s \sim d</em>{\hat{\pi}}}[\ell(s, \hat{\pi})]$이다.</p>
<p>두 분포 $d_{\pi^*}$와 $d_{\hat{\pi}}$ 사이의 차이를 TV 거리로 측정하면 최대 $T$까지 증가할 수 있다. 이를 활용하면</p>
<p>$$
\mathbb{E}<em>{s \sim d</em>{\hat{\pi}}}[\ell(s, \hat{\pi})] \leq \epsilon + |d_{\hat{\pi}} - d_{\pi^*}|<em>1 \cdot \ell</em>{\max}
$$</p>
<p>이고, 최악의 경우 $|d_{\hat{\pi}} - d_{\pi^*}|_1 = O(T\epsilon)$이 되어 (정책이 각 스텝에서 $\epsilon$ 확률로 실수하고 실수 후 분포가 완전히 달라지는 경우)</p>
<p>$$
J(\hat{\pi}) \leq J(\pi^*) + O(uT^2\epsilon)
$$</p>
<p>이 된다. 이것이 논문이 “Quadratic growth”라 부르는 오류 복합 현상이다. $T=100$인 시스템에서 지도학습이 $\epsilon=0.01$의 손실을 달성해도 실제 비용은 $100^2 \times 0.01 = 100$ 배 증가할 수 있다.</p>
<p>Theorem 2.1이 이를 정식화한다: 지도학습으로 학습된 정책 $\hat{\pi}$가 $\epsilon = \mathbb{E}<em>{s \sim d</em>{\pi^*}}[\ell(s, \hat{\pi})]$를 달성하면</p>
<p>$$
J(\hat{\pi}) - J(\pi^*) \leq uT(T-1)\epsilon
$$</p>
<h3 id="22-forward-training">2.2 Forward Training</h3>
<h4 id="비정상-정책의-순차-학습">비정상 정책의 순차 학습</h4>
<p>Forward Training은 distribution shift 문제를 우회하기 위해 각 타임스텝에 독립적인 정책을 학습한다. 구체적으로, 스텝 $t$의 정책 $\pi_t$는 이전에 학습된 정책들 $\pi_1, \ldots, \pi_{t-1}$을 실행하여 수집한 상태 분포 $d^t_{\pi_{1:t-1}}$에서 지도학습으로 학습된다.</p>
<p>이 접근의 이론적 보장은 다음과 같다. 각 정책 $\pi_t$가 자신의 학습 분포에서 $\epsilon_t$의 손실을 달성하면</p>
<p>$$
J(\hat{\pi}<em>{1:T}) - J(\pi^*) \leq u \sum</em>{t=1}^T \epsilon_t
$$</p>
<p>지도학습의 $T^2\epsilon$ 대비 선형 $uT\epsilon$으로 개선된다.</p>
<p><strong>한계</strong>: 첫째, $T$개의 서로 다른 정책 $\pi_1, \ldots, \pi_T$를 학습하고 보관해야 한다. 둘째, 실행 시점 $t$를 알아야 올바른 $\pi_t$를 선택할 수 있다. 셋째, $T$가 미리 정해지지 않거나 가변적인 경우 적용 불가능하다. 이 세 가지 이유로 Forward Training은 비정상(non-stationary) 정책이라는 근본 한계를 갖는다.</p>
<h3 id="23-stochastic-mixing-iterative-learning">2.3 Stochastic Mixing Iterative Learning</h3>
<h4 id="smile과-searn의-구조">SMILe과 SEARN의 구조</h4>
<p>SMILe(Stochastic Mixing Iterative Learning)과 SEARN은 반복적으로 정책을 개선하면서 distribution shift 문제를 완화한다. 기본 아이디어는 학습된 정책 $\hat{\pi}_i$와 전문가 $\pi^*$를 혼합하여 다음 이터레이션의 탐색 정책을 만드는 것이다.</p>
<p>SMILe의 핵심 절차를 요약하면 다음과 같다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/db35b288-0257-45dc-84a7-191599f6f374/image.png" alt=""></p>
<ul>
<li><strong>이론적 보장</strong>: SMILe은 $uT\epsilon$ 수준의 선형 보장을 달성하지만, 반환하는 정책이 <strong>확률적 혼합(stochastic mixture)</strong>이라는 근본 문제가 있다. 
구체적으로 $N$번 이터레이션 후 반환 정책은 $\sum_{i=1}^N w_i \hat{\pi}_i$로, 매 스텝마다 어느 $\hat{\pi}_i$를 실행할지 무작위로 선택한다. 단 하나의 나쁜 $\hat{\pi}_i$가 혼합 내에 남아있으면 그 이터레이션이 선택될 때마다 나쁜 결정이 내려진다.</li>
</ul>
<p>SEARN은 구조화 예측 맥락에서 유사한 아이디어를 구현한다. 두 방법 모두 보장을 얻으려면 $\alpha$가 충분히 작아야 하는데, 이는 $O(T^2 \log T)$번의 이터레이션을 요구한다. $T$가 큰 경우 이는 비현실적으로 많은 반복 횟수다.</p>
<hr>
<h2 id="3-dataset-aggregation">3. Dataset Aggregation</h2>
<h3 id="핵심-아이디어-데이터셋-집계">핵심 아이디어: 데이터셋 집계</h3>
<p>DAGGER의 직관은 다음 질문에서 출발한다: **&quot;정책이 방문하는 상태에서 전문가 레이블을 수집하여 훈련 데이터에 추가하면 어떻게 될까?&quot; **</p>
<p>점진적으로 정책의 유도 분포 $d_{\hat{\pi}}$를 커버하는 데이터가 축적되면서, 결국 정책이 자신이 방문하는 모든 상태에서 올바른 행동을 학습하게 된다.</p>
<p>알고리즘은 다음과 같다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/3114c61b-1803-4414-bf60-1293411e100e/image.png" alt=""></p>
<ul>
<li><p>입력: 전문가 정책(Expert Policy) $\pi^*$, 정책 클래스(Policy Class) $\Pi$, 혼합 비율 스케줄(Mixing Ratio Schedule) ${\beta_i}$ ($\beta_i \in [0,1]$)</p>
</li>
<li><p>출력: 검증 성능 기준 최선 정책 $\hat{\pi}_i$</p>
</li>
<li><p>초기화: 데이터셋 $D \leftarrow \emptyset$, $\hat{\pi}_1 \leftarrow \Pi$에서 임의 선택반복 수행 ($i = 1, 2, ..., N$):</p>
</li>
</ul>
<blockquote>
<p><strong>Step 1. 혼합 정책(Mixture Policy) 구성</strong>
$\pi_i = \beta_i \cdot \pi^* + (1-\beta_i) \cdot \hat{\pi}_i$
(매 시간 스텝마다 독립적으로: $\beta_i$ 확률로 전문가 행동 선택, $1-\beta_i$ 확률로 현재 학습 정책 행동 선택)</p>
</blockquote>
<p>위 수식은 궤적(Trajectory) 전체를 전문가나 학습자 중 한 명에게 온전히 맡기는 방식이 아니다. 매 시간 스텝(Time Step)마다 독립적으로 동전을 던져 누구의 행동(Action)을 따를지 결정한다.</p>
<ul>
<li><p><strong>이론적 의미</strong>: $T$ 스텝 전체에서 단 한 번도 전문가가 개입하지 않을 확률은 $(1-\beta_i)^T$이다. 알고리즘의 오차 한계를 수학적으로 증명할 때, 매 스텝 분리되어 확률적으로 개입한다는 이 가정이 핵심적으로 쓰인다.</p>
</li>
<li><p><strong>실무적 적용</strong>: 10분짜리 주행 테스트를 할 때, 매 초마다 주사위를 굴려 베테랑 강사가 핸들을 잡을지 초보자가 핸들을 잡을지 결정하며 주행 데이터를 생성하는 것과 같다. 일반적으로 학습 횟수 $i$가 증가할수록 $\beta_i$의 값을 0에 가깝게 줄여나가면서 초보자(학습 정책)가 스스로 판단하는 비중을 점진적으로 높인다.</p>
</li>
</ul>
<blockquote>
<p><strong>Step 2. $\pi_i$ 실행하여 $T$-스텝 궤적</strong>(Trajectory) 수집
방문 상태: $s_1, s_2, ..., s_T$</p>
</blockquote>
<blockquote>
<p><strong>Step 3. 방문 상태에 전문가 레이블(Expert Label) 부여</strong>
$D_i = {(s, \pi^<em>(s)) : s \in {s_1,...,s_T}}$(실제로 취한 행동과 무관하게 $\pi^</em>$를 레이블로 사용)</p>
</blockquote>
<p>데이터셋을 구성할 때, 방문한 모든 상태(State) $s$에 대해 당시의 실제 행동 주체가 누구였는지와 무관하게 오직 전문가 정책 $\pi^*(s)$의 행동만을 정답 레이블로 기록한다.</p>
<ul>
<li><p><strong>이론적 의미</strong>: 이 단계에서 가장 중요한 것은 해당 상태 $s$가 방문되었다는 사실 자체다. 
학습 모델이 아직 미숙하여 엉뚱한 상태 영역으로 벗어났더라도, 그 낯선 상태에서 어떻게 행동해야 하는지 전문가의 정답을 쿼리하여 데이터셋에 추가한다. 
이를 통해 모방 학습 특유의 분포 이동(Distribution Shift) 문제를 교정한다.</p>
</li>
<li><p><strong>실무적 적용</strong>: 운전 연수 중 초보자가 실수로 차를 중앙선 부근까지 몰고 갔다고 가정한다. 
중앙선을 밟을 뻔한 아찔한 상황(상태 $s$)을 만든 원흉은 초보자이지만, 오답 노트(데이터셋)에는 &#39;중앙선 부근에 위치했을 때의 정답 = 강사의 신속한 차선 복귀 핸들링($\pi^*(s)$)&#39;이라고 기록하는 것과 같다. 
당시에 실제로 강사가 핸들을 뺏었는지, 초보자가 당황해서 브레이크를 밟았는지 등은 데이터 기록에 전혀 영향을 주지 않는다.</p>
</li>
</ul>
<blockquote>
<p><strong>Step 4. 데이터셋 누적 집계</strong>
$D \leftarrow D \cup D_i$</p>
</blockquote>
<blockquote>
<p><strong>Step 5. 집계된 전체 $D$에서 지도 학습(Supervised Learning)</strong>
$\hat{\pi}<em>{i+1} = argmin</em>{\pi \in \Pi} E_{(s,a) \in D}[\ell(s,\pi)]$</p>
</blockquote>
<ul>
<li>종료: 검증 성능 기준 최선 $\hat{\pi}_i$ 반환</li>
</ul>
<h3 id="β-스케줄의-설계">β 스케줄의 설계</h3>
<p>혼합 비율 $\beta_i$의 선택이 알고리즘의 거동을 결정한다. 이론적 요구 조건은 단 하나다:</p>
<p>$$
\bar{\beta}<em>N = \frac{1}{N}\sum</em>{i=1}^N \beta_i \to 0 \quad \text{as } N \to \infty
$$</p>
<p>이를 만족하는 다양한 스케줄이 가능하며, 논문은 세 가지를 구체적으로 분석한다.</p>
<blockquote>
<p><strong>스케줄 1: $\beta_i = \mathbb{I}(i=1)$</strong></p>
</blockquote>
<p>첫 번째 이터레이션에서만 $\beta_1 = 1$ (순수 전문가), 이후에는 $\beta_i = 0$ (순수 학습 정책). 이 설정은 파라미터가 전혀 없고, 실전에서 대부분의 경우 가장 좋은 성능을 보인다. 이론적으로도 보정 항(correction term)이 $\frac{2\ell_{\max}}{N}$으로 가장 빠르게 사라진다.</p>
<blockquote>
<p><strong>스케줄 2: $\beta_i = p^{i-1}$ (기하급수적 감소)</strong></p>
</blockquote>
<p>$p \in (0, 1)$을 파라미터로 하며, $p=0.5$이면 이터레이션마다 전문가 비율이 절반씩 줄어든다. 초반에 전문가가 적극적으로 개입하여 다양한 상태를 탐색하게 한 후 점차 학습 정책으로 이행한다. SMILe/SEARN의 $\beta$ 스케줄과 구조적으로 동일하지만, DAGGER는 혼합 정책이 아닌 집계 데이터 위에서 단일 결정론적 정책을 학습한다는 점에서 결정적으로 다르다.</p>
<p>$n_\beta$를 $\beta_{n_\beta} &gt; \frac{1}{T}$를 만족하는 마지막 이터레이션 인덱스로 정의하면, $\beta_i = (1-\alpha)^{i-1}$에서</p>
<p>$$
n_\beta \leq \frac{\log T}{\alpha} + 1
$$</p>
<p>이고, $n_\beta$ 이후의 $\beta_i$ 합산은</p>
<p>$$
T\sum_{i=n_\beta+1}^{N} \beta_i \leq T \cdot \frac{(1-\alpha)^{n_\beta}}{\alpha} \leq \frac{1}{\alpha}
$$</p>
<p>이므로 보정 항 전체는 $\tilde{O}!\left(\frac{\log T}{N\alpha}\right)$이 된다.</p>
<blockquote>
<p><strong>스케줄 3: 상수 $\beta_i = \beta$</strong></p>
</blockquote>
<p>이 경우 $\bar{\beta}_N = \beta \not\to 0$이므로 이론적 보장이 성립하지 않는다. 그러나 $\beta$가 충분히 작으면 실용적으로 잘 작동할 수 있으며, SMILe의 설정과 유사하다.</p>
<h3 id="반환-정책-선택">반환 정책 선택</h3>
<p>논문은 두 가지 동등한 반환 전략을 제시한다. 첫째, 별도 검증 데이터에서 가장 좋은 $\hat{\pi}_i$를 선택한다. 둘째, $\hat{\pi}_1, \ldots, \hat{\pi}_N$ 중 균등 랜덤으로 하나를 선택한다. 두 번째 전략이 동일한 이론적 보장을 제공하는 이유는 Section 4에서 설명한다.</p>
<h3 id="dagger가-결정론적-정상-정책을-반환하는-이유">DAGGER가 결정론적 정상 정책을 반환하는 이유</h3>
<p>이것이 SMILe/SEARN 대비 가장 중요한 차별점이다. SMILe은 $\sum_i w_i \hat{\pi}<em>i$를 반환하는데, 이는 실행 시 매 스텝마다 어느 $\hat{\pi}_i$를 사용할지 무작위로 선택하는 확률적 정책이다. 반면 DAGGER는 집계 데이터셋 $D = \bigcup</em>{i=1}^N D_i$ 전체로 학습한 <strong>단일 정책</strong> $\hat{\pi}_i$를 반환한다. 이 정책은 완전히 결정론적이며, 실행 시 무작위성이 없다.</p>
<p>레이싱 게임처럼 단 한 번의 잘못된 판단이 돌이킬 수 없는 결과를 낳는 환경에서, 확률적 정책이 “운 나쁘게” 나쁜 서브 정책을 선택하는 상황이 발생하지 않는다는 것이 결정론적 정책의 핵심 이점이다.</p>
<hr>
<h2 id="4-theoretical-analysis">4. Theoretical Analysis</h2>
<h3 id="분석의-전체-구조">분석의 전체 구조</h3>
<p>이론 분석의 목표는 DAGGER가 반환하는 정책 $\hat{\pi}$의 성능</p>
<p>$$
\mathbb{E}<em>{s \sim d</em>{\hat{\pi}}}[\ell(s, \hat{\pi})]
$$</p>
<p>이 얼마나 작은지 바운드하는 것이다. 이를 달성하기 위해 두 가지 핵심 요소가 결합된다. 하나는 혼합 정책 $\pi_i$와 학습 정책 $\hat{\pi}_i$ 사이의 분포 차이를 연결하는 Lemma 4.1이고, 다른 하나는 온라인 학습 알고리즘의 no-regret 성질이다.</p>
<p><strong>Lemma 4.1 (분포 이동 바운드)</strong></p>
<p>혼합 정책 $\pi_i = \beta_i \pi^* + (1-\beta_i)\hat{\pi}_i$가 유도하는 분포와 학습 정책 $\hat{\pi}_i$가 유도하는 분포 사이의 TV 거리는</p>
<p>$$
|d_{\pi_i} - d_{\hat{\pi}_i}|_1 \leq 2T\beta_i
$$</p>
<p>증명의 핵심은 $T$스텝 궤적에서 $\hat{\pi}_i$만 사용되는 사건의 확률이 $(1-\beta_i)^T$라는 사실이다. 이로부터</p>
<p>$$
d_{\pi_i} = (1-\beta_i)^T d_{\hat{\pi}_i} + \left(1 - (1-\beta_i)^T\right) \tilde{d}
$$</p>
<p>여기서 $\tilde{d}$는 전문가가 적어도 한 번 개입했을 때의 조건부 분포이다. 따라서</p>
<p>$$
|d_{\pi_i} - d_{\hat{\pi}_i}|_1 \leq 2\left(1 - (1-\beta_i)^T\right) \leq 2T\beta_i
$$</p>
<p>마지막 부등식은 베르누이 부등식 $(1-\beta)^T \geq 1 - \beta T$에서 온다. 이 바운드가 trivial bound인 2보다 유용하려면 $\beta_i \leq \frac{1}{T}$이어야 한다. 이것이 $n_\beta$의 역할이다: $n_\beta$ 이후의 이터레이션에서만 Lemma 4.1이 의미 있는 개선을 제공한다.</p>
<p>이 Lemma를 통해 데이터 수집 시 사용한 분포 $d_{\pi_i}$에서의 손실과, 실제로 원하는 $d_{\hat{\pi}_i}$에서의 손실을 연결할 수 있다:</p>
<p>$$
\mathbb{E}<em>{s \sim d</em>{\hat{\pi}<em>i}}[\ell(s, \hat{\pi}_i)] \leq \mathbb{E}</em>{s \sim d_{\pi_i}}[\ell(s, \hat{\pi}<em>i)] + 2\ell</em>{\max} \cdot \min(1, T\beta_i)
$$</p>
<h2 id="41-online-learning">4.1 Online Learning</h2>
<h3 id="온라인-학습으로의-환원">온라인 학습으로의 환원</h3>
<p>DAGGER의 이론적 핵심은 비볼록한 모방 학습 문제를 볼록 손실의 온라인 학습 문제로 환원하는 것이다.</p>
<p>각 이터레이션 $i$에서 손실함수를 다음과 같이 정의한다:</p>
<p>$$
\ell_i(\pi) = \mathbb{E}<em>{s \sim d</em>{\pi_i}}[\ell(s, \pi)]
$$</p>
<p>이 정의의 핵심은 분포 $d_{\pi_i}$가 <strong>현재 이터레이션에서 고정</strong>되어 있다는 점이다. 따라서 $\ell_i(\pi)$는 $\pi$에 대해 볼록이다 ($d_{\pi_i}$가 $\pi$에 독립적이므로 $\ell(s, \cdot)$의 볼록성이 그대로 전파된다). 이로써 매 라운드에 볼록 손실을 받는 표준 온라인 학습 설정이 된다.</p>
<p>DAGGER의 각 이터레이션에서 FTL(Follow-The-Leader)을 적용하면, 이터레이션 $i+1$에서의 정책은</p>
<p>$$
\hat{\pi}<em>{i+1} = \arg\min</em>{\pi \in \Pi} \sum_{j=1}^i \ell_j(\pi)
$$</p>
<p>이다. 이것이 정확히 “집계된 데이터셋 전체에서 지도학습(ERM)을 수행”하는 것과 동일하다. $\ell_j(\pi)$의 경험적 추정이 이터레이션 $j$에서 수집된 데이터의 평균 손실이기 때문이다.</p>
<h3 id="ftl의-no-regret-성질">FTL의 No-Regret 성질</h3>
<p>FTL은 일반적인 온라인 학습에서 불안정성 문제가 있을 수 있지만, 손실함수 $\ell(s, \cdot)$이 강볼록(strongly convex)한 경우 $O(\log N / N)$의 평균 후회(average regret)를 달성한다. 0-1 손실처럼 일반적인 경우에도 FTL은 다음을 보장한다:</p>
<p>$$
\gamma_N = \frac{1}{N}\sum_{i=1}^N \ell_i(\hat{\pi}<em>i) - \min</em>{\pi \in \Pi} \frac{1}{N}\sum_{i=1}^N \ell_i(\pi) \leq \gamma_N \to 0
$$</p>
<p>이때 no-regret 알고리즘으로 임의의 방법(OGD, FTRL 등)을 사용해도 동일한 분석 구조가 적용된다는 점이 중요하다. 논문은 특정 온라인 학습 알고리즘에 의존하지 않고, <strong>임의의 no-regret 알고리즘</strong>이 DAGGER와 결합하면 성능 보장을 달성함을 보인다.</p>
<h3 id="42-no-regret-algorithms-guarantees">4.2 No Regret Algorithms Guarantees</h3>
<h4 id="theorem-41-핵심-성능-보장-무한-샘플">Theorem 4.1: 핵심 성능 보장 (무한 샘플)</h4>
<p>Lemma 4.1과 FTL의 no-regret 성질을 결합하면 다음 정리가 도출된다.</p>
<p><strong>Theorem 4.1</strong>: DAGGER가 $N$번 이터레이션 후 반환하는 최선 정책은</p>
<p>$$
\min_{\hat{\pi} \in \hat{\pi}<em>{1:N}} \mathbb{E}</em>{s \sim d_{\hat{\pi}}}[\ell(s, \hat{\pi})] \leq \epsilon_N + \gamma_N + \frac{2\ell_{\max}}{N}\left[n_\beta + T\sum_{i=n_\beta+1}^{N}\beta_i\right]
$$</p>
<p>를 만족한다. 여기서</p>
<ul>
<li>$\epsilon_N = \min_{\pi \in \Pi} \frac{1}{N}\sum_{i=1}^N \ell_i(\pi)$: 모든 방문 분포의 혼합 위에서 최선 정책의 평균 손실 (표현력 한계)</li>
<li>$\gamma_N$: 온라인 학습 알고리즘의 평균 후회 (이터레이션이 증가하면 0으로 수렴)</li>
<li>마지막 항: $\beta_i$ 스케줄로 인한 분포 이동 보정 항</li>
</ul>
<p>증명의 단계별 전개는 다음과 같다.</p>
<blockquote>
<p><strong>Step 1: 보조 정리(Lemma 4.1)를 이용한 손실(Loss) 변환</strong>
평가 분포($d_{\hat{\pi}<em>i}$)에서의 손실을 훈련 분포($d</em>{\pi_i}$)에서의 손실로 변환한다.</p>
</blockquote>
<p>$$\mathbb{E}<em>{s \sim d</em>{\hat{\pi}<em>i}}[\ell(s, \hat{\pi}_i)] \le \mathbb{E}</em>{s \sim d_{\pi_i}}[\ell(s, \hat{\pi}<em>i)] + 2\ell</em>{max} \cdot \min(1, T\beta_i) = \ell_i(\hat{\pi}<em>i) + 2\ell</em>{max} \cdot \min(1, T\beta_i)$$</p>
<blockquote>
<p><strong>Step 2: 시퀀스(Sequence) 평균 취하기</strong>
여러 번 학습을 반복하여 얻은 정책들의 평균을 계산한다. &#39;최솟값은 항상 평균보다 작거나 같다&#39;는 기본 성질을 이용한다.
$$\min_{\hat{\pi} \in \hat{\pi}<em>{1:N}} \mathbb{E}</em>{s \sim d_{\hat{\pi}}}[\ell(s,\hat{\pi})] \le \frac{1}{N} \sum_{i=1}^N \mathbb{E}<em>{s \sim d</em>{\hat{\pi}_i}}[\ell(s,\hat{\pi}_i)]$$</p>
</blockquote>
<p>위 식에 Step 1의 결과를 대입하여 전개한다.
$$\le \frac{1}{N} \sum_{i=1}^N \ell_i(\hat{\pi}<em>i) + \frac{2\ell</em>{max}}{N} \sum_{i=1}^N \min(1, T\beta_i)$$</p>
<blockquote>
</blockquote>
<p>이를 항에 따라 정리하면 다음과 같다.
$$= \frac{1}{N} \sum_{i=1}^N \ell_i(\hat{\pi}<em>i) + \frac{2\ell</em>{max}}{N}\left[n_\beta + T\sum_{i&gt;n_\beta} \beta_i\right]$$</p>
<blockquote>
<p><strong>Step 3: 후회 방지(No-regret) 성질 적용</strong>
온라인 학습(Online Learning)의 후회 방지 알고리즘 특성을 적용하여, 학습 모델의 누적 손실 평균 상한을 정의한다.
$$\frac{1}{N} \sum_{i=1}^N \ell_i(\hat{\pi}<em>i) \le \min</em>{\pi} \frac{1}{N} \sum_{i=1}^N \ell_i(\pi) + \gamma_N = \epsilon_N + \gamma_N$$실무적 이해: 학습을 계속 반복할수록, 우리가 만든 모델의 평균 손실은 결국 &#39;가장 이상적인 완벽한 정책의 손실($\epsilon_N$)&#39;에 &#39;온라인 학습 과정에서 필연적으로 발생하는 평균 후회($\gamma_N$)&#39;를 더한 값 이하로 수렴한다는 의미다.</p>
</blockquote>
<blockquote>
<p><strong>Step 4: 결과 결합 (Theorem 4.1 도출)</strong>
Step 2의 수식에 Step 3의 결과를 대입하여 최종적인 성능 상한을 도출한다.</p>
</blockquote>
<p>$$\min_{\hat{\pi}} \mathbb{E}<em>{s \sim d</em>{\hat{\pi}}}[\ell(s,\hat{\pi})] \le \epsilon_N + \gamma_N + \frac{2\ell_{max}}{N}\left[n_\beta + T \sum_{i&gt;n_\beta} \beta_i\right]$$</p>
<blockquote>
</blockquote>
<p>균등 랜덤 선택의 동치성: 최솟값 대신 정책을 균등 무작위(Uniform Random)로 선택하더라도 동일한 성능 보장을 받는다. </p>
<blockquote>
</blockquote>
<p>그 이유는 Step 2의 첫 번째 부등식 우변(시퀀스 평균) 자체가 전체 정책들의 기대 성능을 나타내기 때문이다. </p>
<blockquote>
</blockquote>
<p>무작위 추출 전략의 기댓값은 시퀀스의 평균과 일치하므로, 평균이 바운드 상한선 내에 있다면 무작위 선택 역시 동일한 상한선을 가진다.</p>
<h4 id="theorem-42-유한-샘플-보장">Theorem 4.2: 유한 샘플 보장</h4>
<p>실제 학습에서는 각 이터레이션마다 유한한 $m$개의 궤적만 수집할 수 있다. 유한 샘플 설정에서는 $\ell_i(\pi)$의 경험적 추정과 실제 기댓값 사이의 편차가 발생하며, 이를 마팅게일 집중 부등식으로 제어한다.</p>
<p><strong>Theorem 4.2</strong>: 이터레이션당 $m$개의 궤적을 수집하면, 확률 $1-\delta$로</p>
<p>$$
\min_{\hat{\pi} \in \hat{\pi}<em>{1:N}} \mathbb{E}</em>{s \sim d_{\hat{\pi}}}[\ell(s, \hat{\pi})] \leq \epsilon_N + \gamma_N + \frac{2\ell_{\max}}{N}\left[n_\beta + T\sum_{i=n_\beta+1}^{N}\beta_i\right] + \ell_{\max}\sqrt{\frac{2\log(1/\delta)}{mN}}
$$</p>
<p>추가 항 $\ell_{\max}\sqrt{\frac{2\log(1/\delta)}{mN}}$이 통계적 오차를 포착한다.</p>
<p>이 항이 등장하는 구조를 이해하기 위해 확률변수 $Y_{ij}$를 정의한다:</p>
<p>$$
Y_{ij} = \frac{1}{T}\mathbb{E}<em>{s \sim d</em>{\pi_i}}[\ell(s, \hat{\pi}<em>i)] - \frac{1}{T}\sum</em>{s \in \text{trajectory}_j^{(i)}} \ell(s, \hat{\pi}_i)
$$</p>
<p>$Y_{ij}$는 이터레이션 $i$의 $j$번째 궤적에서 발생하는 경험적 손실과 기댓값 손실의 차이다. </p>
<p>이 변수들이 마팅게일(martingale)을 형성하는 이유는, $\hat{\pi}<em>i$가 이터레이션 $i$ 이전의 데이터로부터 학습되어 현재 샘플링과 독립적이기 때문이다. 따라서 $\mathbb{E}[Y</em>{ij} \mid Y_{11}, \ldots, Y_{i,j-1}] = 0$이 성립한다.</p>
<p>$|Y_{ij}| \leq \ell_{\max}$이므로 Azuma-Hoeffding 부등식을 적용하면, 확률 $1-\delta$로</p>
<p>$$
\frac{1}{mN}\sum_{i=1}^N\sum_{j=1}^m Y_{ij} \leq \ell_{\max}\sqrt{\frac{2\log(1/\delta)}{mN}}
$$</p>
<p>이 마지막 항이 $O(1/T)$ 이하가 되려면 $mN = O(T^2\log(1/\delta))$가 필요하다. </p>
<p>$m=O(1)$이면 $N = O(T^2\log(1/\delta))$이터레이션이 필요하여 무한 샘플 케이스의 $\tilde{O}(T)$보다 $T$ 배 더 많다. </p>
<p>논문은 손실함수가 강볼록인 경우 Kakade and Tewari (2009)의 결과를 활용하여 이를 $\tilde{O}(T\log(T/\delta))$로 개선할 수 있다고 언급하지만 해당 증명은 미래 작업으로 남긴다.</p>
<h4 id="이론의-세-가지-항-해석">이론의 세 가지 항 해석</h4>
<p>전체 바운드를 구성하는 세 가지 항은 각각 독립적인 의미를 지닌다.</p>
<table>
<thead>
<tr>
<th>항</th>
<th>의미</th>
<th>제어 수단</th>
</tr>
</thead>
<tbody><tr>
<td>$\epsilon_N$</td>
<td>정책 클래스 $\Pi$의 표현력 한계, 최선 정책의 근사 오차</td>
<td>더 표현력 있는 $\Pi$ 선택</td>
</tr>
<tr>
<td>$\gamma_N$</td>
<td>온라인 학습 알고리즘의 수렴 속도</td>
<td>이터레이션 수 $N$ 증가</td>
</tr>
<tr>
<td>보정 항</td>
<td>전문가 혼합으로 인한 분포 이동의 잔여 효과</td>
<td>$\beta_i$ 스케줄 및 $N$ 조절</td>
</tr>
</tbody></table>
<p>$N$이 충분히 크고 $\beta_i \to 0$이면 $\gamma_N$과 보정 항 모두 0으로 수렴하며, 결국 DAGGER는 $\epsilon_N$에 의해서만 제한되는 정책을 학습한다. 이는 정책 클래스의 표현력이 허용하는 한 최선의 결과임을 의미한다.</p>
<p>이를 Theorem 2.2와 결합하면 임의의 비용 함수 $C$에 대한 최종 보장이 된다:</p>
<p>$$
J(\hat{\pi}) \leq J(\pi^*) + uT\epsilon_N + O!\left(\frac{uT\ell_{\max}}{N}\right)
$$</p>
<p>$N \to \infty$ 극한에서 DAGGER가 반환하는 정책의 비용은 $J(\pi^*) + uT\epsilon_N$에 수렴한다. </p>
<p>이것이 기존 지도학습의 $J(\pi^*) + uT^2\epsilon$보다 $T$ 배 개선된 선형 보장이다.</p>
<hr>
<h2 id="5-experiments">5. Experiments</h2>
<p>논문은 세 가지 서로 다른 특성을 가진 환경에서 DAGGER를 평가한다. Super Tux Kart는 복구 불가능한 실수가 있는 연속 제어 문제, Super Mario Bros.는 복잡한 장애물 회피가 필요한 이산 제어 문제, OCR 필기 인식은 순서 의존성이 있는 구조화 예측 문제이다. 세 실험 모두 동일한 비교 대상(지도학습, SMILe, SEARN)과 공정한 데이터 예산 하에서 평가된다.</p>
<p>공통 실험 설정으로, 기저 학습기(base learner)는 모두 선형 모델(linear classifier 또는 linear regressor)이며 DAGGER의 reduction 구조가 기존 지도학습 알고리즘을 블랙박스로 재사용한다는 점을 실증적으로 보여준다.</p>
<h3 id="51-super-tux-kart">5.1 Super Tux Kart</h3>
<h4 id="실험-설계">실험 설계</h4>
<p>Super Tux Kart의 Star Track은 공중에 떠 있는 레이스 트랙으로, 트랙 가장자리에 방호벽이 없어 카트가 언제든지 트랙 밖으로 추락할 수 있다. 이 구조는 <strong>복구 불가능한 실수(unrecoverable mistake)</strong>를 만들어내어 오류 복합 문제가 가장 극단적으로 드러나는 환경이다.</p>
<ul>
<li><strong>입력 특징</strong>: 800×600 원본 이미지를 25×19로 리사이즈한 LAB 색공간 값 (1,425개 실수 특징)</li>
<li><strong>출력</strong>: $[-1, 1]$ 범위의 연속 조향값 (회귀 문제)</li>
<li><strong>전문가</strong>: 게임 내 내장 AI 컨트롤러</li>
<li><strong>평가 지표</strong>: 랩당 평균 추락 횟수 (Average Falls Per Lap, 낮을수록 좋음)</li>
<li><strong>비교 대상</strong>: DAGGER ($\beta_i = \mathbb{I}(i=1)$), SMILe ($\alpha=0.1$), 지도학습</li>
</ul>
<h3 id="결과-분석">결과 분석</h3>
<p>결과는 DAGGER의 우월성을 가장 명확하게 보여준다. 지도학습은 데이터가 아무리 많아도 랩당 약 3~4회 추락에서 전혀 개선되지 않는다. 전문가 궤적만으로는 트랙 이탈 직전 상태나 위험한 조향 후 복구 상황을 학습할 수 없기 때문이다. SMILe은 일부 개선을 보이지만 20 이터레이션 후에도 랩당 약 2회 추락이 남는다. 확률적 혼합 정책 내의 나쁜 서브 정책이 가끔 선택되면서 치명적인 실수를 유발한다.</p>
<p>반면 DAGGER는 약 5 이터레이션(~5,000개 데이터 포인트)만에 추락 횟수가 거의 0에 근접하고, 15 이터레이션 이후 완전히 0을 달성한다. 이 환경에서 오류 복합의 $u$ 값이 크기 때문에(트랙 이탈 시 비용이 매우 크고 복구 불가) 지도학습의 $T^2\epsilon$ 문제가 극명하게 드러나며, 동시에 DAGGER의 결정론적 정책이 이를 완전히 해결함을 보여준다.</p>
<h3 id="52-super-mario-bros">5.2 Super Mario Bros.</h3>
<h4 id="실험-설계-1">실험 설계</h4>
<p>Mario AI 경쟁 시뮬레이터를 사용하며, 학습 정책이 마리오를 제어하여 스테이지를 최대한 멀리 진행시키는 것이 목표다.</p>
<ul>
<li><strong>입력 특징</strong>: 마리오를 중심으로 한 22×22 셀 그리드에서 14개 이진 특징(지형/적/블록 유형) × 4 프레임 히스토리 + 6개 이전 행동 + 마리오 상태 = 총 27,152개 이진 특징</li>
<li><strong>출력</strong>: {left, right, jump, speed} 4개 이진 버튼 조합 (분류 문제)</li>
<li><strong>전문가</strong>: Robin Baumgarten의 A* 기반 플래너 (Mario AI 경쟁 우승 알고리즘)</li>
<li><strong>평가 지표</strong>: 스테이지당 평균 이동 거리 (전체 스테이지 길이 약 4,200, 높을수록 좋음)</li>
<li><strong>비교 대상</strong>: D0 ($\beta_i=\mathbb{I}(i=1)$), D0.5 ($\beta_i=0.5^{i-1}$), D0.9 ($\beta_i=0.9^{i-1}$), Se1 (SEARN $\alpha=1$), Se0.4 (SEARN $\alpha=0.4$), Sm0.1 (SMILe $\alpha=0.1$), Sup (지도학습)</li>
</ul>
<h4 id="결과-분석-1">결과 분석</h4>
<p>이 실험은 $\beta_i$ 스케줄 간의 트레이드오프를 상세히 보여준다는 점에서 특히 흥미롭다.</p>
<p>지도학습(Sup)은 약 1,100~1,200 거리에서 정체된다. 장애물(적, 구덩이) 앞에서 멈추거나 제자리를 맴도는 상황을 학습하지 못했기 때문이다. D0 ($\beta_i=\mathbb{I}(i=1)$)는 약 2,980 거리를 달성하고 빠르게 수렴하지만, 첫 이터레이션에서 학습된 나쁜 정책이 마리오를 특정 장애물 앞에 반복적으로 멈추게 하여 해당 상황 데이터가 과다 수집되는 경향이 있다.</p>
<p>D0.5 ($\beta_i=0.5^{i-1}$)는 약 3,030으로 최고 성능을 달성한다. 초반에 전문가가 적극 개입하면서 다양한 상황을 탐색하여 더 균형 잡힌 데이터를 수집하기 때문이다. 이는 탐색-활용 트레이드오프(exploration-exploitation tradeoff)의 모방 학습 버전으로 해석할 수 있다. D0.9는 수렴이 매우 느려 20 이터레이션에서도 개선 중이며, $\beta_i$가 천천히 감소할수록 학습 정책으로의 전환이 늦어져 수렴이 지연됨을 보여준다.</p>
<p>Se1 (SEARN $\alpha=1$, 순수 정책 반복)은 매우 불안정하여 성능 편차가 크다. 새 정책으로 완전히 교체할 때 분포가 급격히 변화하여 발산 위험이 있기 때문이다. Se0.4는 비교적 안정적이지만 DAGGER 변형들 모두를 밑돈다. Sm0.1은 약 2,000 수준에 머물러 확률적 정책의 한계를 다시 한번 보여준다.</p>
<p>전반적으로 모든 DAGGER 변형($\beta_i$ 설정 무관)이 SMILe과 SEARN의 최선 설정을 상회한다.</p>
<h3 id="53-handwriting-recognition">5.3 Handwriting Recognition</h3>
<h4 id="실험-설계-2">실험 설계</h4>
<p>OCR 필기 인식 실험은 DAGGER가 구조화 예측 문제에도 유효함을 보이기 위해 설계되었다. Taskar et al. (2003)의 데이터셋을 사용하며, 필기 단어를 구성하는 문자들을 순서대로 예측하는 문제다.</p>
<ul>
<li><strong>입력 특징</strong>: 각 문자는 128개 픽셀 특징 + 26개 이전 예측 문자 원-핫 인코딩 = 154개 특징 (이전 예측이 상태의 약 17%를 차지)</li>
<li><strong>출력</strong>: 26개 알파벳 문자 중 하나 (분류 문제)</li>
<li><strong>전문가</strong>: 올바른 이전 문자 레이블을 제공 (이상적 전문가)</li>
<li><strong>평가 지표</strong>: 테스트 폴드 문자 정확도 (Character Accuracy, 높을수록 좋음)</li>
<li><strong>비교 대상</strong>: DAgger ($\beta_i=\mathbb{I}(i=1)$), SEARN($\alpha=1$), SEARN($\alpha=0.8$), SEARN($\alpha=0.1$), SMILe($\alpha=0.1$), Supervised, No Structure</li>
</ul>
<p>No Structure 베이스라인은 이전 문자 정보를 전혀 사용하지 않고 독립적으로 예측하는 경우로, 이전 예측의 순서 의존성을 모델링하는 것의 가치를 확인하는 기준점이다.</p>
<h4 id="결과-분석-2">결과 분석</h4>
<p>No Structure는 82.0%, 지도학습은 83.6%로, 이전 문자 정보를 추가하는 것이 1.6%p 개선을 준다. 이는 이전 예측의 순서 의존성이 분명히 존재함을 보여준다. 그러나 지도학습은 훈련 시 항상 올바른 이전 문자를 조건으로 사용하지만 테스트 시에는 자신이 예측한 (오류 가능성 있는) 이전 문자를 사용한다. 이 훈련-테스트 불일치가 정확히 distribution shift 문제다.</p>
<p>DAGGER는 85.5%로 최고 성능을 달성하며, 약 5 이터레이션만에 빠르게 수렴한다. SEARN($\alpha=1$)과 SEARN($\alpha=0.8$)도 약 85% 수준에 도달하여 이 실험에서는 DAGGER와 격차가 작다. 이는 앞서 언급한 상태의 정책 의존 비율(17%)이 낮아 distribution shift가 완만하기 때문이다. 분포 이동이 작을수록 순수 정책 반복조차 안정적으로 작동할 수 있다.</p>
<p>반면 SEARN($\alpha=0.1$)과 SMILe($\alpha=0.1$)은 83~84% 수준으로 DAGGER보다 유의미하게 낮다. 작은 $\alpha$는 수렴 속도를 낮추고, 20 이터레이션 내에서 전문가 의존도를 충분히 낮추지 못하여 학습 정책이 자신의 분포에 적응할 시간이 부족하다.</p>
<p>문헌 비교 관점에서도 주목할 만하다. Taskar et al. (2003)의 M3N이 약 87%, Ratliff et al. (2007)의 SSVM이 약 86%인데, DAGGER는 단순한 greedy 디코딩(beam search 없이)만으로 85.5%를 달성한다. 디코딩 전략을 복잡하게 만드는 것보다 정책 자체가 자신의 분포에 적응하도록 학습하는 것이 더 효과적일 수 있음을 시사한다.</p>
<p>세 실험을 종합하면 다음과 같다.</p>
<table>
<thead>
<tr>
<th>실험</th>
<th>평가 지표</th>
<th>Supervised</th>
<th>SMILe (best)</th>
<th>SEARN (best)</th>
<th>DAGGER (best)</th>
</tr>
</thead>
<tbody><tr>
<td>Super Tux Kart</td>
<td>랩당 추락 횟수 ↓</td>
<td>~3.5 (정체)</td>
<td>~2.0</td>
<td>N/A</td>
<td><strong>0</strong> (15iter 이후)</td>
</tr>
<tr>
<td>Super Mario Bros.</td>
<td>스테이지당 이동거리 ↑</td>
<td>~1,100</td>
<td>~2,000</td>
<td>~2,600</td>
<td><strong>~3,030</strong></td>
</tr>
<tr>
<td>OCR 필기 인식</td>
<td>문자 정확도 ↑</td>
<td>83.6%</td>
<td>~83.5%</td>
<td>~85.0%</td>
<td><strong>85.5%</strong></td>
</tr>
</tbody></table>
<p>세 실험 모두에서 DAGGER가 기존 방법을 능가하거나 동등한 성능을 보였으며, 파라미터 없는 $\beta_i = \mathbb{I}(i=1)$ 설정이 대부분의 경우 경쟁력 있는 결과를 제공한다는 점이 실용성 측면에서 중요하다.</p>
<hr>
<h2 id="6-future-work">6. Future Work</h2>
<p>논문은 여러 방향의 후속 연구를 명시적으로 제안한다.</p>
<h3 id="역최적제어와의-결합">역최적제어와의 결합</h3>
<p>가장 직접적으로 언급하는 방향은 역최적제어(Inverse Optimal Control, IOC) 기법을 기저 분류기로 활용하는 것이다. 현재 DAGGER는 전문가 행동 $\pi^*(s)$를 레이블로 직접 모방하지만, IOC를 통해 전문가 데이터로부터 비용 함수 $C$를 역으로 학습하여 플래너(planner)에 제공하는 방식으로 확장할 수 있다. 이는 단순 행동 복제를 넘어 전문가의 의도(intent) 수준을 학습하는 것으로, 이후 GAIL(Ho and Ermon, 2016) 등의 연구로 구체화되었다.</p>
<h3 id="강화학습으로의-확장">강화학습으로의 확장</h3>
<p>논문은 cost-to-go 추정치를 레이블로 활용하는 방향도 제시한다. 현재 DAGGER는 전문가의 즉각적 행동을 레이블로 사용하지만, 각 상태에서 전문가의 미래 누적 비용 $Q^{\pi^<em>}(s, a)$를 레이블로 활용하면 전문가가 놓친 더 나은 행동을 학습할 수 있다. 이는 이후 AggreVaTe(Ross and Bagnell, 2014)로 발전했으며, 수식으로 표현하면 DAGGER의 레이블 $\pi^</em>(s)$ 대신</p>
<p>$$
\hat{a} = \arg\min_{a \in \mathcal{A}} \hat{Q}^{\pi^*}(s, a)
$$</p>
<p>를 사용하는 것으로, 전문가를 능가하는 정책 학습이 이론적으로 가능해진다.</p>
<h3 id="온라인-강화학습-이해">온라인 강화학습 이해</h3>
<p>논문의 마지막 문장에서 암시하는 방향으로, DAGGER와 유사한 기법이 온라인 강화학습 방법들의 성공을 이론적으로 설명하는 데 기여할 수 있다고 본다. 정책이 방문하는 분포에서 점진적으로 학습하는 구조가 강화학습의 정책 경사(policy gradient) 방법들과 본질적으로 유사하며, DAGGER의 no-regret 분석 틀이 이를 통합적으로 이해하는 언어를 제공한다.</p>
<h3 id="샘플-복잡도-개선">샘플 복잡도 개선</h3>
<p>유한 샘플 보장에서 이론과 실제의 간극($O(T^2)$ vs 실험에서의 $O(T)$ 수준)을 좁히는 것도 중요한 방향이다. 특히 강볼록 손실함수에서 $\tilde{O}(T \log(T/\delta))$ 이터레이션으로 개선할 수 있다는 주장의 완전한 증명이 필요하다.</p>
<h3 id="쿼리-효율성">쿼리 효율성</h3>
<p>논문이 직접 명시하지는 않지만, 매 이터레이션마다 방문한 모든 상태에서 전문가를 쿼리하는 비용 문제가 자연스러운 후속 연구 방향이다. 불확실성이 높은 상태에서만 선택적으로 전문가를 쿼리하는 능동 학습(active learning) 전략과의 결합이 이후 SafeDAgger, HG-DAgger 등으로 발전하였다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[CoT-VLA: Visual Chain-of-Thought Reasoning for Vision-Language-Action Models (2025)]]></title>
            <link>https://velog.io/@choonsik_mom/CoT-VLA-Visual-Chain-of-Thought-Reasoning-for-Vision-Language-Action-Models-2025</link>
            <guid>https://velog.io/@choonsik_mom/CoT-VLA-Visual-Chain-of-Thought-Reasoning-for-Vision-Language-Action-Models-2025</guid>
            <pubDate>Wed, 18 Feb 2026 14:09:58 GMT</pubDate>
            <description><![CDATA[<p>Nvidia, Stanford, MIT <code>CoT-VLA: Visual Chain-of-Thought Reasoning for Vision-Language-Action Models (CVPR 2025)</code>의 논문 내용 정리</p>
<blockquote>
<p>CoT-VLA
<a href="https://arxiv.org/pdf/2503.22020">[paper]</a>
<a href="https://cot-vla.github.io/">[project page]</a></p>
</blockquote>
<hr>
<h3 id="abstract">Abstract</h3>
<p>Vision-Language-Action Models (VLA)은 일반화 가능한 감각 운동 제어(Sensorimotor Control)를 학습하기 위해 사전 학습된 Vision-Language Models(VLM)과 다양한 Robot Demonstrations을 활용하는 데 있어 잠재력을 보였다. 이러한 패러다임은 로봇 및 비로봇 소스(Source)의 대규모 데이터를 효과적으로 활용하지만, 현재의 VLA들은 주로 복잡한 Manipulation Tasks에 필수적인 중간 추론 단계가 결여된 채 직접적인 입력-출력 매핑(Input-Output Mappings)에 초점을 맞추고 있다. 그 결과, 기존 VLA들은 시간적 계획(Temporal Planning)이나 추론 능력(Reasoning Capabilities)이 부족하다.</p>
<p>본 논문에서는 이러한 목표를 달성하기 위해 짧은 행동 시퀀스(Action Sequence)를 생성하기 전, <strong>미래 이미지 프레임(Future Image Frames)을 시각적 목표로서 Autoregressive하게 예측</strong>함으로써 명시적인 Visual Chain-of-Thought(CoT) 추론을 VLA에 통합하는 방법을 소개한다. </p>
<p>본 논문은 시각 및 행동 토큰(Tokens)을 이해하고 생성할 수 있는 SOTA 7B 파라미터 규모의 VLA인 CoT-VLA를 소개한다. 본 논문의 실험 결과에 따르면, CoT-VLA는 Real-world Manipulation Tasks에서 17%, Simulation Benchmarks에서 6%의 성능 향상을 기록하며 기존 SOTA VLA 모델을 능가하는 강력한 성능을 달성함을 입증한다.</p>
<hr>
<h2 id="1-introduction">1. Introduction</h2>
<p>로봇 학습 분야의 최근 발전은 다양한 작업과 환경 전반에서 작동할 수 있는 정책(Policy)을 훈련하는 데 있어 인상적인 진전을 보여주었다 [1, 3, 5, 12, 14, 18, 29, 36, 44, 45, 48, 54, 59, 63, 66, 70, 76, 78]. 유망한 연구 방향 중 하나는 <strong>비전-언어-행동(Vision-Language-Action, VLA)</strong> 모델로, 이는 사전 학습된 Vision-Language Models(VLMs)의 풍부한 이해 능력을 활용하여 <strong>자연어 지시와 시각적 관측을 로봇 행동으로 매핑</strong>한다 [12, 29, 48]. 로봇 데모(Robot Demonstrations) 데이터로 VLM을 학습시킴으로써, VLA는 다양한 장면, 객체, 자연어 지시를 이해하는 능력을 계승하게 되며, 이는 다운스트림 테스트 시나리오를 위해 파인튜닝되었을 때 더 우수한 일반화 능력으로 이어진다.</p>
<p>이러한 접근법들이 인상적인 결과를 보여주었으나, 일반적으로 해석 가능성(Interpretability)과 잠재적인 성능을 향상시킬 수 있는 <strong>명시적인 중간 추론 단계 없이 관측에서 행동으로 직접 매핑</strong>하는 방식을 취한다. 언어 도메인에서는 Chain-of-Thought(CoT) 프롬프팅이 단계별 사고를 유도함으로써 거대 언어 모델(Large Language Models, LLMs)의 추론 능력을 향상시키는 강력한 기법으로 부상했다 [62, 75]. </p>
<p>이러한 개념을 로봇 공학에 적용하는 것은 텍스트, 시각적 관측, 물리적 행동에 추론을 그라운딩(Grounding)할 수 있는 흥미로운 기회를 제공한다. 최근 연구들은 언어적 설명, 키포인트(Keypoints), 또는 바운딩 박스와 같은 중간 추론 단계를 통합하며 이 방향으로의 진전을 이루었다 [15, 44, 45, 63]. 이러한 중간 표현들은 장면, 객체, 작업의 추상화된 상태를 포착하며, 추가적인 전처리 파이프라인을 필요로 한다.</p>
<p>본 논문은 <strong>행동 생성 이전의 중간 추론 단계로서 서브골 이미지(Subgoal Images)를 탐구</strong>한다. 이러한 이미지들은 모델의 추론 과정 상태를 포착하며, 로봇 데모 데이터셋 내에서 자연스럽게 확보할 수 있다.</p>
<p>선행 연구들이 Goal-Conditioned Imitation Learning을 탐구하였으나 [2, 11, 46, 55], 이러한 개념을 Chain-of-Thought 추론 단계로서 VLA와 통합한 것은 본 연구가 최초이다. 본 논문은 로봇 작업을 위한 생각의 사슬 추론의 한 형태로 서브골 이미지 생성을 활용하는 새로운 방법인 VLA를 위한 Visual Chain-of-Thought 추론을 제안한다.</p>
<p>행동을 직접 예측하는 대신, 본 방법론은 먼저 로봇의 계획된 상태를 픽셀 공간상에서 나타내는 서브골 이미지를 생성한 후, 현재의 관측과 생성된 서브골 이미지 모두를 조건(Condition)으로 하여 행동을 결정한다. 이러한 접근 방식은 모델이 행동하기 전에 과제를 수행하는 방법에 대해 &quot;시각적으로 생각&quot;할 수 있게 한다. 서브골 이미지를 중간 추론 단계로 사용함으로써, 본 논문은 최소한의 전처리만으로 로봇 조작 데이터에 이미 존재하는 정보를 활용한다. </p>
<p>또한, subgoal image 생성은 행동 주석(Action Annotations)을 필요로 하지 않으므로, 향상된 시각적 추론 및 이해를 위해 풍부한 비디오 데이터를 활용할 수 있는 잠재력을 열어준다.</p>
<p>본 논문은 텍스트와 이미지를 이해하고 생성할 수 있는 통합 멀티모달 파운데이션 모델(Multimodal Foundation Models)의 최근 발전 [39, 58, 61, 67, 69]을 기반으로 시각적 생각의 사슬 추론을 활용하는 CoT-VLA 시스템을 구축한다. 본 논문은 베이스 모델 [67]을 Open X-Embodiment 데이터셋 [48]과 행동 정보가 없는(Action-less) 비디오 데이터셋 [20, 27] 모두에서 학습시킨 후, 배포 및 평가에 사용되는 다운스트림 로봇 환경에서 수집된 작업 데모를 통해 모델을 파인튜닝한다. </p>
<p>본 논문은 CoT-VLA를 위한 <strong>Hybrid Attention Mechanism을 설계</strong>한다. <strong>텍스트 및 이미지 생성</strong>에는 <strong>Next-token Prediction</strong>을 위한 <strong>Causal Attention</strong>을 사용하고, 모든 <strong>Action Dimensions을 한 번에 예측하기 위해서는 풀 어텐션(Full Attention)을 활용</strong>한다.</p>
<p> 또한, 로봇 학습 분야의 최근 발전 [10, 17, 77]에서 영감을 받아, 매 타임스텝마다 단일 행동이 아닌 <strong>일련의 행동 시퀀스(Action Chunking)를 예측</strong>한다. 본 논문은 액션 청킹과 하이브리드 어텐션 메커니즘 모두가 모델의 성능을 향상시킨다는 점을 입증한다. 시뮬레이션 벤치마크 [37]와 실제 환경(Real-world) 실험 [48, 60]에서의 광범위한 실험을 통해, 본 논문은 시각적 생각의 사슬 추론이 기존 VLA 접근법 대비 정책 성능을 향상시키는 데 기여함을 입증한다.</p>
<p>본 논문의 주요 기여는 다음과 같다:</p>
<ul>
<li>로봇 제어(Robotic Control)를 위한 <strong>중간 추론 단계</strong>로서 <strong>서브골 이미지 생성을 통한 시각적 생각의 사슬 추론 방법</strong>을 소개한다.</li>
<li>시각적 생각의 사슬 추론을 통합한 시스템인 <code>CoT-VLA</code>와, 픽셀 및 텍스트 생성을 위한 코잘 어텐션과 행동 예측을 위한 풀 어텐션을 결합한 <strong>하이브리드 어텐션 메커니즘</strong>을 소개한다.</li>
<li>시뮬레이션과 실제 환경 모두에서 포괄적인 평가를 수행하여 시각적 생각의 사슬 추론이 VLA 성능을 향상시킴을 입증하며, 본 시스템이 다수의 로봇 플랫폼과 작업 전반에서 최고 수준의 성능(SOTA)을 달성함을 보인다.</li>
</ul>
<hr>
<h2 id="2-related-works">2. Related Works</h2>
<h3 id="chain-of-thought-cot-reasoning"><strong>Chain-of-Thought (CoT) Reasoning</strong></h3>
<p>CoT 추론은 자연어 처리 분야에서 두각을 나타내고 있으며, 특히 문제 해결 과정을 순차적이고 설명 가능한 단계로 분해하여 모델이 복잡한 다단계 추론 과제를 수행할 수 있게 하는 데 있어 그 중요성이 커지고 있다. CoT 추론에 관한 초기 연구 [62]는 LLM이 최종 답변에 도달하기 전에 중간 추론 단계(Intermediate Reasoning Steps)를 생성하도록 프롬프팅하는 방식의 효과를 입증했다.</p>
<p>이러한 패러다임을 시각 도메인으로 확장하여, 연구자들은 멀티모달 생각의 사슬 방법론을 탐구해 왔다. 이 방법론에서는 바운딩 박스 생성 [53], Stable Diffusion [50]이나 표준 Python 패키지 [24]를 이용한 중간 이미지 인페인팅(Image Infillments), 또는 CLIP Embedding 생성 [22]을 포함하여, 미래의 결과나 상태를 추론하기 위해 시각 정보를 단계별로 반복 처리한다. </p>
<p>최근에는 Embodied Applications에서도 CoT 추론이 탐구되고 있다. 이는 다단계 실행을 위한 텍스트 계획 [44, 45]이나 포인트 궤적(Point Trajectories) [63]을 생성할 수 있고, 추가적인 관측(Observations)으로서 객체의 바운딩 박스와 그리퍼 위치(Gripper Positions)를 레이블링 [44]할 수 있으며, 오픈 루프(Open-loop) 추종을 위한 미래 이미지 궤적 생성 [35, 47]이나 강화학습(Reinforcement Learning)을 위한 세밀한 보상 가이드 [76]를 생성할 수도 있다. </p>
<p>본 논문은 로봇 조작(Robotic Manipulation)을 위한 Visual-CoT 추론을 소개하며, 여기서 예측된 서브골 이미지(Subgoal Images)는 폐루프(Closed-loop) 행동 생성을 위한 중간 추론 단계 역할을 한다. 이 접근 방식은 추가적인 annotation 없이도 데모 비디오를 자연스러운 중간 추론 상태로 활용한다.</p>
<h3 id="vision-language-action-models"><strong>Vision-Language-Action Models</strong></h3>
<p>대규모 사전 학습된 Vision-Language Models(VLMs) [9, 28, 38]은 로봇 학습을 위한 강력한 도구로 부상했으며, 최근 연구들은 이를 로봇 시스템에 통합하기 위한 다양한 접근법을 탐구해 왔다. 몇몇 연구들은 복잡한 작업을 분해 [21, 26, 34, 56]하거나, 객체를 감지 [19, 25]하거나, 또는 밀집 보상(Dense Rewards) [13, 40, 74]이나 목표(Goals) [2, 11, 15, 46, 47, 55, 71, 80]를 생성하기 위해, VLM의 강력한 시맨틱 이해(Semantic Understanding) 및 추론 능력을 활용하여 이를 인지(Perception)와 제어(Control)를 위한 중간 구성 요소로 활용한다. </p>
<p>일부 접근법들은 더 나은 Visuolanguage Representation을 위해 VLM을 사전 학습된 Backbone으로 사용하여, 이를 종단간 학습 가능한 정책(End-to-end Trainable Policies)에 통합한다 [4, 49, 64] [12, 29, 41, 48, 59].</p>
<p>본 연구와 가장 관련이 깊은 것은 직접적인 행동 예측(Action Prediction)을 위해 로봇 데모 데이터에 대해 사전 학습된 VLM을 파인튜닝하는 최근의 접근 방식들이다 [12, 29, 48]. </p>
<p>이러한 VLA들은 Internet-scale의 비전-언어 데이터셋에 대한 사전 학습을 통해 새로운 객체, 환경, 그리고 자연어 지시에 대해 향상된 일반화 성능을 보여주며, 시각 및 언어 지식을 로봇 제어 작업으로 전이하기 위한 방향을 제시한다. </p>
<p>그러나 기존의 대부분의 VLA들은 다양한 작업 전반에서 성능을 크게 향상시키는 것으로 입증된 [62] 거대 언어 모델의 단계별 추론 능력을 활용하지 못하고 있다. 과거에 연구자들은 로봇 공학을 위해 언어 지시나 중간 키포인트(Keypoints)/바운딩 박스에 대해 생각의 사슬 추론을 사용해 왔다 [6, 13, 45, 63]. </p>
<p>본 논문은 행동 생성 이전의 중간 추론 단계로서 서브골 이미지를 사용하여, VLA 프레임워크에 시각적 생각의 사슬 추론을 도입한다.</p>
<hr>
<h2 id="3-cot-vla">3. CoT-VLA</h2>
<p>본 섹션에서는 VLA(Vision-Language-Action)를 위한 본 논문의 Visual Chain-of-Thought 추론 프레임워크를 제시한다.</p>
<h3 id="31-visual-chain-of-thought-reasoning">3.1. Visual Chain-of-Thought Reasoning</h3>
<p>본 논문은 VLA 사전 학습(Pretraining)을 위해 두 가지 유형의 학습 데이터를 고려한다.</p>
<ul>
<li><p><strong>로봇 시연 데이터셋(Robot demonstrations dataset, $D_r$)</strong><br>: $D_r = {(l, a_{1 \dots T}, s_{1 \dots T})}$로 표현된다. 여기서 $l$은 자연어 지시문(Language instruction), $a_{1 \dots T} = {a_1, \dots, a_T}$는 로봇 행동의 시퀀스, $s_{1 \dots T} = {s_1, \dots, s_T}$는 이미지 시퀀스로 구성된 시각적 관측값(Visual observations)을 의미한다.</p>
</li>
<li><p><strong>행동 주석이 없는 비디오 데이터셋(Action-less videos dataset, $D_v$)</strong><br>: $D_v = {(l, s_{1 \dots T})}$로 구성되며, 언어 설명과 이미지는 포함되어 있지만 로봇의 행동 주석(Action annotations)은 없는 데이터이다.</p>
</li>
<li><p><strong>VLA vs. CoT-VLA</strong></p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/a8eb62bd-34c5-42a6-8e3c-230c7ec28c9c/image.png" alt=""></p>
<ul>
<li><strong>Vanilla VLA ** 
: 사전 학습된 VLM($P_\theta$)을 로봇 시연 데이터($D_r$)로 미세 조정하여, 현재 관측값($s_t$)과 언어 지시문($l$)으로부터 **차기 행동($\hat{a}_{t+1}$)을 직접 예측</strong>하도록 학습한다.</li>
</ul>
<blockquote>
<p>(1) $\hat{a}_t \sim P_\theta(a_t | s_t, l)$</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/c6be55d3-a2d3-4b31-bab9-4a34de18792a/image.png" alt=""></p>
<ul>
<li><strong>CoT-VLA</strong><br>: 본 논문의 핵심 통찰은 행동 생성 전에 명시적인 <strong>시각적 추론(Visual Reasoning)</strong> 과정을 포함하는 것이다. <strong>Figure 2</strong>에서 보듯, 본 논문의 접근 방식은 다음의 두 가지 순차적 단계로 작동한다.</li>
</ul>
<blockquote>
<ol>
<li>중간 <strong>시각 추론(visual reasoning) 단계</strong>로서 $n$ 프레임 이후의 <strong>하위 목표 이미지($\hat{s}_{t+n}$)를 먼저 예측</strong>한다. (’미래의 이미지’를 먼저 생성함으로써 “어떤 행동을 했을 때 세상이 어떻게 변하는가”에 대한 시각적 정보를 학습)</li>
</ol>
<p>(2) $\hat{s}<em>{t+n} \sim P_\theta(s</em>{t+n} | s_t, l)$</p>
</blockquote>
<blockquote>
<ol start="2">
<li>생성된 하위 목표 이미지($\hat{s}_{t+n}$)를 조건으로 하여 $m$개의 <strong>행동 시퀀스를 생성</strong>한다.</li>
</ol>
</blockquote>
<p>(3) ${\hat{a}<em>t, \dots, \hat{a}</em>{t+m}} \sim P_\theta(a_t, \dots, a_{t+m} | s_t, l, \hat{s}_{t+n})$</p>
<p>이를 통해 모델은 행동을 예측하기 전에 <strong>원하는 미래 상태를 명시적으로 추론</strong>함으로써 먼저 &#39;시각적으로 생각&#39;할 수 있게 된다. </p>
<p><strong>시각적 추론 단계(Eq. 2)</strong>는 로봇 시연 데이터($D_r$)와 행동 주석이 없는 비디오($D_v$)에서 학습되고, <strong>행동 생성 단계(Eq. 3)</strong>는 로봇 시연 데이터($D_r$)에서만 학습된다.</p>
<h3 id="32-the-base-vision-language-model">3.2. The Base Vision-Language Model</h3>
<p> 식 (2)에서 설명한 시각적 추론 능력을 구현하기 위해, 이미지와 텍스트 토큰을 모두 이해하고 생성할 수 있는 통합 멀티 모달 기반 모델인 <code>VILA-U [67]</code>를 기반으로 base VL model을 구축한다.</p>
<ul>
<li><p><strong>통합 프레임워크:</strong> VILA-U는 자기회귀 차기 토큰 예측(Autoregressive next-token prediction) 프레임워크를 통해 비디오, 이미지, 언어 이해를 통합한다.</p>
</li>
<li><p><strong>통합 비전 타워(Unified Vision Tower):</strong> 시각적 입력을 텍스트 정보와 정렬된 이산 토큰(Discrete tokens)으로 인코딩한다. 이는 자기회귀 방식의 이미지/비디오 생성을 가능하게 하며, 이산 시각 특징을 활용하는 VLM의 이해 능력을 크게 향상시킨다.</p>
</li>
<li><p><strong>잔차 양자화(Residual Quantization):</strong> RQ-VAE [32]에서 도입된 뎁스 트랜스포머(Depth transformer)를 포함하여 잔차 토큰을 점진적으로 예측함으로써 이산 시각 특징의 표현 용량을 개선한다.</p>
</li>
<li><p><strong>데이터 구성:</strong> 추출된 시각 특징은 프로젝터(Projector)를 거쳐 LLM 백본에서 처리된다. 기본 모델은 [이미지, 텍스트], [텍스트, 이미지], [비디오, 텍스트], [텍스트, 비디오] 쌍을 포함하는 다중 모달 데이터로 학습된다.</p>
</li>
<li><p><strong>해상도 및 토큰 구조:</strong> 256 × 256 해상도 이미지를 사용하며, 각 이미지는 4의 잔차 깊이(Residual depth)를 가진 $16 \times 16 \times 4$ 토큰으로 인코딩된다.</p>
</li>
</ul>
<h3 id="33-training-procedures">3.3 Training Procedures</h3>
<p>본 논문은 로봇 시연 데이터($D_r$)와 행동 주석이 없는 비디오($D_v$)를 조합하여 <code>7B-base VILA-U</code> 모델을 사전 학습(Pretraining)한다. 학습 과정에서 비전 타워(Vision tower)는 고정(Fixed)된 상태로 유지하며, LLM 백본(LLM backbone), 프로젝터(Projector), 그리고 뎁스 트랜스포머(Depth transformer)라는 세 가지 구성 요소를 최적화한다. 학습 목표는 두 가지 핵심 요소로 구성된다. <strong>Causal attention을 이용한 하위 목표 이미지 생성(Eq. 2)</strong>과 <strong>Full attention을 이용한 행동 생성(Eq. 3)</strong>이다.</p>
<blockquote>
<ul>
<li><strong>Visual Tokens Prediction</strong></li>
</ul>
</blockquote>
<p>하위 목표 이미지 생성을 위해 각 학습 시퀀스는 $(l, s_t, s_{t+n})$의 형태를 갖는다. 본 논문은 [67]에서 사용된 학습 목표를 따른다. 각 시각적 위치(Visual position) $j$에서 Depth Transformer $P_\delta$는 LLM이 생성한 코드 임베딩 $h_j$를 기반으로 $D$개의 잔차 토큰(Residual tokens) $(k_{j,1}, \dots, k_{j,D})$을 자기회귀적으로 예측한다. 시각적 토큰에 대한 학습 목표는 다음과 같이 공식화된다.</p>
<blockquote>
</blockquote>
<p>(4) $L_{visual} = - \sum_{j} \sum_{d=1}^{D} \log P_\delta(k_{j,d} | k_{j,&lt;d})$</p>
<blockquote>
</blockquote>
<p>여기서 $j$는 시각적 토큰을 포함하는 위치의 인덱스이다. </p>
<blockquote>
<ul>
<li><strong>Action Tokens Prediction</strong></li>
</ul>
</blockquote>
<p>행동 예측을 위해 각 학습 시퀀스는 $(l, s_t, s_{t+n}, a_t, \dots, a_{t+m})$의 형태를 취한다. 각 행동 $a_i$는 7개의 토큰으로 표현되며, 각 행동 차원은 독립적으로 <strong>이산화(Discretized)</strong>된다. </p>
<blockquote>
</blockquote>
<p><code>OpenVLA[29]</code>를 따라, 각 <strong>연속적인 행동 차원을 256개의 discrete bins으로 매핑</strong>하며, 빈의 너비는 학습 데이터 행동 분포의 1번째와 99번째 백분위수 사이의 구간을 균등하게 나누어 결정한다. </p>
<blockquote>
</blockquote>
<p>텍스트 토크나이저 어휘 사전에서 가장 적게 사용되는 256개의 토큰을 행동 빈 토큰으로 재사용한다. 기존 연구들(Palm-e[12], OpenVLA[29], Open X-embodiement[48])과 달리, 본 논문은 action token을 처리하고 예측하는 데 <strong>Full attention</strong>을 채택하여 모든 action chunk가 서로 상호작용할 수 있도록 한다.</p>
<blockquote>
</blockquote>
<p>이 어텐션 메커니즘은 <strong>Figure 3(Hybrid Attention)</strong>에 예시되어 있다. 학습 시에는 행동 예측에 대한 Cross-entropy 손실을 최소화한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e1032770-8dd9-4f43-9294-3f36d6b3f666/image.png" alt=""></p>
<blockquote>
<p>[Figure 3] 
CoT-VLA의 Hybrid attention 메커니즘. 본 논문은 이미지 또는 텍스트 생성에는 Causal attention을 사용하고, Action generation에는 Full attention을 사용한다. $[x]$, $[\theta]$, $[g]$는 행동의 Parallel decoding을 위한 특수 토큰이다.</p>
</blockquote>
<ul>
<li><strong>Causal Attention vs Full Attention</strong> : 
Causal은 앞 단어만 보고 다음 단어를 맞히는 방식이지만, Full Attention은 지시문($l$), 현재 상태($s_t$), 그리고 목표 상태($s_{t+n}$)를 모두 펼쳐놓고 한꺼번에 참조한다. 목표 이미지($s_{t+n}$)가 이미 주어져 있기 때문에, 모델은 &quot;이 목표에 도달하려면 전체적으로 어떻게 움직여야 할지&quot;를 훨씬 더 조화롭고 정확하게 계산할 수 있다.</li>
</ul>
<blockquote>
<p>(5) $L_{action} = - \sum_{i=1}^{m} \log P_{\theta}(a_t, \dots, a_{t+m} \mid l, s_t, s_{t+n})$</p>
<p>입력 시퀀스 배치(Batch)가 주어졌을 때, 전체 학습 목표는 행동 및 시각적 손실을 결합한다.</p>
<p>(6) $L = L_{action} + L_{visual}$</p>
</blockquote>
<blockquote>
<ul>
<li><strong>Pretraining Phase</strong></li>
</ul>
</blockquote>
<p>본 논문은 섹션 3.1에서 기술한 바와 같이 로봇 시연 데이터($D_r$)와 행동 주석이 없는 비디오($D_v$)를 모두 사용하여 CoT-VLA를 사전 학습한다. </p>
<blockquote>
</blockquote>
<p>로봇 시연 데이터의 경우, Open X-Embodiment 데이터셋 (OpenX)의 하위 집합을 선별하여 사용한다. OpenVLA [29]에서 확립된 전처리 파이프라인을 따라, 3인칭 카메라 시점과 단일 팔 말단 작동기 제어(7-DoF)를 포함하는 데이터셋을 선택 및 처리한다. </p>
<blockquote>
</blockquote>
<p>행동 주석이 없는 비디오($D_v$)로는 EPIC-KITCHENS [27]와 Something-Something V2 [20] 데이터셋을 통합한다. 모든 이미지는 256 × 256 해상도로 처리된다.</p>
<blockquote>
</blockquote>
<p>시각적 추론을 위해, 예측 범위의 하한과 상한을 정의하는 데이터셋별 범위 $[n_l, n_u]$ 내에서 균등하게 샘플링된 미래 타임스텝 $n$의 하위 목표 이미지(Subgoal images)를 사용한다. </p>
<blockquote>
</blockquote>
<p>Action chunk size는 10으로 설정한다. (상세 파라미터는 Appendix 참조)</p>
<blockquote>
<ul>
<li><strong>Adaptation Phase for Downstream Closed-Loop Deployment</strong></li>
</ul>
</blockquote>
<p><strong>폐루프 배포 (Closed-Loop Deployment):</strong> 다운스트림 작업에 적응하기 위해, 대상 로봇 설정에서 수집된 작업별 로봇 시연 데이터($D_r$)를 사용하여 사전 학습된 모델을 미세 조정(Fine-tuning)한다. </p>
<blockquote>
</blockquote>
<p>이 단계에서는 사전 학습 단계와 동일한 설정을 유지하며 <strong>Vision tower를 고정(Frozen)한 채 LLM 백본, 프로젝터 및 뎁스 트랜스포머를 최적화</strong>한다. 결과 모델은 자연어 명령 $l$을 기반으로 새로운 조작 작업을 수행할 수 있다. <strong>알고리즘 1</strong>은 테스트 시 로봇 제어 절차를 설명한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/a6ff40d9-0cab-45e3-8fbc-feb2bdfed681/image.png" alt=""></p>
<p>[Algorithm 1]</p>
<ol>
<li><strong>입력 및 초기화 (Initialization)</strong></li>
</ol>
<ul>
<li>학습된 모델 $P_{\theta}$, 로봇의 초기 상태 $s_0^{obs}$, 작업 지시문 $l$, 타임스텝 $t=0$</li>
</ul>
<ol start="2">
<li><strong>시각적 하위 목표 샘플링 (Visual Subgoal Sampling)</strong></li>
</ol>
<ul>
<li>$\hat{s}{t+n} \sim P{\theta}(s_{t+n} \mid l, s_t^{obs})$: 현재 관측값($s_t^{obs}$)과 지시문($l$)을 바탕으로, 모델이 미래의 목표 상태인 <strong>하위 목표 이미지($\hat{s}_{t+n}$)</strong>를 먼저 생성</li>
</ul>
<ol start="3">
<li><strong>행동 시퀀스 샘플링 (Action Sequence Sampling)</strong></li>
</ol>
<ul>
<li>$[\hat{a}t, \dots, \hat{a}<em>{t+m}] \sim P</em>{\theta}(a_t, \dots, a_{t+m} \mid l, s_t^{obs}, \hat{s}<em>{t+n})$*: 앞서 생성한 하위 목표 이미지($\hat{s}</em>{t+n}$*)를 참조하여, 그 상태에 도달하기 위한 $m$개의 연속적인 행동($\hat{a}$)을 한꺼번에 생성</li>
</ul>
<ol start="4">
<li><strong>실행 (Execution)</strong></li>
</ol>
<ul>
<li>생성된 $m$개의 행동 시퀀스를 로봇이 순차적으로 실행</li>
</ul>
<ol start="5">
<li><strong>업데이트 및 폐루프 피드백 (Update &amp; Observation)</strong></li>
</ol>
<ul>
<li>타임스텝을 행동한 만큼 업데이트($t \leftarrow t + m + 1$)</li>
<li>실행 후 로봇으로부터 새로운 시각 관측값($s_t^{obs}$)을 다시 받아오고, 받아온 값(새 이미지) 바탕으로 다시 루프를 반복하며 실시간으로 오차를 보정</li>
</ul>
<hr>
<h2 id="4-experiments">4. Experiments</h2>
<p>본 논문은 시뮬레이션 벤치마크와 실제 로봇 조작 작업을 아우르는 일련의 실험을 통해 제안된 시스템의 효과를 평가한다. 실험의 주요 목적은 다음의 질문들에 답하는 것이다.</p>
<blockquote>
<p><strong>[Research Questions]</strong></p>
</blockquote>
<ul>
<li><strong>성능 비교</strong>: 본 논문의 시스템이 다양한 벤치마크와 로봇 본체(Embodiment)에 걸쳐 최신(State-of-the-art) 베이스라인 모델들과 비교했을 때 어느 정도의 성능을 보이는가? (Section 4.2)</li>
<li><strong>구성 요소의 영향:</strong> 사전 학습(Pretraining), 시각적 사고의 사슬(Visual Chain-of-Thought) 추론, 그리고 혼합 어텐션(Hybrid Attention)이 작업 수행 능력에 각각 어떤 영향을 미치는가? (Section 4.3)</li>
<li><strong>일반화와 행동 예측의 상관관계:</strong> 시각적 추론 능력의 향상된 일반화(Generalization) 성능이 로봇의 행동 예측 능력을 어느 정도까지 강화할 수 있는가? (Section 4.4)<blockquote>
</blockquote>
</li>
</ul>
<h3 id="41-experimental-setup">4.1. Experimental Setup</h3>
<p>본 논문은 세 가지 상호 보완적인 환경에서 평가를 수행한다.</p>
<ul>
<li><strong>LIBERO 벤치마크 [37]:</strong> 시뮬레이션 환경에서의 성능 평가를 위해 사용된다.</li>
<li><strong>Bridge-V2 플랫폼 [60]:</strong> 45,000개의 로봇 시연 데이터셋을 포함하는 플랫폼을 활용한다.</li>
<li><strong>Franka-Tabletop 설정:</strong> 테이블에 고정된 Franka Emika Panda 로봇을 사용하며, 각 테스트 시나리오당 10개에서 150개 사이의 제한된 로봇 시연 데이터를 사용한다.</li>
</ul>
<p><strong>LIBERO Simulation Benchmark [37]</strong></p>
<p>로봇의 공간 이해(Spatial), 객체 상호작용(Object), 목표 달성(Goal), 장기 작업(Long) 능력을 평가하기 위한 4개의 작업 스위트로 구성된다. 각 작업당 50개의 사람 원격 조종 시연 데이터를 사용하며, 이미지는 256x256 해상도 표준화 및 180도 회전 등의 전처리를 거친다.</p>
<p><strong>Bridge-V2 Real-Robot Experiments [60]</strong></p>
<p>6자유도(6-DoF) WidowX 로봇 팔을 사용하며, 45,000개의 언어 주석이 달린 궤적 데이터를 활용한다. 시각적 강건성, 동작 일반화, 의미론적 일반화, 언어 접지(Language grounding) 능력을 평가하도록 설계된 4가지 작업을 수행한다.</p>
<p><strong>Franka-Tabletop Real-Robot Experiments</strong></p>
<p>사전 학습 단계에서 노출되지 않은 새로운 환경으로, 7자유도(7-DoF) Franka Emika Panda 로봇을 사용한다. 소량의 데이터(10~150개 시연)만으로 새로운 환경에 얼마나 잘 적응하는지 평가하며, 단일 지시문 및 다중 지시문 기반의 6개 작업을 수행한다.</p>
<p><strong>Baselines</strong></p>
<p>본 논문은 제안하는 접근 방식의 성능을 검증하기 위해 네 가지 최신(State-of-the-art) 베이스라인 모델과 비교 평가를 수행한다.</p>
<ul>
<li><p><strong>Diffusion Policy [10]</strong>: 최신 Imitation Learning 알고리즘으로, LIBERO와 Franka-Tabletop의 각 테스트 시나리오에 대해 처음부터(From scratch) 학습된다. 이 구현체는 DistilBERT [52] 언어 임베딩을 조건으로 사용하며, Action chunking과 고유 수용 감각(Proprioception)을 통합하고 있다.</p>
</li>
<li><p><strong>OpenVLA [29]</strong>: 사전 학습된 시각-언어 모델(VLM)을 OpenX 데이터셋으로 미세 조정하여 사용하는 오픈 소스 VLA 모델이다.</p>
</li>
<li><p><strong>Octo [59]</strong>: VLM 초기화 없이 OpenX 데이터셋에서 사전 학습된 범용 모델(Generalist model)이다. OpenVLA와 Octo 모두 Bridge-V2 평가에는 공개된 체크포인트를 사용하였으며, LIBERO 및 Franka-Tabletop 실험을 위해서는 각 환경에 맞게 미세 조정을 거쳤다.</p>
</li>
<li><p><strong>SUSIE [2]</strong>: 2단계 접근 방식을 사용하는 모델로, 지시문 가이드 이미지 편집(Instruction-guided image editing)을 통해 목표를 생성한 뒤, 목표 조건부 정책(Goal-conditioned policy)을 통해 행동을 생성한다. SUSIE는 Bridge-V2에서 공개된 체크포인트를 사용하여 평가되었다.</p>
</li>
</ul>
<h3 id="42-evaluations-results">4.2. Evaluations Results</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/17fb241a-2430-46f9-afba-ce86c79968de/image.png" alt=""></p>
<ul>
<li><p><strong>LIBERO</strong></p>
<p>  <img src="https://velog.velcdn.com/images/choonsik_mom/post/08e07209-7456-47eb-981e-978a35caf14d/image.png" alt=""></p>
</li>
</ul>
<pre><code>본 논문은 **표 1**에 정량적 결과를 제시하며, 각 방법은 작업 스위트당 3개의 무작위 시드(Random seeds)를 사용하여 총 500회의 평가를 거쳤다. 성공률은 평균과 표준 오차(Standard error)로 보고된다. 본 논문 방식의 추론 및 실행 궤적에 대한 정성적 예시는 **Figure 5**에 설명되어 있다. 

결과는 CoT-VLA가 LIBERO 시뮬레이션 환경의 작업에 효과적으로 적응하며, 베이스라인 접근 방식들과 비교하여 최고 수준이거나 경쟁력 있는 성능을 달성함을 보여준다. 

실패 사례의 롤아웃(Rollout) 비디오를 분석한 결과, 베이스라인 방법들이 언어 지시문을 무시한 채 시각적 단서에 가끔 과적합(Overfit)되는 것을 발견했다. 

구체적으로, 서로 다른 작업 간에 초기 상태가 시각적으로 유사하게 보일 때(예: LIBERO-Spatial), 베이스라인 방법들은 일부 에피소드에서 명령된 작업과 다른 작업을 실행한다. CoT-VLA는 언어 접지형(Language-grounded) 하위 목표 생성을 통해 원하는 행동에 대해 먼저 시각적으로 추론한 다음, 목표 달성을 위한 관련 행동을 예측함으로써 더 나은 지시문 이행 능력을 보여준다.</code></pre><ul>
<li><p><strong>Bridge-V2</strong></p>
<p>  <img src="https://velog.velcdn.com/images/choonsik_mom/post/d563a4b1-0d0b-45c5-bdff-f4f48b122a8d/image.png" alt=""></p>
</li>
</ul>
<pre><code>본 논문은 [29]에서 식별된 네 가지 일반화 범주에 대해 Bridge-V2 벤치마크에서 CoT-VLA와 베이스라인들을 평가한다. 해당 범주는 시각적 일반화(어지러운 환경에서 &quot;가지(Eggplant)를 냄비에 넣기&quot;), 동작 일반화(높이 변화가 있는 상태에서 &quot;당근을 접시에 놓기&quot;), 의미론적 일반화(&quot;냄비에서 보라색 포도를 꺼내기&quot;), 그리고 언어 접지(&quot;가지 또는 빨간 병을 냄비에 넣기&quot;)이다. 정량적 결과는 표 2에 보고되며, 각 작업은 10회의 평가를 거쳤다. 

`SUSIE [2]`는 확산 사전 학습(Diffusion prior)을 통해 시각적으로 더 높은 품질의 목표 이미지를 생성하지만(본 논문의 한계에 대한 자세한 논의는 Section 5 참조), 새로운 객체가 포함되거나 복잡한 언어 접지가 필요한 작업에서는 더 낮은 성공률을 기록했다. `OpenVLA [29]`와 비교했을 때, CoT-VLA는 시각적 추론의 오류보다는 **Action chunking으로 인한 파지(Grasping) 실패**(섹션 5 참조)로 인해 **시각 및 언어 일반화 작업에서 약간 낮은 성공률**을 보인다. 그러나 **CoT-VLA는 전반적으로 네 가지 일반화 범주 모두에서 경쟁력 있는 성능**을 입증하며, 베이스라인 접근 방식들과 비슷하거나 더 나은 결과를 달성했다.</code></pre><ul>
<li><p><strong>Franka-Tabletop</strong></p>
<p>  본 논문은 <strong>표 4</strong>에 정량적 결과를, <strong>Figure 5</strong>에 실행 궤적 예시를 제시한다. 이 실험에서 모델들은 비교적 적은 양의 시연 데이터셋으로 미세 조정된다. 디퓨전 정책(Diffusion Policy)은 단일 지시문 작업(예: &quot;옥수수를 그릇에 넣기&quot;)에서 최고의 성능을 달성하지만, 다양한 객체와 복잡한 언어 지시문이 포함된 다중 지시문 작업에서는 성능이 저하된다. OpenX 데이터셋에서 사전 학습된 모델들인 Octo, OpenVLA, CoT-VLA는 언어 접지가 중요한 다중 지시문 작업에서 더 나은 적응력과 성능을 보여준다. 전반적으로 CoT-VLA는 베이스라인 접근 방식들과 비교하여 가장 높은 평균 성능을 달성했으며, 단일 및 다중 지시문 시나리오 모두에서 개선된 모습을 보였다.</p>
<p>  <img src="https://velog.velcdn.com/images/choonsik_mom/post/bfbdc30a-d691-4202-95e2-69a5bbaa23bf/image.png" alt=""></p>
</li>
</ul>
<h3 id="43-ablation-study">4.3. Ablation Study</h3>
<ul>
<li><p><strong>Visual CoT, Hybrid Attention, and Action Chunking</strong>
본 논문은 LIBERO-Spatial과 LIBERO-Goal이라는 두 가지 LIBERO 벤치마크 스위트(Benchmark suites)에서 Ablation study를 수행했다. 다음과 같은 네 가지 모델 변형을 평가했다.</p>
<ul>
<li><p><strong>VLA</strong>: 표준 VLA 프레임워크[29]를 따르는 베이스라인(Baseline) 구현으로, 동일한 VILA-U 백본(Backbone)을 사용하지만 사고의 사슬(Chain-of-thought) 추론과 행동 청킹(Action chunking)은 제외한다.</p>
</li>
<li><p><strong>+ action chunking</strong>: 일반적인 VLA를 확장하여 길이 $m$의 행동 시퀀스(Action sequences)를 예측하도록 한다.</p>
</li>
<li><p><strong>+ hybrid attention</strong>: 그림 3에 예시된 것처럼 행동 시퀀스 예측을 위해 풀 어텐션(Full attention) 메커니즘을 추가한다.</p>
</li>
<li><p><strong>+ CoT(본 논문)</strong>: hybrid attention 메커니즘과 (Visual chain-of-thought 추론이 결합된 본 논문의 완성된 접근 방식이다.</p>
</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/443a0398-7633-4b83-8307-b4ce759abf4e/image.png" alt=""></p>
<blockquote>
<p>[Figure 6] 
CoT-VLA 구성 요소에 대한 Ablation studies. 
(a) LIBERO-Spatial 및 LIBERO-Goal 벤치마크 결과는 Action chunking, Hybrid attention, Visual chain-of-thought 추론이라는 세 가지 구성 요소의 유효성을 입증한다. 
(b) Franka-Tabletop에서의 사전 학습 어블레이션 실험은 OpenX 및 행동 주석이 없는 비디오(Action-less video) 사전 학습 과정을 통한 성능 향상을 보여준다.</p>
</blockquote>
<p><strong>Fig 6</strong>에서 보듯, 두 벤치마크 스위트 모두에서 행동 시퀀스 예측이 단일 행동 예측(Single-action prediction)보다 일관되게 우수한 성능을 보였다. Hybrid attention 메커니즘의 추가는 성능을 더욱 향상시킨다. 본 논문의 CoT-VLA는 가장 우수한 결과를 달성하며 VLA 작업에서 시각적 사고의 사슬 추론의 유효성을 입증한다.</p>
<ul>
<li><p><strong>Pretraining</strong></p>
<p>본 논문의 학습 파이프라인은 행동 주석이 없는 비디오 데이터(Action-less video data)가 추가된 OpenX 데이터셋으로 VILA-U를 사전 학습하는 단계(섹션 3.3)와, 로봇 시연 데이터(Robot demonstration data)로 수행하는 작업별 사후 학습(Post-training) 단계로 구성된다. 사전 학습 단계의 중요성을 평가하기 위해 Franka-Tabletop 환경에서 ablation study를 수행한다. </p>
<p>정량적 결과는 그림 6에 보고된다. 결과에 따르면, 본 논문의 사전 학습 단계를 거친 CoT-VLA는 기반 VILA-U 모델을 Franka-Tabletop 시연 데이터로 직접 미세 조정(Fine-tuning)한 경우 <strong>53.7%</strong>와 비교해 <strong>78.8%</strong>의 성공률을 기록하며 <strong>46.7%</strong>의 상대적 성능 향상을 달성했으며, 이는 더 나은 Downstream task adaptation을 보여준다.</p>
</li>
</ul>
<h3 id="44-better-visual-reasoning-helps">4.4. Better Visual Reasoning Helps</h3>
<p>훈련 시 로봇 시연 데이터($D_r$)만을 사용하는 기존의 VLA(Vision-Language-Action) 모델들과 달리, CoT-VLA는 중간 단계인 <strong>Visual Chain-of-Thought</strong> 추론 단계를 통해 행동 주석이 없는 <strong>비디오 데이터($D_v$)를 사전 학습에 활용</strong>한다. 이를 통해 로봇 시연 데이터보다 훨씬 풍부한 캡션이 달린 비디오만으로도 <strong>역학(Dynamics)과 지시문 이행(Instruction following)을 모두 학습</strong>할 수 있다.</p>
<p> 시각적 추론 능력이 로봇의 성능으로 어떻게 전이되는지 조사하기 위해, 본 논문은 학습되지 않은 두 개의 하위 작업이 결합된 새로운 Long-horizon tasks을 사용하여 Franka-Tabletop 설정에서 ablation study를 수행한다. </p>
<p>본 논문은 모델의 분포 외(Out-of-distribution) 일반화에 도전적인 두 가지 작업, 즉 (1) &quot;녹색 파를 사과가 그려진 책으로 옮기기&quot;와 (2) &quot;녹색 콜리플라워를 곰이 그려진 책으로 옮기기&quot;를 설계한다. 각 작업에 대해 하나의 시연 궤적을 수집하여 실측(Ground-truth) 목표 이미지를 확보한다. 각 작업은 두 가지 조건 하에 5회씩 평가된다: (1) 생성된 목표 이미지를 사용하는 CoT-VLA (2) 수집된 시연에서 얻은 실측 목표 이미지를 사용하는 CoT-VLA.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/9bdbd455-86bb-4e6a-9a82-120dd4597623/image.png" alt=""></p>
<blockquote>
<p>[Table 3] 
더 나은 시각적 추론의 기여도. 분포 외(Out-of-distribution) 작업에서 생성된 목표 이미지와 실측(Ground-truth) 목표 이미지를 사용했을 때의 CoT-VLA 성공률 비교. 
결과는 실측 목표 이미지로 시뮬레이션된 개선된 시각적 추론이 더 나은 작업 성능으로 이어진다는 것을 입증하며, 이는 목표 생성 기술의 발전이 곧 로봇의 행동 실행 능력 향상으로 직결될 수 있음을 시사한다.</p>
</blockquote>
<p><strong>Table 3</strong>에서 보듯, 실측 목표 이미지를 사용하면 두 작업 모두에서 절대 성공률이 40% 향상된다. 이러한 성능 향상은 시각적 추론 및 목표 이미지 생성 기술의 발전이 로봇의 작업 수행 능력 향상으로 직접 이어질 수 있음을 시사한다. 본 논문의 방식은 여전히 분포 외 하위 목표 생성에 어려움을 겪고 있지만, 대규모 비디오 및 이미지 모델의 최근 발전은 스케일링을 통해 시각적 추론 능력을 개선할 수 있는 유망한 방향을 보여준다.</p>
<hr>
<h2 id="5-conclusion-limitations-and-future-work">5. Conclusion, Limitations and Future Work</h2>
<p>본 논문은 중간 시각적 목표를 명시적인 추론 단계로 도입하여 시각-언어-행동(Vision-Language-Action) 모델과 사고의 사슬(Chain-of-Thought) 추론을 결합한 CoT-VLA를 제안하였다. 바운딩 박스(Bounding boxes)나 핵심 포인트(Keypoints)와 같은 추상적인 표현 대신, 비디오에서 샘플링된 하위 목표 이미지(Subgoal images)를 해석 가능하고 효과적인 중간 표현으로 사용할 것을 제안하였다. 본 시스템은 VILA-U를 기반으로 구축되었으며, 다양한 로봇 조작 작업에서 강력한 성능을 입증하였다.</p>
<p>본 논문의 접근 방식은 효과적이지만 몇 가지 한계점이 존재한다.</p>
<p><strong>주요 한계점 및 향후 과제</strong></p>
<ul>
<li><p><strong>추론 속도 저하</strong>: <strong>추론 과정에서 중간 이미지 토큰을 생성</strong>하는 것은 직접적인 행동 생성 방식에 비해 상당한 <strong>Computational overhead를 발생</strong>시킨다. 
action chunk 크기가 10일 때, action chunk 이전에 256개의 이미지 토큰을 생성해야 하므로 평균적으로 약 7배의 속도 저하가 발생한다.</p>
</li>
<li><p><strong>시각적 품질의 한계</strong>: 본 논문의 자기회귀(Autoregressive) 이미지 생성 방식은 최신 확산 기반 모델(Diffusion-based models)에 비해 시각적 품질이 낮다. 이는 향후 통합 다중 모달 모델의 발전을 통해 개선될 수 있는 부분이다.</p>
</li>
<li><p><strong>행동의 불연속성</strong>: 사용된 행동 청킹(Action chunking) 방식은 청크 사이의 불연속적인 행동을 유발할 수 있으며, 실행 중 고주파 피드백(High-frequency feedback)이 부족하다는 단점이 있다. 이는 시간적 평활화(Temporal smoothing) 기술 등을 통해 해결될 수 있다.</p>
</li>
<li><p><strong>일반화 능력의 제약</strong>: 현재의 계산 자원 제약으로 인해 완전히 새로운 작업에 대한 시각적 추론 일반화 능력을 달성하는 데 한계가 있다.</p>
</li>
</ul>
<hr>
<h2 id="6-appendix-implementation-details">6. Appendix (Implementation Details)</h2>
<h3 id="61-data-detail">6.1. Data Detail</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/29390ad6-ef19-49ff-9dcc-461b039d9388/image.png" alt=""></p>
<p>본 논문은 로봇 시연 사전 학습 데이터로 Open X-Embodiment 데이터셋 [48]의 일부를 선택하였으며, 행동 주석이 없는 비디오 데이터(Action-less video data)로는 Something-Something V2 [20]와 EPIC-KITCHEN-100 [27]을 사용했다. </p>
<p>하위 목표 예측 범위(Subgoal horizon)의 상한($u_u$)과 하한($u_l$)은 각 데이터셋의 특성에 맞춰 수동으로 설정되었다.</p>
<h3 id="62-hyperparameters">6.2. Hyperparameters</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/31946269-ba4b-4cee-9927-7eb2fdaaad92/image.png" alt=""></p>
<p>모델의 사전 학습 및 사후 학습(Post-training) 단계에서 사용된 주요 하이퍼파라미터</p>
<h3 id="63-training">6.3. Training</h3>
<p>각각 8개의 GPU가 탑재된 12개의 NVIDIA A100 GPU 노드에서 학습 수행</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[ACT : Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware (2023)]]></title>
            <link>https://velog.io/@choonsik_mom/ACT-Learning-Fine-Grained-Bimanual-Manipulation-with-Low-Cost-Hardware-2023</link>
            <guid>https://velog.io/@choonsik_mom/ACT-Learning-Fine-Grained-Bimanual-Manipulation-with-Low-Cost-Hardware-2023</guid>
            <pubDate>Thu, 12 Feb 2026 14:15:47 GMT</pubDate>
            <description><![CDATA[<p>Stanford, UC Berkely, Meta <code>ACT : Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware (RSS 2023)</code>의 논문 내용 정리</p>
<blockquote>
<p>ACT 
<a href="https://arxiv.org/pdf/2304.13705">[paper]</a>
<a href="https://tonyzhaozh.github.io/aloha/">[project page]</a></p>
</blockquote>
<hr>
<h3 id="abstract">ABSTRACT</h3>
<p>&quot;케이블 타이 묶기&quot;나 &quot;배터리 끼우기&quot;와 같은 정교한 조작 작업은 정밀성(Precision), 접촉력(Contact forces)의 세심한 조정, 그리고 폐루프 시각 피드백(Closed-loop visual feedback)을 필요로 하기 때문에 로봇이 수행하기 매우 어렵기로 정평이 나 있다. </p>
<p>이러한 작업을 수행하려면 일반적으로 고성능 로봇(High-end robots), 정밀한 센서, 또는 세심한 캘리브레이션(Calibration)이 필요한데, 이는 비용이 많이 들고 환경을 구축하기 어렵다.</p>
<p>과연 학습(Learning)을 통해 저비용의 정밀하지 않은 하드웨어(Low-cost and imprecise hardware)도 이러한 정교한 조작 작업을 수행할 수 있을까?</p>
<p>본 논문은 커스텀 원격 조작 인터페이스(Teleoperation interface)를 통해 수집된 실제 데모(Real demonstrations)로부터 직접 <strong>종단간 모방학습(End-to-end imitation learning)</strong>을 수행하는 저비용 시스템을 제안한다. </p>
<p>그러나 모방학습은 특히 고정밀 도메인(High-precision domains)에서 고유한 난관이 존재한다. 즉, 정책(Policy)의 오류가 시간이 지남에 따라 누적(Compound)될 수 있으며, 인간의 데모는 비정상성(Non-stationary)을 띨 수 있다는 점이다.</p>
<p>이러한 문제를 해결하기 위해, 본 논문은 <strong>행동 시퀀스(Action sequences)에 대한 생성 모델(Generative model)을 학습</strong>하는 간단하고 새로운 알고리즘인 <code>ACT(Action Chunking with Transformers)</code>를 개발한다. </p>
<p>ACT를 통해 로봇은 반투명 소스 컵 열기나 배터리 끼우기와 같이 어려운 6가지의 실제 환경 작업(Real world tasks)을 단 10분 분량의 데모만으로 80-90%의 성공률로 학습할 수 있었다.</p>
<hr>
<h2 id="i-introduction">I. INTRODUCTION</h2>
<p><strong>정교한 조작(Fine manipulation)</strong> 작업은 정밀한 폐루프 피드백(Closed-loop feedback)을 수반하며, 환경 변화에 대응하여 동작을 조정하고 재계획(Re-plan)하기 위한 고도화된 손과 눈의 협응(Hand-eye coordination)을 필요로 한다. 이러한 조작 작업의 예로는 양념병 뚜껑 열기나 배터리 끼우기 등이 있는데, 이는 단순한 &quot;픽 앤 플레이스&quot;와 같은 큰 동작보다는 &quot;집기&quot;, &quot;비틀어 열기&quot;, &quot;뜯기&quot;와 같은 섬세한 동작을 포함한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/8bce75bf-b40f-46f5-9e9e-ec91c7bae193/image.png" alt=""></p>
<p>위 <strong>[Figure 1]</strong>의 양념병 뚜껑 열기를 예로 들어보자. 컵은 테이블 위에 똑바로 세워진 상태로 초기화된다. 오른쪽 그리퍼(Gripper)가 먼저 컵을 넘어뜨리고, 열려 있는 왼쪽 그리퍼 안으로 살짝 밀어 넣어야(Nudge) 한다. </p>
<p>그다음 왼쪽 그리퍼가 부드럽게 닫히며 테이블에서 컵을 들어 올린다. 이어서 오른쪽 손가락 중 하나가 아래쪽에서 컵에 접근하여 뚜껑을 비틀어 연다.</p>
<p>이 각 단계는 높은 정밀도, 섬세한 손과 눈의 협응, 그리고 풍부한 접촉(Rich contact)을 필요로 한다. 수 밀리미터의 오차만 있어도 작업은 실패로 돌아간다.</p>
<p>기존의 정교한 조작 시스템들은 정밀한 상태 추정(State estimation)을 위해 고가의 로봇과 고성능 센서를 사용한다 [29, 60, 32, 41]. 이와 대조적으로 본 논문은 접근 가능하고 재현 가능한 저비용의 정교한 조작 시스템을 개발하고자 한다. 하지만 저비용 하드웨어는 고성능 플랫폼보다 필연적으로 정밀도가 떨어지므로, 센싱(Sensing)과 계획(Planning)의 난이도가 더욱 심화된다.</p>
<p>이를 해결하기 위한 유망한 방향 중 하나는 시스템에 학습(Learning)을 도입하는 것이다. 인간 역시 산업용 등급의 고유 수용성 감각(Proprioception) [71]을 가지고 있지 않지만, 폐루프 시각 피드백(Closed-loop visual feedback)을 통해 학습하고 오차를 능동적으로 보정함으로써 섬세한 작업을 수행할 수 있다. 따라서 본 논문의 시스템은 상용 웹캠의 <strong>RGB 이미지를 행동(Actions)으로 직접 매핑하는 종단간 정책(End-to-end policy)을 학습</strong>한다.</p>
<p>이러한 픽셀-투-액션 정식화(Pixel-to-action formulation)는 정교한 조작에 특히 적합하다. 정교한 조작은 복잡한 물성(Physical properties)을 가진 객체를 다루는 경우가 많아, <strong>전체 환경을 모델링하는 것보다 조작 정책(Manipulation policy)을 학습하는 것이 훨씬 간단</strong>하기 때문이다. </p>
<p>양념병 예시를 다시 보면, 컵을 밀어 넣을 때의 접촉이나 뚜껑을 비틀어 열 때의 변형(Deformation)을 모델링하려면 수많은 자유도(Degrees of freedom)에 걸친 복잡한 물리학적 계산이 필요하다. </p>
<p>계획(Planning)에 사용할 수 있을 만큼 정확한 모델을 설계하려면 상당한 연구와 작업별 엔지니어링 노력이 요구된다. </p>
<p>반면, 컵을 밀고 여는 정책은 훨씬 간단하다. 폐루프 정책은 컵과 뚜껑이 어떻게 움직일지 미리 정밀하게 예측(Anticipating)하기보다는, 그들의 다양한 위치에 맞춰 반응(React)할 수 있기 때문이다.</p>
<p>그러나 <strong>종단간 정책(End-to-end policy)</strong>을 학습시키는 것은 고유한 어려움이 있다. 정책의 성능은 학습 데이터 분포(Training data distribution)에 크게 의존하며, 정교한 조작의 경우 고품질의 인간 데모(Human demonstrations)는 시스템이 인간의 기교(Dexterity)를 배울 수 있게 해주어 엄청난 가치를 제공한다. 따라서 본 논문은 데이터 수집을 위한 저비용이지만 정교한 <strong>원격 조작(Teleoperation)</strong> 시스템과 데모로부터 효과적으로 학습하는 새로운 <strong>모방학습(Imitation learning)</strong> 알고리즘을 구축한다. 다음 두 문단에서 각 구성 요소를 개괄한다.</p>
<ul>
<li><p><strong>원격 조작 시스템(Teleoperation system).</strong>
본 논문은 두 세트의 저비용 상용(Off-the-shelf) 로봇 팔을 이용한 원격 조작 설비를 고안했다. 이들은 서로 크기만 다른 비례 버전(Scaled versions)이며, 원격 조작을 위해 관절 공간 매핑(Joint-space mapping)을 사용한다. </p>
<p>본 논문은 더 쉬운 역구동(Backdriving)을 위해 3D 프린팅 부품으로 이 설비를 보강하였으며, 그 결과 $20k 예산 내에서 매우 유능한 원격 조작 시스템을 구축했다. </p>
<p><strong>Figure 1</strong>에서 그 능력을 보여주는데, 케이블 타이 묶기와 같은 정밀한 작업, 탁구공 저글링 같은 동적인 작업, 그리고 NIST 보드 #2 [4]의 체인 조립과 같은 접촉이 풍부한(Contact-rich) 작업의 원격 조작이 포함된다.</p>
</li>
<li><p><strong>모방학습 알고리즘(Imitation learning algorithm).</strong>
정밀함과 시각 피드백을 요하는 작업은 고품질의 데모가 있더라도 모방학습에 있어 상당한 난관이다. 예측된 행동의 작은 오차가 상태(State)의 큰 차이를 유발하여, 모방학습의 &quot;누적 오차(Compounding error)&quot; 문제 [47, 64, 29]를 악화시킬 수 있다. </p>
<p>이를 해결하기 위해 본 논문은 일련의 행동들이 하나의 덩어리(Chunk)로 그룹화되어 단일 단위로 실행된다는 심리학 개념인 행동 청킹(Action chunking) [35]에서 영감을 얻었다.</p>
</li>
</ul>
<p>본 논문의 경우, 정책은 한 번에 한 단계가 아니라 다음 $k$ Timesteps의 <strong>목표 관절 위치(Target joint positions)</strong>를 예측한다. 이는 작업의 유효 호라이즌(Effective horizon)을 $k$배로 줄여주어 누적 오차를 완화한다. 또한 <strong>행동 시퀀스(Action sequences)</strong>를 예측하는 것은 마르코프 단일 단계 정책(Markovian single-step policies)으로는 모델링하기 어려운 데모 내의 멈춤(Pauses)과 같은 <strong>시간적으로 상관된 교란 변수(Temporally correlated confounders)</strong> [61]를 해결하는 데도 도움이 된다.</p>
<p>정책의 부드러움(Smoothness)을 더욱 향상하기 위해, 본 논문은 <strong>정책을 더 자주 조회(Query)하고 겹치는 행동 청크들을 평균 내는</strong> <strong>Temporal ensembling</strong>을 제안한다. 본 논문은 시퀀스 모델링을 위해 설계된 아키텍처인 <strong>트랜스포머(Transformers)</strong> [65]로 Action Chunking 정책을 구현하고, 인간 데이터의 <strong>변동성(Variability)을 포착</strong>하기 위해 이를 <strong>조건부 VAE (CVAE)</strong> [55, 33]로 학습시킨다. </p>
<p>본 논문은 이 방법을 <strong>ACT(Action Chunking with Transformers)</strong>라 명명하였으며, 다양한 시뮬레이션 및 실제 환경의 정교한 조작 작업에서 기존 모방학습 알고리즘들보다 월등히 뛰어난 성능을 보임을 확인했다.</p>
<p>본 논문의 핵심 기여(Key contribution)는 원격 조작 시스템과 새로운 모방학습 알고리즘으로 구성된, 정교한 조작 학습을 위한 저비용 시스템이다. 원격 조작 시스템은 저렴한 비용에도 불구하고 높은 정밀도와 풍부한 접촉을 요하는 작업을 가능하게 한다. 모방학습 알고리즘인 ACT는 정밀한 폐루프 행동(Closed-loop behavior) 학습할 수 있으며 기존 방법들을 압도적으로 능가한다. </p>
<p>이 두 부분 간의 시너지(Synergy)는 반투명 양념병 열기나 배터리 끼우기와 같은 6가지의 정교한 조작 기술을 단 10분, 혹은 50개의 데모 궤적(Trajectories)만으로 80-90%의 성공률로 실제 환경(Real-world)에서 직접 학습할 수 있게 한다.</p>
<hr>
<h2 id="ii-related-work">II. RELATED WORK</h2>
<ul>
<li><p><strong>Imitation learning for robotic manipulation</strong>
모방학습은 로봇이 전문가로부터 직접 학습할 수 있게 해준다. <strong>행동 복제(Behavioral Cloning, BC)</strong> [44]는 가장 간단한 모방학습 알고리즘 중 하나로, 모방을 관측에서 행동으로의 지도 학습으로 간주한다. </p>
<p>이후 많은 연구들이 다양한 아키텍처를 통해 히스토리(History)를 통합하거나 [39, 49, 26, 7], 다른 학습 목적 함수(Training objective)를 사용하거나 [17, 42], 정규화(Regularization)를 포함하는 [46] 등 BC를 개선하고자 노력해 왔다.</p>
<p>다른 연구들은 모방학습의 Multi-task 또는 Few-shot 측면을 강조하거나 [14, 25, 11], 언어를 활용하거나 [51, 52, 26, 7], 특정 작업 구조를 이용하기도 한다 [43, 68, 28, 52]. 이러한 모방학습 알고리즘을 더 많은 데이터로 Scaling함으로써 새로운 객체, 지시 사항, 혹은 장면에 일반화할 수 있는 인상적인 시스템들이 등장했다 [15, 26, 7, 32].</p>
<p>본 논문은 저비용이면서도 섬세하고 정교한 조작(Fine manipulation) 작업을 수행할 수 있는 모방학습 시스템을 구축하는 데 집중한다. </p>
<p>본 논문은 고성능 원격 조작(Teleoperation) 시스템과 정교한 조작 작업에서 기존 방법들을 획기적으로 개선한 새로운 모방학습 알고리즘을 구축함으로써, 하드웨어와 소프트웨어 양면에서 이 문제를 해결한다.</p>
</li>
<li><p><strong>Addressing compounding errors</strong>
BC의 주요 단점은 누적 오차이다. 이는 이전 시간 단계(Timesteps)의 오차가 축적되어 로봇이 학습 분포(Training distribution)에서 벗어나게(Drift off) 만들고, 회복하기 힘든 상태(Hard-to-recover states)로 이끄는 문제다 [47, 64]. </p>
<p>이 문제는 정교한 조작 환경에서 특히 두드러진다 [29]. 누적 오차를 완화하는 한 가지 방법은 <strong>DAgger</strong> [47] 및 그 변형들 [30, 40, 24]과 같이 추가적인 <strong>On-policy</strong> 상호작용과 전문가 교정을 허용하는 것이다. 그러나 전문가 Annotation은 원격 조작 인터페이스를 사용할 때 시간이 많이 소요되고 부자연스러울 수 있다 [29].</p>
<p>데모 수집 시점에 노이즈를 주입(Inject noise)하여 교정 행동(Corrective behavior)이 포함된 데이터셋을 얻는 방법도 있으나 [36], 정교한 조작의 경우 이러한 노이즈 주입은 작업 실패로 직결되어 원격 조작 시스템의 기교(Dexterity)를 저하시킬 수 있다. </p>
<p>이러한 문제를 우회하기 위해 기존 연구들은 오프라인 방식으로 합성 교정 데이터를 생성하기도 했다 [16, 29, 70]. 하지만 이들은 저차원 상태(Low-dimensional states)를 사용할 수 있는 환경이나 파지(Grasping)와 같은 특정 유형의 작업으로 제한된다.</p>
<p>이러한 한계들로 인해, 본 논문은 고차원 시각 관측(High-dimensional visual observations)과 호환되는 다른 각도에서 누적 오차 문제에 접근할 필요가 있다. </p>
<p>본 논문은 단일 행동 대신 <strong>행동 시퀀스(Action sequence)를 예측하는 Action Chunking</strong>을 통해 작업의 유효 호라이즌(Effective Horizon)을 줄이고, 겹치는 행동 청크들을 Ensemble하여 정확하면서도 부드러운 궤적을 생성할 것을 제안한다.</p>
</li>
</ul>
<ul>
<li><p><strong>Bimanual manipulation</strong>
양팔 조작은 로보틱스에서 오랜 역사를 가지고 있으며, 하드웨어 비용의 하락과 함께 인기를 얻고 있다. 초기 연구들은 알려진 환경 동역학(Dynamics)을 바탕으로 <strong>고전 제어(Classical control)</strong> 관점에서 양팔 조작을 다루었으나 [54, 48], 이러한 모델을 설계하는 것은 시간이 많이 걸리고 복잡한 물성을 가진 객체에 대해서는 정확하지 않을 수 있다.</p>
<p>최근에는 양팔 시스템에 <strong>강화학습(Reinforcement Learning)</strong> [9, 10], 인간 데모 모방 [34, 37, 59, 67, 32], 또는 운동 원시(Motor primitives)를 연결하는 키포인트 예측 학습 [20, 19, 50]과 같은 학습 기반 방법들이 도입되었다. 일부 연구들은 매듭 풀기, 천 펴기, 심지어 바늘 꿰기 [19, 18, 31]와 같은 세밀한 조작 작업에 집중하기도 했으나, 다빈치 수술 로봇(da Vinci surgical robot)이나 ABB YuMi와 같이 상당히 고가의 로봇을 사용하였다.</p>
<p>본 논문은 개당 약 $5k 수준의 저비용 하드웨어로 눈을 돌려, 이들이 고정밀 폐루프(Closed-loop) 작업을 수행할 수 있도록 하는 것을 목표로 한다.</p>
<p>본 논문의 원격 조작 설정은 리더(Leader) 로봇과 팔로워(Follower) 로봇 간의 Joint-space mapping을 사용하는 Kim et al. [32]과 가장 유사하다. 하지만 이전 시스템과 달리, 본 논문은 특수 인코더, 센서, 혹은 가공된 부품(Machined components)을 사용하지 않는다. </p>
<p>본 논문은 오직 상용 로봇과 소량의 3D 프린팅 부품만으로 시스템을 구축하여, 비전문가도 2시간 이내에 조립할 수 있도록 한다.</p>
<hr>
</li>
</ul>
<h2 id="iii-aloha-a-low-cost-open-source-hardwaresystem-for-bimanual-teleoperation">III. ALOHA: A LOW-COST OPEN-SOURCE HARDWARESYSTEM FOR BIMANUAL TELEOPERATION</h2>
<p>본 논문은 접근성이 좋고 고성능인 정교한 조작(Fine manipulation)을 위한 원격 조작(Teleoperation) 시스템을 개발하고자 한다. 설계 고려 사항을 다음 5가지 원칙으로 요약한다. </p>
<p>1) 저비용(Low-cost): 전체 시스템 비용은 대부분의 로봇 연구실 예산 범위 내여야 하며, 단일 산업용 로봇 팔 가격과 비슷해야 한다. </p>
<p>2) 범용성(Versatile): 실제 물체를 다루는 광범위한 정교한 조작 작업에 적용 가능해야 한다. </p>
<p>3) 사용자 친화적(User-friendly): 시스템은 직관적이고 신뢰할 수 있으며 사용하기 쉬워야 한다. </p>
<p>4) 수리 용이성(Repairable): 고장이 났을 때 연구자들이 쉽게 수리할 수 있어야 한다. </p>
<p>5) 제작 용이성(Easy-to-build): 연구자들이 구하기 쉬운 재료로 빠르게 조립할 수 있어야 한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/689b731e-ec99-4607-bab1-16102d3d9e0a/image.png" alt=""></p>
<p>때 원칙 1, 4, 5에 따라 두 개의 ViperX 6자유도(6-DoF) 로봇 팔 [1, 66]을 사용하는 양팔 평행 그리퍼(Parallel-jaw grippers) 구성을 구축하게 되었다. 가격과 유지보수 문제로 인해 기교 있는 손(Dexterous hands)은 사용하지 않는다. 사용된 ViperX 팔은 가반 하중(Payload) 750g, 도달 거리(Span) 1.5m, 정밀도 5-8mm의 사양을 가진다. 이 로봇은 모듈식이라 수리가 간단하다. </p>
<p>모터 고장 시 저렴한 다이나믹셀(Dynamixel) 모터로 쉽게 교체할 수 있다. 로봇은 상용 제품(Off-the-shelf)으로 약 $5600에 구매 가능하다. 그러나 OEM 핑거는 정교한 조작 작업을 수행하기에 범용성이 부족하다. </p>
<p>따라서 본 논문은 자체적으로 3D 프린팅한 투시형(See-through) 핑거를 설계하고 그립 테이프를 부착했다(Fig 3). 이를 통해 섬세한 작업 수행 시 시야를 확보하고 얇은 플라스틱 필름 같은 물체도 견고하게 잡을 수 있다.</p>
<p>다음으로 ViperX 로봇을 중심으로 사용자 편의성을 극대화한 원격 조작 시스템을 설계하고자 한다. VR 컨트롤러나 카메라로 캡처한 손의 포즈를 로봇의 말단 장치(End-effector) 포즈로 매핑하는 작업 공간 매핑(Task-space mapping) 대신, 동일한 회사가 제조한 더 작고 저렴한($3300) WidowX [2] 로봇을 이용한 직접적인 관절 공간 매핑(Joint-space mapping)을 사용한다. </p>
<p>사용자는 작은 WidowX(리더, Leader)를 역구동(Backdriving)하여 원격 조작하며, 리더의 관절은 더 큰 ViperX(팔로워, Follower)와 동기화된다. 시스템 개발 과정에서 작업 공간 매핑 대비 관절 공간 매핑의 몇 가지 이점을 발견했다. </p>
<p>(1) 정교한 조작은 종종 로봇의 특이점(Singularities) 근처에서의 동작을 요구하는데, 본 시스템의 경우 6자유도이며 여유 자유도(Redundancy)가 없다. 상용 역운동학(Inverse kinematics, IK) 솔루션은 이런 상황에서 자주 실패한다. 반면 관절 공간 매핑은 관절 제한 범위 내에서 높은 대역폭(High-bandwidth) 제어를 보장하며 계산량이 적고 지연 시간(Latency)도 줄여준다. </p>
<p>(2) 리더 로봇의 무게가 사용자의 움직임이 너무 빨라지는 것을 방지하고 미세한 떨림을 감쇠시킨다. VR 컨트롤러를 잡는 것보다 관절 공간 매핑을 사용할 때 정밀 작업 성능이 더 좋음을 확인했다. 원격 조작 경험을 개선하기 위해 리더 로봇에 장착할 수 있는 3D 프린팅된 핸들 및 가위(Handle and scissor) 메커니즘을 설계했다(<strong>Fig. 3</strong>). </p>
<p>이는 운영자가 모터를 역구동하는 데 필요한 힘을 줄여주고, 이진(Binary) 개폐가 아닌 그리퍼의 연속 제어(Continuous control)를 가능하게 한다. 또한 리더 측 중력을 부분적으로 상쇄하는 고무줄 부하 분산(Load balancing) 메커니즘을 설계했다. </p>
<p>이는 운영자의 피로도를 줄여주어 30분 이상의 장시간 원격 조작 세션을 가능하게 한다. 설정에 대한 자세한 내용은 프로젝트 웹사이트에 포함되어 있다.</p>
<p>나머지 설정에는 20×20mm 알루미늄 프로파일과 강철 케이블로 보강된 로봇 케이지(Cage)가 포함된다. 총 4개의 로지텍 C922x 웹캠이 있으며, 각각 480×640 RGB 이미지를 스트리밍한다. 두 개의 웹캠은 팔로워 로봇의 손목(Wrist)에 장착되어 그리퍼를 근접 촬영할 수 있다. 나머지 두 카메라는 각각 전면과 상단에 장착된다(<strong>Fig. 3</strong>). 원격 조작과 데이터 녹화는 모두 50Hz로 이루어진다.</p>
<p>위의 설계 고려 사항을 바탕으로, Franka Emika Panda와 같은 단일 연구용 로봇 팔 비용과 비슷한 2만 달러 예산 내에서 양팔 원격 조작 시스템 ALOHA를 구축했다. ALOHA는 다음과 같은 작업의 원격 조작을 가능하게 한다.</p>
<ul>
<li>케이블 타이 묶기, 지갑에서 신용카드 꺼내기, 지퍼백 열고 닫기와 같은 정밀 작업(Precise tasks).</li>
<li>컴퓨터 마더보드에 288핀 램(RAM) 끼우기, 책장 넘기기, NIST 보드 #2 [4]의 체인 및 벨트 조립과 같은 접촉이 풍부한 작업(Contact-rich tasks).</li>
<li>실제 탁구채로 탁구공 저글링 하기, 공을 떨어뜨리지 않고 균형 잡기, 공중에서 비닐봉지 흔들어 열기와 같은 동적 작업(Dynamic tasks).</li>
</ul>
<p>케이블 타이 묶기, 램 끼우기, 탁구공 저글링 같은 기술은 본 논문이 알기로는 5-10배 예산의 기존 원격 조작 시스템 [21, 5]에서도 불가능한 것들이다. </p>
<hr>
<h2 id="iv-action-chunking-with-transformers">IV. ACTION CHUNKING WITH TRANSFORMERS</h2>
<p>기존의 모방학습 알고리즘들은 고빈도 제어(High-frequency control)와 폐루프 피드백(Closed-loop feedback)이 요구되는 세밀한 작업에서 저조한 성능을 보인다. 따라서 본 논문은 ALOHA를 통해 수집된 데이터를 활용하기 위해 새로운 알고리즘인 <strong>ACT(Action Chunking with Transformers)</strong>를 개발한다. 먼저 ACT의 학습 파이프라인(Pipeline)을 요약한 뒤, 각 설계 선택 사항을 상세히 다룬다.</p>
<p>새로운 작업에 대해 ACT를 학습시키기 위해, 본 논문은 먼저 ALOHA를 사용하여 인간 데모(Human demonstrations)를 수집한다. 이때 리더 로봇(Leader robots)의 관절 위치(즉, 인간 운영자의 입력값)를 기록하고 이를 행동(Actions)으로 사용한다. </p>
<p>여기서 팔로워(Follower)가 아닌 리더의 관절 위치를 사용하는 것이 중요한데, 그 이유는 저수준 PID 제어기(PID Controller)를 통해 두 로봇 간의 위치 차이에 의해 가해지는 힘(Force)의 크기가 암시적으로 정의되기 때문이다. 관측(Observations)은 팔로워 로봇의 현재 관절 위치와 4대 카메라의 이미지 피드(Image feed)로 구성된다. </p>
<p>다음으로, 본 논문은 현재 관측이 주어졌을 때 미래의 행동 시퀀스(Sequence of future actions)를 예측하도록 ACT를 학습시킨다. 여기서 행동이란 다음 시간 단계(Time step)에서의 양팔의 목표 관절 위치(Target joint positions)에 해당한다. </p>
<p>직관적으로 설명하면, ACT는 현재 관측 상황에서 인간 운영자가 이후 시간 단계들에 수행할 행동을 모방하고자 하는 것이다. 이러한 목표 관절 위치들은 다이나믹셀(Dynamixel) 모터 내부의 저수준 고빈도 PID 제어기에 의해 추적(Tracked)된다. </p>
<p>테스트 시에는 가장 낮은 검증 손실(Validation loss)을 달성한 정책(Policy)을 로드하여 환경에서 실행(Roll out)한다. 이때 발생하는 주된 난관은 누적 오차(Compounding errors)인데, 이는 이전 행동들로부터 발생한 오차가 로봇을 학습 분포(Training distribution)를 벗어난 상태(State)로 이끄는 현상을 말한다.</p>
<h3 id="a-action-chunking-and-temporal-ensemble">A. Action Chunking and Temporal Ensemble</h3>
<p>픽셀-투-액션 정책(Pixel-to-action policies)과 호환되는 방식으로 모방학습(Imitation Learning)의 누적 오차(Compounding errors)에 대응하기 위해, 본 논문은 고빈도로 수집된 긴 궤적(Trajectories)의 유효 호라이즌(Effective horizon)을 줄이고자 한다. </p>
<p>본 논문은 개별 행동들을 그룹화하여 하나의 단위로 실행함으로써 저장과 실행을 더 효율적으로 만드는 신경과학 개념인 Action chunking에서 영감을 얻었다 [35]. 직관적으로 설명하면, Action Chunk는 사탕 포장지 모서리를 잡거나 슬롯에 배터리를 끼우는 동작에 해당할 수 있다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e2107b3c-01fd-4433-b61b-79d0d352ac76/image.png" alt=""></p>
<p>본 논문의 구현에서는 청크 크기를 $k$로 고정한다. 즉, 매 $k$ 스텝마다 에이전트(Agent)는 관측(Observation)을 받고, 다음 $k$개의 행동을 생성하며, 이 행동들을 순차적으로 실행한다 (Figure 5). 이는 작업의 유효 호라이즌이 $k$배 감소함을 의미한다. 구체적으로, 정책은 $\pi_\theta (a_t|s_t)$ 대신 $\pi_\theta (a_{t:t+k}|s_t)$를 모델링한다.</p>
<p>청킹은 또한 인간 데모에서의 비마르코프적(Non-Markovian) 행동을 모델링하는 데 도움을 줄 수 있다. 구체적으로, 단일 단계 정책(Single-step policy)은 행동이 상태(State)뿐만 아니라 타임스텝(Timestep)에도 의존하기 때문에, 데모 중간의 멈춤과 같은 시간적으로 상관된 교란 변수(Temporally correlated confounders) [61]를 처리하는 데 어려움을 겪을 것이다. Action Chunking은 교란 변수가 청크 내에 있을 때, 히스토리 조건부 정책(History-conditioned policies)에서 발생하는 인과적 혼란(Causal confusion) 문제 [12]를 야기하지 않으면서 이 문제를 완화할 수 있다.</p>
<p>Action Chunking의 단순한 구현(Naïve implementation)은 최적이지 않을 수 있다. 새로운 환경 관측이 매 $k$ 스텝마다 갑작스럽게 반영되어 로봇의 움직임이 뚝뚝 끊길(Jerky) 수 있기 때문이다. 부드러움을 개선하고 실행과 관측 사이의 이산적 전환(Discrete switching)을 피하기 위해, 본 논문은 <strong>매 타임스텝마다 정책을 조회(Query)</strong>한다. 이렇게 하면 <strong>서로 다른 행동 청크들이 중첩(Overlap)</strong>되며, <strong>주어진 타임스텝에서 하나 이상의 예측된 행동이 존재</strong>하게 된다.</p>
<p>본 논문은 이를 <strong>Figure 5</strong>에 묘사하였으며, 이러한 예측들을 결합하기 위해 <code>Temporal ensemble</code>을 제안한다. 본 논문의 <strong>Temporal ensemble</strong>은 $w_i = \exp(-m * i)$라는 지수 가중 방식(Exponential weighting scheme)을 사용하여 이 <strong>예측들의 가중 평균(Weighted average)을 계산</strong>한다. 여기서 $w_0$는 가장 오래된 행동에 대한 가중치이다. 새로운 관측을 반영하는 속도는 $m$에 의해 결정되는데, $m$이 작을수록 더 빠르게 반영됨을 의미한다.</p>
<p>본 논문이 제안하는 방식은 현재 행동을 인접한 타임스텝의 행동들과 집계하여 편향(Bias)을 유발하는 일반적인 스무딩(Smoothing)과 달리, <strong>동일한 타임스텝에 대해 예측된 행동들을 집계한다는 점</strong>에 주목해야 한다. 또한 이 절차는 추가적인 학습 비용(Training cost) 없이 추론 시간(Inference-time) 계산량만 추가된다. 실제로 Action Chunking과 Temporal Ensemble 모두 정밀하고 부드러운 움직임을 생성하는 ACT의 성공에 중요함을 확인했다. 이러한 구성 요소들에 대해서는 VI-A 절의 소거 연구(Ablation studies)에서 더 자세히 논의한다.</p>
<h3 id="b-modeling-human-data">B. Modeling human data</h3>
<p>또 다른 난관은 노이즈가 포함된 인간 데모(Human demonstrations) 데이터로부터 학습해야 한다는 점이다. 동일한 관측(Observation)이 주어지더라도, 인간은 작업을 수행하기 위해 서로 다른 궤적(Trajectories)을 사용할 수 있다. 또한 인간은 정밀도가 덜 중요한 영역에서는 더 확률적으로 행동하는 경향이 있다 [38]. 따라서 정책(Policy)이 높은 정밀도가 요구되는 영역에 집중하는 것이 중요하다.</p>
<p>본 논문은 <strong>Action Chunking Policy를 생성 모델(Generative model)로 학습</strong>시킴으로써 이 문제를 해결한다. 구체적으로, 현재 관측을 조건(Condition)으로 하여 행동 시퀀스를 생성하도록 정책을 <strong>조건부 변이 오토인코더(Conditional Variational Autoencoder, CVAE)</strong> [55]로 학습시킨다. CVAE는 두 가지 구성 요소를 가지는데, 각각 <strong>Figure 4</strong>의 좌측과 우측에 묘사된 <code>CVAE Encoder</code>와 <code>CVAE Decoder</code>다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/62de7bb1-3dfe-462a-bb9c-086fdc9869b6/image.png" alt=""></p>
<p>CVAE Encoder는 오직 CVAE Decoder(Policy)를 학습시키는 역할만 수행하며, 테스트 시에는 폐기(Discarded)된다. 구체적으로 CVAE Encoder는 현재 관측과 행동 시퀀스를 입력받아, <strong>Diagonal Gaussian으로 파라미터화된 스타일 변수(Style variable)</strong> $z$ 분포의 평균과 분산을 예측한다. 실제 환경에서의 더 빠른 학습을 위해, 본 논문은 이미지 관측을 제외하고 오직 <strong>고유 수용성 관측(Proprioceptive observation)</strong>과 <strong>행동 시퀀스</strong>만을 조건으로 사용한다.</p>
<p>CVAE Decoder, 즉 정책은 $z$와 현재 관측(이미지 + 관절 위치) 모두를 조건으로 하여 행동 시퀀스를 예측한다. 테스트 시에는 결정론적(Deterministically)인 디코딩을 위해 $z$를 <strong>사전 분포(Prior distribution)의 평균</strong>, 즉 0으로 설정한다.</p>
<p>전체 모델은 <strong>demonstration action chunks의 로그 우도(Log-likelihood)를 최대화</strong>하도록, 즉 $\min_\theta - \sum_{s_t, a_{t:t+k} \in D} \log \pi_\theta (a_{t:t+k}|s_t)$를 목표로 학습된다. 이는 두 가지 항(<code>재구성 손실(Reconstruction loss)</code>과 <code>Encoder를 가우시안 사전 분포로 정규화(Regularize)</code>하는 항)을 가진 <strong>표준 VAE 목적 함수(Objective)</strong>를 따른다. [23]을 따르며, 본 논문은 두 번째 항에 <strong>하이퍼파라미터(Hyperparameter)</strong> $\beta$로 가중치를 부여한다. </p>
<p>직관적으로, 더 높은 $\beta$ 값은 $z$에 더 적은 정보가 전달되도록 유도한다 [62]. 종합적으로, 본 논문은 CVAE 목적 함수가 인간 데모로부터 정밀한 작업을 학습하는 데 필수적임을 발견했다. 이에 대한 더 자세한 논의는 VI-B 절에 포함되어 있다.</p>
<h3 id="c-implementing-act">C. Implementing ACT</h3>
<p>본 논문은 트랜스포머(Transformers)가 시퀀스 전반의 정보를 합성하고 새로운 시퀀스를 생성하는 데 최적화되어 있으므로, CVAE Encoder와 Decoder를 트랜스포머로 구현한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/c45929da-19bb-4c8b-8940-782f6ac990c8/image.png" alt=""></p>
<p>CVAE 인코더는 BERT와 유사한 트랜스포머 인코더[13]로 구현된다. 인코더의 입력은 현재 관절 위치(Joint positions)와 데모 데이터셋에서 가져온 길이 $k$의 목표 행동 시퀀스(Target action sequence)이며, BERT와 유사하게 학습된 “[CLS]” 토큰이 앞에 붙는다. 이는 길이 $k+2$의 입력을 형성한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/b7cd0a7f-5f9e-4ddf-891f-a8d5af594bb9/image.png" alt=""></p>
<p>트랜스포머를 통과한 후, “[CLS]”에 해당하는 특징(Feature)은 스타일 변수(Style variable) $z$의 평균과 분산을 예측하는 데 사용되며, <strong>$z$는 디코더의 입력</strong>으로 사용된다.CVAE 디코더(즉, 정책)는 <strong>현재 관측(Observations)</strong>과 $z$를 입력으로 받아 <strong>다음 $k$개의 행동을 예측</strong>한다. 본 논문은 CVAE 디코더를 구현하기 위해 <strong>ResNet 이미지 인코더, 트랜스포머 인코더, 그리고 트랜스포머 디코더를 사용</strong>한다. </p>
<p>직관적으로, <strong>트랜스포머 인코더는 서로 다른 카메라 시점(Viewpoints), 관절 위치, 그리고 스타일 변수로부터 정보를 합성하고, 트랜스포머 디코더는 일관성 있는(Coherent) 행동 시퀀스를 생성</strong>한다.</p>
<p>관측에는 각각 $480 \times 640$ 해상도의 4개의 RGB 이미지와 두 로봇 팔에 대한 관절 위치(총 $7+7=14$ 자유도)가 포함된다. 행동 공간(Action space)은 두 로봇에 대한 절대 관절 위치인 14차원 벡터이다. 따라서 Action chunking을 사용하면, 정책은 현재 관측이 주어졌을 때 $k \times 14$ 텐서를 출력한다.</p>
<p>정책은 먼저 ResNet18 백본[22]으로 이미지를 처리하여 $480 \times 640 \times 3$ RGB 이미지를 $15 \times 20 \times 512$ 특징 맵(Feature maps)으로 변환한다. 그런 다음 공간 차원(Spatial dimension)을 따라 평탄화(Flatten)하여 $300 \times 512$의 시퀀스를 얻는다. 공간 정보를 보존하기 위해 특징 시퀀스에 2D 사인파 위치 임베딩(Sinusoidal position embedding)을 더한다[8]. </p>
<p>4개의 이미지 모두에 대해 이를 반복하면 차원이 $1200 \times 512$인 특징 시퀀스가 생성된다. 그런 다음 두 가지 특징을 더 추가하는데, 현재 관절 위치와 스타일 변수 $z$이다. 이들은 각각 선형 레이어(Linear layers)를 통해 원래 차원에서 512로 투영(Projected)된다. 따라서 트랜스포머 인코더에 대한 입력은 $1202 \times 512$가 된다.</p>
<p>트랜스포머 디코더는 <strong>Cross-attention</strong>를 통해 인코더 출력에 조건을 건다. 여기서 입력 시퀀스는 차원이 $k \times 512$인 고정 위치 임베딩이며, 키(Keys)와 값(Values)은 인코더에서 온다. 이를 통해 트랜스포머 디코더는 $k \times 512$의 출력 차원을 갖게 되며, 이는 MLP를 통해 $k \times 14$로 다운 프로젝션(Down-projected)되어 다음 $k$ 스텝에 대한 예측된 목표 관절 위치가 된다.</p>
<p>본 논문은 재구성(Reconstruction)에 흔히 쓰이는 L2 loss 대신 <code>L1 loss</code>를 사용한다. L1 손실이 행동 시퀀스를 더 정밀하게 모델링한다는 점을 확인했기 때문이다. 또한 목표 관절 위치 대신 델타(Delta) 관절 위치를 행동으로 사용할 때 성능 저하를 확인했다. 상세 아키텍처 다이어그램은 <strong>Appendix C</strong>에 포함되어 있다.</p>
<p>본 논문은 <strong>Algorithm 1, 2</strong>에 ACT의 학습 및 추론을 요약한다. 모델은 약 8천만(80M) 개의 파라미터를 가지며, 각 작업에 대해 처음부터(Scratch) 학습시킨다. 학습은 단일 11G RTX 2080 Ti GPU에서 약 5시간이 소요되며, 추론 시간은 동일한 머신에서 약 0.01초이다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/530f7e4f-3082-4e04-9c83-ab592d39600f/image.png" alt=""></p>
<blockquote>
<p><strong>[학습 과정]</strong></p>
</blockquote>
<ul>
<li><strong>Step 1. 데이터 샘플링 (Sample Data)</strong><blockquote>
<p>: 로봇의 현재 상태에서 미래에 수행할 Action Sequence를 데이터셋에서 가져옴 ( $k$개의 프레임에 해당하는 action chunk. $k\times14$는 bimanipulator의 관절 수)</p>
</blockquote>
</li>
<li><strong>Step 2. 잠재 변수 $z$ 추론 (CVAE Encoder)</strong><blockquote>
<p>: Encoder는 Action Sequence를 보고, 이 행동의 종류를 파악하여 $z$로 압축. </p>
<p>(입력) 복잡한 관절 움직임 데이터 ($k\times14$)</p>
<p>(확장) <strong>Linear Projection</strong>을 통해 $k\times14$를 $k\times512$ 차원으로 확장하여 특징 정보를 풍부하게 함</p>
<p>(압축 과정) <strong>Encoder</strong>가 관절 움직임 데이터를 분석하여 행동의 종류를 판별 (예: 이 움직임은 빠르게 직진한 후에 오른쪽으로 천천히 꺾어 가는 움직임이구나.) </p>
<p>(결과) 이러한 판단을 작은 벡터 $z$로 압축. 학습 시에는 이 $z$를 함께 알려줘서 헷갈리지 않게 하고 추론(테스트) 시에는 $z=0$으로 두어 가장 무난한 평균 스타일로 행동하게 됨  </p>
<ul>
<li><strong>Step 3. 행동 시퀀스 예측 (CVAE Decoder / Policy)</strong></li>
</ul>
<p><strong>비전 인코더 (Backbone):</strong> 4개의 카메라 이미지(ResNet18)와 현재 관절 각도를 입력받음. 이미지는 특징맵(Feature map)으로 변환되고 평탄화(Flatten)되어 Transformer 입력이 됨 </p>
<p><strong>Transformer Encoder:</strong> 여러 카메라의 <strong>시각 정보</strong>와 로봇의 <strong>현재 관절 정보</strong>를 <strong>Self-Attention</strong>으로 섞어 현재 상황을 완벽하게 이해하도록 함 </p>
<p><strong>Transformer Decoder:</strong> Encoder가 정리한 상황 정보(Memory)를 가져와, 뽑아둔 스타일 변수 $z$와 위치 임베딩을 Query로 넣어줌 → 현재 상황과 의도($z$)에 맞는 predicted action sequence를 $k$개 예측</p>
</blockquote>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/17ca26fd-90ea-4693-8786-934523892b6f/image.png" alt=""></p>
<blockquote>
<p><strong>Algorithm 1 ACT Training</strong> </p>
</blockquote>
<p>ACT는 본질적으로 <strong>CVAE(Conditional Variational Autoencoder)</strong> 구조를 따르며, 이를 통해 데이터의 불확실성(Multimodality)을 모델링한다. </p>
<ul>
<li>$t$ : 현재 타임스텝 (Timestep) </li>
<li>$k$ : 한 번에 예측할 미래 행동의 길이 (Chunk size)</li>
<li>$a_{t:t+k}$ : 현재부터 미래 $k$까지의 <strong>행동 시퀀스 (Action Sequence)</strong>. (정답지)</li>
<li>$o_t$: 현재의 <strong>전체 관측 정보 (Observation)</strong>. (카메라 이미지 + 로봇 관절 상태) </li>
<li>$\bar{o}_t$: 이미지 정보를 제외한 <strong>로봇 상태 정보 (Proprioception only)</strong> (알고리즘 라인 2 참조) </li>
<li>$z$: 행동의 스타일을 나타내는 <strong>잠재 변수 (Latent Variable)</strong></li>
</ul>
<blockquote>
<p><strong>학습 과정 (Training Algorithm)</strong></p>
</blockquote>
<p>학습은 <strong>&quot;정답(미래 행동)을 보고 스타일($z$)을 압축한 뒤, 다시 그 행동을 복원하는&quot;</strong> 과정이라고 할 수 있다.</p>
<blockquote>
<p><strong>Step 1. Encoder - 스타일 압축</strong></p>
</blockquote>
<p>CVAE의 인코더($q_\phi$)는 미래의 행동과 현재 로봇 상태를 보고 $z$의 분포를 학습</p>
<p>$z \sim q_\phi(z | a_{t:t+k}, \bar{o}_t)$</p>
<p>• 입력으로 미래 행동($a_{t:t+k}$)과 현재 관절 상태($\bar{o}_t$)를 받음
• $z$의 평균($\mu$)과 분산($\sigma^2$)을 출력
• 실제 $z$값은 이 분포에서 샘플링(reparameterization trick)하여 도출</p>
<blockquote>
<p><strong>Step 2. Decoder/Policy - 행동 복원</strong></p>
</blockquote>
<p> 디코더($\pi_\theta$)는 현재 상황과 스타일($z$)만 가지고 행동을 예측</p>
<p>$\hat{a}_{t:t+k} = \pi\theta(o_t, z)$</p>
<p>• 입력으로 현재의 전체 관측($o_t$, 이미지 포함)과 위에서 뽑은 스타일($z$)을 받음
• Transformer Decoder를 통해 미래 행동 시퀀스 $\hat{a}_{t:t+k}$를 예측</p>
<blockquote>
<p><strong>Step 3. 손실 함수 (Loss Function) - 목표 설정</strong></p>
</blockquote>
<p>학습의 목표는 두 가지로, 행동을 똑같이 따라 하는 것(Reconstruction)과, $z$를 예쁘게 정렬하는 것(Regularization)</p>
<p>$\mathcal{L} = \mathcal{L}{reconst} + \beta \mathcal{L}{reg}$</p>
<ol>
<li>재구성 손실 (Reconstruction Loss)</li>
</ol>
<p>$\mathcal{L}<em>{reconst} = \text{MSE}(\hat{a}</em>{t:t+k}, a_{t:t+k})$</p>
<p>• 예측한 행동($\hat{a}$)과 실제 정답 행동($a$) 사이의 오차(Mean Squared Error)를 줄임</p>
<ol start="2">
<li>정규화 손실(Regularization Loss/KL Divergence)</li>
</ol>
<p>$\mathcal{L}<em>{reg} = D</em>{KL}(q_\phi(z | a_{t:t+k}, \bar{o}_t) \parallel \mathcal{N}(0, I))$</p>
<p>• 인코더가 만든 $z$의 분포가 표준 정규 분포($\mathcal{N}(0, I)$)와 비슷해지도록 강제
• 이 과정이 있어야 나중에 추론할 때 $z$를 0(평균)으로 가정하고 쓸 수 있음</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/7d4cfd2d-088f-4244-a5e7-432047fff0f4/image.png" alt=""></p>
<blockquote>
<p><strong>[테스트/추론 과정]</strong></p>
</blockquote>
<p>실제 로봇을 돌릴 때는 미래의 행동(정답)을 알 수 없으므로, step 2(encoder)는 생략됨</p>
<ul>
<li><strong>입력:</strong>  현재 카메라 이미지들(incoming observations) + 현재 관절 상태(joints)</li>
<li><strong>잠재 변수 $z$:</strong> 학습 때는 정답을 보고 $z$를 만들었지만, 테스트 때는 <strong>$z$를 0으로 설정</strong>(평균적인 스타일)하여 입력</li>
<li><strong>Transformer Encoder &amp; Decoder</strong> <strong>:</strong> 학습 때와 동일하게 작동. 현재 상황(이미지)과 $z=0$을 바탕으로 다음에 취해야 할 Action Chunk를 예측</li>
<li><strong>실행:</strong> 예측된 $k$개 행동을 실행. 이때 매 스텝마다 새로운 덩어리를 예측하고, 이를 겹쳐서 평균을 내는 <strong>Temporal Aggregation(시간적 집계)</strong> 방식을 사용하여 로봇의 떨림을 방지하고 부드러운 움직임을 구현</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4a7303f9-65c5-42ac-9ce1-ab96876f42e4/image.png" alt=""></p>
<blockquote>
<p><strong>Algorithm 2 ACT Inference</strong>
 추론 시에는 미래의 정답 행동($a_{t:t+k}$)을 알 수 없으므로 인코더를 사용할 수 없음</p>
</blockquote>
<ul>
<li>** $\pi_\theta$: 학습이 완료된 **ACT 정책 모델 (Policy) </li>
<li>$T$: 전체 에피소드 길이 (작업 수행 시간)</li>
<li>$k$: <strong>청크 사이즈 (Chunk size)</strong>. 한 번에 예측하는 미래 행동의 길이 </li>
<li>$\mathcal{B}$: <strong>버퍼 (Buffer)</strong>. 예측된 행동들을 임시로 저장해두는 저장소 </li>
<li>$z$: 행동 스타일 변수 (여기서는 0으로 고정)</li>
<li>$w_i$: 가중치 (Weight). 여러 예측값을 합칠 때 얼마나 신뢰할지 결정하는 값.</li>
</ul>
<blockquote>
<p><strong>Step 1.  준비 단계 (Initialization)</strong></p>
</blockquote>
<p>Initialize FIFO buffers $\mathcal{B}[0:T]$
→ 로봇이 움직일 모든 시간($0$부터 $T$까지)에 대해 빈 방(Buffer)을 만든다. 앞으로의 예측되는 행동들을 버퍼에 차례로 쌓는다.</p>
<blockquote>
<p><strong>Step 2. 행동 예측 (Prediction)</strong></p>
</blockquote>
<p>매 타임스텝 $t$마다 로봇은 현재 상황을 보고 미래를 예측</p>
<p>$\hat{a}_{t:t+k} = \pi_\theta(o_t, z=0)$</p>
<p>• <strong>입력:</strong> 현재 관측($o_t$)을 삽입
• <strong>$z=0$:</strong> 학습 때는 $z$를 다양하게 바꿨지만, 실전에서는 $z=0$ (평균값)을 넣어 가장 안정적이고 무난한 동작을 생성하도록 합니다.
• <strong>출력:</strong> 현재 시점($t$)부터 미래($t+k$)까지의 행동 덩어리($k$개)가 나옵니다.</p>
<blockquote>
<p><strong>Step 3. 버퍼에 저장 (Add to Buffers)</strong></p>
</blockquote>
<p>Add $\hat{a}_{t:t+k}$ to buffers $\mathcal{B}[t:t+k]$</p>
<p>• 방금 예측한 $k$개의 행동을 각각 해당하는 시간의 버퍼에 삽입
• 이렇게 하면, 특정 시간 $t$의 버퍼 $\mathcal{B}[t]$에는 <strong>과거($t-1, t-2...$)에 미리 예측해뒀던 행동들</strong>과 <strong>방금($t$) 예측한 행동</strong>이 쌓이게 됨 </p>
<blockquote>
<p><strong>Step 4. 시간적 집계 (Temporal Aggregation)</strong>
ACT가 부드럽게 움직이도록 쌓인 행동들의 평균을 구함</p>
</blockquote>
<p>$a_t = \frac{\sum_i w_i A_t[i]}{\sum_i w_i}, \quad \text{where } w_i = \exp(-m * i)$</p>
<p>•  $A_t = \mathcal{B}[t]$: 시간 $t$의 버퍼에 모인 모든 예측값 (예: 1초 전에 예측한 값, 0.5초 전에 예측한 값, 방금 예측한 값 등)
• <strong>가중 평균 (Weighted Average):</strong> 이 값들을 그냥 더하는 게 아니라, 가중치 $w_i$를 곱해서 평균을 냅니다.
• <strong>가중치 $w_i = \exp(-m * i)$:</strong> $m$값에 따라 얼마나 오래된 예측을 신뢰할지 결정함. 보통 최근에 예측한 값에 더 큰 가중치를 주거나, 혹은 겹치는 모든 구간을 부드럽게 잇기 위해 사용</p>
<hr>
<h2 id="v-experiments">V. EXPERIMENTS</h2>
<p>본 논문은 정교한 조작 작업(Fine manipulation tasks)에서 ACT의 성능을 평가하기 위한 실험을 제시한다. 재현 용이성을 위해 ALOHA를 이용한 6가지 실제 환경 작업 외에도 MuJoCo [63]에서 2가지 시뮬레이션 정교한 조작 작업을 구축하였다.</p>
<h3 id="a-tasks-작업"><strong>A. Tasks (작업)</strong></h3>
<p>8개의 작업 모두 정교한 양팔 조작(Fine-grained, bimanual manipulation)을 필요로 하며 <strong>Figure 6</strong>에 묘사되어 있다.</p>
<ul>
<li>지퍼백 열기(Slide Ziploc)</li>
<li>배터리 끼우기(Slot Battery)</li>
<li>양념병 열기(Open Cup)</li>
<li>벨크로 타이 묶기(Thread Velcro)</li>
<li>테이프 준비하기(Prep Tape)</li>
<li>신발 신기기(Put On Shoe)</li>
<li>큐브 전달(Transfer Cube) [시뮬레이션]</li>
<li>양팔 삽입(Bimanual Insertion) [시뮬레이션]</li>
</ul>
<p>8개 작업 모두에서 물체의 초기 위치는 15cm 흰색 기준선(실제 환경 작업)을 따라 무작위로 변경되거나, 2D 영역(시뮬레이션 작업) 내에서 균일하게(Uniformly) 변경된다. </p>
<h3 id="b-data-collection">B. Data Collection</h3>
<p>6가지 실제 환경 작업 모두에 대해, 본 논문은 ALOHA 원격 조작을 사용하여 데모를 수집한다. 각 에피소드는 작업의 복잡도에 따라 인간 운영자가 수행하는 데 8-14초가 소요되며, 이는 50Hz의 제어 주기를 고려할 때 400-700 타임스텝(Time steps)에 해당한다. 본 논문은 벨크로 타이 묶기(Thread Velcro) 작업(100개)을 제외하고 각 작업당 50개의 데모를 기록한다. </p>
<p>따라서 데모의 총량은 각 작업당 약 10-20분 분량의 데이터이며, 리셋(Resets)과 원격 조작자의 실수를 포함한 실제 소요 시간(Wall-clock time)은 30-60분 정도이다. 두 가지 시뮬레이션 작업의 경우, 스크립트 정책(Scripted policy)을 사용한 것과 인간 데모를 사용한 것의 두 가지 유형의 데모를 수집한다. </p>
<p>시뮬레이션에서의 원격 조작을 위해, 본 논문은 ALOHA의 &quot;리더 로봇&quot;을 사용하여 시뮬레이션된 로봇을 제어하며, 운영자는 모니터의 실시간 환경 렌더링 화면을 보고 조작한다. 두 경우 모두 50개의 성공한 데모를 기록한다.</p>
<h3 id="c-experiment-results">C. Experiment Results</h3>
<p>본 논문은 <strong>ACT를 4가지 기존 모방학습 방법들과 비교</strong>한다.</p>
<ul>
<li><p><strong>BC-ConvMLP</strong>는 가장 간단하면서도 널리 사용되는 베이스라인[69, 26]으로, 현재 이미지 관측을 합성곱 신경망(Convolutional network)으로 처리하고 그 출력 특징(Output features)을 관절 위치와 결합(Concatenated)하여 행동을 예측한다.</p>
</li>
<li><p><strong>BeT</strong> [49] 또한 아키텍처로 트랜스포머(Transformers)를 활용하지만, 몇 가지 주요한 차이점이 있다. (1) action chunking(Action chunking)이 없다. 즉, 모델은 관측 히스토리가 주어졌을 때 하나의 행동만 예측한다. (2) 이미지 관측은 별도로 학습되어 고정된(Frozen) 시각 인코더(Visual encoder)에 의해 전처리된다. 즉, 인지(Perception) 네트워크와 제어(Control) 네트워크가 공동으로 최적화(Jointly optimized)되지 않는다.</p>
</li>
<li><p><strong>RT-1</strong> [7]은 고정된 길이의 과거 관측 히스토리로부터 하나의 행동을 예측하는 또 다른 트랜스포머 기반 아키텍처다. BeT와 RT-1 모두 행동 공간(Action space)을 이산화(Discretize)한다. 출력은 이산적인 빈(Bins)에 대한 범주형 분포(Categorical distribution)이며, BeT의 경우 빈 중심(Bin center)으로부터의 연속적인 오프셋(Continuous offset)이 추가된다. 반면 본 논문의 방법인 ACT는 정교한 조작에 요구되는 정밀함에 동기를 얻어 연속적인 행동(Continuous actions)을 직접 예측한다.\</p>
</li>
<li><p>마지막으로, <strong>VINN</strong> [42]은 테스트 시에 데모에 접근할 수 있다고 가정하는 비모수적(Non-parametric) 방법이다. 새로운 관측이 주어지면, 가장 유사한 시각적 특징을 가진 $k$개의 관측을 검색(Retrieves)하고, 가중 k-최근접 이웃(Weighted k-nearest-neighbors)을 사용하여 행동을 반환한다. 시각적 특징 추출기(Visual feature extractor)는 비지도 학습(Unsupervised learning)으로 데모 데이터에서 미세 조정(Finetuned)된 사전 학습된(Pretrained) ResNet이다.</p>
</li>
</ul>
<p>본 논문은 큐브 전달(Cube transfer) 작업을 사용하여 이 4가지 기존 방법들의 하이퍼파라미터를 세심하게 조정(Tune)했다. 하이퍼파라미터에 대한 자세한 내용은 부록 D에 제공된다.</p>
<p>기존 방법들과의 상세한 비교를 위해, 본 논문은 두 개의 시뮬레이션 작업과 두 개의 실제 환경 작업에 대한 평균 성공률을 Table I에 보고한다. 시뮬레이션 작업의 경우, 각 50회 시도의 3개 무작위 시드(Random seeds)에 걸친 평균 성능을 계산한다. 본 논문은 스크립트 데이터(구분선 왼쪽)와 인간 데이터(구분선 오른쪽) 모두에 대한 성공률을 보고한다. 실제 환경 작업의 경우, 하나의 시드를 25회 시도로 평가한다.</p>
<p>ACT는 모든 기존 방법 대비 가장 높은 성공률을 달성했으며, 각 작업에서 2위 알고리즘을 큰 격차로 따돌렸다. 스크립트 또는 인간 데이터를 사용한 두 시뮬레이션 작업에서, ACT는 최고 성능의 기존 방법보다 성공률 면에서 59%, 49%, 29%, 20% 더 앞섰다. 기존 방법들은 처음 두 개의 하위 작업에서는 진전(Progress)을 보였으나, 최종 성공률은 30% 미만으로 낮게 유지되었다.</p>
<p>두 실제 환경 작업인 지퍼백 열기(Slide Ziploc)와 배터리 끼우기(Slot Battery)에서, ACT는 각각 88%와 96%의 최종 성공률을 달성한 반면, 다른 방법들은 첫 단계를 넘어서지 못했다. 본 논문은 기존 방법들의 저조한 성능 원인을 누적 오차(Compounding errors)와 데이터 내의 비마르코프적(Non-Markovian) 행동 탓으로 돌린다. 행동은 에피소드 후반부로 갈수록 급격히 저하되며, 로봇은 특정 상태에서 무기한 멈출 수 있다. ACT는 action chunking(Action chunking)으로 두 문제 모두 완화한다. VI-A 절의 소거 연구(Ablations) 또한 청킹을 기존 방법에 통합했을 때 성능이 크게 향상될 수 있음을 보여준다. 또한 시뮬레이션 작업에서 스크립트 데이터에서 인간 데이터로 전환할 때 모든 방법의 성능 하락을 확인했다. 인간 데모의 확률성(Stochasticity)과 멀티모달성(Multi-modality)이 모방학습을 훨씬 더 어렵게 만들기 때문이다.</p>
<p>본 논문은 남은 3개의 실제 환경 작업에 대한 성공률을 Table II에 보고한다. 이 작업들에 대해서는 지금까지 가장 높은 성공률을 보인 BeT하고만 비교한다. 본 논문의 방법인 ACT는 컵 열기(Cup Open)에서 84%, 벨크로 타이 묶기(Thread Velcro)에서 20%, 테이프 준비(Prep Tape)에서 64%, 신발 신기기(Put On Shoe)에서 92%의 성공률을 기록하며, 이 까다로운 작업들에서 최종 성공률 0%를 기록한 BeT를 다시 한번 능가했다.</p>
<p>벨크로 타이 묶기에서 ACT의 성공률이 상대적으로 낮은 것을 관찰했는데, 첫 단계 92% 성공에서 최종 20% 성공으로 단계마다 성공률이 대략 절반씩 감소했다. </p>
<p>관찰된 실패 모드(Failure modes)는 1) 2단계에서 오른쪽 팔이 그리퍼를 너무 일찍 닫아 공중에서 타이의 꼬리를 잡지 못하는 경우, 2) 3단계에서 삽입이 충분히 정밀하지 않아 고리를 놓치는 경우다. 두 경우 모두 이미지 관측으로부터 케이블 타이의 정확한 위치를 파악하기 어렵다. 검은색 케이블 타이와 배경 사이의 대비(Contrast)가 낮고, 타이가 이미지에서 차지하는 비율이 작기 때문이다. 부록 B에 이미지 관측 예시를 포함한다.</p>
<hr>
<h2 id="vi-ablations">VI. ABLATIONS</h2>
<h3 id="a-action-chunking-and-temporal-ensembling-action-chunking-및-시간적-앙상블"><strong>A. Action Chunking and Temporal Ensembling (action chunking 및 시간적 앙상블)</strong></h3>
<p>V-C 절에서 본 논문은 ACT가 단일 단계 행동만을 예측하는 기존 방법들을 크게 능가함을 관찰했으며, 이에 대한 가설로 action chunking(Action chunking)이 핵심 설계 선택임을 제시했다. $k$가 각 &quot;청크&quot;의 시퀀스 길이를 결정하므로, $k$를 변화시켜 이 가설을 분석할 수 있다. </p>
<p>$k=1$은 action chunking이 없는 경우에 해당하며, $k=episode_length$는 첫 번째 관측만을 바탕으로 전체 에피소드의 행동 시퀀스를 출력하는 완전한 개루프 제어(Open-loop control)에 해당한다. 본 실험에서는 청킹의 효과만을 측정하기 위해 시간적 앙상블(Temporal ensembling)을 비활성화했으며, 각 $k$에 대해 별도의 정책을 학습시켰다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/9a913439-3768-4649-890d-8c5e70e22696/image.png" alt=""></p>
<p>Figure 8 (a)에서 4가지 설정(인간 또는 스크립트 데이터를 사용한 2가지 시뮬레이션 작업)에 대한 평균 성공률을 도식화했으며, 파란색 선은 시간적 앙상블이 없는 ACT를 나타낸다. 성능이 $k=1$일 때 1%에서 $k=100$일 때 44%로 급격히 향상되다가, $k$가 더 높아지면 약간 감소함을 관찰했다. </p>
<p>이는 <strong>청킹을 많이 할수록</strong>, 그리고 <strong>유효 호라이즌(Effective horizon)이 낮을수록</strong> 일반적으로 성능이 향상됨을 보여준다. $k=200, 400$(즉, 개루프 제어에 가까움)에서의 약간의 성능 하락은 반응형 행동(Reactive behavior)의 부재와 긴 행동 시퀀스 모델링의 어려움 때문으로 판단된다.</p>
<p>액션 청킹의 효과와 일반성을 추가로 평가하기 위해, 두 가지 베이스라인 방법에 액션 청킹을 적용했다. BC-ConvMLP의 경우 단순히 출력 차원을 $k \times action_dim$으로 늘렸고, VINN의 경우 다음 $k$개의 행동을 검색하도록 했다. </p>
<p><strong>Figure 8 (a)</strong>에 다양한 $k$에 따른 이들의 성능을 시각화했으며, ACT와 일관되게 action chunking이 많을수록 성능이 향상되는 경향을 보였다. 비록 ACT가 여전히 두 가지 증강된 베이스라인을 상당한 격차로 앞서지만, 이 결과는 action chunking이 이러한 설정의 모방학습에 일반적으로 유익함을 시사한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e4a4d79b-3cee-4428-a6e9-0c682f760eac/image.png" alt=""></p>
<p>다음으로 앞서 언급한 4가지 작업과 다양한 $k$에 대해, <strong>emporal ensembling</strong> 적용 유무에 따른 최고 성공률을 비교하여 emporal ensemble을 소거 분석한다. emporal ensemble 유무에 따른 실험은 별도로 튜닝되었다는 점을 참고해야 한다. 즉, emporal ensemble이 없을 때 최적이었던 하이퍼파라미터가 있을 때는 최적이 아닐 수 있다. </p>
<p><strong>Figure 8 (b)</strong>에서 BC-ConvMLP가 4%의 이득으로 emporal ensemble의 혜택을 가장 많이 보았고, 본 논문의 방법(ACT)이 3.3% 이득으로 그 뒤를 이었다. 반면 비모수적(Non-parametric) 방법인 VINN에서는 성능 하락을 확인했다. 본 논문은 emporal ensemble이 주로 모수적(Parametric) 방법들의 모델링 오차를 평활화(Smoothing)하여 이득을 준다고 가설을 세운다. 대조적으로 VINN은 데이터셋에서 실제 정답(Ground-truth) 행동을 검색하므로 이러한 문제를 겪지 않는다.</p>
<h3 id="b-cvae를-이용한-학습-training-with-cvae">B. CVAE를 이용한 학습 (Training with CVAE)</h3>
<p>본 논문은 노이즈가 많고 멀티모달(Multi-modal) 행동을 포함할 수 있는 인간 데모를 모델링하기 위해 CVAE 목적 함수(Objective)로 ACT를 학습시킨다. 이 섹션에서는 CVAE 목적 함수 없이 단순히 현재 관측(Observation)이 주어졌을 때 행동 시퀀스를 예측하며 L1 손실(Loss)로 학습된 ACT와 비교한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/0a32fff7-70b4-49b7-91db-a18ebd3db892/image.png" alt=""></p>
<p><strong>Figure 8 (c)</strong>에서 2개의 시뮬레이션 작업에 대해 집계된 성공률을 시각화하고, 스크립트 데이터(Scripted data)로 학습한 경우와 인간 데이터(Human data)로 학습한 경우를 별도로 도식화한다. </p>
<p>스크립트 데이터로 학습할 때는 데이터셋이 완전히 결정론적(Deterministic)이기 때문에 CVAE 목적 함수를 제거해도 성능에 거의 차이가 없음을 알 수 있다. 반면 인간 데이터의 경우, 성공률이 35.3%에서 2%로 급격히 하락한다. 이는 인간 데모로부터 학습할 때 CVAE 목적 함수가 필수적임을 보여준다.</p>
<h3 id="c-고빈도-제어는-필수적인가-is-high-frequency-necessary">C. 고빈도 제어는 필수적인가? (Is High-Frequency Necessary?)</h3>
<p>마지막으로, 정교한 조작을 위해 고빈도 원격 조작(High-frequency teleoperation)의 필요성을 보여주기 위해 사용자 연구(User study)를 수행한다. 동일한 하드웨어 설정에서 주파수를 50Hz에서 5Hz로 낮추는데, 이는 고용량 심층 신경망(Deep networks)을 모방학습에 사용하는 최근 연구들과 유사한 제어 주파수이다 [7, 70]. 본 논문은 두 가지 정교한 작업, 즉 케이블 타이 묶기(Threading a zip cable tie)와 두 개의 플라스틱 컵 분리하기(Un-stacking two plastic cups)를 선정했다. 두 작업 모두 밀리미터 수준의 정밀도와 폐루프 시각 피드백(Closed-loop visual feedback)을 필요로 한다.</p>
<p>본 논문은 ALOHA를 사용해본 적은 없지만 다양한 수준의 원격 조작 경험을 가진 6명의 참가자를 대상으로 연구를 수행했다. 참가자들은 컴퓨터 공학 대학원생들 중에서 모집되었으며, 22-25세의 남성 4명과 여성 2명으로 구성되었다. 작업 순서와 주파수는 참가자마다 무작위로 배정되었으며, 각 참가자에게는 매 시도 전 2분의 연습 시간이 주어졌다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/fd1fd172-c257-4645-8e4e-f232e9296717/image.png" alt=""></p>
<p>본 논문은 3회 시도에 대해 작업 수행 시간을 기록하고 데이터를 <strong>Figure 8 (d)</strong>에 시각화했다. 평균적으로 참가자들이 5Hz에서 케이블 타이를 묶는 데 33초가 걸렸으나, 50Hz에서는 20초로 단축되었다. 플라스틱 컵 분리하기의 경우, 제어 주파수를 높임으로써 작업 시간이 16초에서 10초로 줄어들었다. </p>
<p>종합적으로, 본 논문의 설정(즉, 50Hz)은 참가자들이 매우 기교 있고(Dexterous) 정밀한 작업을 짧은 시간 안에 수행할 수 있게 한다. 반면, 주파수를 50Hz에서 5Hz로 줄이면 원격 조작 시간이 62% 증가하는 결과를 초래한다. </p>
<p>본 논문은 &quot;반복 측정 설계(Repeated Measures Designs)&quot;라는 통계적 절차를 사용하여 50Hz 원격 조작이 5Hz보다 우수함을 <code>p-value &lt; 0.001</code> 수준에서 공식적으로 검증한다. </p>
<hr>
<h2 id="vii-limitations-and-conclusion">VII. LIMITATIONS AND CONCLUSION</h2>
<p>본 논문은 원격 조작 시스템 ALOHA와 새로운 모방학습 알고리즘 ACT로 구성된, 정교한 조작(Fine manipulation)을 위한 저비용 시스템을 제안한다. 이 두 부분 간의 시너지는 반투명 양념병 열기나 배터리 끼우기와 같은 정교한 조작 기술을 약 10분의 데모만으로 80-90%의 성공률로 실제 환경(Real-world)에서 직접 학습할 수 있게 해준다.</p>
<p>비록 이 시스템이 상당히 유능하지만, 와이셔츠 단추 잠그기(Buttoning up a dress shirt)와 같이 로봇이나 학습 알고리즘의 능력을 벗어나는 작업들이 여전히 존재한다. 한계점에 대한 더 자세한 논의는 Appendix F에 포함되어 있다. 종합적으로, 본 논문은 이 저비용 오픈소스 시스템이 정교한 로봇 조작(Fine-grained robotic manipulation)을 발전시키는 데 있어 중요한 발걸음이자 접근 가능한 자원이 되기를 희망한다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics]]></title>
            <link>https://velog.io/@choonsik_mom/SmolVLA-A-Vision-Language-Action-Model-for-Affordable-and-Efficient-Robotics</link>
            <guid>https://velog.io/@choonsik_mom/SmolVLA-A-Vision-Language-Action-Model-for-Affordable-and-Efficient-Robotics</guid>
            <pubDate>Mon, 15 Dec 2025 00:36:57 GMT</pubDate>
            <description><![CDATA[<p>Hugging Face, Sorbonne University 등이 저술한 <code>SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics (2025)</code>의 논문 내용 정리</p>
<blockquote>
<p>🤗 SmolVLA 
<a href="https://arxiv.org/pdf/2506.01844">[paper]</a>
<a href="https://huggingface.co/blog/smolvla">[hugging face]</a></p>
</blockquote>
<hr>
<h2 id="1-introduction">1. Introduction</h2>
<p><strong>1. 연구 배경: VLA 모델의 &#39;비만&#39;과 접근성 장벽</strong></p>
<p>최근 OpenVLA나 RT-2와 같은 비전-언어-행동(VLA) 모델들이 로봇 제어 분야에서 눈부신 성과를 거두고 있다. 하지만 이들에게는 치명적인 단점이 존재한다.</p>
<ul>
<li><p><strong>높은 비용 (High Cost):</strong> 대부분 70억(7B) 개 이상의 파라미터를 가진 거대 모델이라서, 훈련과 추론을 위해 고가의 데이터센터급 GPU(H100, A100 등)가 필요하다.</p>
</li>
<li><p><strong>높은 지연 시간 (High Latency):</strong> 덩치가 크다 보니 연산 속도가 느려서, 로봇이 실시간으로 빠르게 반응해야 하는 고주파 제어(High-frequency Control)에 부적합하다.</p>
</li>
<li><p><strong>결과:</strong> 이러한 제약은 자금력이 부족한 연구실이나 개인 개발자(Hobbyists)가 로봇 AI 연구에 참여하는 것을 막는 <strong>진입 장벽(Barrier to Entry)</strong>이 되고 있다.</p>
</li>
</ul>
<p><strong>2. 동기: &quot;작은 것이 아름답다 (Small is Beautiful)&quot;</strong></p>
<p>본 논문은 다음과 같은 질문에서 출발한다.</p>
<blockquote>
<p><em>&quot;정말로 로봇을 제어하는 데 수십억 개의 파라미터가 필요할까? 훨씬 작은 모델로도 똑똑하게 움직일 수 있지 않을까?&quot;</em></p>
</blockquote>
<p>저자들은 <strong>효율성(Efficiency)</strong>과 <strong>저렴함(Affordability)</strong>을 최우선 가치로 두었다. 누구나 집에 있는 게이밍 노트북이나 저렴한 로봇 팔(SO-100 등)로도 최신 AI 기술을 누릴 수 있어야 한다는 것이다.</p>
<p><strong>3. 제안하는 모델: SmolVLA (Small VLA)</strong>
본 논문은 로봇 제어의 민주화를 위해 <strong>SmolVLA</strong>를 제안한다.</p>
<ul>
<li><p><strong>초경량 (Ultra-lightweight):</strong> 기존 모델 대비 약 <strong>1/15</strong> 크기인 <strong>4억 5천만(450M)</strong> 파라미터 규모다.</p>
</li>
<li><p><strong>소비자 친화적 (Consumer-friendly):</strong> 고가의 서버 없이도, 일반적인 소비자용 GPU(NVIDIA RTX 30/40 시리즈)나 심지어 Apple Silicon(MacBook)에서도 원활하게 구동된다.</p>
</li>
<li><p><strong>오픈 소스 생태계:</strong> Hugging Face의 LeRobot 팀과 협력하여, 3D 프린터로 만들 수 있는 저가형 로봇 팔과 오픈 데이터를 기반으로 개발되었다.</p>
</li>
</ul>
<p><strong>4. 핵심 기여 (Key Contributions)</strong>
이 논문이 제시하는 기술적 진보는 크게 세 가지로 요약된다.</p>
<ol>
<li><p><strong>구조적 혁신 (Architectural Efficiency):</strong> 최신 소형 언어 모델(SmolLM2)과 효율적인 비전 인코더(SigLIP)를 결합하고, <strong>레이어 스킵(Layer Skipping)</strong>과 <strong>토큰 압축(Token Compression)</strong> 기술을 적용하여 연산량을 극단적으로 줄였다.</p>
</li>
<li><p><strong>비동기 추론 (Asynchronous Inference):</strong> 로봇이 생각하느라 멈추지 않도록, <strong>&#39;생각(Inference)&#39;과 &#39;행동(Action)&#39;을 병렬로 처리</strong>하는 시스템을 도입하여 동작의 부드러움을 획기적으로 개선했다.</p>
</li>
<li><p><strong>검증된 성능 (Proven Performance):</strong> 파라미터 수가 15배나 많은 OpenVLA(7B)와 비교했을 때, 시뮬레이션(LIBERO) 및 실제 환경에서 대등하거나 더 우수한 성공률을 보였다.</p>
</li>
</ol>
<hr>
<h2 id="2-related-work">2. Related work</h2>
<p>본 섹션은 기존 로봇 학습 연구를 세 가지 관점(모델 크기, 행동 생성 방식, 추론 속도)에서 분석하고, SmolVLA의 차별성을 부각한다.</p>
<p><strong>1. 거대 VLA 모델: 성능과 비용의 trade-off</strong></p>
<ul>
<li><p><strong>기존 접근 (Large-scale VLAs)</strong> 
RT-2 1, OpenVLA 2와 같은 모델들은 인터넷 규모의 데이터로 학습된 거대 파운데이션 모델을 기반으로 하여 뛰어난 일반화(Generalization) 능력을 보여주었다.</p>
</li>
<li><p><strong>한계점</strong> 
그러나 이들은 최소 70억(7B) 개 이상의 파라미터를 가지며, 추론 속도가 느려 실시간 제어가 어렵다. 또한, 구동을 위해 고가의 서버급 GPU가 필수적이어서 <strong>온디바이스(On-device) 로봇</strong>에 적용하기에는 현실적인 제약이 크다.</p>
</li>
<li><p><strong>SmolVLA의 전략</strong> 
본 논문은 VLA의 강력한 추론 능력은 유지하되, 모델 크기를 <strong>450M(약 1/15)</strong> 수준으로 줄여 일반 소비자용 하드웨어에서도 구동 가능하게 만들었다.</p>
</li>
</ul>
<p><strong>2. 효율적인 정책 학습: 지능의 부재</strong></p>
<ul>
<li><p><strong>기존 접근 (Specialized Policies)</strong> 
<code>Diffusion Policy</code>나 <code>ACT(Action Chunking Transformer)</code>와 같은 모델들은 로봇의 움직임(Action) 자체를 모방하는 데는 효율적이고 강력하다.</p>
</li>
<li><p><strong>한계점</strong> 
하지만 이들은 언어 모델(LLM) 기반이 아니기 때문에, &quot;파란색 컵을 치워줘&quot;와 같은 언어 명령을 이해하거나 복잡한 상황을 추론하는 <strong>의미론적 지능(Semantic Understanding)</strong>이 부족하다.</p>
</li>
<li><p><strong>SmolVLA의 전략</strong> 
SmolVLA는 <strong>SmolVLM</strong>이라는 언어-비전 백본을 사용하여 &#39;언어 이해력&#39;을 갖추고, 행동 생성 부분에는 경량화된 <strong>플로우 매칭(Flow Matching)</strong>을 적용하여 &#39;운동 능력&#39;까지 동시에 확보했다.</p>
</li>
</ul>
<p><strong>3. 추론 속도와 비동기 제어 (Inference Latency &amp; Asynchronous Control)</strong></p>
<ul>
<li><p><strong>기존 접근 (Synchronous)</strong> 
대부분의 VLA 모델은 <strong>[관측 → 추론 → 행동]</strong>이 순차적으로 이루어지는 <strong>동기식(Synchronous)</strong> 방식을 사용한다. 모델이 생각(Inference)하는 동안 로봇이 멈춰 있어야 하므로 <strong>움직임이 뚝뚝 끊기는(Jittery) 현상</strong>이 발생하고, 제어 주파수(Hz)를 높이는 데 한계가 있었다.</p>
</li>
<li><p><strong>SmolVLA의 혁신</strong> 
본 논문은 생각과 행동을 분리하는 <strong>비동기 추론(Asynchronous Inference)</strong> 파이프라인을 도입했다. 로봇이 행동하는 동안 백그라운드에서 다음 행동을 미리 계산함으로써, <strong>지연 시간(Latency)을 은폐</strong>하고 훨씬 부드러운 움직임을 구현한다.</p>
</li>
</ul>
<table>
<thead>
<tr>
<th><strong>구분</strong></th>
<th><strong>거대 VLA (OpenVLA 등)</strong></th>
<th><strong>기존 정책 모델 (Diffusion Policy)</strong></th>
<th><strong>SmolVLA (Proposed Method)</strong></th>
</tr>
</thead>
<tbody><tr>
<td><strong>장점</strong></td>
<td>똑똑함 (언어/추론)</td>
<td>빠르고 정교함 (운동신경)</td>
<td><strong>똑똑하고 빠름</strong></td>
</tr>
<tr>
<td><strong>단점</strong></td>
<td>너무 무겁고 느림</td>
<td>언어 이해 능력 없음</td>
<td>(상대적으로) 작은 지식 용량</td>
</tr>
<tr>
<td><strong>실행 환경</strong></td>
<td>A100 등 고가 GPU</td>
<td>일반 GPU</td>
<td><strong>노트북 / MacBook 가능</strong></td>
</tr>
<tr>
<td><strong>제어 방식</strong></td>
<td>동기식 (Synchronous)</td>
<td>-</td>
<td><strong>비동기식 (Asynchronous)</strong></td>
</tr>
</tbody></table>
<hr>
<h2 id="3-smolvla-small-efficient-and-capable">3. SmolVLA: small, efficient and capable</h2>
<p>본 섹션에서는 SmolVLA의 설계 철학인 <strong>&#39;효율성 중심(Efficiency-first)&#39;</strong> 접근 방식을 설명한다. 목표는 일반 소비자용 GPU(Consumer GPU)에서 학습 및 추론이 가능한 모델을 만드는 것이다.</p>
<p><strong>Overview.</strong></p>
<p>SmolVLA는 기존 VLA의 비효율성을 제거하기 위해 바닥부터 새롭게 설계된 아키텍처를 가진다.</p>
<ul>
<li><strong>총 파라미터:</strong> 약 <strong>4억 5천만(450M)</strong> 개 (OpenVLA 7B 대비 약 15배 작음).</li>
<li><strong>구성:</strong> 강력하지만 무거운 비전 인코더를 스마트하게 가지치기하고, 소형 언어 모델(SLM)과 결합한 뒤, 연속적인 행동 생성을 위한 경량 액션 헤드를 부착했다.</li>
</ul>
<h3 id="31-model-architecture">3.1 Model architecture</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/ef78ace1-8e16-45f9-8f0a-fd9571d18c3f/image.png" alt=""></p>
<p>SmolVLA는 입력 데이터(이미지, 상태)를 처리하여 로봇의 행동을 출력하기 위해 다음 5가지 핵심 모듈이 순차적/유기적으로 작동한다.</p>
<p><strong>1. 상태, 행동 및 특징 프로젝터 (State, Action, and Feature Projectors)</strong>
→ 서로 다른 언어를 사용하는 데이터들을 하나의 공통 언어<strong>(Embedding Space)</strong>로 번역해 주는 &#39;통역사&#39; 역할</p>
<ul>
<li><p><strong>역할:</strong> 로봇의 현재 관절 각도(State), 과거의 행동(Action), 그리고 이미지 특징(Feature)은 모두 데이터 형식이 다름 → 이들을 <strong>MLP 기반의 프로젝터(Projector)</strong>를 통과시켜, 언어 모델(VLM)이 이해할 수 있는 벡터 차원으로 변환</p>
</li>
<li><p><strong>의의:</strong> 이를 통해 로봇의 물리적 상태 정보와 시각 정보가 자연어 처리 과정에 매끄럽게 통합됨</p>
</li>
</ul>
<p><strong>2. 시각 토큰 축소 (Visual Tokens Reduction)</strong>
→ 작은 모델이 체하지 않도록, 시각 정보의 핵심 정보만 추출</p>
<ul>
<li><p><strong>문제:</strong> 고해상도 이미지는 보통 1,000개 이상의 토큰을 생성하는데, 소형 모델(SmolLM)이 이를 전부 처리하기 어려움  </p>
</li>
<li><p><strong>해결:</strong> <strong>공간 풀링(Spatial Pooling)</strong> 또는 <strong>C-Abstractor</strong> 기술을 사용하여, 이미지의 핵심 정보를 유지한 채 토큰 수를 <strong>단 64개</strong>로 대폭 압축</p>
</li>
<li><p><strong>효과:</strong> 연산량을 획기적으로 줄여 추론 속도를 높임</p>
</li>
</ul>
<p><strong>3. 레이어 스키핑을 통한 빠른 추론 (Faster Inference through Layer Skipping)</strong>
→ &quot;로봇 제어에 지나치게 철학적인 고민은 필요 없다&quot;는 아이디어</p>
<p>• <strong>원리:</strong> <code>비전 인코더(SigLIP)</code>의 깊은 레이어(Deep Layers)는 &#39;의미론적 추상화(이것은 의자라는 개념이다)&#39;를 담당하고, 얕은 레이어(Early Layers)는 &#39;기하학적 특징(모서리, 모양, 위치)&#39;을 담당</p>
<p>• <strong>적용:</strong> 로봇 조작에는 물체의 위치와 모양이 더 중요하므로, 인코더의 <strong>후반부 레이어를 과감히 건너뛰고(Skip)</strong>, 앞부분의 특징만 사용하여 이미지 처리 속도를 <strong>2배 이상</strong> 가속화</p>
<p><strong>4. 플로우 매칭 액션 전문가 (Flow Matching Action Expert)</strong>
→ $\pi_0$의 핵심 기술을 경량화하여 적용한, 로봇의 &#39;운동 신경&#39; 중추</p>
<ul>
<li><p><strong>구성:</strong> VLM 백본과는 별도로 존재하는, 행동 생성 전용 신경망</p>
</li>
<li><p><strong>작동 원리:</strong> 언어 모델이 상황을 판단하면, 이 전문가 모듈이 넘겨받아 <strong>플로우 매칭(Flow Matching)</strong> 알고리즘을 수행</p>
</li>
<li><p><strong>출력:</strong> 뚝뚝 끊어지는 <strong>이산적(discrete) 토큰</strong>이 아니라, <strong>연속적인(Continuous) 행동 궤적</strong>을 생성. 노이즈로부터 <strong>최적의 행동 경로(Vector Field)를 직선에 가깝게 찾아내어</strong>, 적은 연산(Step)으로도 부드럽고 정교한 움직임을 생성</p>
</li>
</ul>
<blockquote>
</blockquote>
<p><strong>[Conditional Flow Matching (CFM)]</strong> 
SmolVLA의 액션 전문가는 <strong>조건부 플로우 매칭(Conditional Flow Matching, CFM)</strong> 알고리즘을 사용한다. 이는 노이즈($x_0$)를 로봇의 행동($x_1$)으로 변환하는 속도(Velocity)를 학습하는 과정이다.</p>
<blockquote>
<p>$L^{\tau}(\theta) = \mathbb{E}<em>{t, p(A{t}|o</em>{t}), q(A_{t}^{\tau}|A_{t})} \left[ || v_{\theta}(A_{t}^{\tau}, t, o_{t}) - u_t(A_{t}^{\tau}|A_{t}) ||^{2} \right]$</p>
</blockquote>
<p>1) $\mathbb{E}<em>{t, p(A{t}|o{t}), q(A</em>{t}^{\tau}|A_{t})}$ : “상황 설정 및 데이터 샘플링”  </p>
<ul>
<li>$A_t$ (GT Action) : 현재 관측($o_t$) 상황에서 로봇이 실제로 해야 할 <strong>정답 행동 덩어리(Action Chunk)</strong> (데이터셋에 있는 전문가의 행동)</li>
<li>$A_t^\tau$ (Noisy Action) : 정답 행동($A_t$)에 노이즈가 섞인 상태. Flow Matching에서는 <strong>시간 $\tau$ 시점에서의 중간 위치</strong>를 의미.<pre><code>  - $\tau=0$ : 완전한 노이즈 (랜덤)
  - $\tau=1$ : Ground Truth ($A_t$)
  - $A_t^\tau$ : 0~ 1 사이 어딘가에 있는 상태</code></pre><blockquote>
</blockquote>
2) $v_{\theta}(A_{t}^{\tau}, t, o_{t})$ : &quot;모델의 추측 (Prediction)”</li>
<li>$A_t^\tau$ : 현재 위치</li>
<li>$o_t$ : 현재 상황(이미지 토큰+언어 명령)</li>
<li>$v_\theta$ : 현재 상황($o_t$)를 보고 지금 위치($A_t^\tau$)에서 취해야 할 Velocity Vector를 구함<blockquote>
<p>3) $u_t(A_{t}^{\tau}|A_{t})$ : &quot;정답 방향 (Target Velocity)”</p>
</blockquote>
</li>
<li>Flow Matching에서는 출발점(노이즈)에서 도착점(정답 행동 $A_t$)으로 가는 <strong>가장 직선인 경로</strong>를 정답으로 침</li>
<li>수식으로는 보통 <strong>$(A_t - \text{Noise})$</strong> 와 같이, <strong>목적지를 향해 일직선으로 뻗은 벡터</strong><blockquote>
<p>4) $\left[ || v_{\theta}(A_{t}^{\tau}, t, o_{t}) - u_t(A_{t}^{\tau}|A_{t}) ||^{2} \right]$: “오차 측정(MSE Loss)”    </p>
</blockquote>
</li>
<li>예측값($v_{\theta}(A_{t}^{\tau}, t, o_{t})$)과 정답값($u_t(A_{t}^{\tau}|A_{t})$)의 오차를 구함</li>
<li>오차 값이 0에 가까워지도록  $\theta$ 파라미터를 학습<blockquote>
</blockquote>
→ 모델($\theta$)이 예측한 방향($v_\theta$)이, 정답 방향($u_t$)과 얼마나 다른지(오차)를 계산하는 수식
: 복잡한 확산 과정(Diffusion)을 배우는 대신 <strong>&quot;노이즈에서 정답 행동으로 가는 직선의 기울기&quot;</strong>만을 심플하게 학습</li>
</ul>
<p><strong>5. 크로스 어텐션 레이어와 코잘 셀프 어텐션 레이어의 교차 배치(Interleaved Cross and Causal Self-Attention Layers)</strong></p>
<p>Action Expert의 내부가 어떻게 생겼는지를 설명하는 핵심 디테일이다. Action Expert는 두 가지 정보를 동시에 처리해야 한다. </p>
<ul>
<li><p><strong>구조:</strong> 액션 전문가 내부의 트랜스포머 레이어는 두 가지 어텐션 메커니즘이 <strong>교차(Interleaved)</strong>되어 있음</p>
<ol>
<li><strong>Cross-Attention:</strong> VLM 백본이 생성한 문맥(이미지+언어 정보)에 주목 (현재 상황 파악)</li>
</ol>
<ul>
<li>예시: &quot;현재 큐브 위치는 어디인가?&quot;, &quot;목표물의 위치는?&quot; </li>
</ul>
<ol start="2">
<li><strong>Causal Self-Attention:</strong> 생성하고 있는 행동의 순서(Action sequence)에 주목 (Action token끼리 서로 참조, 과거 액션으로 다음 액션 결정)  <ul>
<li>예시: &quot;이전에 팔을 뻗었으니 이제 그리퍼를 열어야지&quot;, &quot;그리퍼를 열었으니 물체를 집어야지&quot;</li>
</ul>
</li>
</ol>
</li>
<li><p><strong>효과:</strong> 이 두 레이어가 번갈아 배치됨(상황 파악→행동 계획 과정을 반복)으로써, 로봇은 <strong>&#39;현재 상황(VLM의 지능)&#39;</strong>을 반영하면서도 <strong>&#39;물리적으로 말이 되는 연속 동작(Action Expert의 운동능력)&#39;</strong>을 생성할 수 있게 된다.</p>
</li>
</ul>
<blockquote>
<p><strong>[전체 흐름 요약]</strong></p>
<p>입력(이미지/상태) → ① Projectors → ② Visual Tokens Reduction → ③ Layer Skipping →VLM → ④ Flow Matching Action Expert (⑤ Interleaved Attention) → 출력(행동) </p>
</blockquote>
<ul>
<li>SmolVLA 아키텍처 구성 요소</li>
</ul>
<table>
<thead>
<tr>
<th align="center"><strong>순서</strong></th>
<th><strong>구성 요소 (Component)</strong></th>
<th><strong>핵심 기능 (Key Function)</strong></th>
<th><strong>효과 및 특징 (Benefit &amp; Feature)</strong></th>
</tr>
</thead>
<tbody><tr>
<td align="center"><strong>1</strong></td>
<td>Projectors</td>
<td>로봇의 상태(State), 행동(Action), 이미지 특징(Feature)을 VLM이 이해하는 벡터로 변환</td>
<td>• 이질적인 데이터(물리 정보+시각 정보)를 하나의 언어 공간으로 통합</td>
</tr>
<tr>
<td align="center"><strong>2</strong></td>
<td>Visual Tokens Reduction</td>
<td>고해상도 이미지의 수많은 토큰을 핵심 정보만 남겨 <strong>단 64개</strong>로 압축 (Spatial Pooling)</td>
<td>• 소형 모델(SmolLM)의 연산 부담을 획기적으로 줄임<br>• 추론 속도 대폭 향상</td>
</tr>
<tr>
<td align="center"><strong>3</strong></td>
<td>Layer Skipping</td>
<td>비전 인코더(SigLIP)의 후반부 레이어를 건너뛰고, 초/중반부 특징만 사용</td>
<td>• 로봇 제어에 불필요한 고차원 추상화 연산 생략<br>• <strong>2배 빠른</strong> 시각 인코딩 속도 확보</td>
</tr>
<tr>
<td align="center"><strong>4</strong></td>
<td>Flow Matching Action Expert</td>
<td>VLM의 판단을 이어받아 <strong>연속적인 행동 궤적(Continuous Trajectory)</strong>을 생성</td>
<td>• 뚝뚝 끊기는 이산 토큰 대신 부드러운 움직임 생성<br>• 직선 경로(Vector Field) 학습으로 효율적 추론</td>
</tr>
<tr>
<td align="center"><strong>5</strong></td>
<td>Interleaved Attention</td>
<td>액션 전문가 내부에서 <strong>&#39;문맥 파악(Cross)&#39;</strong>과 <strong>&#39;경로 생성(Causal)&#39;</strong>을 번갈아 수행</td>
<td>• <strong>VLM의 지능</strong>(상황 인식)과 <strong>물리적 일관성</strong>(동작 연결)을 동시에 확보<br>• 정교한 핸드-아이 코디네이션 구현</td>
</tr>
</tbody></table>
<h3 id="32-pretraining-data-collected-by-the-community">3.2. Pretraining data collected by the community</h3>
<p>본 논문은 로봇 학습의 고질적인 문제인 &#39;데이터 부족&#39;과 &#39;파편화&#39;를 해결하기 위해, Hugging Face LeRobot 커뮤니티의 데이터를 활용한 대규모 표준화 파이프라인을 구축했다.</p>
<p><strong>1. 배경: &quot;데이터의 섬(Data Islands)&quot;을 연결하라</strong></p>
<ul>
<li><p><strong>문제의 본질:</strong> 로봇 데이터는 인터넷의 텍스트/이미지와 달리, 로봇의 하드웨어(카메라 위치, 팔의 자유도 등)가 다르면 서로 호환되지 않는 이질성(Heterogeneity)이 매우 크고, 이로 인해 각 연구실의 데이터가 고립되는 <strong>&#39;데이터 섬&#39;</strong> 현상이 발생해 왔음</p>
</li>
<li><p><strong>커뮤니티의 잠재력:</strong> 최근 저가형 로봇(Aloha, SO-100 등)의 보급으로 개인이 수집한 데이터가 폭증하고 있습니다. 본 연구는 이 &#39;정제되지 않은 야생의 데이터(In-the-wild Data)&#39;가 오히려 로봇의 일반화(Generalization) 능력을 키우는 핵심 열쇠라고 판단</p>
</li>
</ul>
<p><strong>2. 데이터 선별 및 규모 (Data Curation)</strong></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/aab292fe-1244-4a6b-b1fb-99f645d18ca6/image.png" alt=""></p>
<ul>
<li><p><strong>규모:</strong> Hugging Face에 호스팅된 데이터 중 품질이 검증된 <strong>481개의 데이터셋</strong>을 선별</p>
</li>
<li><p><strong>다양성:</strong> 이 데이터셋은 22종 이상의 다양한 로봇 형태(Embodiment)를 포함하며, 전문 연구실의 통제된 환경뿐만 아니라 일반 가정집, 차고 등 <strong>다양한 조명과 배경</strong>을 포함하고 있어 시각적 견고성(Visual Robustness)을 높이는 데 기여</p>
</li>
</ul>
<p><strong>3. [표준화 1] VLM을 활용한 작업 주석 개선 (Semantic Relabeling)</strong>
커뮤니티 데이터는 사용자가 임의로 라벨링하여 모호하거나, 문법에 맞지 않는 경우가 많았다.</p>
<ul>
<li><p><strong>해결책 (Qwen2.5-VL):</strong> 텍스트만으로 수정하는 것이 아니라, 시각-언어 모델(VLM)인 <code>Qwen2.5-VL-3B-Instruct</code>를 활용</p>
</li>
<li><p><strong>방법론:</strong></p>
<ol>
<li>에피소드의 <strong>초기, 중간, 마지막 프레임</strong>을 샘플링하여 VLM에 보여줌</li>
<li>VLM에게 *&quot;이 로봇이 수행한 행동을 간결한 영어 명령어로 요약해줘&quot;*를 요청</li>
<li>이를 통해 &quot;문이 열려있음(State)&quot;과 같은 상태 묘사가 아닌, &quot;문을 열어라(Instruction)&quot;와 같은 <strong>행동 지향적(Action-oriented)</strong> 텍스트로 라벨을 통일</li>
</ol>
</li>
</ul>
<p><strong>4. [표준화 2] 카메라 시점 정규화 (Camera View Normalization)</strong>
로봇마다 카메라 개수(1개~N개)와 설치 위치, 이름(cam_high, wrist_cam 등)이 제각각인 문제를 해결해야 함</p>
<ul>
<li><strong>우선순위 매핑 전략 (Priority Mapping):</strong> 모델의 입력 채널(<code>OBS_IMAGE_1</code>, <code>2</code>, <code>3</code>)을 고정하고, 정보량이 높은 순서대로 우선순위를 두어 매핑<ol>
<li><strong>전역 시점 (Global/Top View) → <code>OBS_IMAGE_1</code>:</strong> 작업 공간 전체를 조망하여 상황을 파악하는 데 가장 중요하므로 1순위로 배정.</li>
<li><strong>손목 시점 (Wrist View) → <code>OBS_IMAGE_2</code>:</strong> 정교한 조작(Insertion 등)에 필수적이므로 2순위.</li>
<li><strong>측면/기타 시점 (Side/Aux View) → <code>OBS_IMAGE_3</code>:</strong> 추가적인 정보를 제공.</li>
</ol>
</li>
</ul>
<ul>
<li><strong>자동화의 한계:</strong> &quot;images.laptop&quot; 처럼 이름만으로 위치를 알 수 없는 경우가 많아, 이번 연구에서는 수작업 매핑을 수행했으나, 향후 VLM을 이용한 자동 분류 가능성을 열어 둠.</li>
</ul>
<h3 id="33-asynchronous-inference">3.3. Asynchronous inference</h3>
<p>SmolVLA는 저사양 하드웨어에서도 <strong>50Hz 이상의 고주파 제어</strong>를 실현하기 위해, 로봇의 <strong>생각(Inference)</strong>과 <strong>행동(Execution)</strong>을 시간적으로 분리하는 <strong>비동기 추론 파이프라인</strong>을 제안한다.</p>
<h4 id="1-배경-기존-방식들의-딜레마"><strong>1. 배경: 기존 방식들의 딜레마</strong></h4>
<p>현대의 로봇 정책은 하나의 관측($o_t$)에서 Action Chunk, $A_t = {a_t, ..., a_{t+n}}$를 한꺼번에 예측한다. 이를 실행하는 방식에는 크게 3가지가 있었으나 모두 한계가 명확했다.</p>
<ul>
<li><p><strong>전략 1: 개방형 루프 (Open-loop Execution)</strong>
  ◦ <strong>방식:</strong> 행동 덩어리 전체($n$개)를 다 실행한 뒤에야, 멈춰서 다음 관측을 봄
  ◦ <strong>문제:</strong> $n$ 스텝 동안 눈을 감고 움직이는 셈이라, 도중에 환경이 변해도 대처하지 못함 (반응성 부족).</p>
</li>
<li><p><strong>전략 2:  연속 추론 (Continuous Inference) + Temporal Ensembling</strong>
  ◦ <strong>방식:</strong> 매 스텝마다 새로운 액션 청크를 예측하고, 겹치는 구간을 합침 (Sliding Window + Aggregation).
  ◦ <strong>문제:</strong> 반응성은 좋지만, 매초 수십 번의 추론을 돌려야 하므로 고성능 GPU가 필수 요소. 엣지 디바이스에서 실행 불가능</p>
</li>
<li><p><strong>전략 3: 동기식 추론 (Synchronous Inference)</strong>
  ◦ <strong>방식:</strong> 액션 청크를 다 쓰면 멈추고, 다음 청크를 계산한 뒤 다시 움직임.
  ◦ <strong>문제:</strong> 계산하는 동안 로봇이 멈춰있는 <strong>Blind Lag (멍하니 있는 시간)</strong>가 발생하여 움직임이 뚝뚝 끊김.</p>
</li>
</ul>
<h4 id="2-제안-비동기-추론-asynchronous-inference"><strong>2. 제안: 비동기 추론 (Asynchronous Inference)</strong></h4>
<p>SmolVLA는 *&quot;생각하는 시간조차 아깝다, 움직이면서 생각하자&quot;*는 전략을 취한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/ed269112-7221-4bd2-9731-d861c05c93d6/image.png" alt=""></p>
<p><strong>핵심 아이디어:</strong> <strong>추론(Inference)</strong>과 <strong>실행(Execution)</strong>의 <strong>디커플링(Decoupling)</strong>.</p>
<ul>
<li><strong>Robot Client</strong>
: 현재 큐(Action Queue)에 쌓인 행동을 수행하는 데 집중. Queue가 비어가면 Policy Server에 새로운 관측 전송  </li>
</ul>
<ul>
<li><strong>Policy Server</strong>
: 몸이 움직이는 동안 백그라운드에서 다음 행동(Action Chunk)을 미리 계산. 계산 완료 시 RobotClient로 결과 전송</li>
</ul>
<ul>
<li><strong>Non-blocking</strong>
: 계산 완료 시 큐에 자동 추가, 로봇은 계산 중에도 멈추지 않고 계속 움직임</li>
</ul>
<h4 id="3-알고리즘-작동-원리-algorithm-1"><strong>3. 알고리즘 작동 원리 (Algorithm 1)</strong></h4>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/9ed188a1-b881-4575-b57e-11466c8c5a9e/image.png" alt=""></p>
<p>마치 <strong>‘동영상 스트리밍 버퍼링’</strong>과 유사한 원리로 작동한다. </p>
<ul>
<li><p><strong>액션 큐 (Action Queue)</strong></p>
<ul>
<li>로봇이 수행할 행동들이 줄지어 대기하는 저장소.</li>
<li>PopFront($A_t$): 큐에서 행동을 하나씩 꺼내 실행</li>
</ul>
</li>
<li><p><strong>임계값 트리거 (Threshold $g$)</strong></p>
<ul>
<li>조건:$\frac{|A_t|}{n} &lt; g$ (남은 액션 수 / chunk 크기 &lt; 임계값)</li>
<li>큐에 남은 행동의 개수가 전체 크기의 일정 비율 밑으로 떨어지면 (예: chunk 크기가 10이고, $g=0.3$이면, 큐에 3개 미만 남았을 때 새 관측 캡처) 새로운 action chunk를 받기 위한 신호 전송</li>
</ul>
</li>
<li><p><strong>비차단 추론 (Non-blocking Inference)</strong></p>
<ul>
<li>신호를 받은 서버(PolicyServer)는 <strong>즉시</strong> 최신 관측($o_{t+1}$)을 기반으로 다음 청크($\tilde{A}_{t+1}$) 계산 시작</li>
<li>계산이 돌아가는 동안에도 <strong>로봇은 멈추지 않고</strong> 큐에 남아있는 잔여 행동을 계속 수행</li>
</ul>
</li>
<li><p><strong>병합 (Aggregation)</strong></p>
<ul>
<li><p>계산이 완료되면, 새로 나온 action chunk를 기존 큐의 남은 부분과 부드럽게 이어 붙임</p>
<p>  ${A}<em>{t+1} ← f(A_t, \tilde{A}</em>{t+1})$ </p>
</li>
<li><p>새로운 action chunk 계산이 아직 끝나지 않은 경우(NOTCOMPLETED)에는 기존 큐를 그대로 유지</p>
<p>  $A_{t+1} ← A_t$</p>
</li>
</ul>
</li>
</ul>
<h4 id="4-implementation-details">4. Implementation Details</h4>
<p>비동기 추론이 이론상 완벽하더라도, 실제 런타임에서 발생할 수 있는 <strong>중복 연산</strong>이나 <strong>큐 고갈(Starvation)</strong> 문제를 막기 위해 다음과 같은 안전장치를 마련했다.</p>
<p><strong>1. 유사도 필터 (Similarity Filter)</strong>
로봇이 거의 움직이지 않았는데도 계속해서 똑같은 추론을 반복하는 것은 리소스 낭비다. 이를 방지하기 위한 거름망이다.</p>
<ul>
<li><strong>목적:</strong> 불필요한 서버 호출을 막고, 중복된 액션 청크로 인해 로봇이 제자리에서 떠는 현상을 방지한다.</li>
<li><strong>작동 원리 (Joint-space Comparison):</strong><ul>
<li>무거운 이미지를 비교하는 대신, 가벼운 <strong>관절 공간(Joint-space)</strong> 데이터를 사용한다.</li>
<li>현재 관측과 이전 관측 사이의 거리가 임계값 $\epsilon \in \mathbb{R}^+$ 미만이면, &quot;상황이 변하지 않았다&quot;고 판단하여 추론을 건너뛴다.</li>
</ul>
</li>
<li><strong>예외 처리 (Safety Override):</strong> 단, 액션 큐가 완전히 비어갈 위기라면, 상황이 변하지 않았더라도 강제로 추론을 수행하여 로봇이 멈추는 것을 최우선으로 막는다.</li>
</ul>
<p><strong>2. 지연 시간 분석 (Latency Analysis)</strong>
*&quot;로봇이 멈추지 않으려면, Action을 언제 미리 Inference해야 할까?&quot;*에 대한 수학적 증명이다.</p>
<ul>
<li><strong>전체 지연 시간 ($\ell$)</strong> 은 다음 세 가지 요소의 합이다.  <blockquote>
<p>$E[\ell] = E[t_{C\rightarrow S}] + E[\ell_S] + E[t_{S\rightarrow C}]$</p>
</blockquote>
</li>
</ul>
<p>(전체 지연 =  $t_{C\rightarrow S}$ : RobotClient → RobotServer 관측 전송 시간 + $\ell_S$ : PolicyServer 추론 시간 + $t_{S\rightarrow C}$ PolicyServer → RobotClient 액션 전송 시간)</p>
<ul>
<li><p><em>가정:</em> 네트워크 전송 시간은 매우 짧으므로 무시하고, <strong>추론 시간($\ell_S$)</strong>을 핵심 변수로 본다. ($E[\ell] \simeq E[\ell_S]$)</p>
</li>
<li><p><strong>큐 고갈 방지 조건 (Anti-Starvation Condition)</strong>:
로봇이 멈추지 않으려면, &quot;남은 Action Chunk의 양(Buffer)&quot;이 &quot;새 Action Chunk를 만드는 시간(Latency)&quot;보다 커야 한다. 런타임에서 큐 고갈 방지 조건을 수식으로 정의하면 다음과 같다.</p>
</li>
</ul>
<blockquote>
<p>$g \geq \frac{E[\ell_S]}{\Delta t \cdot n}$</p>
</blockquote>
<ul>
<li>$g$: 임계값 비율 (0~1)</li>
<li>$\ell_S$: 추론 시간</li>
<li>$\Delta t$: 제어 주기 (예: 33ms)</li>
<li>$n$: 청크 크기 (한번에 생성하는 Action의 양</li>
</ul>
<p><strong>의미:</strong> 이 조건을 만족하도록 $g$를 설정하면, 로봇은 절대 멈추지 않는다.</p>
<p><strong>3. 처리 빈도 (Processing Frequency)</strong>
유사도 필터가 적용되었을 때 시스템이 얼마나 효율적으로 변하는지 보여준다.</p>
<ul>
<li><p><strong>필터 없을 때:</strong></p>
<p>  (1) 관측 전송 주기 - 매 $(1-g)n \cdot \Delta t$ 초마다 RobotClient가 PolicyServer 관측 전송 </p>
<p>  (2) 액션 청크 수신 주기 - $(1-g)n \cdot \Delta t + E[\ell_S]$초마다 RobotClient가 PolicyServer로부터 새 액션 청크 수신</p>
</li>
<li><p><strong>필터 적용 시:</strong> 상황이 변하지 않으면 호출을 건너뛰므로, <strong>실질적인 처리 주기가 늘어난다.</strong> 즉, 큐가 줄어드는 속도보다 추론 주기가 길어져 <strong>시스템 리소스를 아끼면서도</strong> 큐가 마르지 않게 유지한다.</p>
</li>
</ul>
<h4 id="5-임계값-g에-따른-동작-시나리오">5. 임계값 $g$에 따른 동작 시나리오</h4>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/a4496f16-8fa4-428d-911a-f4e2dbb15c56/image.png" alt=""></p>
<blockquote>
<p><strong>g = 0: 순차적 한계 (Sequential Limit)</strong></p>
</blockquote>
<p><strong>동작:</strong></p>
<ul>
<li>클라이언트가 전체 청크를 완전히 소진한 후에만 새로운 관측 전송</li>
<li>다음 청크를 계산하는 왕복 지연시간 동안 큐가 완전히 비어있음<blockquote>
</blockquote>
</li>
<li><em>결과:*</em></li>
<li>로봇이 행동할 수 없는 상태 발생</li>
<li>완전히 순차적인 배포 방식을 재현</li>
<li>평균 $E[\ell_S]$초의 유휴 시간 발생 (Blind Lag)<blockquote>
</blockquote>
</li>
<li><em>특징:*</em> 계산 효율적이지만 반응성 최악</li>
</ul>
<blockquote>
<p><strong>g = 0.7: 비동기 추론 (Asynchronous Inference) - 권장</strong></p>
</blockquote>
<p><strong>동작:</strong></p>
<ul>
<li>큐 $A_{t-1}$의 약 30% ($1−g$)를 소비한 후 새로운 액션 큐 $A_t$ 추론 트리거</li>
<li>계산을 분산시키면서도 큐가 비는 것을 방지<blockquote>
</blockquote>
</li>
<li><em>결과:*</em></li>
<li>연속적인 청크 간 겹침이 모델링 오류에 대한 버퍼 역할</li>
<li>$g=1$의 계산 비용 없이 적절한 반응성 확보</li>
<li>업데이트된 큐 $A_t$는 $A_{t-1}$과 $\tilde{A}$ 사이의 겹치는 타임스텝에서 집계(aggregation)<blockquote>
</blockquote>
</li>
<li><em>특징:*</em> 반응성과 계산 효율의 최적 균형점</li>
</ul>
<blockquote>
<p><strong>g = 1: 계산 집약적 한계 (Compute-intensive Limit)</strong></p>
</blockquote>
<p><strong>동작:</strong></p>
<ul>
<li>매 타임스텝마다 새로운 관측 전송</li>
<li>큐는 거의 항상 채워져 있음 ( $\Delta t / E[\ell_S] &lt; 1$ 로 인한 약간의 톱니 모양만 존재)<blockquote>
</blockquote>
</li>
<li><em>결과:*</em></li>
<li>최대한 반응적 (maximally reactive)</li>
<li>제어 틱당 하나의 forward pass 필요 → 제한된 하드웨어에서 엄청난 계산 부담</li>
<li>클라이언트가 액션을 소비하는 동안 서버가 계산하므로, 큐가 다시 완전히 채워지지는 않음</li>
</ul>
<h4 id="6-주요-이점key-advantages">6. 주요 이점(Key Advantages)</h4>
<ol>
<li><strong>지연 시간 제거 (Zero Perceived Latency):</strong></li>
</ol>
<ul>
<li>추론 시간이 실행 시간보다 짧기만 하면, 로봇 입장에서는 끊김이 전혀 느껴지지 않음</li>
<li>계산 시간(Lag)이 실행 시간 뒤로 완벽하게 은폐(Hidden)됨</li>
</ul>
<ol start="2">
<li><strong>리소스 효율성 (Resource Efficiency):</strong></li>
</ol>
<ul>
<li>매 스텝 계산할 필요 없이, 큐가 비어갈 때만 계산하면 되므로 연산량 크게 감소 →엣지 디바이스 구동의 핵심</li>
<li>유사도 필터(Similarity Filter)를 통해 불필요한 추론 방지 (<code>NEEDSPROCESSING</code>)</li>
</ul>
<ol start="3">
<li><strong>높은 적응성 (Adaptability):</strong></li>
</ol>
<ul>
<li>Open-loop처럼 끝까지 기다리지 않고, 큐가 빌 때마다 수시로(Frequency) 관측을 업데이트하므로 돌발 상황에도 빠르게 대처 가능</li>
<li>임계값 선택 ($g∈(0,1)$) 을 통해 리소스 예산 대비 반응성 사이 균형 조절 가능</li>
</ul>
<h4 id="7-핵심-통찰-key-insight">7. 핵심 통찰 (Key Insight)</h4>
<blockquote>
<p>&quot;<strong>계산 지연(Inference Latency)</strong>을 <strong>실행 시간(Execution Time)</strong> 뒤로 숨긴다&quot;</p>
</blockquote>
<p>비동기 추론의 핵심은 계산 시간을 없애는 것이 아니라, 로봇이 움직이는 동안 계산을 수행함으로써 <strong>지연을 체감할 수 없게 만드는 것.</strong></p>
<p><strong>트레이드오프 관리:</strong></p>
<ul>
<li>작은 $g$ 값 : 유휴 기간 발생 (계산 효율적, 반응성 낮음)</li>
<li>$g \approx 1$ : 매우 정확한 모델 가정 필요, 상당한 계산 비용 (반응성 최고, 계산 집약적)</li>
<li><strong>실용적 선택:</strong> $g∈(0,1)$로 반응성과 리소스 효율 사이 균형 확보</li>
</ul>
<p>이는 마치 동영상을 시청하면서 다음 장면을 미리 버퍼링하는 것과 같은 원리</p>
<hr>
<h2 id="4-experiments">4. Experiments</h2>
<h3 id="41-experimental-setup">4.1 Experimental setup</h3>
<p><strong>1. 데이터 수집 및 학습 설정 (Data Collection &amp; Training)</strong></p>
<ul>
<li><strong>시뮬레이션:</strong> Meta-World 벤치마크를 위해 50개 작업당 50개의 시연(Demonstration)을 포함하는 새로운 데이터셋을 수집했다.</li>
<li><strong>실제 환경</strong><ul>
<li><strong>SO-100 로봇 팔:</strong> 3개의 조작 작업 데이터셋 수집.</li>
<li><strong>SO-101 로봇 팔:</strong> 1개의 조작 작업 데이터셋 수집.</li>
<li><strong>구성:</strong> 각 데이터셋은 5개의 서로 다른 시작 위치에서 10번씩 수행하여, 작업당 <strong>총 50개의 시연</strong>으로 구성</li>
</ul>
</li>
<li><strong>학습 모드:</strong> 별도의 명시가 없는 한, SmolVLA는 모든 작업을 동시에 배우는 <strong>멀티태스크(Multitask)</strong> 설정으로 학습됨</li>
</ul>
<p><strong>2. 평가 지표 (Evaluation Metrics)</strong></p>
<p>평가 환경의 특성에 따라 성공 여부를 판단하는 방식을 다르게 적용했다.</p>
<ul>
<li><strong>시뮬레이션 (Binary):</strong> 작업 완료 여부만 판단. (성공=1, 실패=0)</li>
<li><strong>실제 환경 (Fine-grained):</strong> 현실의 복잡성을 고려하여, 작업을 하위 단계(Subtask)로 쪼개어 <strong>부분 점수</strong>를 부여.
<em>예시(Pick-and-Place): 물체를 집음(0.5점) + 목표에 놓음(0.5점) = 총 1.0점</em></li>
</ul>
<p><strong>3. 시뮬레이션 벤치마크 (Simulated Environments)</strong></p>
<p>두 가지의 공신력 있는 멀티태스크 벤치마크를 사용했다.</p>
<ul>
<li><p><strong>(1) LIBERO:</strong> 로봇의 다양한 능력을 4가지 카테고리로 평가</p>
<ul>
<li><strong>구성:</strong> Spatial(공간), Object(객체), Goal(목표), Long(장기 작업) 등 총 40개 작업</li>
<li><strong>데이터:</strong> 1,693개 에피소드 사용</li>
</ul>
</li>
<li><p><strong>(2) Meta-World:</strong> 작업의 난이도별 일반화 성능을 평가</p>
<ul>
<li><strong>구성:</strong> Easy부터 Very Hard까지 50개 작업</li>
<li><strong>데이터:</strong> 2,500개 에피소드 사용</li>
</ul>
</li>
</ul>
<p><strong>4. 실제 환경 작업 (Real-world Tasks)</strong></p>
<p>Hugging Face에 전면 공개된 4개의 데이터셋을 사용해 평가를 진행</p>
<blockquote>
<p>핵심 포인트: Task 4에 사용된 SO-101 로봇 데이터는 사전 학습(Pre-training) 단계에서 모델이 단 한 번도 본 적이 없다. 모델의 진정한 일반화(Generalization) 능력을 테스트하기 위함</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/ceabd43e-8821-462e-aa8a-ab42ed2b88ee/image.png" alt=""></p>
<h3 id="42-robots">4.2 Robots</h3>
<p>다양한 플랫폼을 사용하여 실험함으로써 SmolVLA의 로봇 구현체 간 일반화 능력(cross-embodiment generalization)을 검증한다. </p>
<p><strong>실제 환경: 접근성과 비용 효율성</strong></p>
<ul>
<li><strong>SO-100/SO-101</strong>: 저비용 오픈소스 플랫폼으로 연구 접근성 향상</li>
<li>3D 프린팅 가능하여 누구나 복제 가능</li>
<li><strong>중요:</strong> SmolVLA는 SO-101에 대한 사전학습 없이도 일반화 능력 입증</li>
</ul>
<p><strong>시뮬레이션: 다양성과 정밀도</strong></p>
<ul>
<li><strong>Panda (LIBERO)</strong>: 정밀한 토크 제어로 복잡한 조작 학습</li>
<li><strong>Sawyer (Meta-World)</strong>: 다양한 난이도의 50개 작업으로 일반화 평가  </li>
</ul>
<table>
<thead>
<tr>
<th>로봇</th>
<th>자유도</th>
<th>제어 방식</th>
<th>환경</th>
<th>특징</th>
</tr>
</thead>
<tbody><tr>
<td><strong>SO-100</strong></td>
<td>6 DOF</td>
<td>위치 제어</td>
<td>실제 환경</td>
<td>저비용, 3D 프린팅, 오픈소스</td>
</tr>
<tr>
<td><strong>SO-101</strong></td>
<td>6 DOF</td>
<td>위치 제어</td>
<td>실제 환경</td>
<td>SO-100 개선, 더 부드럽고 정밀</td>
</tr>
<tr>
<td><strong>Panda</strong></td>
<td>7 DOF</td>
<td>토크 제어</td>
<td>LIBERO 시뮬레이션</td>
<td>고정밀, 컴플라이언트 제어</td>
</tr>
<tr>
<td><strong>Sawyer</strong></td>
<td>4 DOF</td>
<td>위치 제어</td>
<td>Meta-World 시뮬레이션</td>
<td>그리퍼 상태 제어</td>
</tr>
</tbody></table>
<h3 id="43-implementation-details">4.3 Implementation details</h3>
<p>본 섹션에서는 SmolVLA를 재현하거나 학습시키는 데 필요한 구체적인 학습 레시피, 하드웨어 설정, 그리고 최적화 기법을 상세히 기술한다.</p>
<p><strong>1. 실험 프레임워크 (Framework)</strong></p>
<ul>
<li><strong>라이브러리:</strong> <strong>LeRobot (Cadene et al., 2024)</strong>
Hugging Face 팀이 주도하는 PyTorch 기반의 오픈소스 로보틱스 라이브러리로, 데이터 로딩부터 학습, 로봇 제어까지 통합된 환경을 제공</li>
</ul>
<p><strong>2. 모델 아키텍처 세부 설정 (Model Specifics)</strong>
전체 450M 파라미터 중, 실제로 학습되는 부분은 극히 일부(약 22%)에 불과하다.</p>
<ul>
<li><p><strong>VLM 백본 (Frozen)</strong></p>
<ul>
<li><strong>모델:</strong> SmolVLM-2 (Marafioti et al., 2025)</li>
<li><strong>설정:</strong> 가중치를 <strong>동결(Frozen)</strong>하여 학습하지 않음. 또한, 경량화를 위해 LLM의 <strong>처음 16개 레이어</strong>만 사용</li>
<li><strong>입력:</strong> 이미지 크기를 <strong>512×512</strong>로 리사이즈하여 사용</li>
</ul>
</li>
<li><p><strong>Action Expert (Trainable)</strong>
  ◦ <strong>역할:</strong> Flow Matching을 통해 $n=50$개의 액션 청크를 생성
  ◦ <strong>설정:</strong> 오직 이 모듈(<strong>약 1억 개 파라미터</strong>)만 학습
  ◦ <strong>추론:</strong> 실제 동작 시에는 10 Step의 고정된 스텝으로 적분</p>
</li>
</ul>
<p><strong>3. 학습 설정 (Training Configuration)</strong>
학습은 크게 사전 학습(Pre-training)과 파인튜닝(Fine-tuning)으로 나뉘며, 효율적인 학습을 위해 검증된 하이퍼파라미터를 사용한다.</p>
<table>
<thead>
<tr>
<th><strong>구분</strong></th>
<th><strong>사전 학습 (Pre-training)</strong></th>
<th><strong>파인튜닝 (Fine-tuning)</strong></th>
</tr>
</thead>
<tbody><tr>
<td><strong>데이터</strong></td>
<td>모든 커뮤니티 데이터셋</td>
<td>시뮬레이션 / 실제 작업 데이터</td>
</tr>
<tr>
<td><strong>학습 스텝</strong></td>
<td><strong>200,000 Steps</strong></td>
<td>100,000 ~ 200,000 Steps</td>
</tr>
<tr>
<td><strong>배치 크기</strong></td>
<td>256 (Global)</td>
<td>64</td>
</tr>
<tr>
<td><strong>GPU</strong></td>
<td>4 GPUs (큰 배치 수용)</td>
<td><strong>단일 GPU 가능</strong></td>
</tr>
</tbody></table>
<ul>
<li>(참고) 실제로는 20만 스텝보다 훨씬 적게 학습해도 성능 저하 없이 충분함이 관찰됨</li>
<li><strong>옵티마이저</strong> : AdamW ($\beta_1=0.9, \beta_2=0.95$)</li>
<li><strong>학습률 스케줄</strong> : Cosine Schedule  (Warmup 100 steps, 시작 $10^{-4} \rightarrow$ 최소 $2.5 \times 10^{-6}$)</li>
</ul>
<p><strong>4. 효율화 최적화 기법 (Efficiency Optimizations)</strong>
컴팩트한 모델 크기에 더해, 4가지 기법을 추가 적용하여 학습 속도를 극한으로 끌어올렸다.</p>
<p>(1) <strong>정밀도 (Precision):</strong> <code>bfloat16</code>을 사용하여 메모리 사용량을 줄이고 연산 속도 향상
(2) <strong>컴파일 (Compilation):</strong> <code>torch.compile()</code>을 통해 PyTorch 코드를 최적화된 커널로 JIT 컴파일하여 실행 속도 향상
(3) <strong>데이터 호환성:</strong> 고정된 시퀀스 길이와 배치 크기를 유지하며, 배치를 꽉 채우지 못하는 자투리 프레임은 과감히 폐기(Drop)하여 연산 효율성 보장
(4) <strong>분산 학습:</strong> Hugging Face <strong>Accelerate</strong> 라이브러리를 통해 멀티 GPU/노드 학습 및 혼합 정밀도(Mixed Precision)를 손쉽게 적용</p>
<p><strong>5. 추론 모드 (Inference Mode)</strong>
실험 환경에 따라 추론 방식을 다르게 적용했다.</p>
<ul>
<li><strong>시뮬레이션:</strong> <strong>비동기식 추론(Asynchronous)</strong> 적용 (매 스텝 관측 샘플링 및 예측)</li>
<li><strong>실제 환경:</strong> <strong>동기식 추론(Synchronous)</strong> 적용 (안정성을 위해 액션 청크를 모두 실행한 후 다음 관측 샘플링)</li>
</ul>
<p><strong>6. 비용 및 철학 (Cost &amp; Philosophy)</strong></p>
<ul>
<li><strong>총 계산 비용:</strong> 프로젝트 전체에 약 <strong>30,000 GPU hours</strong>가 소요되었다.</li>
<li><strong>설계 철학:</strong><ul>
<li><strong>효율성(Efficiency):</strong> 450M의 작은 크기와 최소한의 토큰</li>
<li><strong>실용성(Practicality):</strong> 단일 GPU로도 학습 가능한 가벼움</li>
<li><strong>확장성(Scalability):</strong> 분산 학습 지원 및 메모리 효율성 극대화</li>
</ul>
</li>
</ul>
<h3 id="44-baselines">4.4 Baselines</h3>
<p>SmolVLA의 성능을 검증하기 위해, 현재 로봇 학습 분야를 대표하는 두 가지 상반된 성격의 강력한 모델, <strong>$\pi_0$ (Pi-Zero)</strong>와 <strong>ACT</strong>를 비교 대상으로 선정했다. </p>
<blockquote>
<p><strong>1. $\pi_0$ (Pi-Zero)</strong>: </p>
</blockquote>
<ul>
<li>최신 트렌드인 <strong>VLA (Vision-Language-Action)</strong> 모델</li>
<li><strong>스펙:</strong><ul>
<li><strong>기반:</strong> 구글의 PaliGemma (3B) 모델 베이스</li>
<li><strong>크기:</strong> 약 <strong>33억 개(3.3B)</strong> 파라미터 (SmolVLA보다 <strong>7배</strong> 이상 큼)</li>
<li><strong>학습:</strong> 10,000시간 분량의 고품질 로봇 데이터를 사용하여 대규모 사전 학습</li>
</ul>
</li>
<li><strong>특징:</strong>
  ◦ SmolVLA와 마찬가지로 <strong>Flow Matching</strong>을 사용하여 액션을 생성
  ◦ 3개의 이미지, 로봇 상태, <strong>언어 지시</strong>를 모두 이해하는 강력한 일반화 능력</li>
<li>SmolVLA의 목표: *&quot;이 거대한 모델의 성능을 1/7 크기로 얼마나 따라잡을 수 있는가?&quot;*</li>
</ul>
<blockquote>
<p><strong>2. ACT (Action Chunking with Transformers):</strong></p>
</blockquote>
<ul>
<li>언어 능력 없이 오직 <strong>&#39;행동 복제&#39;</strong>에 집중한 <strong>CVAE (Conditional Variational Autoencoder)</strong> 기반 모델</li>
<li><strong>스펙:</strong><ul>
<li><strong>구조:</strong> <code>ResNet(비전)</code> + <code>Transformer(인코더-디코더)</code> 조합</li>
<li><strong>크기:</strong> 약 <strong>8천만 개(80M)</strong> 파라미터 (SmolVLA보다 <strong>5.6배</strong> 작음)</li>
<li><strong>학습:</strong> ImageNet으로 사전 학습된 비전 인코더 외에는, 로봇 작업을 위해 바닥부터(From scratch) 학습</li>
</ul>
</li>
<li><strong>특징:</strong><ul>
<li><strong>언어 이해 불가능:</strong> 오직 시각 정보(RGB)와 로봇 상태만으로 작동</li>
<li>단순하고 효율적인 구조로 특정 작업(Specialized Task)에서 높은 성능</li>
<li>SmolVLA의 목표: *&quot;이 모델보다 훨씬 똑똑하면서(언어 이해), 멀티태스킹도 잘할 수 있는가?&quot;*</li>
</ul>
</li>
</ul>
<p><strong>베이스라인 비교 요약</strong></p>
<table>
<thead>
<tr>
<th align="left"><strong>특성</strong></th>
<th align="center"><strong>SmolVLA</strong> (본 논문)</th>
<th align="center"><strong>π₀</strong> (Pi-Zero)</th>
<th align="center"><strong>ACT</strong></th>
</tr>
</thead>
<tbody><tr>
<td align="left"><strong>파라미터 수</strong></td>
<td align="center">450M (중형)</td>
<td align="center">3.3B (대형)</td>
<td align="center">80M (초소형)</td>
</tr>
<tr>
<td align="left"><strong>모델 유형</strong></td>
<td align="center">VLA (VLM+Action)</td>
<td align="center">VLA</td>
<td align="center">CVAE Policy</td>
</tr>
<tr>
<td align="left"><strong>입력 데이터</strong></td>
<td align="center">RGB + 상태 + 언어</td>
<td align="center">3 RGB + 상태 + 언어</td>
<td align="center">RGB + 상태<br>(언어 ✗)</td>
</tr>
<tr>
<td align="left"><strong>액션 생성</strong></td>
<td align="center">Flow Matching</td>
<td align="center">Flow Matching</td>
<td align="center">CVAE (Regression)</td>
</tr>
<tr>
<td align="left"><strong>학습 방식</strong></td>
<td align="center">Action Expert만 학습<br>(VLM 동결)</td>
<td align="center">전체 모델 학습</td>
<td align="center">전체 모델 학습</td>
</tr>
<tr>
<td align="left"><strong>사전학습 데이터</strong></td>
<td align="center">481개 커뮤니티 데이터<br>(저비용/고효율)</td>
<td align="center">10,000시간 로봇 데이터<br>(고비용/고품질)</td>
<td align="center">ImageNet (Vision only)<br>(작업별 별도 학습)</td>
</tr>
</tbody></table>
<h3 id="45-main-results">4.5 Main results</h3>
<p><strong>1. 시뮬레이션 평가 (Simulation Evaluation)</strong></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4f4b0ae6-b3c7-4523-9a00-fba7faecbffe/image.png" alt=""></p>
<p><code>LIBERO(40개 작업)</code>와 <code>Meta-World(50개 작업)</code> 벤치마크에서 평가를 진행</p>
<blockquote>
<ul>
<li><strong>VS. 기존 VLA 모델들:</strong></li>
</ul>
</blockquote>
<ul>
<li>모든 벤치마크에서 <strong>Octo, OpenVLA, Diffusion Policy</strong> 등 쟁쟁한 베이스라인들을 능가<ul>
<li><strong>VS. $\pi_0$ (Pi-Zero):</strong></li>
<li><strong>초기화 버전 ($\pi_0$-VLM-init):</strong> 로봇 데이터 사전 학습 없이 VLM 가중치만 가져온 $\pi_0$를 압도</li>
<li><strong>사전 학습 버전 ($\pi_0$-Robotics-pretrained):</strong> 대규모 로봇 데이터로 사전 학습된 $\pi_0$와 비교해도 <strong>대등한 수준(Comparable)</strong>의 성능 </li>
</ul>
</li>
</ul>
<p><strong>[효율성 비교: SmolVLA vs. $\pi_0$]</strong></p>
<table>
<thead>
<tr>
<th><strong>구분</strong></th>
<th><strong>SmolVLA (450M)</strong></th>
<th><strong>π0 (3.3B)</strong></th>
<th><strong>결과</strong></th>
</tr>
</thead>
<tbody><tr>
<td><strong>학습 속도</strong></td>
<td><strong>빠름</strong> 🚀</td>
<td>느림</td>
<td>SmolVLA가 <strong>40% 더 빠름</strong></td>
</tr>
<tr>
<td><strong>메모리</strong></td>
<td><strong>적음</strong> 📉</td>
<td>많음</td>
<td>SmolVLA가 <strong>6배 적게 사용</strong></td>
</tr>
</tbody></table>
<p><strong>2. 실제 환경 평가 (Real-World Evaluation)</strong></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/b113fb05-4897-4a79-9bbf-c84cf78987e1/image.png" alt=""></p>
<p><strong>A. SO-100 벤치마크 (표준 성능 테스트)</strong>
4가지 조작 작업을 수행하며 3개 데이터셋으로 학습</p>
<ul>
<li><strong>VS. ACT:</strong> 작업마다 따로따로 학습시킨(Specialist) ACT보다, 멀티태스킹으로 학습된 SmolVLA가 더 우수함</li>
<li><strong>VS. $\pi_0$:</strong> 파라미터가 7배나 많은 $\pi_0$보다 더 높은 성공률을 기록</li>
</ul>
<p><strong>B. SO-101 벤치마크 (일반화 테스트)</strong>
SmolVLA가 <strong>한 번도 본 적 없는 로봇(SO-101)</strong>과 낯선 환경(OOD)에서 테스트</p>
<ul>
<li><strong>In-Distribution (ID):</strong> 학습 환경과 유사한 조건에서도 ACT를 능가</li>
<li><strong>Out-of-Distribution (OOD):</strong> 레고 블록을 엉뚱한 위치에 두는 등 변수를 주었을 때, ACT는 무너졌지만 SmolVLA는 견고하게 작업을 수행</li>
</ul>
<p><strong>3. 성공 요인 분석 (Ablation Study)</strong></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/b00b3c5e-8dfb-431b-af08-00cf21bf7253/image.png" alt=""></p>
<ul>
<li><p><strong>커뮤니티 데이터의 힘:</strong> &quot;인터넷에 널린 잡다한 로봇 데이터&quot;라고 무시했던 커뮤니티 데이터가, 실제로는 성능을 1.5배 높여 주는 핵심 비결</p>
</li>
<li><p><strong>멀티태스크 효과:</strong> 여러 작업을 동시에 배우는 과정에서 <strong>지식 전이(Knowledge Transfer)</strong>가 일어나, 단일 작업을 배울 때보다 성능이 더 좋아짐</p>
</li>
</ul>
<h3 id="46-asynchronous-inference">4.6 Asynchronous inference</h3>
<p>두가지 추론 모드(동기vs비동기)를 비교 평가</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/7d23c654-0cb2-4a1b-a874-0f541e285780/image.png" alt=""></p>
<p><strong>평가 방법 (Evaluation Methodology)</strong></p>
<p>실제 로봇(Pick-Place 과제)을 사용하여 다음 세 가지 지표를 측정했다.</p>
<blockquote>
<ol>
<li><strong>성공률 (Success Rate):</strong> 작업을 얼마나 잘 완수하는가?</li>
<li><strong>작업 속도 (Completion Time):</strong> 한 번 성공하는 데 몇 초가 걸리는가?</li>
<li><strong>처리량 (Throughput):</strong> 제한 시간(60초) 내에 몇 번이나 성공하는가?</li>
</ol>
</blockquote>
<p><strong>실험 결과: 압도적인 속도 차이 (Quantitative Results)</strong></p>
<blockquote>
<p><strong>(a) 성공률: 동등한 성능 (Tie)</strong></p>
</blockquote>
<ul>
<li><strong>결과:</strong> 두 모드 모두 유사한 성공률을 기록했습니다 (Figure 5a)</li>
<li><strong>의미:</strong> 비동기 모드가 빠르다고 해서 대충 하는 것이 아니라, <strong>정확도는 그대로 유지</strong>됨을 증명</li>
</ul>
<blockquote>
<p><strong>(b) 작업 완료 시간: 30% 더 빠름 (Speed)</strong></p>
</blockquote>
<ul>
<li><strong>동기 모드:</strong> 평균 13.75초 소요</li>
<li><strong>비동기 모드:</strong> 평균 <strong>9.7초</strong> 소요</li>
<li><strong>결과:</strong> 멍하니 기다리는 시간(Lag)이 사라져 전체 작업 속도가 <strong>약 30% 단축</strong></li>
</ul>
<blockquote>
<p><strong>(c) 시간 내 처리량: 2배 이상 (Throughput)</strong></p>
</blockquote>
<ul>
<li><strong>실험:</strong> 60초 동안 큐브를 얼마나 많이 옮기는지 테스트</li>
<li><strong>동기 모드:</strong> 9회 성공</li>
<li><strong>비동기 모드:</strong> <strong>19회 성공</strong></li>
<li><strong>결과:</strong> 연속적인 움직임 덕분에 동일 시간 내에 <strong>2배 이상의 작업</strong>을 수행</li>
</ul>
<p><strong>정성적 관찰: 더 똑똑한 적응력 (Qualitative Observations)</strong></p>
<p>숫자로 보이는 속도 외에도, 로봇의 행동 패턴에서 질적인 차이가 발견되었다.</p>
<blockquote>
</blockquote>
<ul>
<li><strong>빠른 반응성 (Faster Reactions):</strong> 동기 모드는 액션 청크를 다 쓸 때까지 눈을 감고 있는 셈(Blind)이지만, 비동기 모드는 끊임없이 관측을 업데이트</li>
<li><strong>높은 적응성 (Better Adaptability):</strong> 작업 도중에 사람이 물체를 툭 건드리거나(External Disturbances) 위치를 바꿔도, 비동기 모드는 즉각적으로 경로를 수정하여 유연하게 대처</li>
<li><strong>결론:</strong> 단순한 속도 향상을 넘어, 예측 불가능한 동적 환경(Dynamic Environment)에서의 생존 능력이 향상</li>
</ul>
<hr>
<h2 id="5-discussion">5 Discussion</h2>
<p>본 논문은 일반 소비자급 하드웨어에서도 구동 가능하며, 거대 모델들과 대등하게 경쟁할 수 있는 <strong>&#39;작지만 강력한(Small but Mighty)&#39;</strong> 로봇 모델, <code>SmolVLA</code>를 제안했다.</p>
<h3 id="1-주요-기여-key-contributions">1. 주요 기여 (Key Contributions)</h3>
<p>SmolVLA가 로봇 학계와 커뮤니티에 남긴 핵심 발자취는 다음과 같다.</p>
<blockquote>
<ol>
<li><strong>효율적 아키텍처:</strong> 성능(성공률)을 희생하지 않으면서도, 누구나 학습시키고 돌릴 수 있는 가벼운 구조  </li>
<li><strong>비동기 추론 스택 (Asynchronous Inference):</strong> 로봇이 생각하느라 멈추지 않게 하는 범용 기술을 제안. 이는 SmolVLA뿐만 아니라 <strong>어떤 정책(Policy) 모델에도 적용 가능한(Model-agnostic)</strong> 기술</li>
<li><strong>철저한 분석:</strong> 맹목적인 모델링이 아니라, 소거 연구(Ablation Study)를 통해 각 부품이 왜 필요한지 실무자들에게 가이드라인을 제공</li>
<li><strong>완전한 재현성 (Reproducibility):</strong> 모델 가중치뿐만 아니라 코드, 데이터, 심지어 <strong>로봇 하드웨어 설계도</strong>까지 전부 오픈소스로 공개</li>
</ol>
</blockquote>
<h3 id="2-한계점-및-향후-연구-방향-limitations--future-directions">2. 한계점 및 향후 연구 방향 (Limitations &amp; Future Directions)</h3>
<p>저자들은 SmolVLA의 현재 한계를 7가지 측면에서 명확히 하고, 이를 해결하기 위한 구체적인 미래 연구 방향을 제시했다.</p>
<p><strong>① 데이터의 한계 (Diversity &amp; Scale)</strong></p>
<ul>
<li>주로 <strong>단일 로봇(SO-100)</strong> 데이터와 약 <strong>23,000개</strong>의 적은 궤적만 사용했다. (OpenVLA는 100만 개)</li>
<li>다양한 로봇 형태(Cross-Embodiment) 데이터를 통합하고 데이터 규모를 늘려, 더 범용적인 일반화 능력을 확보해야 한다.</li>
</ul>
<p><strong>② 모델 백본의 적합성 (VLM Backbone)</strong></p>
<ul>
<li>사용된 <strong>SmolVLM-2</strong>는 주로 문서 판독(OCR)용으로 학습된 모델이다.</li>
<li>로봇의 물리적 상호작용에 특화된 <strong>&#39;로봇 전용 VLM 백본&#39;</strong>을 개발하거나 탐색할 필요가 있다.</li>
</ul>
<p><strong>③ 멀티모달 학습의 부재 (Multimodal Co-training)</strong></p>
<ul>
<li>로봇 데이터만 편식해서 학습했다.</li>
<li>인터넷상의 광범위한 비전-언어 데이터를 로봇 데이터와 함께 학습(Joint Training)시켜, 로봇의 <strong>시각적 이해력과 지시 이행 능력</strong>을 강화해야 한다.</li>
</ul>
<p><strong>④ 작업 복잡도의 한계 (Long Horizon)</strong></p>
<ul>
<li>&quot;큐브 집기&quot; 같은 짧은 호흡의 작업에는 강하다.</li>
<li>&quot;주방 청소하고 설거지해&quot; 같은 <strong>장기 과제(Long-horizon Tasks)</strong>를 수행하기 위해, 작업을 잘게 쪼개 관리하는 <strong>계층적 정책(Hierarchical Policies)</strong>이나 계획(Planning) 모듈이 필요하다.</li>
</ul>
<p><strong>⑤ 학습 방법론의 확장 (Imitation vs. RL)</strong></p>
<ul>
<li>전문가의 행동을 흉내 내는 <strong>모방 학습(Imitation Learning)</strong>에 의존한다. 이는 스승(데이터)보다 잘할 수 없다는 한계가 있다.</li>
<li>시행착오를 통해 스스로 깨우치는 <strong>강화 학습(Reinforcement Learning, RL)</strong>을 도입하여, 데이터에 없는 상황에서도 적응하는 능력을 길러야 한다.</li>
</ul>
<p><strong>⑥ 하드웨어 효율성과 성능의 trade-off</strong></p>
<ul>
<li><strong>5억 개 미만(&lt;0.5B)</strong>의 파라미터로 효율성을 극대화했다.</li>
<li>효율성을 유지하면서도 더 복잡한 문제를 풀기 위해 아키텍처를 조금 더 확장하는 <strong>최적의 균형점(Trade-off)</strong>을 계속 찾아야 한다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[π0 : A Vision-Language-Action Flow Model for General Robot Control]]></title>
            <link>https://velog.io/@choonsik_mom/0-A-Vision-Language-Action-Flow-Model-for-General-Robot-Control</link>
            <guid>https://velog.io/@choonsik_mom/0-A-Vision-Language-Action-Flow-Model-for-General-Robot-Control</guid>
            <pubDate>Thu, 11 Dec 2025 00:30:21 GMT</pubDate>
            <description><![CDATA[<p>Physical Intelligence의 open-source VLA 모델 $\pi_0$ 논문 <code>π0 : A Vision-Language-Action Flow Model for General Robot Control (2024)</code> 읽어보기</p>
<hr>
<h2 id="i-introduction">I. INTRODUCTION</h2>
<h3 id="1-연구-배경">1. 연구 배경</h3>
<ul>
<li><p><strong>Specialization to Versatility</strong>
현재의 AI 시스템은 단백질 구조 예측이나 이미지 생성 등 특정 영역에서는 인간을 뛰어넘지만, 인간 지능의 핵심인 <strong>물리적 세계에서의 범용성(Versatility)</strong>은 여전히 부족하다. </p>
<p>LLM이나 VLM이 보여준 혁신은 웹 규모의 거대한 데이터로 <strong>사전 학습(Pre-training)</strong>을 수행한 덕분이었다. 본 논문은 로봇 또한 추상적인 설명이 아닌, 실제 로봇(Embodied agent)으로부터 얻은 방대한 데이터로 학습해야만 진정한 물리적 상호작용 능력을 갖출 수 있다고 주장한다.</p>
</li>
</ul>
<h3 id="2-핵심-철학">2. 핵심 철학</h3>
<p>본 논문은 로봇 학습에서 사전 학습(Pre-training)이 왜 중요한지를 다음과 같이 비유한다.</p>
<blockquote>
<p>*&quot;새를 인식하는 모델을 만들 때, 처음부터 새 사진만 가지고 학습하는 것보다 <strong>다양한 이미지로 사전 학습된 모델을 가져와서 새 인식용으로 미세 조정(Fine-tuning)</strong>하는 것이 훨씬 효율적이다.&quot;*</p>
</blockquote>
<p>이와 마찬가지로, 특정 로봇 작업을 수행할 때 바닥부터(Scratch) 가르치는 것보다, <strong>다양한 로봇과 작업 데이터로 사전 학습된 &#39;일반화된 모델&#39;</strong>을 기반으로 시작하는 것이 데이터 부족과 일반화(Generalization) 문제를 해결하는 열쇠다.</p>
<h3 id="3-제안-방법론">3. 제안 방법론</h3>
<p>본 논문은 로봇 학습의 3가지 병목(규모, 아키텍처, 학습 레시피)을 해결한 로봇 파운데이션 모델, <strong>$\pi_{0}$</strong>를 제안한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/866f9498-f337-4813-ad87-9667c68a86f4/image.png" alt=""></p>
<ul>
<li><p><strong>Architecture</strong>: 사전 학습된 VLM 백본 위에 <strong>플로우 매칭(Flow Matching)</strong> 기반의 액션 전문가(Action Expert) 모듈을 결합했다. 이를 통해 인터넷의 방대한 의미론적 지식을 상속받으면서도, 50Hz의 고속 로봇 제어를 실현한다.</p>
</li>
<li><p><strong>Cross-Embodiment Data</strong> : 단일 로봇 팔, 양팔 로봇, 모바일 매니퓰레이터 등 <strong>7가지의 서로 다른 로봇 형태(Embodiment)</strong>에서 수집한 데이터를 통합하여 학습한다.</p>
</li>
<li><p><strong>Training Recipe</strong> : LLM 학습처럼 <strong>&#39;사전 학습(Pre-training)&#39;</strong>과 &#39;<strong>사후 학습(Post-training)</strong>&#39; 단계를 명확히 분리하여 적용한다.</p>
</li>
</ul>
<blockquote>
<p><strong>Training Strategy : 왜 사전 학습과 사후 학습을 나누는가?</strong>
단순히 데이터를 많이 섞는 것이 능사가 아니다. 본 논문은 데이터의 질(Quality)과 다양성(Diversity)에 따른 상충 관계(Trade-off)를 해결하기 위해 단계를 분리한다.</p>
</blockquote>
<ul>
<li>고품질 데이터만 학습 시: 모델이 성공하는 경로만 보게 되므로, 실수했을 때 복구(Recovery)하는 방법을 모른다.</li>
<li>저품질(다양한) 데이터만 학습 시: 다양한 상황 대처 능력은 생기지만, 동작이 비효율적이거나 굼뜬 움직임을 보인다.</li>
<li>결합의 시너지: 따라서 $\pi_{0}$는 다양한 데이터로 진행하는 사전 학습을 통해 <strong>&#39;실수 회복 능력(Robustness)&#39;</strong>을 배우고, 고품질 데이터로 진행하는 사후 학습을 통해 <strong>&#39;숙련된 기술(Dexterity)&#39;</strong>을 입히는 전략을 취한다.</li>
</ul>
<hr>
<h2 id="ii-related-work">II. RELATED WORK</h2>
<p>본 섹션에서는 $\pi_0$가 기존 로봇 학습 방법론들과 차별화되는 세 가지 핵심 축(모델링 방식, 아키텍처 통합, 데이터 규모 및 복잡성)에 대해 설명한다.</p>
<h3 id="1-기존-vla-모델과의-차별점">1. 기존 VLA 모델과의 차별점</h3>
<p><strong>이산화(discretization)</strong>에서 <strong>연속체(continuous)</strong>로 !</p>
<p>기존 VLA 모델(RT-2, OpenVLA 등)은 로봇 제어 방식에 근본적인 한계가 있었다.</p>
<ul>
<li><p>기존 접근법 (Autoregressive)
: 로봇의 행동(Action)을 언어처럼 <strong>이산적인 토큰(Discrete Tokens)</strong>으로 취급하여, <strong>다음 행동을 단어 예측하듯이 생성하는 자기회귀(Autoregressive) 방식</strong>을 사용했다.</p>
</li>
<li><p>$\pi_0$의 혁신 (Flow Matching)
: 반면 $\pi_0$는 행동을 <strong>연속적인 값(Continuous Values)</strong>으로 처리한다. 이를 위해 확산 모델(Diffusion)의 진화형인 <strong>플로우 매칭(Flow Matching) 기법</strong>을 도입했다. 이로써 이산화 과정에서의 정보 손실을 없애고, 기존 모델들이 어려워했던 <strong>50Hz의 고주파 제어(High-frequency control)</strong>와 미세하고 <strong>정교한 조작(Dexterous tasks)</strong>을 가능하게 한다.</p>
</li>
</ul>
<h3 id="2-diffusion-기반-정책과의-통합">2. Diffusion 기반 정책과의 통합</h3>
<p>기존의 Diffusion Policy은 행동 생성 능력은 탁월했으나, 대규모 언어 모델의 지식을 활용하지 못하는 단점이 있었다.</p>
<ul>
<li><p>$\pi_0$의 접근
: $\pi_0$는 사전 학습된 거대 VLM 백본(Backbone) 위에 플로우 매칭(Flow Matching) 헤드를 결합하는 하이브리드 방식을 취한다.</p>
</li>
<li><p>기술적 특징 (Transfusion의 응용)
: 이미지/텍스트 생성 모델의 최신 기법인 <strong>Transfusion(트랜스퓨전)</strong>을 로봇 제어에 맞게 변형하였다. 특히, 텍스트 처리와 달리 로봇 액션 처리를 위해 별도의 가중치 집합인 <strong>&#39;액션 전문가(Action Expert)&#39;</strong>를 두어, VLM의 의미론적 지식과 로봇의 운동 제어 능력을 동시에 확보했다. 이는 <strong>고주파 액션 청크(Action Chunks)</strong>를 생성하는 최초의 VLA 모델이다.</p>
</li>
</ul>
<blockquote>
<h3 id="transfusion이란">Transfusion이란?</h3>
</blockquote>
<p>→ Transformer와 Diffusion을 합침 ! (Transformer + Diffusion) <a href="https://arxiv.org/pdf/2408.11039">[논문]</a></p>
<blockquote>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/39f39518-93e2-4a3b-927b-1064f386f9ae/image.png" alt=""></p>
</blockquote>
<p><strong>1. 핵심 아이디어</strong></p>
<blockquote>
</blockquote>
<ul>
<li><strong>목적 함수의 이원화 (Hybrid Objectives)</strong> 
기존 멀티모달 모델들은 텍스트와 이미지를 억지로 동일한 방식으로 학습시키려 했다. 그러나 Transfusion은 <strong>&quot;모달리티마다 최적의 학습 방식이 다르다&quot;</strong>는 점을 인정하고, 단일 트랜스포머(Transformer) 아키텍처 내에서 각 데이터 특성에 맞는 최적의 목적 함수(Objective)를 병렬적으로 적용한다.<blockquote>
<ul>
<li>텍스트 (Discrete): 다음 토큰을 예측하는 자기회귀(Autoregressive) 방식과 Cross-Entropy Loss를 사용한다.</li>
</ul>
</blockquote>
<ul>
<li>이미지 (Continuous): 노이즈를 제거하며 원본을 복원하는 확산(Diffusion) 방식과 Diffusion Loss를 사용한다.<blockquote>
</blockquote>
</li>
</ul>
</li>
<li><em>2. 주요 특징 (Key Features)*</em></li>
<li><strong>통합 시퀀스 처리 (Integrated Sequence Processing)</strong>: 텍스트 토큰과 이미지 패치를 하나의 긴 시퀀스로 연결하여 처리한다. 이때 어텐션 메커니즘(Attention Mechanism)을 통해 모달리티 간 정보 흐름을 정교하게 제어함으로써, 상호작용(Interaction)을 학습하면서도 각 모달리티의 고유한 특성(Independence)을 유지한다.  <blockquote>
</blockquote>
</li>
<li><strong>트랜스포머 내부의 확산 (Diffusion in Transformer)</strong>: 별도의 확산 모델(UNet 등)을 두지 않고, 트랜스포머가 직접 이미지의 노이즈 제거 과정을 수행하도록 통합했다. 이는 이미지 데이터를 벡터화(Vector Quantization 등)하여 처리하되, 생성 과정은 반복적인 디노이징(Iterative Denoising)을 따르게 한다.<blockquote>
</blockquote>
</li>
<li><em>3. 기존 방법론과의 비교 (Comparison)*</em> <blockquote>
</blockquote>
Transfusion은 기존의 두 가지 주류 접근법이 가진 한계를 극복하고 장점만을 취합한 <strong>중간 지점(Middle Ground)</strong>에 위치한다.  <blockquote>
<ul>
<li><strong>vs. 통합 모델 (예: Chameleon)</strong>: 모든 모달리티에 &#39;Next-token prediction&#39;을 적용하면 구현은 단순하나, 이미지 생성 품질이 확산 모델에 비해 떨어진다.</li>
<li><strong>vs. 앙상블 모델 (Ensemble)</strong>: LLM과 확산 모델을 각각 학습시켜 붙이면 성능은 좋으나, 모델 크기가 비대해지고 모달리티 간의 심층적인 상호작용을 학습하기 어렵다.</li>
</ul>
</blockquote>
→ Transfusion: 단일 모델의 효율성과 모달리티별 최적화(Diffusion)를 통한 고품질 생성을 동시에 달성한다.<blockquote>
</blockquote>
</li>
<li><em>4. 학습 및 추론 과정 (Training &amp; Inference)*</em><blockquote>
</blockquote>
</li>
<li>학습 (Training): 입력 시퀀스 내에서 데이터의 종류(텍스트 vs 이미지)를 구분한다. 텍스트 부분은 LM Loss, 이미지 부분은 Diffusion Loss를 계산한 뒤, 두 손실 함수를 가중 합산(Weighted Sum)하여 모델 전체를 End-to-End로 학습시킨다.<blockquote>
</blockquote>
</li>
<li>추론 (Inference): 생성 시에는 모달리티에 따라 작동 모드를 전환한다. 텍스트는 순차적으로 생성(Autoregressive)하고, 이미지는 노이즈를 점진적으로 제거(Denoising)하며 생성한다.<blockquote>
</blockquote>
</li>
<li><em>5. 의의 (Significance) *</em>
Transfusion은 이질적인 데이터(텍스트, 이미지, 오디오, 비디오 등)를 억지로 하나의 방식에 끼워 맞추지 않고도, 단일 아키텍처에서 효과적으로 통합할 수 있음을 증명했다. 이는 향후 진정한 의미의 <strong>범용 멀티모달 파운데이션 모델(General-purpose Multimodal Foundation Model)</strong>을 구축하는 데 있어 중요한 방향성을 제시한다.</li>
</ul>
<h3 id="3-데이터-규모와-작업의-복잡성-scale--complexity">3. 데이터 규모와 작업의 복잡성 (Scale &amp; Complexity)</h3>
<p>단순히 데이터 양만 늘린 것이 아니라, 해결하고자 하는 문제의 난이도를 획기적으로 높였다.</p>
<ul>
<li><p>기존 데이터셋의 한계
: 초기 연구는 단순한 &#39;집기(Grasping)&#39;나 &#39;밀기(Pushing)&#39;에 그쳤고, 최근의 Open X-Embodiment (OXE) 데이터셋 또한 다양한 로봇을 포함하지만 주로 낮은 난이도의 작업 위주였다.</p>
</li>
<li><p>압도적인 규모
: 본 연구는 약 10,000시간 분량의 데모 데이터를 사용하여, 정교한 조작(Dexterous manipulation)을 위한 역사상 최대 규모의 로봇 학습 실험을 수행했다.</p>
</li>
<li><p>조합적 복잡성 (Combinatorial Complexity)
: 단순히 손놀림만 좋은 것(예: 신발 끈 묶기)을 넘어, <strong>세탁물 접기(Laundry folding)</strong>나 <strong>테이블 치우기(Table bussing)</strong>처럼 긴 시간 동안 판단과 정교한 동작이 복합적으로 요구되는 <strong>장기 작업(Long-horizon tasks)</strong>을 수행한다는 점에서 기존 연구들을 뛰어넘는다.</p>
</li>
</ul>
<hr>
<h2 id="iii-overview">III. OVERVIEW</h2>
<p>본 섹션에서는 $\pi_{0}$ 모델의 전체적인 학습 프레임워크와 데이터 구성 전략을 개괄한다. 본 연구의 접근 방식은 인간의 학습 과정과 유사하게, <strong>&#39;광범위한 기초 교육(Pre-training)&#39;</strong>과 <strong>&#39;전문화된 직무 교육(Post-training)&#39;</strong>의 2단계로 나뉜다.</p>
<h3 id="1-two-stage-training-framework">1. Two-Stage Training Framework</h3>
<p>: LLM의 성공 방정식을 로봇 학습에 적용하여, 모델의 일반화 능력과 전문성을 동시에 확보한다.</p>
<ul>
<li><p><strong>1단계: 사전 학습 (Pre-training)</strong></p>
<ul>
<li>목표: 특정 작업을 완벽하게 해내는 것보다, 다양한 환경과 로봇 형태를 경험하며 폭넓은 일반화(Generalization) 능력과 기초적인 물리 법칙을 습득하는 데 초점을 둔다.</li>
<li>데이터: 자체 수집한 데이터와 오픈 소스 데이터(OXE)를 혼합한 거대한 <strong>&#39;사전 학습 혼합물(Pre-training Mixture)&#39;</strong>을 사용하여 세상에 대한 전반적인 이해도를 높인다.</li>
</ul>
</li>
<li><p><strong>2단계: 사후 학습 (Post-training)</strong></p>
<ul>
<li>목표: 사전 학습된 &#39;일반형 두뇌&#39;를 바탕으로, 세탁물 접기나 상자 포장 등 특정 작업(Target Task)에 대해 <strong>전문성(Specialization)</strong>을 갖추도록 튜닝한다.</li>
<li>데이터: 해당 작업에 대해 고품질로 엄선된(Curated) 데이터만을 사용하여 <strong>미세 조정(Fine-tuning)</strong>을 수행, 동작의 유려함과 성공률을 극대화한다.</li>
</ul>
</li>
</ul>
<h3 id="2-데이터-구성-전략-data-composition">2. 데이터 구성 전략 (Data Composition)</h3>
<p>$\pi_{0}$ 학습에는 로봇 학습 역사상 최대 규모인 약 10,000시간 분량의 데이터가 투입되었다. 이는 크게 오픈 소스와 자체 수집 데이터로 나뉜다.</p>
<ul>
<li><p><strong>오픈 소스 데이터 (약 9.1%)</strong>:Open X-Embodiment (OXE) 데이터셋 등을 포함한다. 주로 2~10Hz의 저주파(Low-frequency) 제어 데이터로, 간단한 이동(Pick &amp; Place) 작업 위주라 복잡한 동작을 배우기에는 한계가 있다.</p>
</li>
<li><p><strong>자체 수집 데이터 (약 90.9%)</strong>: Physical Intelligence 사에서 직접 수집한 데이터로, 약 9억 3백만(903M) 타임스텝에 달하는 압도적인 비중을 차지한다.</p>
<ul>
<li>특징: 단일 로봇 팔, 양팔 로봇, 모바일 매니퓰레이터 등 7종의 로봇에서 수집되었으며, 50Hz의 고주파 제어를 통해 섬세하고 <strong>정교한 조작(Dexterous manipulation)</strong>을 학습할 수 있다.  </li>
</ul>
</li>
</ul>
<ul>
<li><strong>데이터 밸런싱 (Data Balancing)</strong>: 데이터 불균형 문제를 해결하기 위해, 샘플 수 $n$에 대해 $n^{0.43}$의 가중치를 적용하는 리샘플링 전략을 취했다. 이는 데이터가 많은 작업(예: 세탁물 접기)에 과적합(Overfitting)되는 것을 방지한다.</li>
</ul>
<h3 id="3-모델-구조-및-계층적-제어-model--high-level-policy">3. 모델 구조 및 계층적 제어 (Model &amp; High-level Policy)</h3>
<ul>
<li><p><strong>기반 모델 (Base Model)</strong>
: 구글의 PaliGemma (3B) 비전-언어 모델(VLM)을 백본으로 사용한다. 여기에 이미지/텍스트 입력에 따른 행동 생성을 위해 플로우 매칭(Flow Matching) 기반의 액션 헤드를 결합하여 $\pi_{0}$를 완성했다.</p>
</li>
<li><p><strong>상위 레벨 정책 (High-level Policy)</strong>
: &quot;테이블을 치워라(Bussing)&quot;와 같은 복잡하고 긴 호흡의 작업(Long-horizon tasks)은 $\pi_{0}$가 한 번에 처리하기 어렵다.</p>
<p>이를 해결하기 위해, 별도의 고성능 VLM을 <strong>&#39;작업 관리자(Planner)&#39;</strong>로 둔다. 이 VLM이 큰 명령을 &quot;냅킨을 집어라&quot;, &quot;쓰레기통에 버려라&quot;와 같은 구체적인 하위 작업(Sub-tasks)으로 쪼개어 $\pi_{0}$에게 전달하는 계층적(Hierarchical) 구조를 채택했다.</p>
</li>
</ul>
<hr>
<h2 id="iv-the-π_0-model">IV. THE $π_0$ MODEL</h2>
<p>본 섹션에서는 거대 언어 모델의 &#39;의미론적 추론 능력&#39;과 로봇의 &#39;정교한 운동 제어 능력&#39;을 결합한 $\pi_0$의 독창적인 아키텍처를 상세히 설명한다. 핵심은 <strong>&#39;액션 전문가(Action Expert)&#39;</strong>를 통한 구조적 분리와 <strong>&#39;플로우 매칭(Flow Matching)&#39;</strong>을 통한 효율적 생성이다.</p>
<h3 id="1-기본-구조-vlm-backbone--action-expert">1. 기본 구조: VLM backbone + Action Expert</h3>
<p>단순히 VLM 전체를 미세 조정하는 것이 아니라, 로봇 제어를 전담하는 별도의 모듈을 장착하여 <strong>전문가 혼합(Mixture of Experts, MoE)</strong>과 유사한 구조를 취한다.</p>
<ul>
<li><p><strong>VLM Backbone</strong>
:구글의 <strong>PaliGemma 3B 모델</strong>을 기반으로 한다.인터넷 데이터로 사전 학습된 강력한 지식과 시각적 이해력을 담당한다. 주로 이미지와 텍스트 토큰을 처리한다.</p>
</li>
<li><p><strong>Action Expert</strong>
:로봇 데이터 처리를 위해 약 3억(300M) 개의 파라미터로 구성된 별도의 신경망(Weights)을 추가했다. (전체 3.3B 중 약 10%)</p>
<p>뇌의 언어 중추와 운동 중추가 따로 있듯, 로봇의 <strong>관절 상태(Proprioceptive state)</strong>와 행동(Action) 토큰은 오직 이 &#39;액션 전문가&#39;만이 처리한다. 이를 통해 VLM의 일반 상식을 해치지 않으면서 운동 능력만 집중적으로 학습시킨다.</p>
</li>
</ul>
<h3 id="2-행동-생성">2. 행동 생성</h3>
<p>조건부 플로우 매칭 (Conditional Flow Matching)$\pi_0$는 행동을 뚝뚝 끊기는 텍스트 토큰이 아니라, <strong>연속적인 수치(Continuous Values)</strong>로 생성하기 위해 플로우 매칭(Flow Matching) 기법을 도입했다.</p>
<h3 id="diffusion-vs-flow-matching">[Diffusion vs. Flow Matching]</h3>
<p>$\pi_0$ 논문에서는 로봇의 연속적인 행동 생성을 위해 기존의 <strong>확산 모델(Diffusion)</strong> 대신 <strong>플로우 매칭(Flow Matching)</strong> 기법을 도입했다. 데이터(행동)를 생성하는 과정을 <strong>&#39;출발지(노이즈)에서 목적지(정답 행동)로 가는 여정&#39;</strong>에 비유하여 비교하면 다음과 같다.</p>
<table>
<thead>
<tr>
<th align="left">구분</th>
<th align="left">확산 모델 (Diffusion)</th>
<th align="left">플로우 매칭 (Flow Matching)</th>
</tr>
</thead>
<tbody><tr>
<td align="left"><strong>핵심 비유</strong></td>
<td align="left"><strong>술 취한 사람의 귀가</strong></td>
<td align="left"><strong>직선 도로 주행</strong></td>
</tr>
<tr>
<td align="left"><strong>이동 경로</strong></td>
<td align="left">확률적 미분 방정식(SDE)을 따라<br>비틀거리며 이동 (Stochastic)</td>
<td align="left">노이즈와 데이터 사이를 잇는<br><strong>최적의 직선 경로(Vector Field)</strong>를 학습</td>
</tr>
<tr>
<td align="left"><strong>경로 특징</strong></td>
<td align="left">경로가 꼬불꼬불하고 무작위성이 있음</td>
<td align="left">경로가 직선에 가까워 군더더기가 없음<br>(Deterministic, ODE)</td>
</tr>
<tr>
<td align="left"><strong>효율성</strong></td>
<td align="left">목적지 도달까지 <strong>많은 단계(Step)</strong>가 필요함</td>
<td align="left"><strong>적은 단계(Step)</strong>로도 빠르고 정확하게 도달</td>
</tr>
<tr>
<td align="left"><strong>$\pi_0$ 적용</strong></td>
<td align="left">고속 제어(50Hz)를 위한 추론 속도 확보가 어려움</td>
<td align="left"><strong>단 10 Step</strong>의 적분만으로<br>고품질 행동 생성 가능</td>
</tr>
</tbody></table>
<h3 id="기술적-정의-및-작동-원리">[기술적 정의 및 작동 원리]</h3>
<p>플로우 매칭은 연속적인 시간(Continuous Time) 상에서 확률 분포를 변환하는 ODE(상미분 방정식) 기반의 생성 모델이다.</p>
<ul>
<li><p><strong>벡터 필드 학습</strong>
: 노이즈로부터 목표 행동 분포로 데이터를 이동시키는 &#39;속도와 방향(Velocity Vector)&#39;을 직접 학습한다.</p>
</li>
<li><p><strong>액션 청킹 (Action Chunking)</strong>
: 부드러운 움직임을 위해 한 번에 한 스텝만 예측하지 않고, 미래의 행동 덩어리(Action Chunk, $H=50$)를 통째로 예측한다.</p>
</li>
<li><p><strong>손실 함수 (Loss Function)</strong>
: 모델은 다음 수식을 최소화하는 방향으로 훈련된다.</p>
<p>$$L^{\tau}(\theta)=\mathbb{E}<em>{p(A</em>{t}|o_{t}),q(A_{t}^{\tau}|A_{t})}||v_{\theta}(A_{t}^{\tau},o_{t})-u(A_{t}^{\tau}|A_{t})||^{2}$$</p>
<p>(여기서 $A_t$는 행동 청크, $o_t$는 이미지/텍스트 등의 관측값, $u$는 목표 속도 벡터를 의미한다.)</p>
</li>
</ul>
<h3 id="3-추론-효율성-및-최적화-inference--efficiency">3. 추론 효율성 및 최적화 (Inference &amp; Efficiency)</h3>
<ul>
<li><p><strong>적분 방식 (Integration)</strong>
: 학습된 벡터 필드를 따라 실제 행동을 생성할 때는 순방향 오일러(Forward Euler) 적분법을 사용하며, 단 10단계($\delta=0.1$)만 거치면 고품질의 행동을 생성할 수 있다.</p>
</li>
<li><p><strong>KV 캐싱 (KV Caching)</strong>
: 매 스텝마다 거대한 VLM을 전부 연산하는 것은 비효율적이다. 따라서 이미지나 텍스트 같은 관측값($o_t$)의 특징(Key, Value)은 <strong>최초 1회만 계산하여 저장(Caching)</strong>해 두고, 반복되는 적분 과정에서는 가벼운 &#39;액션 전문가&#39; 부분만 연산하여 추론 속도를 획기적으로 높였다.</p>
</li>
</ul>
<h3 id="4-베이스라인-모델-pi_0-small비교">4. 베이스라인 모델 ($\pi_0$-small)비교</h3>
<p>실험을 위해 VLM 사전 학습(Pre-training)이 없는 4억 7천만(470M) 파라미터 크기의 $\pi_0$-small 모델을 별도로 개발했다.</p>
<p>이는 거대 모델의 &#39;사전 지식&#39;이 로봇 제어 성능에 실제로 얼마나 기여하는지를 객관적으로 검증하기 위함이다.</p>
<hr>
<h2 id="v-data-collection-and-training-recipe">V. DATA COLLECTION AND TRAINING RECIPE</h2>
<p>본 섹션에서는 $\pi_0$ 모델을 완성하기 위한 데이터 구성 전략과 단계별 학습 철학을 설명한다. 핵심은 데이터의 양뿐만 아니라, <strong>&#39;데이터의 성격에 따른 역할 분담&#39;</strong>에 있다.</p>
<ol>
<li><strong>데이터 수집</strong>
: 사전 학습 혼합물 (Pre-training Mixture) - $\pi_0$는 약 10,000시간 분량의 방대한 데이터로 사전 학습되었다. 이는 크게 두 가지 소스(오픈 소스+자체 수집)로 구성된다.</li>
</ol>
<ul>
<li><strong>데이터 구성 (Data Composition)</strong><ul>
<li><strong>오픈 소스 데이터 (약 9.1%)</strong>: OXE(Open X-Embodiment) 데이터셋의 일부를 사용한다. 주로 2~10Hz의 저주파 데이터이며 동작이 단순하지만, 다양한 환경과 물체 정보를 제공한다.</li>
<li><strong>자체 수집 데이터 (약 90.9%)</strong>: Physical Intelligence 사가 직접 수집한 약 9억 3백만(903M) 타임스텝의 데이터다. 7종의 로봇 플랫폼에서 50Hz 고주파 제어로 수집되었으며, 정교한 조작(Dexterous manipulation)이 가능하다.</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e4dae270-4695-445e-9872-e61b09859b88/image.png" alt=""></p>
<ul>
<li><p><strong>데이터 밸런싱 (Weighting)</strong></p>
<p>특정 작업(예: 세탁물 접기) 데이터가 지나치게 많은 불균형을 해소하기 위해, 각 작업-로봇 조합의 샘플 수 $n$에 대해 <strong>$n^{0.43}$</strong>의 가중치를 적용하여 학습 비중을 균등하게 맞췄다.</p>
</li>
<li><p><strong>작업(Task)의 재정의</strong></p>
<p>기존 연구가 &quot;컵 집기&quot; 같은 단순 명사-동사 조합을 작업으로 본 것과 달리, 본 논문은 <strong>&quot;테이블 치우기(Bussing)&quot;</strong>처럼 여러 물체를 복합적으로 처리하는 포괄적인 행위를 하나의 작업으로 정의하여 동작의 다양성을 확보했다.</p>
</li>
</ul>
<ol start="2">
<li><p><strong>학습 레시피: 2단계 접근법 (Two-Stage Approach)</strong></p>
<p>모델의 능력을 극대화하기 위해 <strong>LLM의 학습 방식(Pre-training → Fine-tuning)</strong>을 로봇에 적용했다.</p>
</li>
</ol>
<ul>
<li><p><strong>1단계: 사전 학습 (Pre-training)</strong> </p>
<ul>
<li>데이터: 품질이 섞여 있는 대규모의 다양한 데이터.</li>
<li>목표: 광범위한 물리적 상식과 일반화 능력을 배운다. 특히, 완벽하지 않은 데이터도 포함되어 있어 모델이 실수했을 때 <strong>복구(Recovery)하는 능력(Robustness)</strong>을 기르는 데 핵심적인 역할을 한다.   </li>
</ul>
</li>
<li><p>*<em>2단계: 사후 학습 (Post-training) *</em></p>
<ul>
<li>데이터: 특정 작업을 위해 전문적으로 큐레이팅된 고품질(SFT) 데이터.</li>
<li>목표: 특정 작업(Downstream task)을 능숙하고 유려하게(Fluent) 수행하도록 만든다. 사전 학습된 &#39;복구 능력&#39; 위에 &#39;최적의 기술&#39;을 입히는 과정이다.</li>
</ul>
</li>
</ul>
<ol start="3">
<li><p><strong>언어 및 상위 레벨 정책 (Hierarchical Policy)</strong></p>
<p>복잡하고 긴 호흡의 작업(Long-horizon tasks)을 해결하기 위해, $\pi_0$ 혼자 모든 것을 처리하지 않고 역할을 분담한다.</p>
</li>
</ol>
<ul>
<li><p><strong>상위 레벨 VLM (High-level Planner)</strong> 
: &quot;테이블을 치워라&quot;와 같은 추상적 명령을 받으면, 이를 &quot;냅킨을 집어라&quot;, &quot;쓰레기통에 버려라&quot;와 같은 구체적인 하위 작업(Sub-tasks)으로 분해하여 지시한다.</p>
</li>
<li><p><strong>$\pi_0$ (Controller)</strong> 
: 상위 VLM의 구체적 지시를 받아 실제 로봇 팔의 정교한 움직임을 제어한다.</p>
</li>
</ul>
<ol start="4">
<li><p><strong>로봇 시스템 상세 (Robot System Details)</strong></p>
<p>다양한 로봇 형태(Cross-embodiment)를 하나의 모델로 처리하기 위해, 입력 벡터의 크기를 가장 큰 로봇(18차원)에 맞춰 <strong>제로 패딩(Zero-padding)</strong>하여 통일했다.</p>
<ul>
<li>싱글 암 (Single Arm): UR5e, Franka (7~8 자유도)</li>
<li>양팔 로봇 (Bimanual): UR5e, Trossen, ARX/AgileX (14 자유도)</li>
<li>모바일 매니퓰레이터 (Mobile Manipulator): 바퀴 달린 베이스 + 로봇 팔. 이동과 조작을 동시에 수행 (16~17 자유도)</li>
</ul>
</li>
</ol>
<p>요약하자면, $\pi_0$ 시스템은 대규모 데이터로 &#39;기초 체력(Pre-training)&#39;을 다지고, 고품질 데이터로 &#39;숙련도(Post-training)&#39;를 연마하며, 똑똑한 두뇌(High-level VLM)가 지휘하는 구조로 완성되었다.</p>
<hr>
<h2 id="vi-experimental-evaluation">VI. EXPERIMENTAL EVALUATION</h2>
<p>본 섹션에서는 $\pi_0$ 모델의 성능을 4가지 핵심 질문을 통해 검증한다. 실험에는 OpenVLA(7B), Octo(93M)와 같은 기존 파운데이션 모델과 ACT, Diffusion Policy 등의 전문화된 정책이 비교군(Baseline)으로 사용되었다.</p>
<h3 id="기본-모델-성능-평가-out-of-box-evaluation">기본 모델 성능 평가 (Out-of-box Evaluation)</h3>
<ul>
<li><p>추가 학습(Fine-tuning) 없이, 사전 학습된 &#39;기초 체력&#39;만으로 얼마나 다양한 작업을 수행할 수 있는가?</p>
</li>
<li><p>실험 설정
: 셔츠 접기, 테이블 치우기, 식료품 담기, 토스터에서 빵 꺼내기 등 5가지 일상 작업</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/d5284361-329f-448f-bf4c-014a9756ad66/image.png" alt=""></p>
<ul>
<li>결과: 
$\pi_0$는 모든 작업에서 비교 모델들을 압도했다.<ul>
<li><strong>OpenVLA</strong>의 한계: 행동을 언어처럼 <strong>이산적인 토큰(Discrete Tokens)</strong>으로 끊어서 처리하기 때문에, 50Hz의 부드러운 고주파 제어나 미래 동작을 미리 예측하는 <strong>액션 청킹(Action Chunking)</strong>을 제대로 구현하지 못해 성능이 저조했다.</li>
<li><strong>Octo</strong>의 한계: 액션 청킹은 지원하지만, 모델 용량(93M)이 너무 작아 복잡한 상황을 이해하는 표현력에 한계가 있었다.</li>
</ul>
</li>
</ul>
<p>  <img src="https://velog.velcdn.com/images/choonsik_mom/post/6ecac35c-b704-465e-a438-7aab1216d06e/image.png" alt=""></p>
<h3 id="2-언어-명령-수행-능력-following-language-commands">2. 언어 명령 수행 능력 (Following Language Commands)</h3>
<ul>
<li><p>&quot;커피콩을 집어서 가방에 넣어라&quot; 같은 구체적인 언어 지시를 얼마나 잘 따르는가?</p>
</li>
<li><p>비교: $\pi_0$ (VLM 백본 O) vs. $\pi_0$-small (VLM 백본 X)</p>
</li>
<li><p>결과: VLM 백본의 유무가 결정적 차이를 만들었다.</p>
<ul>
<li>$\pi_0$: 거대 언어 모델의 지식을 물려받아, 상위 레벨의 복잡한 언어 지시를 정확히 이해하고 동작으로 옮겼다.</li>
<li>$\pi_0$-small: 언어 이해력이 부족하여, 전문가(Human/Oracle)가 옆에서 단계별로 상세히 지시해줘도 그 의미를 파악하지 못해 성능 향상이 거의 없었다. 즉, <strong>&quot;말귀를 알아듣는 능력&quot;</strong>이 로봇 제어 성공률에 큰 영향을 미침을 증명했다.</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/5fab5ac3-dc4a-4fca-a0d5-05f7f3b8aada/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/34b938c7-b8df-4d24-919b-57db8f8afcdd/image.png" alt=""></p>
<h3 id="3-새로운-작업-적응력-learning-new-dexterous-tasks">3. 새로운 작업 적응력 (Learning New Dexterous Tasks)</h3>
<ul>
<li><p>사전 학습 때 본 적 없는 낯선 물체나 동작에 대해, 얼마나 적은 데이터로 빠르게 적응(Fine-tuning)하는가?</p>
</li>
<li><p>실험 설정
: 전자레인지 사용(미지의 물체), 휴지심 교체(미지의 동작) 등.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/86c5ca89-0b90-4313-a34f-cc0de245c66b/image.png" alt=""></p>
<ul>
<li><strong>결과</strong>
: 높은 전이 학습(Transfer Learning) 효율: <ul>
<li>$\pi_0$는 단 1시간 분량의 적은 데이터만 보여줘도 작업을 능숙하게 배워냈다. 특히 그릇 쌓기처럼 사전 학습 데이터와 유사성이 있는 작업에서는 성능이 비약적으로 상승했다.</li>
<li>타 모델 대비 우위: 기존 모델들은 사전 지식을 새로운 작업에 응용하는 능력이 떨어지거나, 아예 처음부터(Scratch) 다시 배워야만 했다.</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/69ae6108-7c92-414a-a0e7-ef35f36eccad/image.png" alt=""></p>
<h3 id="4-고난도-복합-작업-완성-mastering-complex-multi-stage-tasks">4. 고난도 복합 작업 완성 (Mastering Complex Multi-stage Tasks)</h3>
<ul>
<li><p>로봇 조작의 &#39;끝판왕&#39;이라 할 수 있는 장기(Long-horizon) 작업을 수행할 수 있는가?</p>
</li>
<li><p>실험 설정:</p>
<ul>
<li>세탁물 접기: 구겨진 옷을 인식해 펼치고, 각을 맞춰 개고, 쌓아 올리는 고난도 작업.</li>
<li>박스 조립: 평평한 골판지를 입체 박스로 조립하는 작업.</li>
<li>계란 담기: 깨지기 쉬운 계란을 힘 조절하며 옮기는 작업.</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/d31fd3d7-acb3-4114-a626-005a7cbc9715/image.png" alt=""></p>
<ul>
<li><p>결과
:$\pi_0$는 <strong>[사전 학습 + 사후 학습]</strong>의 전체 파이프라인을 적용했을 때 가장 높은 성공률을 기록하며 SOTA(State-of-the-art) 수준을 달성했다. </p>
<p>사전 학습 없이 바닥부터 학습(Scratch)한 모델은 박스 조립처럼 물리적 이해가 필요한 복잡한 작업에서 처참히 실패했다. 이는 $\pi_0$의 &#39;기초 체력(Pre-training)&#39;이 고난도 작업 해결의 필수 조건임을 시사한다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/59773cbd-3822-49c3-9dc0-607bdf984f97/image.png" alt=""></p>
<p>시험 결과를 요약하자면, $\pi_0$는 기본적인 범용성(Out-of-box), 언어 이해력(Language), 새로운 환경 적응력(Fine-tuning), 고난도 작업 수행력(Complexity) 등 모든 지표에서 기존 로봇 모델들을 압도하며 로봇 파운데이션 모델로서의 가치를 입증했다.</p>
<hr>
<h2 id="vii-discussion-limitations-and-future-work">VII. DISCUSSION, LIMITATIONS, AND FUTURE WORK</h2>
<p><strong>1. 성과: 로봇 파운데이션 모델의 실현 (Discussion)</strong></p>
<p>성공적인 프레임워크: 인터넷 규모의 시각-언어 모델(VLM)과 연속적인 행동 생성을 위한 <strong>플로우 매칭(Flow Matching)</strong>을 결합하여, 진정한 의미의 로봇 파운데이션 모델 $\pi_0$를 구축했다.</p>
<p>역사상 최대 규모: 7가지 로봇 형태, 68개 작업, 총 10,000시간 분량의 데이터를 학습에 사용하여, 현존하는 로봇 조작 모델 중 가장 거대한 &#39;사전 학습 혼합물(Mixture)&#39;을 완성했다.</p>
<p>성능의 증명: OpenVLA나 ACT 등 기존 모델을 압도했을 뿐만 아니라, 그동안 로봇에게는 불가능의 영역으로 여겨졌던 세탁물 접기나 박스 조립 같은 복잡한 다단계 작업(Multi-stage tasks)까지 수행해 냈다.</p>
<p><strong>2. LLM 학습 패러다임과의 평행이론 (Analogy to LLMs)</strong></p>
<p>연구진은 $\pi_0$의 성공 요인을 <strong>&quot;LLM의 성장 과정과 유사한 학습 전략&quot;</strong>에서 찾는다.</p>
<ul>
<li><p>사전 학습 (Pre-training) $\approx$ 지식 습득
:LLM이 웹 텍스트로 세상의 지식을 배우듯, 로봇은 방대한(하지만 조금 거친) 데이터로 기초적인 물리 상식과 <strong>실수 회복력(Recovery)</strong>을 배운다. 이는 제로샷(Zero-shot) 능력의 원천이 된다.</p>
</li>
<li><p>사후 학습 (Post-training) $\approx$ 정렬(Alignment)
:LLM이 인간의 지시를 잘 따르도록 튜닝되듯, 로봇은 고품질 데이터를 통해 특정 작업을 유려하게(Fluent) 수행하는 &#39;기술&#39;을 익힌다.</p>
</li>
<li><p>결합의 필연성
:고품질 데이터만 있다면? $\rightarrow$ 실수를 만회할 줄 모르는 <strong>&#39;온실 속 화초(Brittle)&#39;</strong>가 된다.사전 학습 데이터만 있다면? $\rightarrow$ 동작이 투박하고 정교함이 떨어진다.따라서 이 두 단계의 결합은 선택이 아닌 필수다.</p>
</li>
</ul>
<p><strong>3. 한계점 및 향후 과제 (Limitations &amp; Future Work)</strong></p>
<p>$\pi_0$는 가능성을 보여주었지만, 완벽한 솔루션은 아니다. 연구진은 다음과 같은 미해결 과제들을 솔직하게 제시한다.</p>
<ul>
<li><p>데이터 연금술의 부재 (Data Composition)
:현재는 &quot;일단 다 섞자&quot;는 전략을 취했다. 하지만 정확히 어떤 데이터가 성능 향상에 기여하는지, 데이터 간의 <strong>최적 혼합 비율(Weighting)</strong>은 무엇인지에 대한 이론적 이해는 아직 부족하다.</p>
</li>
<li><p>신뢰성과 스케일링 법칙 (Reliability &amp; Scaling Laws)
:모든 작업이 100% 성공하는 것은 아니다. 99.9%의 <strong>완벽한 성능(Near-perfect performance)</strong>에 도달하기 위해 정확히 얼마만큼의 데이터가 더 필요한지 예측하는 &#39;로봇판 스케일링 법칙&#39;은 아직 미지수다.</p>
</li>
<li><p>범용성의 확장 한계 (Scope of Universality)
:다양한 &#39;로봇 팔(Manipulator)&#39;을 통합하는 데는 성공했다. 하지만 이 방법론이 <strong>자율 주행(Autonomous driving)</strong>이나 <strong>4족 보행(Legged locomotion)</strong>처럼 완전히 다른 도메인의 로봇에게도 통할지는 미지수이며, 이는 흥미로운 후속 연구 주제다.</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Leisaac ( LeRobot + Gr00t + IsaacSim)으로 입문하는 VLA Finetuning]]></title>
            <link>https://velog.io/@choonsik_mom/Leisaac-LeRobot-Gr00t-IsaacSim%EC%9C%BC%EB%A1%9C-%EC%9E%85%EB%AC%B8%ED%95%98%EB%8A%94-VLA-Finetuning</link>
            <guid>https://velog.io/@choonsik_mom/Leisaac-LeRobot-Gr00t-IsaacSim%EC%9C%BC%EB%A1%9C-%EC%9E%85%EB%AC%B8%ED%95%98%EB%8A%94-VLA-Finetuning</guid>
            <pubDate>Wed, 03 Dec 2025 13:54:49 GMT</pubDate>
            <description><![CDATA[<p>오늘은 요즘 AI 분야에서 핫한 키워드 중 하나인 VLA(Vision-Language-Action) 튜토리얼 가이드를 적어보려고 한다.</p>
<p>실물 로봇이 없어도 할 수 있는 방법으로, Isaac Sim에서 오픈소스 VLA 모델인 Isaac-Gr00t를 파인튜닝하고, LeIsaac에 셋팅된 환경 태스크(Orange PickNPlace)를 수행하는 과정을 정리한다.</p>
<p>사실 train 코드는 LeRobot이나 Gr00t 깃허브에 제공되어 있기 때문에 (호환되는 오픈소스 VLA를 파인튜닝한다는 전제로), 실제로 활용할 때는 어떻게 데이터를 수집하고 학습 데이터 형식을 맞춰 주는 것이 더 중요하다.</p>
<p>하지만 이번 포스팅에서는 VLA 모델을 로봇에 맞게 튜닝하고 적용해 보는것에 초점을 맞춘다.</p>
<p>추후 시간이 된다면, 커스텀 데이터 수집과 데이터 포맷팅, 그리고 다른 오픈 소스 VLA 파인튜닝도 작성해 보겠다 ! (이거 하려고 조이스틱 삼 ㅎ)</p>
<hr>
<h2 id="1-가상-환경-및-파일-셋팅-leisaac-gr00t">1. 가상 환경 및 파일 셋팅 (leisaac, gr00t)</h2>
<p>먼저 두 개의 가상환경을 준비한다. 왜 귀찮게 2개씩이나? 할 수 있지만 해보면 안다.. 하나로 하는게 훨씬 더 귀찮을 수도 있다. (왜인지는 나도 알고 싶지 않았다.. )</p>
<blockquote>
<ul>
<li>Leisaac Installation
<a href="https://lightwheelai.github.io/leisaac/docs/getting_started/installation">Leisaac 공식 도큐먼트의 설치 가이드 참조</a></li>
</ul>
</blockquote>
<blockquote>
<ul>
<li>Gr00t Installation
<a href="https://github.com/NVIDIA/Isaac-GR00T">Isaac Gr00t 깃헙 참조</a></li>
</ul>
</blockquote>
<p>LeRobot은 하드웨어 리소스 관리, 효율성 등의 측면에서 Policy Server(모델 추론) 와 Client(Isaac Sim 내부 로봇 제어)를 분리하여 두고, API를 통해 서로 통신하도록 되어 있다.</p>
<p>Leisaac 또한 LeRobot 구조를 기반으로 하므로, Gr00t가 서버, Leisaac이 클라이언트 역할로 따로 실행되기 때문에 <del>괜히 pip install 갈겼다가 의존성 충돌 날 걱정 없이</del> 가상환경 따로 구축해서 쓰면 된다.</p>
<p>여기서 VLA로 수행해 볼 태스크는 Leisaac에서 지원하고 있는, Kitchen 환경에서 Orange를 집어 접시로 옮기는 태스크(LeIsaac-SO101-PickOrange-v0)이다.</p>
<p>가상환경 설정이 완료되었으면 로컬에 leisaac repo가 클론되어있을 텐데, 그 안에 에셋 파일들을 다운받아서 아래와 같이 셋팅해주면 된다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/14750226-4bfb-49cb-91c6-71a3762f6c42/image.png" alt=""></p>
<p>현재 leisaac (v0.2.0) 기준으로 웬만한 정보는 leisaac 도큐먼트로 넘어가고, 깃허브 리드미에서 링크로 에셋을 받을 수 있었는데 그게 없어졌다. 이전 버전 릴리즈 링크 <a href="https://github.com/LightwheelAI/leisaac/releases">&lt;여기&gt;</a>에서 leisaac-example-scene (v0.1.0) 의 asset 압축 파일(kitchen_with_orange.zip)과 usd (so101_follower.usd)를 내려 받으면 된다. (아래 참조)</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/c533ad6e-28c9-47d5-996d-296fe994f576/image.png" alt=""></p>
<hr>
<h2 id="2-finetuning-isaac-gr00t">2. Finetuning Isaac-Gr00t</h2>
<p>물론 teleop으로 데이터를 직접 수집해도 되지만, 여기서는 허깅페이스에 이미 올라온 데이터셋을 활용하기로 한다. teleop으로 데이터 직접 수집하는 방법은 이제 <a href="https://lightwheelai.github.io/leisaac/docs/getting_started/teleoperation">&lt;여기&gt;</a>를 참조...</p>
<blockquote>
</blockquote>
<ul>
<li>학습할 데이터 다운로드 (<a href="https://huggingface.co/datasets/LightwheelAI/leisaac-pick-orange">leisaac-pick-orange</a>)  
lsaac-Gr00t의 <code>demo_data</code> 디렉토리 내부에 데이터를 다운로드한다. (아래 커맨드 실행 전,     <code>huggingface-cli</code>에 로그인 되어 있어야 함)</li>
</ul>
<pre><code class="language-bash">huggingface-cli download --repo-type dataset LightwheelAI/leisaac-pick-orange --local-dir ./demo_data/leisaac-pick-orange
</code></pre>
<p>간단하게 데이터 구조와 형식을 살펴보면 아래와 같다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/c341c701-b9ff-4fc7-b8bb-e434af6ef2d3/image.png" alt=""></p>
<ul>
<li><p>data 폴더 : 데이터셋 분할(chunk) 단위에 각 episode 수행 과정 정보가 .parquet 형식으로 저장되어 있음. chunk를 쓰는 이유는 대용량 데이터 관리를 위함인데 위 데이터셋은 총 에피소드 개수가 많지 않기 때문에 chunk가 1개 뿐이다.</p>
</li>
<li><p>meta 폴더 : 여기에 수집된 데이터셋 핵심 정보가 들어 있는데, <code>meta/info.json</code>을 보면 robot_type, 총 에피소드와 프레임, 태스크, 관절 제어값 등이 포함되어 있다. 이 meta의 형식은 lerobot codebase 버전이나 모델에 따라 상이한 것 같다.   </p>
</li>
<li><p>video 폴더 : 수행된 에피소드의 카메라 영상이 담겨져 있다. (.mp4) 위 데이터셋에서는 전방, 손목 카메라 2개 사용되었으므로 같은 에피소드에 대해 2개의 영상이 존재한다.</p>
</li>
</ul>
<p>이제 Gr00t를 파인튜닝하기 위해 필요한 메타 데이터인 modality를 기존 Gr00t 파일에서 가져와서, <code>/meta</code> 디렉토리 내부에 붙여 넣어야 한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/b5fcd843-ce96-40a1-97b4-a26e628b33f1/image.png" alt=""></p>
<pre><code class="language-bash"># 다운 받은 데이터셋 내부 /meta/ 디렉토리 안에 복사 (Gr00t 루트 디렉토리에서 진행)
cp ./examples/SO-100/so100_dualcam__modality.json ./demo_data/leisaac-pick-orange/meta/modality.json
</code></pre>
<ul>
<li>modality 파일의 역할 : state(상태)와 action(행동) modality에 대한 추가 정보를 제공하여 데이터셋을 &quot;GR00T-호환&quot; 가능하도록 만드는 역할</li>
</ul>
<p>파인튜닝 전 데이터가 잘 설정 되었는지 디버깅을 해볼 수 있는데, 아래 명령어를 실행하면 된다 (modality 복붙 후 실행).</p>
<pre><code class="language-bash">python scripts/load_dataset.py --dataset-path ./demo_data/leisaac-pick-orange/ --plot-state-action --video-backend torchvision_av
</code></pre>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/928ee3d8-0e1e-4ca1-97d8-591f871421d7/image.png" alt=""></p>
<p>로딩이 잘 됐으면 위 사진처럼 학습 데이터 시각화 화면이 플로팅된다.</p>
<p>위 디버깅 단계에서 이상이 없었다면 이제 튜닝을 할 차례~</p>
<ul>
<li>모델 파인튜닝 코드 </li>
</ul>
<p>아래 명령어로 이제 학습을 돌려볼 수 있다.</p>
<pre><code class="language-bash">python3 scripts/gr00t_finetune.py --dataset-path ./demo_data/leisaac-pick-orange/ --num-gpus 1 --output-dir ./so101-checkpoints --max-steps 10000 --data-config so100_dualcam --video-backend torchvision_av
</code></pre>
<p>wandb를 활성화한 경우, 아래처럼 학습 과정에서 train loss나 gpu usage 등을 대시보드형태로 모니터링할 수 있다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/2457548b-9a92-4809-a767-ae803cacab3d/image.png" alt=""></p>
<p>위 옵션대로 10000 스텝 학습할 때 5090 기준 한시간 반? 정도 소요된 듯 </p>
<ul>
<li>모델 평가 </li>
</ul>
<p>학습을 했으면 평가를 해야겠지? 아래 코드로 사용한 so-arm 모델이 6-DoF 이기 때문에 6개의 action space에 대해서 GT/Pred를 비교하고, 시각화 해 볼 수 있다.</p>
<pre><code class="language-bash">python scripts/eval_policy.py --plot \
   --embodiment_tag new_embodiment \
   --model_path ./so101-checkpoints \
   --data_config so100_dualcam \
   --dataset_path ./demo_data/leisaac-pick-orange/ \
   --video_backend torchvision_av \
   --modality_keys single_arm gripper </code></pre>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/bb34671a-fdda-4e70-b27f-9a507a319337/image.png" alt=""></p>
<hr>
<h2 id="3-run-inference-server--client">3. Run Inference Server / Client</h2>
<p>자 이제 학습한 모델을 inference server에 올리고, Sim에서 태스크가 잘 수행되는지 관찰해 볼 차례이다.</p>
<ul>
<li>인퍼런스 server 실행 (Gr00t)</li>
</ul>
<pre><code class="language-bash">python3 scripts/inference_service.py --server --model_path ./so101-checkpoints --embodiment-tag new_embodiment --data-config so100_dualcam --denoising-steps 4
</code></pre>
<ul>
<li>인퍼런스 client 실행 (Leisaac)</li>
</ul>
<pre><code class="language-bash">python scripts/evaluation/policy_inference.py \
    --task=LeIsaac-SO101-PickOrange-v0 \
    --eval_rounds=10 \
    --policy_type=gr00tn1.5 \
    --policy_host=localhost \
    --policy_port=5555 \
    --policy_timeout_ms=5000 \
    --policy_action_horizon=16 \
    --policy_language_instruction=&quot;Pick up the orange and place it on the plate&quot; \
    --device=cuda \
    --enable_cameras</code></pre>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/d8fb50e5-22c5-4382-9d2b-63693fe371d3/image.png" alt=""></p>
<p>위 옵션으로 하면 eval_round 횟수 동안 에피소드를 수행하고, 평가하게 되는데 (타임아웃 되면 실패로 처리됨) 허깅페이스 데이터셋으로 학습하면 에피소드 수가 적어서 그런지 성공률은.... pretty 처참쓰 </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/7a62ac00-74a3-4c39-a851-70d1bc4774f2/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/a8736c2f-74d2-4e46-b769-879897cb402b/image.png" alt=""></p>
<p>그래도 나름 발발거리면서 움직이는게 귀여움...ㅋ</p>
<p>다음엔 커스텀 데이터셋 수집해서 학습하고, 궁극적으로는 커스텀 환경도 셋팅해서 굴려보려고 한다.</p>
<p>아래 블로그 포스팅은 심 환경은 아니고, 실물 로봇으로 gr00t 파인튜닝 한 건데 참조하면 좋다.</p>
<p><a href="https://huggingface.co/blog/nvidia/gr00t-n1-5-so101-tuning">(바로가기) Post-training isaac Gr00t N1.5 by Nvidia</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[OpenVLA : An Open-Source Vision-Language-Action Model 논문 리뷰]]></title>
            <link>https://velog.io/@choonsik_mom/OpenVLA-An-Open-Source-Vision-Language-Action-Model-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-7qyohdnt</link>
            <guid>https://velog.io/@choonsik_mom/OpenVLA-An-Open-Source-Vision-Language-Action-Model-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-7qyohdnt</guid>
            <pubDate>Fri, 28 Nov 2025 10:53:26 GMT</pubDate>
            <description><![CDATA[<h2 id="introduction">Introduction</h2>
<p><strong>1. 기존 로봇 학습의 한계 - <code>일반화(Generalization)</code>의 어려움</strong> </p>
<p>로봇 조작(Robotic Manipulation)을 위한 학습된 정책(Learned Policies)의 가장 큰 약점은 훈련 데이터 범위를 벗어난 상황에 대처하지 못한다는 점, 즉 일반화(Generalize) 능력이 부족하다는 것이다.</p>
<p>기존 모델들은 물체의 위치가 바뀌거나 조명이 달라지는 등의 사소한 환경 변화에 대해서는 어느 정도 <strong>외삽(Extrapolate)</strong>하여 적응할 수 있다.</p>
<blockquote>
<ul>
<li><strong>외삽(Extrapolate):</strong> 로봇이 이미 배운 지식을 바탕으로, 조금 다른 상황(예: 컵이 평소보다 10cm 옆에 있는 경우)을 추론해 행동하는 능력</li>
</ul>
</blockquote>
<p>하지만 훈련 때 보지 못한 새로운 방해 요소(Scene Distractors)가 등장하거나, 전혀 새로운 객체를 마주했을 때(예: 책상 위에 컵 대신 처음 보는 꽃병이 있거나, 책상이 매우 어지럽혀져 있다거나 하는 기존 훈련데이터에 없던 상황이 주어졌을 때)는 견고성(Robustness)이 크게 떨어진다.</p>
<p><strong>2. 데이터 부족과 파운데이션 모델(Foundation Models)의 기회</strong> </p>
<p>로봇 공학 분야에서 인터넷 규모의 거대 데이터를 이용한 사전 훈련(Pretraining)을 재현하는 것은 여전히 어려운 과제이다. </p>
<p>가장 큰 로봇 데이터셋조차 샘플 수가 10만~100만 개 수준에 불과해, 수십억 개의 데이터를 가진 비전/언어 모델에 비해 턱없이 부족하다.</p>
<p>저자는 이러한 데이터 불균형이 역설적으로 기회가 될 수 있다고 한다. 이미 시각(Vision)과 언어(Language)를 완벽히 학습한 거대 <strong>파운데이션 모델(Foundation Models)</strong>을 가져와 로봇의 &#39;두뇌&#39;로 활용할 수 있기 때문이다. </p>
<p><strong>3. 기존 VLA(Vision-Language-Action) 모델의 문제점</strong> </p>
<p>하지만 로봇 제어를 위해 VLA 모델을 널리 사용하는 데에는 두 가지 큰 장벽이 있다. </p>
<ol>
<li><p><strong>폐쇄성(Closed)</strong>: RT-2와 같은 기존 모델들은 아키텍처나 훈련 방식이 비공개여서 대중이 접근하거나 연구하기 어려움</p>
</li>
<li><p><strong>미세 조정(Fine-tuning) 가이드 부재</strong>: 새로운 로봇이나 작업에 맞춰 VLA를 효율적으로 재학습시키는 미세 조정(Fine-tuning) 방법에 대한 모범 사례(Best Practices)가 정립되지 않음</p>
</li>
</ol>
<p>본 논문은 이러한 문제를 해결하기 위해 <strong>70억(7B) 파라미터를 가진 오픈 소스 VLA 모델, OpenVLA</strong>를 제안한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/62bb8283-27fb-42b8-b779-200f3f284e18/image.png" alt=""></p>
<ul>
<li><p><strong>Architecture</strong> 
강력한 시각 처리를 위해 <strong>SigLIP과 DINOv2를 비전 인코더로 사용</strong>하고, 언어 처리를 위해 <strong>Llama 2를 백본(Backbone)으로 결합</strong></p>
</li>
<li><p><strong>Training</strong>
Open-X Embodiment 데이터셋의 97만 개 로봇 조작 궤적(Trajectories)을 사용하여, 다양한 로봇 형태와 작업 환경을 학습</p>
</li>
<li><p><strong>Evaluation</strong>
OpenVLA는 더 효율적인 구조와 다양한 데이터 학습을 통해 압도적인 성능을 보인다.
이전 최고 성능(SOTA) 모델이자 <strong>550억(55B) 파라미터를 가진 구글의 RT-2-X</strong>와 비교했을 때, WidowX 및 Google Robot 테스트에서 <strong>절대 성공률이 16.5% 더 높았다</strong>. </p>
<hr>
</li>
</ul>
<h2 id="2-related-work">2. Related Work</h2>
<p>본 섹션에서는 OpenVLA의 기반이 되는 <strong>대규모 비전-언어 모델(VLMs)</strong>, <strong>대규모 데이터셋을 통한 로봇 학습(Generalist Robot Policies, VLA)</strong>에 대해 서술한다. </p>
<h3 id="visually-conditioned-language-models-vlms">Visually-conditioned language models (VLMs)</h3>
<p>최근의 VLM들은 거대 언어 모델(Large Language Models, LLMs)의 성공을 시각적 영역으로 확장했다.</p>
<p><strong>LLaVA(Large Language and Vision Assistant)</strong>와 같은 최신 모델들은 <strong>Vision Encoder</strong>(예: CLIP, SigLIP)가 이미지를 처리하여 <strong>특징(Feature)을 추출</strong>하면, 이를 Projector(예: MLP)를 통해 언어 모델이 이해할 수 있는 <strong>토큰 공간으로 매핑</strong>한다.</p>
<ul>
<li><code>Patch-as-token</code> : 이미지를 작은 조각(Patch)으로 나눈 뒤, 이를 텍스트 토큰처럼 취급하여 언어 모델에 입력하는 구조</li>
</ul>
<p>이러한 모델들은 인터넷 규모의 이미지-텍스트 쌍으로 훈련되어 이미지 캡셔닝(Image Captioning)이나 시각적 질의응답(VQA)에서 뛰어난 성능을 보였다.</p>
<p>본 논문은 이러한 아키텍처(특히 LLaVA 및 Prismatic 계열)를 채택하여, 로봇이 시각적 정보를 언어적으로 이해하고 처리할 수 있는 강력한 기반을 마련한다.</p>
<h3 id="generalist-robot-policies-vision-language-action-modelsvla">Generalist Robot Policies, Vision-Language-Action Models(VLA)</h3>
<p>로봇 공학에서도 특정 작업만 수행하는 <strong>전문가 모델에서, 다양한 작업을 수행하는 일반 목적(Generalist) 모델로의 전환</strong>이 일어나고 있다.</p>
<ul>
<li><p><code>Octo</code> : Octo는 언어 임베딩이나 비전 인코더 같은 &#39;사전 학습된 부품&#39;을 가져오긴 하지만, 이를 연결하는 나머지 부분은 바닥부터(From scratch) 새로 학습해서 이어 붙이는(Stitching) 방식을 사용
→  반면, OpenVLA는 <strong>VLM 전체를 end-to-end로 finetuning</strong>한다. 로봇의 행동(action)을 언어 단어처럼 취급하여, <strong>모델이 직접 예측</strong>하게 한다.</p>
</li>
<li><p>VLA 초기 모델 (<code>RT-1</code>): RT-1은 <strong>트랜스포머(Transformer) 아키텍처를 사용하여 대규모 로봇 데이터셋을 학습</strong>했지만, 언어 모델의 사전 지식을 충분히 활용하지 못하고 <strong>처음부터(From scratch) 훈련</strong>되었다.</p>
</li>
<li><p>VLA의 등장 (<code>RT-2</code>): RT-2는 <strong>거대 VLM을 로봇 행동(Action) 토큰으로 미세 조정(Fine-tuning)</strong>하여, <strong>인터넷 규모의 상식과 추론 능력을 로봇 제어에 접목</strong>시킨 <strong>Vision-Language-Action(VLA) 모델을 제안</strong>했다. </p>
<p>이는 새로운 명령어나 객체에 대한 일반화 능력을 크게 향상시켰다. 그러나 RT-2와 같은 모델은 폐쇄적(Closed)이며, 모델 크기가 너무 커서(예: 55B) 추론 속도가 느리고 실제 로봇에 탑재하기 어렵다.</p>
</li>
</ul>
<hr>
<h2 id="3-the-openvla-model">3. The OpenVLA Model</h2>
<h3 id="31-preliminaries-vision-language-models">3.1 Preliminaries: Vision-Language Models</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/ffc4d772-291d-449d-a3d9-aa712bb0600b/image.png" alt=""></p>
<p>최근 대부분의 VLM 구조는 위 그림과 같이 세 가지 key component로 구성된다.</p>
<blockquote>
</blockquote>
<ol>
<li><strong>Visual Encoder</strong>: 이미지 입력을 다수의 <strong>&quot;Image patch embeddings&quot;</strong>으로 매핑(변환)하는 역할  <blockquote>
</blockquote>
</li>
<li><strong>Projector</strong>: 시각 인코더에서 나온 출력 임베딩을 받아서, 이를 언어 모델이 처리할 수 있는 <strong>입력 공간(Input space)</strong>으로 매핑해주는 연결 모듈<blockquote>
</blockquote>
</li>
<li><strong>LLM Backbone</strong>: 변환된 시각 정보와 텍스트 정보를 처리</li>
</ol>
<p>VLM 훈련 과정에서, 모델은 인터넷의 다양한 소스에서 수집된 &#39;비전-언어 데이터 쌍&#39; 혹은 &#39;교차 데이터(interleaved data)&#39;를 사용하여, <strong>Next text token prediction</strong> Objective를 가지고 처음부터 끝까지(End-to-end) 학습된다.</p>
<p>본 연구에서는 <strong>Prismatic-7B VLM</strong>을 기반으로 모델을 구축했다.</p>
<blockquote>
<ul>
<li>기본 구조: 입력 이미지는 시각 인코더(Vision Encoder)를 통해 특징(Feature)으로 변환되고, 프로젝터(Projector)를 거쳐 언어 모델(LLM)에 입력됩니다.</li>
</ul>
</blockquote>
<ul>
<li>핵심 구성 요소:</li>
<li><em>vision encoder*</em>: SigLIP + DINOv2 (두 가지를 결합)</li>
<li><em>backbone*</em>: Llama 2 (7B) 언어 모델</li>
</ul>
<p>CLIP이나 SigLIP만 사용하는 일반적인 비전 인코더와 대조적으로, DINOv2 특징을 추가하는 것은 공간 추론(Spatial reasoning) 능력을 향상시키는 데 도움이 되는 것으로 밝혀졌으며, 이는 특히 <strong>로봇 제어(Robot control)</strong>에 유용하다.</p>
<h3 id="32-openvla-training-procedure">3.2 OpenVLA Training Procedure</h3>
<p>일반적인 VLM은 텍스트를 출력하지만, 로봇 제어 모델은 <strong>물리적인 행동(Action)</strong>을 출력해야 한다. OpenVLA는 이를 위해 모델 전체를 <strong>Fine-tuning</strong>한다. </p>
<blockquote>
<ul>
<li>Input : 관측 이미지(Observation Image) + 자연어 작업 지시(Language Instruction)</li>
</ul>
</blockquote>
<ul>
<li>Output : 예측된 로봇 행동의 토큰 문자열(String of predicted robot actions)</li>
</ul>
<ul>
<li>*<em>Action Discretization *</em></li>
</ul>
<p>로봇 팔의 움직임(6DoF 또는 7DoF)은 <strong>연속적인 실수 값(Continuous values)</strong>이므로, 이를 언어 모델이 이해할 수 있는 &#39;단어&#39;처럼 만들기 위해 <strong>이산화(Discretization)</strong> 과정을 거쳐야 한다. </p>
<blockquote>
<ul>
<li><strong>Binning</strong>: 각 행동 차원(x, y, z, r, p, y 등)을 <strong>256개의 균일한 구간(bins)</strong>으로 나눈다.  </li>
</ul>
</blockquote>
<ul>
<li><strong>분위수(Quantile) 기반 설정</strong>:
기존 연구(Brohan et al.)는 최솟값-최댓값(Min-Max)을 기준으로 범위를 잡았다.
하지만 OpenVLA에서는 하위 1% ~ 상위 99% 분위수(Quantile) 사이를 균일하게 나눈다. <blockquote>
</blockquote>
그 이유는, 데이터에 포함된 <strong>이상치(Outlier)</strong>가 구간의 폭을 불필요하게 넓혀, 실제 중요한 동작의 정밀도(Granularity)를 떨어뜨리는 것을 방지하기 위함이다. </li>
</ul>
<p>이제 이산화를 거친 N차원 로봇 행동은 $[0 \dots 255]$ 범위의 $N$개의 정수 시퀀스로 변환된다. </p>
<ul>
<li><strong>Handling Tokenizer Limitations</strong></li>
</ul>
<p>OpenVLA의 백본인 Llama 토크나이저는 새로운 토큰을 위한 &#39;특수 토큰(Special tokens)&#39; 공간이 100개 뿐이다. (필요한 행동 토큰은 256개)</p>
<p>이에 대한 해결책으로, 복잡한 구조 변경 대신 단순한 방식을 택했다. Llama의 전체 어휘(Vocabulary) 중 가장 적게 사용되는 <strong>마지막 256개 토큰을 로봇 행동 토큰으로 덮어쓰기(Overwrite)</strong> 한다.</p>
<ul>
<li><strong>Training Objective</strong></li>
</ul>
<p>행동이 토큰 시퀀스로 변환되면, 모델은 표준적인 &#39;Next-token prediction&#39; 방식으로 훈련된다.</p>
<p>오직 예측된 행동 토큰 부분에 대해서만 <strong>Cross-entropy loss</strong>를 계산하여 모델을 최적화한다.</p>
<h3 id="33-training-data">3.3 Training Data</h3>
<p>OpenVLA는 세계 최대 규모의 로봇 조작 데이터셋인 <strong>Open X-Embodiment</strong> 데이터셋을 사용하여 학습되었다.</p>
<ul>
<li>970,000개 이상의 로봇 조작 에피소드</li>
<li>Franka Panda, WidowX, Google Robot 등 다양한 로봇 기종과 환경 포함</li>
<li>데이터 증강 (Augmentation): 모델의 과적합(Overfitting)을 막고 견고성을 높이기 위해 훈련 이미지 변형 <ul>
<li><code>Random Resized Crop</code>: 이미지를 무작위로 자르고 크기를 조절 (0.8 ~ 1.0 비율)</li>
<li><code>Color Jitter</code>: 밝기, 대비, 채도 등을 미세하게 조정</li>
</ul>
</li>
</ul>
<h3 id="34-openvla-design-decisions">3.4 OpenVLA Design Decisions</h3>
<p><strong>1. VLM 백본 선택 (VLM Backbone)</strong></p>
<p>어떤 비전-언어 모델을 베이스로 쓸 것인가를 결정</p>
<ul>
<li><p>실험 대상: Prismatic, IDEFICS-1, LLaVA</p>
</li>
<li><p>결과:</p>
<ul>
<li>단일 객체: 세 모델 모두 비슷한 성능을 보임</li>
<li>다중 객체 (Language Grounding): 여러 물건 중 지시한 물건(예: &quot;오렌지 집어&quot;)을 찾는 능력은 LLaVA가 IDEFICS-1보다 절대 성공률이 35% 더 높았음. Prismatic은 LLaVA보다도 약 10% 더 높은 성능을 보임.  Prismatic의 이중 비전 인코더(SigLIP + DINOv2) 구조가 복잡한 공간 추론(Spatial Reasoning) 능력을 크게 향상시켰기 때문. 또한 코드베이스가 모듈화되어 있어 사용하기 편리함</li>
</ul>
</li>
</ul>
<p><strong>2. 이미지 해상도 (Image Resolution)</strong></p>
<p>입력 이미지 크기는 훈련 속도에 큰 영향을 미침</p>
<ul>
<li><p>비교: $224 \times 224$ vs $384 \times 384$</p>
</li>
<li><p>결과: $384 \times 384$ 해상도는 훈련 시간이 3배나 더 걸렸지만, 로봇 제어 성능에는 차이가 없음</p>
</li>
<li><p>결정: 효율성을 위해 $224 \times 224$px 해상도를 선택 (일반적인 VLM 벤치마크에서는 해상도가 높을수록 좋지만, 로봇 제어 VLA에서는 아직 그런 경향이 나타나지 않음)</p>
</li>
</ul>
<p><strong>3. 비전 인코더 미세 조정 (Fine-Tuning Vision Encoder)</strong></p>
<p>비전 인코더(눈)를 고정할지, 같이 학습시킬지를 결정 </p>
<ul>
<li><p>기존 통념: 보통 VLM을 만들 때는 비전 인코더를 <strong>고정(Freeze)</strong>하는 것이 성능이 더 좋음 (인터넷 데이터로 배운 특징을 보존하기 위해)</p>
</li>
<li><p>발견: 하지만 로봇용 VLA에서는 비전 인코더를 <strong>미세 조정(Unfreeze &amp; Fine-tune)</strong>하는 것이 필수적</p>
</li>
<li><p>가설: 사전 학습된 비전 모델은 로봇이 물체를 정밀하게 제어하는 데 필요한 <strong>&#39;미세한 공간적 디테일(Fine-grained spatial details)&#39;</strong>을 충분히 파악하지 못하기 때문에, 로봇 데이터에 맞춰 눈을 다시 훈련시켜야 함</p>
</li>
</ul>
<p><strong>4. 훈련 에포크 (Training Epochs)</strong></p>
<p>데이터셋을 몇 번 반복해서 공부시킬 것인가를 결정 </p>
<ul>
<li><p>기존 통념: 일반적인 LLM이나 VLM은 데이터셋을 <strong>1~2회(Epoch)</strong>만 훑어보고 학습을 끝냄</p>
</li>
<li><p>발견: VLA는 <strong>훨씬 더 많은 반복 학습이 필요</strong>. 행동 토큰 예측 정확도가 <strong>95%</strong>를 넘을 때까지 실제 로봇 성능이 계속 향상됨</p>
</li>
<li><p>결정: 최종 모델은 데이터셋을 무려 27 Epochs 동안 반복 학습함</p>
</li>
</ul>
<p><strong>5. 학습률 (Learning Rate)</strong></p>
<p>모델이 얼마나 빠르게 학습할지 결정하는 파라미터</p>
<ul>
<li><p>실험: 여러 단위(Orders of magnitude)의 학습률을 테스트</p>
</li>
<li><p>결정: 고정 학습률 $2e-5$ (0.00002)가 가장 좋은 결과를 보임. 이는 Prismatic VLM 사전 훈련 때 썼던 값과 동일함.</p>
</li>
<li><p>학습률을 서서히 올리는 웜업(Warmup) 방식은 별다른 이득이 없는 것으로 드러남</p>
</li>
</ul>
<hr>
<h2 id="4-experiments-실험"><strong>4. Experiments (실험)</strong></h2>
<p>본 섹션에서는 OpenVLA의 성능을 포괄적으로 평가하기 위해 세 가지 주요 질문에 답하고자 한다.</p>
<ol>
<li><strong>일반화(Generalist) 성능:</strong> OpenVLA는 광범위한 작업과 로봇 형태에 대해 강력한 일반적인 정책(generalist policy)으로 작동하는가?</li>
<li><strong>적응성(Adaptation):</strong> OpenVLA는 새로운 다중 작업(multi-task) 도메인에 효과적으로 미세 조정(fine-tuned)될 수 있는가?</li>
<li><strong>효율성(Efficiency):</strong> OpenVLA는 소비자용 GPU에서 훈련 및 추론이 가능할 만큼 효율적인가?</li>
</ol>
<h3 id="41-direct-evaluations-on-multiple-robot-platforms">4.1 Direct Evaluations on Multiple Robot Platforms</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/801bf645-f82a-4429-8bf8-2aeaecb10c38/image.png" alt=""></p>
<p>OpenVLA가 학습 데이터에 없던 새로운 환경(Out-of-distribution)에서 기존 최고 모델들과 비교해 얼마나 잘 작동하는지 평가한다.</p>
<ul>
<li><p>비교 모델 (Baselines)</p>
<ul>
<li>RT-2-X (55B): 구글의 초대형 비전-언어-행동 모델.</li>
<li>Octo: 최근 공개된 일반 목적 로봇 정책 (Transformer 기반)</li>
</ul>
</li>
<li><p>실험 결과</p>
</li>
</ul>
<ol>
<li>WidowX 로봇: BridgeData V2 데이터셋을 기반으로 테스트했다. 물체 위치 변화, 새로운 물체, 새로운 배경 등 다양한 조건에서 OpenVLA는 Octo보다 18% 더 높은 성공률을 보였다.</li>
</ol>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/60bc5d38-6737-4079-b2ea-88f72594ee3b/image.png" alt=""></p>
<ol start="2">
<li><p>Google Robot: 구글 자체 로봇 환경에서 테스트했다. OpenVLA(7B)는 파라미터 수가 훨씬 많은 RT-2-X(55B)보다 평균 16.5% 더 높은 성능을 기록하며, 더 작지만 더 강력함을 입증한다.</p>
<p>특히 훈련 때 본 적 없는 <strong>새로운 물체(Unseen Objects)</strong>나 복잡한 언어 지시를 처리하는 능력에서 기존 모델들을 압도한다.</p>
</li>
</ol>
<h3 id="42-data-efficient-adaptation-to-new-robot-setups">4.2 Data-Efficient Adaptation to New Robot Setups</h3>
<p>사용자가 이 모델을 다운로드하여 <strong>자신의 로봇(Custom Robot)</strong>이나 새로운 작업에 적용할 때, 얼마나 적은 데이터로 학습이 가능한지 평가한다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/2c69c776-dc59-439a-bce9-ce1595023daa/image.png" alt=""></p>
<ul>
<li><p>실험 환경
OpenVLA가 훈련 과정에서 한 번도 본 적 없는 Franka Panda 로봇을 사용</p>
</li>
<li><p>결과</p>
<ul>
<li><p>적은 데이터로 고성능: 작업당 단 50개의 데모(시연) 데이터만으로도 새로운 작업을 효과적으로 학습함</p>
</li>
<li><p>강력한 언어 이해: &quot;빨간 블록 말고 초록 블록을 밀어라&quot;와 같이 언어적/공간적 추론이 필요한 작업에서, 처음부터 학습하는 방식(Diffusion Policy)이나 다른 모델(Octo)보다 월등히 높은 적응력을 보임. </p>
</li>
</ul>
<p>따라서, 많은 데이터를 새로 모을 필요 없이, 적은 데이터로도 내 로봇에 맞게 빠르게 튜닝할 수 있음을 입증.</p>
</li>
</ul>
<h3 id="43-parameter-efficient-fine-tuning">4.3 Parameter-Efficient Fine-Tuning</h3>
<p>모델 전체를 재학습(Full Fine-tuning)하는 것은 비용이 많이 든다. 여기서는 효율적인 튜닝 기법인 <strong>LoRA(Low-Rank Adaptation)</strong>의 효과를 검증한다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/32a4be9d-0a45-4ff5-a4d4-5c10b1185761/image.png" alt=""></p>
<ul>
<li><p>비교:</p>
<ul>
<li><p>Full Fine-Tuning: 모델의 모든 파라미터(70억 개)를 다 업데이트.</p>
</li>
<li><p>LoRA: 전체 파라미터의 극히 일부(약 1~2%)만 업데이트.</p>
</li>
</ul>
</li>
<li><p>결과 
LoRA를 사용하여 학습해도 전체를 다 학습한 것과 성능 차이가 거의 없었음(No significant performance drop)</p>
</li>
</ul>
<p>사용자는 LoRA Finetuning을 통해 가볍고 빠르게 모델을 커스터마이징할 수 있다. </p>
<h3 id="44-memory-efficient-inference-via-quantization">4.4 Memory-Efficient Inference via Quantization</h3>
<p>모델이 실제 로봇에 탑재될 수 있을 만큼 가볍고 빠른지(Inference) 확인한다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/cf62a8c5-b8c9-4f7c-b6b6-c63a68319c48/image.png" alt=""></p>
<ul>
<li><p>실험 설정: 모델의 정밀도를 16-bit에서 <strong>4-bit로 압축(Quantization)</strong>하여 테스트했다.</p>
</li>
<li><p>결과</p>
<ul>
<li><p>메모리 절약: 모델 용량이 획기적으로 줄어들어 일반 소비자용 GPU(RTX 3090/4090)에서도 여유롭게 동작</p>
</li>
<li><p>속도: 4-bit 환경에서도 초당 20회(20Hz) 이상의 제어 명령을 생성할 수 있어, 실시간 로봇 제어에 문제가 없음</p>
</li>
<li><p>성능 유지: 압축을 해도 로봇 조작 성공률에는 영향이 없음</p>
</li>
</ul>
</li>
</ul>
<p>비싼 서버급 GPU가 없어도, 누구나 집에서 OpenVLA를 돌릴 수 있음을 입증한다. </p>
<hr>
<h2 id="5-discussion-and-limitations">5 Discussion and Limitations</h2>
<h3 id="discussion-논의"><strong>Discussion (논의)</strong></h3>
<p>본 논문은 일반적인 로봇 조작을 위한 70억(7B) 파라미터 규모의 오픈 소스 비전-언어-행동(VLA) 모델인 <strong>OpenVLA</strong>를 소개했다. </p>
<p>OpenVLA는 인터넷 규모의 비전-언어 사전 훈련(pre-training)과 대규모 로봇 데이터셋(Open X-Embodiment)을 활용하여 강력한 일반화 성능을 달성했다.</p>
<p>주요 기여는 다음과 같다:</p>
<ol>
<li><p><strong>성능:</strong> 기존의 비공개 최첨단 모델(RT-2-X 55B)보다 훨씬 작은 크기로 더 높은 성공률을 기록했다.</p>
</li>
<li><p><strong>접근성:</strong> 소비자용 GPU(예: RTX 3090, 4090)에서도 LoRA (Low-Rank Adaptation)와 4비트 양자화(4-bit Quantization)를 통해 효율적으로 미세 조정(fine-tuning)하고 실행할 수 있다.</p>
</li>
<li><p><strong>오픈 소스:</strong> 모델 가중치(weights), 훈련 코드, 데이터 처리 파이프라인을 모두 공개하여 로봇 커뮤니티의 연구 진입 장벽을 낮췄다.</p>
</li>
</ol>
<h3 id="limitations-한계점"><strong>Limitations (한계점)</strong></h3>
<p>OpenVLA가 강력한 성능을 보여주지만, 여전히 해결해야 할 몇 가지 중요한 한계점이 존재한다.</p>
<ol>
<li><p><strong>Inference Latency (추론 지연 시간):</strong>
OpenVLA는 효율적인 훈련과 배포를 위해 최적화되었지만, 70억 개의 파라미터를 가진 대규모 트랜스포머 모델이다. 따라서 ResNet이나 작은 CNN 기반의 정책(policy)보다 <strong>추론 속도가 느리다</strong>.</p>
<p>현재 소비자용 GPU에서 약 10~20Hz 정도의 제어 주기를 달성할 수 있지만, 이는 매우 빠른 반응 속도가 필요한 동적 작업(예: 날아오는 공 잡기)에는 부족할 수 있다.</p>
</li>
<li><p><strong>Single-View Limitation (단일 시점의 한계):</strong>
현재 OpenVLA는 기본적으로 <strong>단일 카메라 시점(single-view)</strong> 입력에 최적화되어 있다. 많은 로봇 시스템이 다중 카메라(손목 카메라 + 3인칭 카메라 등)를 사용하여 가려짐(occlusion) 문제를 해결하지만, OpenVLA의 기본 아키텍처는 이를 직접적으로 지원하지 않거나 처리 비용이 비싸다.</p>
<p>다중 시점을 처리하려면 이미지를 합쳐서 넣거나 모델 구조를 변경해야 하는데, 이는 계산 비용을 더욱 증가시킨다.</p>
</li>
<li><p><strong>Lack of History (과거 이력 부재):</strong>
OpenVLA는 현재 시점의 이미지만 보고 행동을 결정하는 경향이 있다. 즉, <strong>과거의 행동 이력(action history)</strong>이나 이전 프레임 정보를 길게 기억하고 활용하는 데에는 한계가 있다.
이는 &#39;물체가 잠시 가려졌을 때&#39;나 &#39;순서가 중요한 긴 작업&#39;을 수행할 때 불리할 수 있다.</p>
</li>
</ol>
<ol start="4">
<li><p><strong>Precision (정밀도):</strong>
VLA 모델은 언어 모델 기반이므로, 행동을 <strong>이산적인 토큰(discrete tokens)</strong>으로 출력한다. 이는 연속적인 좌표를 직접 출력하는 회귀(regression) 기반 모델보다 <strong>초정밀 제어(millimeter-level precision)</strong>에서 성능이 떨어질 수 있다.</p>
<p>예를 들어, 바늘 구멍에 실을 꿰는 것과 같은 극도로 정밀한 작업에서는 전용 제어기보다 성능이 낮을 수 있다.</p>
</li>
</ol>
<ol start="5">
<li><strong>Hallucination (환각 현상):</strong>
비전-언어 모델(VLM)의 고질적인 문제인 <strong>환각(hallucination)</strong>이 발생할 수 있다. 로봇이 실제로는 없는 물체를 있다고 판단하거나, 지시사항을 잘못 해석하여 엉뚱한 행동을 할 위험이 여전히 존재한다.</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[n8n 찍먹으로 나만의 AI Agent 구축하기]]></title>
            <link>https://velog.io/@choonsik_mom/n8n-%EC%B0%8D%EB%A8%B9%EC%9C%BC%EB%A1%9C-%EB%82%98%EB%A7%8C%EC%9D%98-AI-Agent-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@choonsik_mom/n8n-%EC%B0%8D%EB%A8%B9%EC%9C%BC%EB%A1%9C-%EB%82%98%EB%A7%8C%EC%9D%98-AI-Agent-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 21 Nov 2025 07:36:34 GMT</pubDate>
            <description><![CDATA[<h2 id="n8n-소개">n8n 소개</h2>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/882f3ba2-0929-4593-acbe-43a067b1f05e/image.png" alt=""></p>
<p><a href="https://github.com/n8n-io/n8n">[Github]</a> <a href="https://docs.n8n.io/">[Docs]</a></p>
<p>n8n은 노코드/로우코드 기반의 워크플로우 자동화 플랫폼이다. 다양한 앱과 AI 모델들을 연결해서 AI Agent를 만들 수 있다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/1cc7cba7-f6bb-4c41-9b6a-286e12991a36/image.png" alt=""></p>
<p>Github 공식 사이트를 들어가보면 위와 같은 n8n Web UI 사진을 볼 수 있는데, 이렇게 코딩 없이도 워크플로우를 설계하고, 여러 노드들을 연결해서 실행하는 것 만으로도 Agent를 간편히 구현해 볼 수 있다.</p>
<hr>
<h2 id="n8n-설치-및-실행-with-docker">n8n 설치 및 실행 (with Docker)</h2>
<p>공식 깃허브에서는 node.js가 설치되어 있을 때, npx로 즉시 실행할 수 있다고 한다. </p>
<p>하지만 본 포스팅에서는 Docker 실행을 기준으로 작성한다. (도커 사전 설치 필요!)</p>
<pre><code class="language-bash"># docker run으로 빠르게 실행 
docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n</code></pre>
<p>위 공식 깃허브의 커맨드를 따르면 빠르게 실행할 수 있다.  도커 컨테이너를 띄우고 n8n 서버 <a href="http://localhost:5678/">http://localhost:5678/</a> 로 접속하면 된다.</p>
<p>하지만, 깔끔한 관리를 위해 전용 폴더에서 <code>docker-compose.yml</code>을 통해 실행해보자.</p>
<pre><code class="language-bash">mkdir -p ~/n8n-agent
cd ~/n8n-agent
</code></pre>
<p><code>docker-compose.yml</code> 파일을 생성하고 아래 내용을 삽입한다.</p>
<pre><code>version: &#39;3.8&#39;
services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    ports:
      - &quot;5678:5678&quot;  # 웹 접속 포트
    environment:
      - N8N_HOST=localhost
      - N8N_PORT=5678
      - N8N_PROTOCOL=http
      - NODE_ENV=production
      - WEBHOOK_URL=http://localhost:5678/
      - GENERIC_TIMEZONE=Asia/Seoul 
    volumes:
      - n8n_data:/home/node/.n8n # 
volumes:
  n8n_data:
</code></pre><p>해당 위치에서 아래 명령어로 실행</p>
<pre><code class="language-bash">docker compose up -d
# - `d`: 백그라운드 실행 
</code></pre>
<p>컨테이너 작동 여부는 <code>docker ps</code> 명령어를 통해 확인할 수 있다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/38fb4426-8d0c-43be-9f40-c6e9d913cb31/image.png" alt=""></p>
<pre><code class="language-bash"># docker 관련 명령어
docker compose pull    # 도커 허브에서 최신 이미지 다운로드
docker compose down    # 기존 컨테이너 중지
docker compose up -d   # 새 이미지 재시작
</code></pre>
<hr>
<h2 id="n8n-기반-pdf-파일-rag-chatbot-agent-만들기">n8n 기반 pdf 파일 RAG chatbot Agent 만들기</h2>
<p><a href="http://localhost:5678/">http://localhost:5678/</a> 사이트에 들어가보면 이제 이런 ui 화면이 뜬다. 처음 입장이라면 workflow는 비어 있을 것이다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/f0cf3bae-61a7-4905-9406-5cf61f958b8c/image.png" alt=""></p>
<p>우측 상단에 &quot;create workflow&quot; 버튼을 눌러 아래 화면으로 넘어가면, 코드 없이 나만의 agent 구축을 시작할 수 있다!</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/77dc6c52-25ed-4e0e-95e7-9be9c7d7a88c/image.png" alt=""></p>
<p>아무것도 없는 빈 base 화면에서 시작해서, pdf 파일을 RAG 하여 질의 응답 하는 간단한 챗봇을 만들어 보기로 했다. 노드들을 이것저것 추가하여 연결해 보았다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/061b0cec-3b48-42a0-9521-999c760c4e05/image.png" alt=""></p>
<p>위와 같이 나만의 워크플로우를 완성하고 <code>execute workflow</code>를 누르면, 워크플로우가 순서대로 실행되고 하단에 채팅창을 통해 agent와 대화해볼 수 있다.</p>
<p>각 노드는 더블 클릭 하면 상세한 옵션이나 파라미터 조정이 가능하다. </p>
<h3 id="credentials-입력하기">Credentials 입력하기</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/043cc4b2-cdf6-4ce6-8a0c-d58182f0d444/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/a599ebb0-fb7b-4fac-92be-773b13b8d4d9/image.png" alt=""></p>
<p>에이전트 구축에 앞서, credentials 탭에서 openai API KEY를 등록해줘야 한다. (타사 API Key를 쓸 경우, 해당 API KEY를 사전에 입력해둘 것)</p>
<h3 id="도큐먼트-주입">도큐먼트 주입</h3>
<ul>
<li><strong>When clicking Execute Workflow (manual-trigger)</strong>
역할: 수동으로 워크플로우를 시작하는 버튼
설명: 문서를 처음 로드할 때 한 번 실행 (RAG 대상 문서를 로드하기 위함)</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/08aa59e1-9d9e-455f-abaa-c6c1a10a8286/image.png" alt=""></p>
<ul>
<li><strong>Read Binary File</strong>
역할: 설정 경로의 파일을 읽어옴
설명: 설정된 경로(예:/home/node/paper.pdf)에 있는 파일을 n8n으로 가져온다. 해당 경로는 Docker 컨테이너 내부의 경로여야 한다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/d5ae1413-3349-488e-934d-c4320b2ab3a9/image.png" alt=""></p>
<ul>
<li><strong>In-Memory Vector Store (Insert)</strong>
역할: 검색을 위해 읽어온 문서를 벡터 데이터베이스에 저장
설명: 문서를 임베딩 벡터 형태로 변환해서 메모리에 쌓아둔다. RAG를 하기 위해서는 채팅 전에 먼저 실행 시켜야 한다. </li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/0b5e4137-a54b-40b8-b021-6e4f630d8c3c/image.png" alt=""></p>
<ul>
<li><strong>Default Data Loader</strong> : 이전 노드 출력 데이터를 자동으로 Vector Store에 입력할 수 있는 형식으로 변환</li>
<li><strong>Recursive Character Text Splitter (text-splitter)</strong>: PDF 내용을 적절한 크기의 Chunk로 자름</li>
<li><strong>OpenAI Embeddings</strong>: 청킹된 텍스트를 벡터로 변환</li>
</ul>
<h3 id="채팅-주입">채팅 주입</h3>
<ul>
<li><strong>When chat message received</strong> 
역할: 사용자의 채팅 메시지를 입력 받음
설명: 채팅 인터페이스에서 엔터를 치면 여기서부터 시작된다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/100dacac-77b8-4359-a462-96a57110244b/image.png" alt=""></p>
<ul>
<li><strong>AI Agent</strong> 
역할: 실질적인 agent 역할을 담당하는 노드 
설명: 사용자의 질문을 분석하고, 필요하면 도구(Vector Store Tool)를 사용해서 정보를 찾은 뒤, 최종 답변을 생성</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/67922126-b776-41c6-b7f3-a309a55166e3/image.png" alt=""></p>
<ul>
<li><p><strong>OpenAI Chat Model</strong> : 실제 대화 능력을 가진 언어 모델(GPT api를 사용). api 버전을 선택하여 사용할 수 있다. </p>
</li>
<li><p><strong>Vector Store Tool</strong>
역할: Agent가 벡터 저장소를 도구처럼 사용할 수 있게 해줍니다.
설명: Agent에게 부여하는 검색 도구입니다. Agent가 PDF 관련 질문일 경우 이 도구를 사용하도록 판단하게 한다.</p>
</li>
</ul>
<ul>
<li><strong>In-Memory Vector Store (Retrieve)</strong>
역할: 실제 저장소에서 데이터를 <strong>검색(Retrieve)</strong>
설명: Vector Store Tool에서 요청이 들어오면, 벡터 스토어에 저장해둔 데이터 중에서 가장 비슷한 내용을 찾아서 돌려준다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/ef813117-71fd-4a70-aa21-9b971bcc2228/image.png" alt=""></p>
<ul>
<li>*<em>Simple Memory *</em>
역할: 대화의 맥락을 기억하도록 돕는 단기 기억 장치
설명: Window Buffer 수 만큼의 대화 쌍을 기억하게 할 수 있다.</li>
</ul>
<h3 id="워크플로우-실행-및-채팅-해보기">워크플로우 실행 및 채팅 해보기</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/68360e36-334a-4ac9-90ea-191a9f9bd718/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/55e6b64f-6153-40b5-a3a7-39536a1a7088/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/dab0839e-a00f-4ebb-908a-8af229a468ce/image.png" alt=""></p>
<p>워크플로우를 실행하고 채팅을 치면 이제 실행 로그와 아웃풋을 볼 수 있는데, 처음에는 멀티턴이 안돼서 왜 그런가 했더니 memory를 넣지 않아서였다. AI Agent에 Simple memory를 삽입 해주니, 이전 대화 맥락을 이해할 수 있게 되었다.</p>
<h3 id="export">export</h3>
<p>이렇게 구현한 워크플로우는 save로 저장할 수 있지만, json 형식으로 export해서 다른 n8n 서버에 사용할 수도 있다. (Save 버튼 우측에 ... 에서 Download 를 누르면 json 형식으로 export된다.)</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/1008ae80-ecaf-45cf-8c13-bcf7685432a1/image.png" alt=""></p>
<p>이렇게 간단하게 코딩 없이 AI Agent 구축할 수 있다는 게 재밌고 흥미로웠다. 찍먹만 해봤지만 시간이 된다면 n8n을 통해 좀 더 똑똑한 에이전트 구현을 해보고 싶다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[JiT (Just Image Transformers) 논문 리뷰 ]]></title>
            <link>https://velog.io/@choonsik_mom/JiT-Just-Image-Transformers-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0</link>
            <guid>https://velog.io/@choonsik_mom/JiT-Just-Image-Transformers-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0</guid>
            <pubDate>Wed, 19 Nov 2025 02:03:58 GMT</pubDate>
            <description><![CDATA[<p>본 게시글은 MIT Tianhong Li, Kaiming He이  저술한 <a href="https://arxiv.org/pdf/2511.13720"><code>Back to Basics: Let Denoising Generative Models Denoise (2025)</code></a> 의 논문 핵심 내용을 정리합니다.</p>
<hr>
<h2 id="key-concept">Key Concept</h2>
<blockquote>
<ul>
<li><strong>JiT (Just image Transformers)</strong>
: 복잡해진 최신 생성 모델(Generative Models)의 흐름을 거스르고, &quot;기본으로 돌아가자(Back to Basics)&quot;!</li>
</ul>
</blockquote>
<p>기존의 최신 이미지 생성 모델(예: Stable Diffusion, VQ-GAN 등)들은 이미지를 압축하는 <strong>Tokenizer</strong>나 사전에 학습된 <strong>VAE(Variational Autoencoder)</strong> 등을 필수적으로 사용했지만, JiT는 이러한 요소 없이 Transformer가 픽셀 데이터를 &quot;직접&quot; 처리하도록 만든다.</p>
<p>본 논문은 현재 널리 쓰이는 <code>Diffusion Model</code>의 학습 방식에 근본적인 의문을 제기했다.</p>
<p>대다수의 Diffusion model은 노이즈($\epsilon$)가 섞인 이미지에서 이 &quot;$\epsilon$&quot;가 무엇인지를 예측하거나, 노이즈와 데이터가 섞인 &quot;$v$-prediction&quot; 값을 예측하도록 학습된다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/768a9f90-0186-4d44-937f-e6d02c4f3055/image.png" alt=""></p>
<p>본 논문에서는 이러한 Noise 예측 방식이 비효율적이라고 지적한다. 저차원의 <code>latent space</code>가 아닌 고차원의 <code>pixel space</code>에서 노이즈 예측을 하는 것이 비효율적이라는 것이다. 왜냐하면, 노이즈가 섞인 데이터는 수학적인 Manifold (<strong>* <a href="https://velog.io/@choonsik_mom/manifold-learning-Autoencoders">Manifold Hypothesis</strong> 참조</a>)를 벗어나 있기 때문이다.</p>
<p>따라서 본 논문은 &quot;노이즈가 아닌, <strong>원본(clean image)을 예측</strong>하라  ($x_0$-prediction)&quot;!는 해결책을 내세운다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/f097f0d7-3e0f-40c5-81f5-35818a86d7ea/image.png" alt=""></p>
<hr>
<h2 id="methodology">Methodology</h2>
<p>JiT의 구조와 학습 방법은 아주 간단하다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/162291c6-b8ca-43bb-852c-343ff19f3ce5/image.png" alt=""></p>
<ol>
<li><p><strong>이미지 처리</strong>: 이미지를 16x16 또는 32x32 크기의 Patch로 자름 (ViT 방식)</p>
</li>
<li><p><strong>모델 구조</strong>: 일반적인 <code>Vision Transformer (ViT)</code> 구조를 거의 그대로 사용</p>
</li>
<li><p><strong>학습</strong>: 이미지에 노이즈를 섞고, 모델이 <strong>원본 이미지($x_0$) 가 무엇이었는지 맞추도록 학습</strong></p>
</li>
</ol>
<ul>
<li><p><strong>No Tokenizer</strong>: 이미지를 별도의 코드로 변환하지 않음</p>
</li>
<li><p><strong>No Latent Model</strong>: VAE 같은 사전 학습 모델을 사용하지 않음 </p>
</li>
<li><p><strong>No Upsampler</strong>: 저해상도에서 고해상도로 키우는 복잡한 과정(Cascaded generation) 없이 한 번에 생성</p>
</li>
</ul>
<hr>
<h2 id="results-and-conclusion">Results and Conclusion</h2>
<p>본 논문은 이 단순한 접근법(JiT)이 복잡한 최신 기법들을 능가하거나 대등한 성능을 낸다는 것을 증명한다.</p>
<ul>
<li><p>ImageNet 성능: ImageNet 256x256 및 512x512 해상도에서 JiT는 기존의 복잡한 Diffusion 모델이나 Autoregressive 모델(MAR 등)과 견줄만한, 혹은 더 뛰어난 생성 성능(FID 점수 등)을 기록</p>
</li>
<li><p>$x_0$ vs $\epsilon$ 비교: 픽셀 공간에서 노이즈($\epsilon$) 를 예측하도록 설정하면 학습이 완전히 실패(Catastrophic failure)하는 반면, <strong>원본($x_0$) 을 예측하면 매우 잘 작동함</strong>을 실험적으로 증명</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/1957354b-6ee0-42b6-bfae-99c2c9ff5dd5/image.png" alt=""></p>
<p>위 Figure는 논문의 Toy Experiment 결과로, &quot;왜 픽셀 공간(pixel space)에서 노이즈를 예측하면 안되는가&quot;를 간단한 실험(265차원 은닉 유닛을 갖는 5-layer ReLU MLP의 간단한 생성 모델을 학습에 사용)으로 직관적으로 증명한다.</p>
<ul>
<li><p><strong>실험 설정</strong>:  $d=2$인 데이터를 $D=512$까지의 고차원 공간에 선형 투영(Linear Projection)하여, 픽셀 공간의 차원이 커질 때 모델의 거동을 분석</p>
</li>
<li><p><strong>매니폴드 가설</strong>: 픽셀 수($D$)가 아무리 늘어나도, 실제 데이터가 존재하는 <strong>본질적인 정보량($d$)은 변하지 않으며</strong>, 데이터는 <strong>고차원 공간 속 얇은 &#39;매니폴드(Manifold)&#39;</strong> 위에만 존재</p>
</li>
<li><p><strong>$\epsilon$-prediction (노이즈 예측) 결과 (failure)</strong>: 차원($D$)이 증가할수록 예측 대상인 노이즈가 공간 전체에 퍼지게 됨. 이로 인해 모델이 예측한 값이 매니폴드를 벗어나 허공을 헤매게 되며, 결국 학습이 안 되고 발산해버림 (space가 클수록 예측해야 할 노이즈의 분산이 계속 커짐, 학습 난이도가 급격히 상승)</p>
</li>
<li><p><strong>$x_0$-prediction (원본 예측) 결과 (success)</strong>: 반면 원본을 예측하는 방식은 수학적으로 &quot;부분 공간으로의 투영(Projection onto subspace)&quot; 효과를 가짐. 즉, 모델이 예측을 수행할 때마다 결과값을 강제로 데이터 매니폴드 위로 끌어당기기 때문에, 고차원에서도 매우 안정적으로 학습</p>
</li>
</ul>
<h3 id="결론">결론</h3>
<p>본 논문은 최신 <strong>이미지 생성 모델들이 지나치게 복잡해지고 있다</strong>는 문제의식에서 출발하여, 불필요한 구성 요소(Tokenizer, VAE, Upsampler)를 모두 제거한 <strong>단순한 JiT (Just image Transformers) 아키텍처를 제안</strong>했다. </p>
<p>연구 결과, 픽셀 공간(Pixel Space)에서 노이즈($\epsilon$) 대신 원본 데이터($x_0$)를 직접 예측하도록 학습 방식을 변경하는 것만으로도, 기존의 복잡한 잠재 모델(Latent Models)들을 능가하거나 대등한 성능을 달성할 수 있음을 입증했다. </p>
<p>이는 생성 AI 연구가 &#39;복잡한 기교&#39;보다는 &#39;데이터 처리의 본질&#39;인 <strong>기본(Basics)</strong>으로 돌아가야 함을 시사하며, JiT는 향후 고성능 생성 모델 연구를 위한 강력하고 단순한 베이스라인(Baseline)이 될 것이다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[The Big LLM Architecture Comparison (Sebastian Rashka)]]></title>
            <link>https://velog.io/@choonsik_mom/The-Big-LLM-Architecture-Comparison-Sebastian-Rashka</link>
            <guid>https://velog.io/@choonsik_mom/The-Big-LLM-Architecture-Comparison-Sebastian-Rashka</guid>
            <pubDate>Tue, 30 Sep 2025 00:17:53 GMT</pubDate>
            <description><![CDATA[<p>본 글은 LLM from Scratch의 저자 세바스찬 라쉬카(Sebastian Rashka)의 아티클을 공부 목적으로 번역하여 정리한 것이다.</p>
<blockquote>
</blockquote>
<p><strong>The Big LLM Architecture Comparison</strong>  [<a href="https://magazine.sebastianraschka.com/p/the-big-llm-architecture-comparison">원문</a>]
From DeepSeek-V3 to gpt-oss: A Look At Modern LLM Architecture Design </p>
<blockquote>
</blockquote>
<hr>
<p>최초의 GPT 아키텍처가 개발된 지 7년이 경과했다. GPT-2 (2019)를 돌아보고 DeepSeek-V3와 Llama 4 (2024-2025)를 전망해 볼 때, 이 모델들이 여전히 구조적으로 매우 유사하다는 점은 놀라울 수 있다.</p>
<p>물론, positional embedding은 절대(absolute) 방식에서 <strong>rotational (RoPE)</strong>으로 발전했으며, Multi-Head Attention은 대체로 <strong>Grouped-Query Attention</strong>으로 전환되었고, GELU와 같은 활성화 함수는 더 효율적인 <strong>SwiGLU</strong>로 대체되었다. </p>
<p>그러나 이러한 미미한 개선 사항을 넘어, 진정한 의미의 획기적 변화가 있었는지, 혹은 단순히 기존 아키텍처의 기반을 개선하는 것에 불과한 것인지는 의문이다.</p>
<p>LLM의 성능에 기여하는 핵심 요소를 판별하기 위해 여러 모델을 비교하는 것은 매우 어려운 과제이다. 이는 데이터셋, 훈련 기법, 하이퍼파라미터가 매우 다양하고, 관련 문서가 충실히 기록되지 않은 경우가 많기 때문이다.</p>
<p>그럼에도 불구하고, 2025년 LLM 개발자들의 동향을 파악하기 위해 아키텍처 자체의 구조적 변화를 검토하는 것은 상당한 가치를 지닌다고 판단된다. (이 중 일부 사례가 아래 [그림 1]에 제시되어 있다.)</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4ecbd9b5-6d02-4392-987b-8dfd795e40b0/image.png" alt=""></p>
<p>[Figure 1. A subset of the architectures covered in this article.]</p>
<p>따라서 본 고에서는 벤치마크 성능이나 훈련 알고리즘을 다루기보다, 오늘날의 대표적인 공개 모델들을 정의하는 아키텍처 발전에 초점을 맞추고자 한다.</p>
<hr>
<h1 id="1-deepseek-v3r1">1. DeepSeek V3/R1</h1>
<p>이미 여러 차례 알려진 바와 같이, 2025년 1월에 출시된 <strong><a href="https://arxiv.org/abs/2501.12948">DeepSeek R1</strong></a>은 상당한 파급력을 보여주었다. </p>
<p>DeepSeek R1은 2024년 12월에 소개된 <a href="https://arxiv.org/abs/2412.19437"><strong>DeepSeek V3 아키텍처</strong></a>를 기반으로 구축된 추론(reasoning) 모델이다.</p>
<p>본고에서는 2025년에 출시된 아키텍처에 중점을 두지만, DeepSeek V3는 2025년 DeepSeek R1 출시 이후에야 광범위한 주목과 채택을 받았다는 점에서 함께 다루는 것이 타당하다고 판단된다.</p>
<p>본 섹션에서는 DeepSeek V3에 도입되어 연산 효율성을 개선하고 다른 LLM과 차별화되는 다음의 두 가지 핵심 아키텍처 기법에 초점을 맞춘다:</p>
<blockquote>
</blockquote>
<ul>
<li><strong>Multi-Head Latent Attention (MLA)</strong></li>
<li><strong>Mixture-of-Experts (MoE)</strong></li>
</ul>
<h2 id="11-multi-head-latent-attention-mla">1.1 Multi-Head Latent Attention (MLA)</h2>
<p><code>Multi-Head Latent Attention (MLA)</code>를 논의하기에 앞서, 이 기법이 사용되는 동기를 이해하기 위한 배경 지식을 간략히 살펴볼 필요가 있다. </p>
<p>이를 위해, 최근 몇 년간 Multi-Head Attention (MHA)를 대체하는 더 효율적인 연산 및 파라미터 대안으로 새로운 표준이 된 <code>Grouped-Query Attention (GQA)</code>부터 시작한다.</p>
<p>GQA를 간략히 요약하면 다음과 같다. 각 헤드(head)가 자체적인 키(key)와 값(value)을 갖는 MHA와 달리, GQA는 메모리 사용량을 줄이기 위해 <strong>여러 헤드를 그룹화하여 동일한 키와 값 프로젝션(projection)을 공유</strong>한다.</p>
<p>예를 들어, 아래 [그림 2]에서 더 자세히 설명하듯이, 2개의 키-값 그룹과 4개의 어텐션 헤드가 있는 경우, 헤드 1과 2가 하나의 키-값 세트를 공유하고, 헤드 3과 4가 다른 세트를 공유할 수 있다. </p>
<p>이는 <strong>키와 값 연산의 총 수를 줄여 메모리 사용량을 낮추고 효율성을 향상</strong>시킨다 (ablation study에 따르면, 모델링 성능에 눈에 띄는 영향은 주지 않는다).</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/5a48c8f0-b124-40cb-a709-d5278d5785ac/image.png" alt=""></p>
<p>[Figure 2: A comparison between MHA and GQA. Here, the group size is 2, where a key and value pair is shared among 2 queries.]</p>
<p>즉, <code>GQA</code>의 핵심 아이디어는 <strong>여러 쿼리(query) 헤드에 걸쳐 키(key)와 값(value) 헤드를 공유</strong>함으로써 그 수를 줄이는 것이다. 이는 <strong>(1) 모델의 파라미터 수를 감소</strong>시키고, <strong>(2) 추론(inference) 시 KV cache에 저장하고 검색해야 할 키와 값의 수가 줄어</strong>들기 때문에 키와 값 텐서(tensor)에 대한 <strong>메모리 대역폭(bandwidth) 사용량을 줄인다</strong>.</p>
<p>GQA는 주로 MHA의 연산 효율성을 높이기 위한 해결책이지만, ablation study(기존 GQA 논문 및 Llama 2 논문 등)에 따르면 LLM 모델링 성능 측면에서는 표준 MHA와 유사한 성능을 보인다.</p>
<p>한편, <code>Multi-Head Latent Attention (MLA)</code>는 KV 캐싱과 특히 잘 결합되는 다른 방식의 메모리 절약 전략을 제공한다. GQA처럼 키와 값 헤드를 공유하는 대신, <strong>MLA는 K,V 텐서를 KV cache에 저장하기 전에 더 낮은 차원의 공간으로 압축</strong>한다.</p>
<p>추론 시에는 아래 [그림 3]과 같이, 이 압축된 텐서들이 사용되기 전에 원래 크기로 다시 프로젝션(projection)된다. 이 과정은 추가적인 행렬 곱셈을 필요로 하지만 메모리 사용량을 감소시킨다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/7b5f0b99-ec3c-43f1-ae08-cf5b41466dea/image.png" alt=""></p>
<p>Figure 3: Comparison between MLA (used in DeepSeek V3 and R1) and regular MHA.</p>
<p>참고로, 쿼리(query)도 압축되지만 이는 추론(inference)이 아닌 <strong>훈련(training) 과정</strong>에서만 이루어진다.</p>
<p>MLA는 DeepSeek V3에서 처음 도입된 기술은 아니며, 이전 버전인 DeepSeek-V2에서 이미 사용 및 소개된 바 있다. 또한 V2 논문에는 DeepSeek 팀이 GQA 대신 MLA를 선택한 이유를 설명할 수 있는 몇 가지 흥미로운 ablation study 결과가 포함되어 있다 (아래 [그림 4] 참조).</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/81732cc4-d2ca-43c3-ab80-32338bb40ad3/image.png" alt=""></p>
<p>[Figure 4: Annotated tables from the <a href="https://arxiv.org/abs/2405.04434">DeepSeek-V2 paper</a>]</p>
<p>위 [그림 4]에서 볼 수 있듯이, <strong>GQA는 MHA보다 성능이 저하</strong>되는 것으로 나타나는 반면, <strong>MLA는 MHA보다 더 나은 모델링 성능을 제공</strong>한다. 이는 DeepSeek 팀이 GQA 대신 MLA를 선택한 주된 이유로 추정된다. (MLA와 GQA 간의 &#39;토큰당 KV Cache&#39; 절감 효과를 비교한 자료가 있었다면 더 흥미로웠을 것이다.)</p>
<p>다음 아키텍처 구성 요소로 넘어가기 전에 본 섹션을 요약하면, <strong>MLA는 모델링 성능 측면에서 MHA를 소폭 능가하면서도 KV cache 메모리 사용량을 줄이는 효과적인 기법</strong>이라고 할 수 있다.</p>
<h2 id="12-mixture-of-experts-moe">1.2 Mixture-of-Experts (MoE)</h2>
<p>DeepSeek에서 주목할 만한 또 다른 주요 아키텍처 구성 요소는 <strong>Mixture-of-Experts (MoE)</strong> 레이어를 사용했다는 점이다. DeepSeek이 MoE를 처음 개발한 것은 아니지만, 이 기술은 올해 다시 부상했으며 이후에 다룰 많은 아키텍처에서도 이를 채택하고 있다.</p>
<p>MoE의 개념을 간략히 되짚어 본다.</p>
<p>MoE의 핵심 아이디어는 transformer 블록의 각 <strong>FeedForward</strong> 모듈을 여러 <strong>&#39;전문가(expert)&#39; 레이어로 대체</strong>하는 것이며, 여기서 각 전문가 레이어 역시 <strong>FeedForward</strong> 모듈이다. 즉, 아래 [그림 5]에서 볼 수 있듯이 단일 <strong>FeedForward</strong> 블록이 여러 <strong>FeedForward</strong> 블록으로 교체되는 것을 의미한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/8f17c024-bfc8-48df-a0c7-227c31e4b3fc/image.png" alt=""></p>
<p>[Figure 5: An illustration of the Mixture-of-Experts (MoE) module in DeepSeek V3/R1 (right) compared to an LLM with a standard FeedForward block (left).]</p>
<p>Transformer 블록 내부의 FeedForward 블록(위 그림의 어두운 회색 블록)은 일반적으로 모델 전체 파라미터의 상당 부분을 차지한다. (참고로, transformer 블록, 그리고 그에 따른 FeedForward 블록은 LLM 내에서 여러 번 반복되며, DeepSeek-V3의 경우 61회 반복된다.)</p>
<p>따라서 단일 FeedForward 블록을 여러 FeedForward 블록으로 대체하면(MoE 구조에서처럼) 모델의 총 파라미터 수가 크게 증가한다. </p>
<p>그러나 핵심적인 기법은 <strong>모든 토큰에 대해 모든 전문가(expert)를 사용(&#39;활성화&#39;)하지 않는다</strong>는 점이다. 대신, <strong>&#39;라우터(router)&#39;가 토큰당 전문가의 일부 서브셋(subset)만을 선택</strong>한다.</p>
<blockquote>
<p>[본문에 없는 추가 설명]</p>
</blockquote>
<ul>
<li><strong>MoE architecture의 Router</strong> 
: 각 토큰에게 가장 적합한 전문가(Expert)가 누구인지 결정하고, 작업을 효율적으로 분배하는 중간 관리자의 역할<blockquote>
</blockquote>
</li>
<li><strong>Router의 작동 원리</strong><ol>
<li><code>토큰 정보 입력</code> : Transformer 블록의 이전 레이어에서 처리된 결과, 즉 특정 토큰에 대한 정보가 담긴 벡터(hidden state)가 라우터에 입력</li>
<li><code>전문가별 &#39;적합도&#39; 점수 계산</code> : 라우터는 그 자체로 하나의 작은 신경망(보통 간단한 Feedforward layer)임. 입력된 토큰 벡터를 받아서, 가지고 있는 모든 전문가의 수만큼의 &#39;점수(logit)&#39;를 계산. 
예를 들어 전문가가 128명이라면, 라우터는 128개의 점수를 출력하고, 각 점수는 &quot;이 토큰을 처리하는 데 이 전문가가 얼마나 적합할까?&quot;를 나타냄.</li>
<li><code>Top-K(상위 K개) 전문가 선택</code> : 계산된 점수가 가장 높은 전문가 K개를 선택. 이 K값은 모델을 설계할 때 미리 정해주는 하이퍼파라미터이며, 보통 2 ~ 8처럼 아주 작은 수가 됨</li>
<li>가중치(Gating Value) 계산 및 분배 : 전문가를 선택한 후, <strong>각 전문가에게 &#39;얼마나 중요하게&#39; 일을 맡길지 가중치를 부여</strong>. 2단계에서 계산한 점수에 Softmax 함수를 적용하여 확률화</li>
<li>최종 결과 취합 : 선택된 전문가들이 각자 계산을 수행한 후, 라우터는 4단계에서 계산한 가중치를 적용하여 그 결과들을 하나로 합함. 합쳐진 결과는 MoE Layer의 최종 출력이 되어 다음 TF 블록으로 전달됨</li>
</ol>
</li>
</ul>
<p>한 번에 소수의 전문가만 활성화되므로, MoE 모듈은 <strong>전체 파라미터 세트를 항상 사용하는 &#39;밀집(dense)&#39; 모듈</strong>과 <strong>대조적으로</strong> <strong>&#39;희소(sparse)&#39; 모듈</strong>이라고 불린다. 그러나 MoE를 통한 많은 총 파라미터 수는 <strong>LLM의 &#39;용량(capacity)&#39;을 증가</strong>시키는데, 이는 훈련 중에 더 많은 지식을 습득할 수 있음을 의미한다. </p>
<p>한편, <strong>모든 파라미터를 동시에 사용하지 않기 때문에 희소성(sparsity)은 추론의 효율성을 유지</strong>시킨다.</p>
<p>예를 들어, DeepSeek-V3는 MoE 모듈당 256개의 전문가를 가지며, 총 6,710억 개의 파라미터를 보유한다. 그러나 추론 시에는 한 번에 9개의 전문가(공유 전문가 1개 + 라우터가 선택한 8개)만이 활성화된다. 이는 추론 단계마다 전체 6,710억 개가 아닌 370억 개의 파라미터만 사용됨을 의미한다.</p>
<p>DeepSeek-V3의 MoE 설계에서 주목할 만한 특징 중 하나는 <strong>&#39;공유 전문가(shared expert)&#39;</strong>를 사용한다는 점이다. 이는 모든 토큰에 대해 항상 활성화되는 전문가이다. 이 아이디어는 새로운 것이 아니며, DeepSeek 2024 MoE 논문과 2022년 DeepSpeedMoE 논문에서 이미 소개된 바 있다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/6dc76961-cf51-4cc6-9534-fa5fd4a3e49c/image.png" alt=""></p>
<p>[Figure 6: An annotated figure from <a href="https://arxiv.org/abs/2401.06066"> &quot;DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models&quot;</a>]</p>
<p>공유 전문가를 두는 것의 이점은 DeepSpeedMoE 논문에서 처음 언급되었으며, 해당 논문에서는 공유 전문가가 없는 경우에 비해 전반적인 모델링 성능을 향상시킨다는 점을 발견했다. 이는 공통적이거나 반복적인 패턴을 여러 개별 전문가가 학습할 필요가 없게 되어, 각 전문가가 더 특화된 패턴을 학습할 수 있는 여지를 더 많이 확보하게 되기 때문으로 추정된다.</p>
<h2 id="13-deepseek-요약">1.3 DeepSeek 요약</h2>
<p>요약하면, DeepSeek-V3는 6,710억 개의 파라미터를 가진 대규모 모델로, 출시 당시 4,050억 개의 파라미터를 가진 Llama 3를 포함한 다른 공개 가중치(open-weight) 모델들을 능가하는 성능을 보였다. </p>
<p>모델 규모는 더 크지만, 토큰당 일부 파라미터(단 370억 개)만을 활성화하는 <strong>Mixture-of-Experts (MoE)</strong> 아키텍처 덕분에 추론 시 효율성은 훨씬 더 높다.</p>
<p>또 다른 핵심적인 차별점은 DeepSeek-V3가 <strong>Grouped-Query Attention (GQA)</strong> 대신 <strong>Multi-Head Latent Attention (MLA)</strong>를 사용한다는 것이다. </p>
<p>MLA와 GQA는 모두 표준 Multi-Head Attention (MHA)에 대한 추론 효율적인 대안이며, 특히 KV 캐싱을 사용할 때 그 효과가 두드러진다. MLA는 구현이 더 복잡하지만, DeepSeek-V2 논문의 한 연구에서는 GQA보다 더 나은 모델링 성능을 제공하는 것으로 나타났다.</p>
<hr>
<h1 id="2-olmo-2">2. OLMo 2</h1>
<p>비영리 단체인 Allen Institute for AI의 OLMo 모델 시리즈는 훈련 데이터와 코드의 투명성, 그리고 비교적 상세한 기술 보고서 덕분에 주목할 만하다.</p>
<p>OLMo 모델이 벤치마크나 리더보드 최상위권에 있는 경우는 드물지만, 모델이 상당히 정제되어 있고, 더 중요하게는 그 투명성 덕분에 LLM 개발을 위한 훌륭한 청사진을 제공한다.</p>
<p>OLMo 모델은 투명성으로 널리 알려져 있지만, 성능 또한 준수한 편이다. 실제로 1월 출시 시점(Llama 4, Gemma 3, Qwen 3 이전)에는 아래 [그림 7]에서 볼 수 있듯이, OLMo 2 모델이 연산 대비 성능의 파레토 프론티어(Pareto frontier)에 위치해 있었다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/ef242868-478f-468c-8b40-a2c1410e16e0/image.png" alt=""></p>
<p>[Figure 7: Modeling benchmark performance (higher is better) vs pre-training cost (FLOPs; lower is better) for different LLMs. This is an annotated figure from the <a href="https://arxiv.org/abs/2501.00656">OLMo 2 paper</a>]</p>
<p>본 아티클의 서두에서 언급했듯이, 관리 가능한 분량을 위해 LLM 아키텍처 세부 사항(훈련이나 데이터 제외)에만 초점을 맞춘다. </p>
<p>OLMo2의 흥미로운 아키텍처 설계 선택은 주로 <strong>정규화(normalization)</strong>에 관한 것으로 요약된다. 이는 <strong>RMSNorm</strong> 레이어의 배치와 <strong>QK-norm</strong>의 추가이며, 아래에서 논의할 예정이다.</p>
<p>언급할 만한 또 다른 사항은 OLMo 2가 MLA나 GQA 대신 여전히 전통적인 Multi-Head Attention (MHA)을 사용한다는 점이다.</p>
<h2 id="21-normalization-layer-placement">2.1 <strong>Normalization Layer Placement</strong></h2>
<p>전반적으로 OLMo 2는 다른 최신 LLM과 유사하게 기존 GPT 모델의 아키텍처를 대체로 따르지만, 몇 가지 주목할 만한 차이점이 존재한다. 정규화 레이어부터 살펴본다.</p>
<p>Llama, Gemma 및 대부분의 다른 LLM과 마찬가지로, OLMo 2는 <strong>LayerNorm</strong>에서 <strong>RMSNorm</strong>으로 전환했다.</p>
<p>그러나 RMSNorm은 이미 널리 알려진 기술이므로(기본적으로 <strong>LayerNorm</strong>에서 학습 가능한 파라미터 수를 줄인 단순화된 버전), <strong>RMSNorm</strong>과 <strong>LayerNorm</strong>의 비교 논의는 생략한다. (RMSNorm 코드 구현은 &#39;GPT-2 to Llama 변환 가이드&#39;에서 찾아볼 수 있다.)</p>
<p>하지만 <strong>RMSNorm</strong> 레이어의 배치에 대해서는 논의할 가치가 있다. 기존 transformer(&quot;Attention is all you need&quot; 논문)는 transformer 블록 내 두 개의 정규화 레이어를 각각 어텐션 모듈과 <strong>FeedForward</strong> 모듈 <strong>뒤에</strong> 배치했다. 이는 <strong>Post-LN</strong> 또는 <strong>Post-Norm</strong>으로도 알려져 있다.</p>
<p>이후에 등장한 GPT와 대부분의 LLM은 정규화 레이어를 어텐션 및 <strong>FeedForward</strong> 모듈 <strong>앞에</strong> 배치했으며, 이는 <strong>Pre-LN</strong> 또는 <strong>Pre-Norm</strong>으로 알려져 있다. Post-Norm과 Pre-Norm의 비교는 아래 그림에 나타나 있다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/bb1613f8-5b38-4c20-89da-3dfd961eec3e/image.png" alt=""></p>
<p>[Figure 8: A comparison of Post-Norm, Pre-Norm, and OLMo 2&#39;s flavor of Post-Norm.]</p>
<p>2020년 <a href="https://arxiv.org/abs/2002.04745">Xiong et al.</a>  연구에서는 <strong>Pre-LN</strong>이 초기화(initialization) 시 더 안정적인 그래디언트(gradient)를 보인다는 점을 입증했다. 더 나아가, 연구진들은 <strong>Pre-LN</strong>이 세심한 learning rate warm-up 없이도 잘 작동한다고 언급했는데, 이는 <strong>Post-LN</strong>에서는 필수적인 기법이다.</p>
<p>이러한 배경을 언급하는 이유는 OLMo 2가 <strong>Post-LN</strong>의 한 형태를 채택했기 때문이다. (다만 LayerNorm 대신 RMSNorm을 사용하므로, 여기서는 이를 <strong>Post-Norm</strong>이라 칭한다.)</p>
<p>OLMo 2에서는 정규화 레이어를 어텐션 및 FeedForward 레이어 앞에 배치하는 대신, 위 그림과 같이 그 뒤에 배치한다. 그러나 기존 transformer 아키텍처와는 대조적으로 정규화 레이어가 여전히 잔차 레이어(residual layer, skip connection) 내부에 위치한다는 점에 주목할 필요가 있다.</p>
<p>이처럼 정규화 레이어의 위치를 변경한 이유는 아래 그림에서 볼 수 있듯이 훈련 안정성(training stability)에 도움이 되었기 때문이다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/522bb028-215c-46c9-8273-0a03eaaeb7d4/image.png" alt=""></p>
<p>[Figure 9: A plot showing the training stability for Pre-Norm (like in GPT-2, Llama 3, and many others) versus OLMo 2&#39;s flavor of Post-Norm. This is an annotated figure from the <a href="https://arxiv.org/abs/2501.00656">OLMo 2 paper</a>]</p>
<p>아쉽게도 해당 그림은 재배치의 결과를 별개의 개념인 QK-Norm과 함께 보여주고 있어, 정규화 레이어 재배치 단독의 기여도를 파악하기는 어렵다.</p>
<h2 id="22-qk-norm"><strong>2.2 QK-Norm</strong></h2>
<p>이전 섹션에서 <code>QK-norm</code>이 이미 언급되었고, 이후에 다룰 Gemma 2 및 Gemma 3와 같은 다른 LLM에서도 QK-norm을 사용하므로, 이것이 무엇인지 간략히 논의한다.</p>
<p><strong>QK-Norm</strong>은 <strong>본질적으로 또 하나의 RMSNorm 레이어</strong>라고 할 수 있다. 이는 Multi-Head Attention (MHA) 모듈 내부에 위치하며, RoPE를 적용하기 전에 쿼리(q)와 키(k)에 적용된다.</p>
<p>앞서 언급했듯이, <strong>QK-Norm은 Post-Norm과 함께 훈련을 안정화하는 역할</strong>을 한다. 참고로, QK-Norm은 OLMo 2에서 처음 개발된 것이 아니라 2023년의 <a href="https://arxiv.org/abs/2302.05442">&#39;Scaling Vision Transformers&#39; 논문</a>에 그 기원을 두고 있다.</p>
<h2 id="23-olmo-2-summary">2.3 OLMo 2 Summary</h2>
<p>요컨대, OLMo 2 아키텍처의 주목할 만한 설계 결정은 주로 <strong>RMSNorm의 배치</strong>에 관한 것이다. 즉, 어텐션 및 FeedForward 모듈 이전 대신 <strong>이후에 RMSNorm을 배치하는 것(Post-Norm의 일종)</strong>과, <strong>어텐션 메커니즘 내의 쿼리와 키에 RMSNorm을 추가하는 것(QK-Norm)</strong>이며, 이 두 가지는 함께 훈련 손실(training loss)을 안정화하는 데 기여한다.</p>
<p>아래 그림은 OLMo 2와 Llama 3를 나란히 비교한 것이다. 그림에서 볼 수 있듯이, OLMo 2가 GQA 대신 전통적인 MHA를 여전히 사용한다는 점을 제외하면 두 아키텍처는 비교적 유사하다. (다만, OLMo 2 팀은 3개월 후 GQA를 사용하는 32B(320억) 파라미터 변형 모델을 출시했다.)</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/8fa9c425-6d29-4790-a95e-20dbedde005e/image.png" alt=""></p>
<p>[Figure 10: An architecture comparison between Llama 3 and OLMo 2.]</p>
<hr>
<h1 id="gemma-3">Gemma 3</h1>
<p>구글의 Gemma 모델은 Llama 시리즈와 같은 다른 유명 모델에 비해 상대적으로 저평가된 경향이 있으나, 꾸준히 우수한 성능을 보여왔다.</p>
<p>Gemma의 특징 중 하나는 <strong>(다국어 지원을 강화하기 위한) 비교적 큰 어휘(vocabulary) 크기</strong>와, (8B 또는 70B 대비) 27B 크기에 더 중점을 둔다는 점이다. 참고로 Gemma 2는 1B, 4B, 12B와 같은 더 작은 크기로도 제공된다.</p>
<p>27B 크기는 8B 모델보다 훨씬 성능이 뛰어나면서도 70B 모델만큼 자원 집약적이지 않아, 성능과 효율성 사이의 이상적인 지점(sweet spot)에 해당한다. 또한 로컬 환경에서도 원활하게 실행 가능하다.</p>
<p>Gemma 3의 또 다른 흥미로운 특징은 다음과 같다. </p>
<p>앞서 논의했듯이, Deepseek-V3/R1과 같은 다른 모델들은 주어진 모델 크기에서 추론 시 메모리 요구량을 줄이기 위해 <strong>Mixture-of-Experts (MoE)</strong> 아키텍처를 사용한다. (MoE 접근 방식은 이후에 다룰 여러 다른 모델에서도 사용된다.) </p>
<p>Gemma 3는 연산 비용을 줄이기 위해 다른 기법, 즉 <strong>슬라이딩 윈도우 어텐션(sliding window attention)</strong>을 사용한다.</p>
<h2 id="31-sliding-window-attention">3.1 Sliding Window Attention</h2>
<p><strong>Sliding window attention</strong>(2020년 LongFormer 논문에서 처음 소개되었으며 Gemma 2에서도 이미 사용됨)을 통해, Gemma 3는 아래 그림에서 볼 수 있듯이 KV cache의 메모리 요구량을 상당량 줄일 수 있었다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4a48d846-04dc-4277-bc87-b45dba36d4c7/image.png" alt=""></p>
<p>[Figure 11: An annotated figure from <a href="https://arxiv.org/abs/2503.19786">Gemma 3</a> paper showing the KV cache memory savings via sliding window attention.]</p>
<p>그렇다면 <code>sliding window attention</code>이란 무엇인가? 일반적인 self-attention은 각 시퀀스 요소가 다른 모든 시퀀스 요소에 접근할 수 있으므로 &#39;전역(global)&#39; 어텐션 메커니즘으로 간주할 수 있다. 이와 대조적으로, sliding window attention은 <strong>현재 쿼리 위치 주변의 컨텍스트 크기를 제한하므로 &#39;지역(local)&#39; 어텐션</strong>으로 볼 수 있다. 이는 아래 그림에 설명되어 있다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/c755e35a-5e23-4c69-83ca-de19b8e74e8b/image.png" alt=""></p>
<p>[Figure 12: A comparison between regular attention (left) and sliding window attention (right).]</p>
<p>Sliding window attention은 <strong>Multi-Head Attention</strong>과 <strong>Grouped-Query Attention</strong> 모두에 사용될 수 있으며, Gemma 3는 <strong>Grouped-Query Attention</strong>을 사용한다는 점에 유의해야 한다.</p>
<p>앞서 언급했듯이, <strong>sliding window attention</strong>은 지역(local) 윈도우가 현재 쿼리 위치를 둘러싸고 함께 이동하기 때문에 &#39;지역(local)&#39; 어텐션이라고도 불린다. 반면, 일반적인 어텐션은 각 토큰이 다른 모든 토큰에 접근할 수 있으므로 &#39;전역(global)&#39; 어텐션이다.</p>
<p>이전 버전인 Gemma 2 아키텍처에서도 <strong>sliding window attention</strong>이 사용된 바 있다. Gemma 3의 차이점은 전역(일반) 어텐션과 지역(슬라이딩) 어텐션 간의 비율을 조정했다는 점이다.</p>
<p>예를 들어, Gemma 2는 <strong>sliding window</strong> 지역 어텐션과 전역 어텐션을 1:1 비율로 결합한 하이브리드 어텐션 메커니즘을 사용한다. 각 토큰은 인접한 컨텍스트의 4k 토큰 윈도우에 어텐션을 적용할 수 있다.</p>
<p>Gemma 2가 격층으로 <strong>sliding window attention</strong>을 사용한 반면, Gemma 3는 이제 5:1 비율을 적용한다. 이는 5개의 <strong>sliding window (지역)</strong> 어텐션 레이어마다 단 1개의 전체 어텐션 레이어만 존재함을 의미한다. 더 나아가, 슬라이딩 윈도우 크기는 4096(Gemma 2)에서 1024(Gemma 3)로 축소되었다. 이는 모델의 초점을 더 효율적인 지역화된 연산으로 이동시키는 변화이다.</p>
<p>Gemma 3의 ablation study에 따르면, 아래 그림에서 볼 수 있듯이 <strong>sliding window attention</strong>의 사용은 모델링 성능에 미미한 영향을 미치는 것으로 나타났다.</p>
<h2 id="32-normalization-layer-placement-in-gemma-3">3.2 Normalization Layer Placement in Gemma 3</h2>
<p>사소하지만 흥미로운 점은 Gemma 3가 Grouped-Query Attention 모듈을 중심으로 <strong>Pre-Norm</strong>과 <strong>Post-Norm</strong> 설정 모두에서 <strong>RMSNorm</strong>을 사용한다는 것이다.</p>
<p>이는 Gemma 2와 유사하지만, (1) 기존 transformer(“Attention is all you need”)에서 사용된 <strong>Post-Norm</strong>, (2) GPT-2에 의해 대중화되어 이후 많은 아키텍처에서 사용된 <strong>Pre-Norm</strong>, (3) 앞서 살펴본 OLMo 2의 <strong>Post-Norm</strong> 방식과 모두 다르다는 점에서 주목할 가치가 있다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/588df732-4a82-421c-ad0e-542bfe02b845/image.png" alt=""></p>
<p>[Figure 14: An architecture comparison between OLMo2 and Gemma 3; note the additional normalization layers in Gemma 3.]</p>
<p>이러한 정규화 레이어 배치는 <strong>Pre-Norm</strong>과 <strong>Post-Norm</strong>의 장점을 모두 취할 수 있어 비교적 직관적인 접근법으로 평가된다. 추가적인 정규화는 최악의 경우 중복으로 인한 약간의 비효율성을 야기할 수 있으나, 전체적인 관점에서 <strong>RMSNorm</strong>의 연산 비용은 상대적으로 낮으므로 실제로는 눈에 띄는 영향을 미치지 않을 것으로 보인다.</p>
<h2 id="33-gemma-3-요약">3.3 Gemma 3 요약</h2>
<p>Gemma 3는 우수한 성능을 보이는 공개 가중치(open-weight) LLM으로, 오픈소스 커뮤니티에서 상대적으로 저평가된 경향이 있다. 가장 흥미로운 부분은 효율성 향상을 위한 <strong>sliding window attention</strong>의 사용이며, 향후 MoE와 결합하는 방식도 기대된다.</p>
<p>또한, Gemma 3는 어텐션 및 <strong>FeedForward</strong> 모듈의 앞과 뒤 모두에 <strong>RMSNorm</strong> 레이어를 배치하는 독특한 정규화 레이어 배치 구조를 가진다.</p>
<h2 id="34-추가-gemma-3n">3.4 추가: Gemma 3n</h2>
<p>Gemma 3 출시 몇 달 후, 구글은 스마트폰에서 실행하는 것을 목표로 소형 기기 효율성에 최적화된 Gemma 3 모델인 <strong>Gemma 3n</strong>을 공개했다.</p>
<p>Gemma 3n에서 더 나은 효율성을 달성하기 위한 변경 사항 중 하나는 소위 <strong>Per-Layer Embedding (PLE)</strong> 파라미터 레이어이다. 여기서 핵심 아이디어는 모델 파라미터의 일부 서브셋(subset)만을 GPU 메모리에 유지하는 것이다. 이후 텍스트, 오디오, 비전 양식(modality)과 같은 토큰-레이어별 임베딩은 필요에 따라 CPU나 SSD에서 스트리밍된다.</p>
<p>아래 그림은 PLE의 메모리 절감 효과를 보여주며, 표준 Gemma 3 모델에 대해 54.4억 개의 파라미터를 나열하고 있다. 이는 Gemma 3 4B(40억) 변형 모델을 지칭하는 것으로 보인다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/76268a4f-f4e8-4c95-900d-84208c3dd391/image.png" alt=""></p>
<p>[Figure 15: An annotated figure from <a href="https://developers.googleblog.com/en/introducing-gemma-3n/">Google&#39;s Gemma 3n blog </a> illustrating the PLE memory savings.]</p>
<p>파라미터 수 간의 불일치(54.4억 개 vs 40억 개?)는 구글이 LLM의 파라미터 수를 보고하는 독특한 방식 때문이다. </p>
<p>구글은 종종 모델을 더 작게 보이게 하기 위해 임베딩 파라미터를 제외하지만, 이 경우처럼 모델을 더 크게 보이게 하는 것이 유리할 때는 이를 포함하기도 한다. 이러한 접근 방식은 구글에만 국한된 것이 아니며, 업계 전반에 걸쳐 일반적인 관행이 되었다.</p>
<p>또 다른 흥미로운 기법은 <a href="https://arxiv.org/abs/2310.07707"><strong>MatFormer</strong></a> 개념(Matryoshka Transformer의 줄임말)이다. 예를 들어, Gemma 3n은 더 작고 독립적으로 사용 가능한 모델로 분할될 수 있는 단일 공유 LLM(transformer) 아키텍처를 사용한다. 각 조각(slice)은 자체적으로 기능하도록 훈련되므로, 추론 시에는 대형 모델 전체 대신 필요한 부분만 실행할 수 있다.</p>
<hr>
<h1 id="4-mistral-small-31">4. Mistral Small 3.1</h1>
<p>Gemma 3 직후인 3월에 출시된 <strong>Mistral Small 3.1</strong> 24B는 더 빠르면서도 여러 벤치마크(수학 제외)에서 Gemma 3 27B를 능가하는 성능을 보였다는 점에서 주목할 만하다.</p>
<p><strong>Mistral Small 3.1</strong>이 Gemma 3보다 낮은 추론 지연 시간(inference latency)을 보이는 이유는 <strong>자체 토크나이저(tokenizer) 사용과 더불어 KV cache 및 레이어 수를 줄였기 때문</strong>으로 추정된다. 그 외에는 아래 그림에서 볼 수 있듯이 표준적인 아키텍처를 따른다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/ad7c31b8-3fc4-4c22-b061-30ee2495c811/image.png" alt=""></p>
<p>[Figure 16: An architecture comparison between Gemma 3 27B and Mistral 3.1 Small 24B.]</p>
<p>흥미로운 점은, 이전 Mistral 모델들은 <strong>sliding window attention</strong>을 활용했지만 Mistral Small 3.1에서는 이를 사용하지 않은 것으로 보인다는 점이다. </p>
<p>따라서 Mistral이 Gemma 3처럼 슬라이딩 윈도우를 사용하는 Grouped-Query Attention 대신 일반적인 Grouped-Query Attention을 사용하기 때문에, 더 최적화된 코드(예: FlashAttention)를 사용할 수 있어 추가적인 추론 연산 절감 효과가 있을 수 있다. </p>
<p>예를 들어, sliding window attention이 메모리 사용량을 줄이는 반면, 추론 지연 시간(inference latency)을 반드시 줄이는 것은 아니며, Mistral Small 3.1은 후자에 더 중점을 둔 것으로 추측된다.</p>
<hr>
<h1 id="5-llama-4">5. Llama 4</h1>
<p>본 아티클의 앞부분에서 광범위하게 다룬 Mixture-of-Experts (MoE)에 대한 논의는 <a href="https://ai.meta.com/blog/llama-4-multimodal-intelligence/">Llama 4</a>를 이해하는 데에도 유용하다. <strong>Llama 4</strong> 역시 MoE 접근 방식을 채택했으며, 그 외에는 아래 그림에서 볼 수 있듯이 DeepSeek-V3와 매우 유사한 비교적 표준적인 아키텍처를 따른다. (Llama 4는 Gemma 및 Mistral과 같은 모델과 유사하게 네이티브 멀티모달(multimodal)을 지원한다. 그러나 본 아티클은 언어 모델링에 초점을 맞추므로, 텍스트 모델에만 집중하여 다룬다.)</p>
<p><code>Llama 4 Maverick</code> 아키텍처가 전반적으로 <code>DeepSeek-V3</code>와 매우 유사해 보이지만, 주목할 만한 몇 가지 흥미로운 차이점이 있다.</p>
<p>첫째, <code>Llama 4</code>는 이전 모델들과 유사하게 <code>Grouped-Query Attention</code>을 사용하는 반면, <code>DeepSeek-V3</code>는 본 논문 서두에서 논의했던 <code>Multi-Head Latent Attention</code>을 사용한다. </p>
<p><code>DeepSeek-V3</code>와 <code>Llama 4 Maverick</code>은 모두 매우 큰 아키텍처이며, <code>DeepSeek-V3</code>의 총 파라미터 수는 약 68% 더 많다. </p>
<p>하지만, <code>DeepSeek-V3</code>는 370억 개의 활성 파라미터를 가져 <code>Llama 4 Maverick</code>(170억 개)보다 두 배 이상 많은 활성 파라미터를 가진다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/5038bffb-e155-47ac-aeb1-c289c0cde871/image.png" alt=""></p>
<p>[Figure 17: An architecture comparison between DeepSeek V3 (671-billion parameters) and Llama 4 Maverick (400-billion parameters).]</p>
<p><code>Llama 4 Maverick</code>은 <code>DeepSeek-V3</code>(각각 2,048의 hidden size를 가진 9개의 활성 expert)에 비해 더 적지만 더 큰 expert(각각 8,192의 hidden size를 가진 2개의 활성 expert)를 사용하는 더 고전적인 <code>MoE</code> 설정을 채택한다. </p>
<p>또한, <code>DeepSeek</code>은 첫 3개를 제외한 각 transformer 블록에 <code>MoE</code> 레이어를 사용하는 반면, <code>Llama 4</code>는 한 블록 건너 <code>MoE</code>와 <code>dense</code> 모듈을 번갈아 가며 사용한다.</p>
<p>아키텍처 간의 많은 사소한 차이점을 고려할 때, 최종 모델 성능에 미치는 정확한 영향을 파악하기는 어렵다. 그러나 핵심은 2025년에 <code>MoE</code> 아키텍처의 인기가 크게 증가했다는 점이다.</p>
<hr>
<h1 id="6-qwen3">6. Qwen3</h1>
<p>Qwen 팀은 꾸준히 고품질의 공개 가중치(open-weight) LLM을 출시해왔다. 실제로 NeurIPS 2023에서 열린 LLM 효율성 챌린지(efficiency challenge)의 최상위 수상 솔루션들은 모두 Qwen2 기반이었다.</p>
<p>Qwen3 역시 각 크기 등급에서 리더보드 최상위에 오르며 성공적인 모델 시리즈로 자리매김했다. 7개의 밀집(dense) 모델(0.6B, 1.7B, 4B, 8B, 14B, 32B)과 2개의 <strong>MoE</strong> 모델(30B-A3B, 235B-A22B)이 있다.</p>
<p>(참고로, &quot;Qwen3&quot;의 공백 부재는 오타가 아니며, Qwen 개발팀이 선택한 원 표기를 따른 것이다.)</p>
<h2 id="61-qwen3-dense">6.1 Qwen3 (Dense)</h2>
<p>먼저 밀집(dense) 모델 아키텍처를 논의한다. 이 글을 작성하는 시점에서 0.6B 모델은 현 세대 공개 가중치 모델 중 가장 작은 모델일 가능성이 높다. </p>
<p>작은 크기에도 불구하고 매우 우수한 성능을 보이며, 로컬 환경에서 실행 시 높은 token/sec 처리량과 낮은 메모리 사용량을 특징으로 한다. 더 나아가, 작은 크기 덕분에 (교육 목적으로) 로컬 환경에서 훈련하기도 용이하다.</p>
<p>이러한 장점들로 인해, Qwen3 0.6B는 여러 활용 사례에서 Llama 3 1B를 대체할 수 있는 강력한 대안으로 부상했다. 두 아키텍처 간의 비교는 아래와 같다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/a7a5f2e2-8f4c-49a4-9d5a-d75431b1efcb/image.png" alt=""></p>
<p>[Figure 18: An architecture comparison between Qwen3 0.6B and Llama 3 1B; notice that Qwen3 is a deeper architecture with more layers, whereas Llama 3 is a wider architecture with more attention heads.]</p>
<p>위 그림의 연산 성능 수치는 A100 GPU에서 실행된 PyTorch 직접 구현 코드를 기반으로 한다. 그림에서 볼 수 있듯이, Qwen3는 전반적으로 더 작은 아키텍처이므로 메모리 사용량이 더 적으며, 더 작은 은닉층(hidden layer)과 더 적은 어텐션 헤드를 사용한다. 그러나 Llama 3보다 더 많은 transformer 블록을 사용하기 때문에 실행 시간은 더 느리다(더 낮은 tokens/sec 생성 속도).</p>
<h2 id="62-qwen3-moe">6.2 Qwen3 (MoE)</h2>
<p>앞서 언급했듯이, Qwen3는 30B-A3B와 235B-A22B 두 가지 MoE 버전으로도 제공된다. Qwen3와 같은 일부 아키텍처가 일반(밀집, dense) 버전과 MoE(희소, sparse) 버전으로 모두 제공되는 이유는 무엇인가?</p>
<p>본 아티클 서두에서 언급했듯이, <strong>MoE 버전은 대규모 기본 모델의 추론 비용을 줄이는 데 도움</strong>이 된다. 밀집(dense) 버전과 MoE 버전을 모두 제공함으로써 사용 목적과 제약 조건에 따라 유연하게 선택할 수 있는 폭을 넓혀준다.</p>
<p>밀집(dense) 모델은 일반적으로 <strong>다양한 하드웨어에서 미세조정(fine-tune), 배포 및 최적화</strong>하기가 더 용이하다.</p>
<p>반면, <strong>MoE 모델은 추론 확장성(scaling inference)에 최적화</strong>되어 있다. 예를 들어, 고정된 추론 예산 하에서 추론 비용을 비례적으로 증가시키지 않으면서도 더 높은 전체 모델 용량(즉, 더 큰 크기로 인한 훈련 중 지식 습득량)을 달성할 수 있다.</p>
<p>두 가지 유형을 모두 출시함으로써, Qwen3 시리즈는 더 넓은 범위의 사용 사례를 지원할 수 있다. 즉, 견고성, 단순성 및 미세조정을 위해서는 밀집 모델을, 대규모 환경에서의 효율적인 서빙을 위해서는 MoE 모델을 사용할 수 있다.</p>
<p>본 섹션을 마무리하며, Qwen3 235B-A22B(A22B는 &#39;22B 활성 파라미터&#39;를 의미)를 거의 두 배 많은 활성 파라미터(37B)를 가진 DeepSeek-V3와 비교해 본다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/50b1e4d9-60b5-4340-8d73-850fdf50af5f/image.png" alt=""></p>
<p>[Figure 19: An architecture comparison between DeepSeek-V3 and Qwen3 235B-A22B.]</p>
<p>위 그림에서 볼 수 있듯이, DeepSeek-V3와 Qwen3 235B-A22B 아키텍처는 매우 유사하다. 그러나 주목할 만한 점은 <strong>Qwen3 모델이 공유 전문가(shared expert)를 사용하지 않는</strong> 방향으로 변경되었다는 것이다 (<a href="https://qwenlm.github.io/blog/qwen2.5-max/">Qwen2.5-MoE</a>와 같은 이전 Qwen 모델은 공유 전문가를 사용했다).</p>
<p>아쉽게도 Qwen3 팀은 공유 전문가를 사용하지 않게 된 이유를 공개하지 않았다. 추측건대, Qwen2.5-MoE의 전문가 2개에서 Qwen3의 8개로 늘리면서 해당 설정에서는 훈련 안정성을 위해 공유 전문가가 더 이상 필요하지 않았을 수 있다. </p>
<p>이를 통해 8+1개가 아닌 8개의 전문가만 사용함으로써 추가적인 연산/메모리 비용을 절감할 수 있었을 것이다. (다만, 이것이 DeepSeek-V3가 여전히 공유 전문가를 유지하는 이유를 설명해주지는 않는다.)</p>
<blockquote>
<p><strong>업데이트.</strong> Qwen3 개발자 중 한 명인 Junyang Lin은 다음과 같이 답변했다:</p>
</blockquote>
<p>그 당시 Qwen 팀은 공유 전문가에서 충분히 유의미한 개선점을 찾지 못했으며, 공유 전문가로 인해 발생하는 추론 최적화에 대해 우려했다. 솔직히 이 질문에 대한 명확한 답은 없다.</p>
<blockquote>
</blockquote>
<hr>
<h1 id="7-smollm3">7. SmolLM3</h1>
<p><a href="https://huggingface.co/blog/smollm3"><strong>SmolLM3</strong></a>는 본 아티클에서 다룬 다른 LLM만큼 널리 알려져 있지는 않지만, 아래 그림에서 볼 수 있듯이 1.7B와 4B Qwen3 모델 사이의 비교적 작고 사용하기 편리한 30억 파라미터 크기에서 매우 우수한 모델링 성능을 제공하므로 함께 포함할 만한 흥미로운 모델로 판단된다.</p>
<p>더욱이, OLMo와 유사하게 많은 훈련 세부 정보를 공유했다는 점 또한 주목할 만하며, 이는 업계에서 드문 사례로 긍정적으로 평가된다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/186facd9-1811-46a0-a6a1-6f4400ecd6a2/image.png" alt=""></p>
<p>[Figure 20: An annotated figure from the <a href="https://huggingface.co/blog/smollm3">SmolLM3 announcement post</a>,comparing the SmolLM3 win rate to Qwen3 1.7B and 4B as well as Llama 3 3B and Gemma 3 4B.]</p>
<p>아래 아키텍처 비교 그림에서 볼 수 있듯이, SmolLM3 아키텍처는 상당히 표준적으로 보인다. 다만, 가장 흥미로운 측면은 NoPE (No Positional Embeddings)를 사용했다는 점이다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/5345b8ae-37a4-4d4d-9922-9555f4bae19a/image.png" alt=""></p>
<p>[Figure 21: A side-by-side architecture comparison between Qwen3 4B and SmolLM3 3B.]</p>
<h3 id="71-no-positional-embeddings-nope">7.1 No Positional Embeddings (NoPE)</h3>
<p>LLM 맥락에서 <strong>NoPE</strong>는 2023년 논문(&quot;<a href="https://arxiv.org/abs/2305.19466">The Impact of Positional Encoding on Length Generalization in Transformers</a>&quot;)에 그 기원을 둔 비교적 오래된 아이디어로, 명시적인 위치 정보 주입(초기 GPT 아키텍처의 고전적인 절대 위치 임베딩 레이어나 오늘날의 RoPE와 같은)을 제거하는 것을 목표로 한다.</p>
<p>Transformer 기반 LLM에서 self-attention은 토큰의 순서와 관계없이 독립적으로 처리하기 때문에 일반적으로 위치 인코딩(positional encoding)이 필수적이다. </p>
<p>절대 위치 임베딩(Absolute position embedding)은 토큰 임베딩에 정보를 추가하는 별도의 임베딩 레이어를 더함으로써 이 문제를 해결한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4ed9e0fb-27fe-45c3-9437-3a9901ad1b25/image.png" alt=""></p>
<p>Figure 22: A modified figure from <a href="https://www.amazon.com/Build-Large-Language-Model-Scratch/dp/1633437167"> Build A Large Language Model (From Scratch)</a> book illustrating absolute positional embeddings.</p>
<p>반면, <strong>RoPE</strong>는 <strong>토큰 위치에 따라 쿼리 및 키 벡터를 회전시킴</strong>으로써 이 문제를 해결한다. 그러나 <strong>NoPE</strong> 레이어에서는 <strong>고정된 것이든, 학습된 것이든, 상대적인 것이든 어떤 종류의 위치 신호도 전혀 추가되지 않는다</strong>.</p>
<p>위치 임베딩이 없음에도 불구하고, 모델은 인과적 어텐션 마스크(causal attention mask) 덕분에 어떤 토큰이 먼저 오는지 여전히 알 수 있다. </p>
<p>이 마스크는 각 토큰이 미래의 토큰에 어텐션을 적용하는 것을 방지한다. 결과적으로, 위치 $t$에 있는 토큰은 위치 $≤t$에 있는 토큰들만 볼 수 있으므로, 자기회귀(autoregressive) 순서가 보존된다.</p>
<p>따라서 명시적으로 추가되는 위치 정보는 없지만, 모델 구조 자체에 암묵적인 방향성이 내재되어 있다. 그리고 LLM은 일반적인 경사 하강법 기반 훈련(gradient-descent-based training)에서 최적화 목표에 유익하다고 판단되면 이를 활용하는 법을 학습할 수 있다. (더 자세한 정보는 NoPE 논문의 정리를 참고할 수 있다.)</p>
<p>결론적으로 <strong>NoPE</strong> 논문은 위치 정보 주입이 필요하지 않다는 것을 발견했을 뿐만 아니라, <strong>NoPE</strong>가 더 나은 길이 일반화(length generalization) 성능을 보인다는 점도 발견했다. </p>
<p>이는 아래 그림에서 볼 수 있듯이, 시퀀스 길이가 증가함에 따라 LLM의 답변 성능 저하가 더 적다는 것을 의미한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/931a99f2-ad10-43d8-a672-a29369ff5052/image.png" alt=""></p>
<p>위에서 보여준 실험은 약 1억 개의 파라미터를 가진 비교적 작은 GPT 스타일 모델과 작은 컨텍스트 크기로 수행되었다는 점에 유의해야 한다. 이러한 결과가 더 크고 현대적인 LLM에 얼마나 잘 일반화되는지는 불분명하다.</p>
<p>이러한 이유로, SmolLM3 팀은 4번째 레이어마다 NoPE를 적용(혹은 RoPE를 생략)한 것으로 보인다.</p>
<p>[Figure 23: An annotated figure from the <a href="https://arxiv.org/abs/2305.19466">NoPE paper</a> showing better length generalization with NoPE.]</p>
<hr>
<h1 id="8-kimi-2">8. Kimi 2</h1>
<p><a href="https://moonshotai.github.io/Kimi-K2/"><strong>Kimi 2</strong></a>는 최근 AI 커뮤니티에서 매우 우수한 성능을 가진 공개 가중치(open-weight) 모델로 큰 반향을 일으켰다. 벤치마크에 따르면, 이 모델은 구글의 Gemini, Anthropic의 Claude, OpenAI의 ChatGPT 모델과 같은 최고의 독점(proprietary) 모델들과 대등한 성능을 보인다.</p>
<p>주목할 만한 측면은 <strong>AdamW 대신 비교적 새로운 Muon 옵티마이저의 변형을 사용</strong>했다는 점이다. 알려진 바로는, 이 규모의 상용(production) 모델에 AdamW 대신 Muon이 사용된 것은 이번이 처음이다 (이전에는 16B 규모까지만 확장성이 입증되었다). </p>
<p>그 결과 매우 양호한 훈련 손실 곡선(training loss curve)을 보였으며, 이는 앞서 언급한 벤치마크에서 이 모델이 최상위권에 오르는 데 기여했을 가능성이 높다.</p>
<p>손실(loss) 곡선이 스파이크(spike)가 없어 이례적으로 매끄럽다는 평가가 있지만, OLMo 2의 손실 곡선(아래 그림 참조)과 비교하면 특별히 더 매끄럽다고 보기는 어렵다 (또한, 훈련 안정성을 추적하기에는 그래디언트의 L2 norm이 더 나은 지표일 수 있다). </p>
<p>그러나 손실 곡선이 감소하는 양상은 주목할 만하다. 그러나 본 아티클의 서두에서 언급했듯이, 훈련 방법론은 다른 기회에 다룰 주제이다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/70dd7d90-04ce-4f8f-ab92-8e88ec15fa2b/image.png" alt=""></p>
<p>모델 자체는 1조 개의 파라미터 규모로, 이는 매우 인상적인 수치이다.</p>
<p>이 글을 작성하는 시점에서, 이 모델은 현 세대 LLM 중 가장 큰 모델일 수 있다 (Llama 4 Behemoth가 아직 출시되지 않았고, 독점 LLM은 제외하며, 구글의 1.6조 파라미터 Switch Transformer는 다른 세대의 인코더-디코더 아키텍처라는 제약 조건을 고려할 때).</p>
<p>또한 Kimi 2는 본 아티클의 서두에서 다룬 DeepSeek-V3 아키텍처를 사용한다는 점에서 논의가 다시 원점으로 돌아온다. 다만, 아래 그림에서 볼 수 있듯이 그 규모를 더 크게 확장했다는 차이점이 있다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/bdb46a74-943d-4511-86e9-60deb786cc5f/image.png" alt=""></p>
<p>[Figure 25: An architecture comparison between DeepSeek V3 and Kimi K2.
As shown in the figure above, Kimi 2.5 is basically the sam]</p>
<p>위 그림에서 볼 수 있듯이, Kimi 2.5는 <strong>MoE</strong> 모듈에서 더 많은 전문가(expert)를 사용하고 <strong>Multi-head Latent Attention (MLA)</strong> 모듈에서 더 적은 헤드(head)를 사용한다는 점을 제외하면 기본적으로 DeepSeek V3와 동일하다.</p>
<p>Kimi 2는 갑자기 등장한 것이 아니다. &#39;<a href="https://arxiv.org/abs/2501.12599">Kimi k1.5: Scaling Reinforcement Learning with LLMs</a>&#39; 논문에서 논의된 이전 Kimi 1.5 모델 또한 인상적인 성능을 보였다. </p>
<p>하지만 불운하게도 DeepSeek R1 모델 논문이 1월 22일 바로 같은 날에 발표되었다. 더욱이, 알려진 바로는 Kimi 1.5의 가중치는 공개된 적이 없다.</p>
<p>따라서 Kimi K2 팀은 이러한 경험을 교훈 삼아 DeepSeek R2가 출시되기 전에 Kimi K2를 공개 가중치 모델로 공유한 것으로 보인다. 이 글을 작성하는 시점에서 Kimi K2는 가장 인상적인 성능을 보이는 공개 가중치 모델이다.</p>
<hr>
<h1 id="9-gpt-oss"><strong>9. GPT-OSS</strong></h1>
<p>OpenAI는 2019년 GPT-2 이후 첫 공개 가중치(open-weight) 모델인 <strong>gpt-oss-120b</strong>와 <strong>gpt-oss-20b</strong>를 출시했다. </p>
<p>OpenAI의 공개 가중치 모델에 대한 기대가 매우 높았기 때문에, 본 아티클을 업데이트하여 해당 내용을 포함했다. 본 섹션은 간결하게 유지하되, gpt-oss 모델에 대해 훨씬 더 자세히 다룬 별도의 아티클은 <a href="https://magazine.sebastianraschka.com/p/from-gpt-2-to-gpt-oss-analyzing-the">여기</a>에서 확인할 수 있다:</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/16728a4b-981f-4db2-acb4-2442b6dc4b33/image.png" alt=""></p>
<p>[Figure 26: Architecture overview of the two gpt-oss models.]</p>
<p>[그림 26]을 보면, 해당 아키텍처는 이전에 논의된 다른 아키텍처들에서 보았던 익숙한 구성 요소들을 모두 포함하고 있다. 예를 들어, [그림 27]은 더 작은 gpt-oss 아키텍처를 Qwen3 30B-A3B와 나란히 비교하는데, Qwen3 30B-A3B 역시 유사한 수의 활성 파라미터를 가진 MoE 모델이다 (gpt-oss는 3.6B, Qwen3 30B-A3B는 3.3B의 활성 파라미터를 가진다).</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/34a32e51-e89a-4b43-8422-4da5e2366811/image.png" alt=""></p>
<p>[Figure 27: Architecture comparison between gpt-oss and Qwen3]</p>
<p>[그림 27]에 나타나지 않은 한 가지 측면은 gpt-oss가 <strong>sliding window attention</strong>을 사용한다는 점이다 (Gemma 3와 유사하지만, 5:1 비율 대신 격층으로 사용한다).</p>
<h2 id="91-width-vs-depth">9.1 Width vs Depth</h2>
<p>[그림 27]은 gpt-oss와 Qwen3가 유사한 구성 요소를 사용함을 보여준다. 그러나 두 모델을 자세히 살펴보면, <strong>Qwen3가 24개가 아닌 48개의 transformer 블록을 사용하여 훨씬 더 깊은(deeper) 아키텍처</strong>임을 알 수 있다.</p>
<p>반면, <strong>gpt-oss는 훨씬 더 넓은(wider) 아키텍처</strong>이다:</p>
<ul>
<li>임베딩 차원이 2048 대신 2880이다.</li>
<li>중간 전문가(feed forward) 프로젝션 차원 또한 768 대신 2880이다.</li>
</ul>
<p>gpt-oss가 두 배 더 많은 어텐션 헤드를 사용한다는 점도 주목할 만하지만, 이것이 모델의 너비를 직접적으로 증가시키지는 않는다. 너비는 임베딩 차원에 의해 결정된다.</p>
<p>고정된 파라미터 수에서 한 접근 방식이 다른 방식보다 이점을 제공하는가? 일반적으로, 더 깊은 모델은 유연성이 더 높지만 그래디언트 폭주 및 소실(exploding and vanishing gradients)로 인한 불안정성 문제로 훈련이 더 어려울 수 있다 (<strong>RMSNorm</strong>과 shortcut connection은 이를 완화하는 것을 목표로 한다).</p>
<p>더 넓은 아키텍처는 더 높은 메모리 비용을 대가로 더 나은 병렬화가 가능하기 때문에 추론 시 더 빠르다는(더 높은 tokens/second 처리량) 장점이 있다.</p>
<p>모델링 성능에 관해서는, (파라미터 크기와 데이터셋이 일정하게 유지되는) 직접적인 비교 사례는 알려진 바가 드물다. 예외적으로 <a href="https://arxiv.org/abs/2408.00118">Gemma 2 논문</a>(표 9)의 ablation study가 있는데, 9B 파라미터 아키텍처의 경우 더 넓은 설정이 더 깊은 설정보다 약간 더 낫다는 것을 발견했다. 4개의 벤치마크에 걸쳐, 더 넓은 모델은 평균 52.0점을, 더 깊은 모델은 평균 50.8점을 기록했다.</p>
<h2 id="92-few-large-vs-many-small-expert">9.2 Few Large vs Many Small Expert</h2>
<p>위 [그림 27]에서 볼 수 있듯이, <strong>gpt-oss가 예상외로 적은 수의 전문가(128개 대신 32개)</strong>를 가지며, 토큰당 8개 대신 4개의 활성 전문가만 사용한다는 점 또한 주목할 만하다. 그러나 각 전문가는 Qwen3의 전문가보다 훨씬 크다.</p>
<p>최근의 경향과 발전이 더 많고 더 작은 모델이 유리하다는 방향을 가리키고 있기 때문에 이는 흥미로운 지점이다. 고정된 총 파라미터 크기에서 이러한 변화는 아래 DeepSeekMoE 논문의 [그림 28]에 잘 나타나 있다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/774de21b-7a97-4dd6-a68d-a610d434dacc/image.png" alt=""></p>
<p>[Figure 28: An annotated figure from <a href="https://arxiv.org/abs/2401.06066">&quot;DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models&quot;</a>]</p>
<p>주목할 점은, DeepSeek의 모델과 달리 gpt-oss와 Qwen3는 모두 공유 전문가를 사용하지 않는다는 것이다.</p>
<h2 id="93-attention-bias와-attention-sink">9.3 Attention Bias와 Attention Sink</h2>
<p>gpt-oss와 Qwen3는 모두 <strong>Grouped-Query Attention</strong>을 사용한다. 주요 차이점은 앞서 언급했듯이 gpt-oss가 격층으로 <strong>sliding window attention</strong>을 통해 컨텍스트 크기를 제한한다는 점이다.</p>
<p>그러나 한 가지 흥미로운 세부 사항이 있다. 아래 [그림 29]에서 볼 수 있듯이, gpt-oss는 어텐션 가중치(attention weight)에 편향(bias) 유닛을 사용하는 것으로 보인다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/2e8d2c1a-4b68-4527-b49e-0c65cf33279b/image.png" alt=""></p>
<p>[Figure 29: gpt-oss models use bias units in the attention layers. See code example here.]</p>
<p>이러한 편향 유닛은 GPT-2 시절 이후로는 거의 사용되지 않았으며, 일반적으로 불필요한 것으로 간주된다. 실제로, 최근 한 논문은 이것이 적어도 키 변환(k_proj)에 대해서는 수학적으로 사실임을 보여준다. </p>
<p>더 나아가, 경험적 결과에 따르면 편향 유닛의 유무에 따른 차이는 거의 없는 것으로 나타났다 (아래 [그림 30] 참조).</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4391ccfc-4f4b-49c5-af6f-53eeb761042b/image.png" alt=""></p>
<p>[Figure 30: Table from <a href="https://arxiv.org/pdf/2302.08626">ROLE OF BIAS TERMS IN DOT-PRODUCT ATTENTION</a> showing the average test loss when the models were trained from scratch with and without bias units.]</p>
<p>또 다른 세부 사항으로 [그림 30]의 코드 스크린샷에 정의된 <code>sink</code>가 있다. 일반적인 모델에서 attention sink는 어텐션을 안정화하기 위해 시퀀스 시작 부분에 배치되는 특별한 &#39;항상 주목받는(always-attended)&#39; 토큰으로, 특히 긴 컨텍스트(long-context) 시나리오에서 유용하다. </p>
<p>즉, 컨텍스트가 매우 길어지더라도 시작 부분의 이 특별한 토큰은 여전히 주목을 받으며, <strong>전체 시퀀스에 대한 전반적으로 유용한 정보를 저장하도록 학습</strong>할 수 있다. (이 개념은 <a href="https://arxiv.org/abs/2309.17453">&#39;Efficient Streaming Language Models with Attention Sinks&#39;</a> 논문에서 처음 제안된 것으로 보인다.)</p>
<p>gpt-oss 구현에서 <code>attention sink</code>는 입력 시퀀스의 실제 토큰이 아니다. 대신, <strong>어텐션 점수(attention score)에 추가되는 학습 가능한 헤드별(per-head) 편향 로짓(bias logit)</strong>이다 ([그림 31]). </p>
<p>목표는 토큰화된 입력을 수정하지 않으면서 위에서 언급한 <strong>attention sink</strong>와 동일한 효과를 얻는 것이다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/89b34f30-4186-42f3-8f96-8fc69f36f4eb/image.png" alt=""></p>
<p>  [Figure 31: The use of attention sinks in gpt-oss; based on the Hugging Face code <a href="https://github.com/huggingface/transformers/blame/369c99d0cea403b77bd0aef818527106453fd9fc/src/transformers/models/gpt_oss/modular_gpt_oss.py">here</a>.]</p>
<p>gpt-oss에 대한 더 자세한 정보 및 GPT-2와의 비교는 <a href="https://magazine.sebastianraschka.com/p/from-gpt-2-to-gpt-oss-analyzing-the">다른 gpt-oss 아티클</a>에서 확인할 수 있다.</p>
<hr>
<h1 id="10-grok-25">10. Grok 2.5</h1>
<p>본 아티클이 처음 공개된 지 몇 주 후, xAI는 2,700억 파라미터의 <strong>Grok 2.5</strong> 모델 가중치를 공개했다.</p>
<p><strong>Grok 2.5</strong>가 작년 xAI의 주력 상용(production) 모델이었다는 점에서 여기에 포함할 가치가 있다고 판단된다. 지금까지 논의된 모든 모델은 처음부터 공개 가중치 모델로 출시되었다. </p>
<p>예를 들어, gpt-oss는 GPT-4의 공개 가중치 복제본이라기보다는 오픈소스 커뮤니티를 위해 특별히 훈련된 맞춤형 모델일 가능성이 높다.</p>
<p><strong>Grok 2.5</strong>를 통해, 비록 작년의 것이기는 하지만 실제 상용 시스템을 들여다볼 수 있는 드문 기회를 얻게 된다.</p>
<p>아키텍처 측면에서, <strong>Grok 2.5</strong>는 전반적으로 상당히 표준적으로 보이지만([그림 32]), 몇 가지 주목할 만한 세부 사항이 있다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/df71b5a1-9f84-4041-953b-86f374f5213a/image.png" alt=""></p>
<p>[Figure 32: Grok 2.5 next to a Qwen3 model of comparable size]</p>
<p>예를 들어, <strong>Grok 2.5</strong>는 <strong>소수의 대형 전문가(8개)</strong>를 사용하는데, 이는 과거의 경향을 반영한다. 앞서 논의했듯이, DeepSeekMoE 논문이나 Qwen3와 같은 최신 설계는 다수의 소형 전문가를 선호한다.</p>
<p>또 다른 흥미로운 선택은 사실상 공유 전문가에 해당하는 것을 사용했다는 점이다. [그림 32]의 왼쪽에 표시된 추가 <strong>SwiGLU</strong> 모듈은 항상 활성화되는(always-on) 공유 전문가 역할을 한다. </p>
<p>중간 차원이 두 배라는 점에서 고전적인 공유 전문가 설계와 동일하지는 않지만, 아이디어는 같다. (Qwen3가 공유 전문가를 생략했다는 점은 여전히 흥미로운 지점이며, 이러한 선택이 Qwen4 및 후속 모델에서 변경될지 여부는 앞으로 지켜볼 부분이다.)</p>
<hr>
<h1 id="11-glm-45">11. <strong>GLM-4.5</strong></h1>
<p><a href="https://arxiv.org/abs/2508.06471"><strong>GLM-4.5</strong></a>는 올해의 또 다른 주요 출시 모델이다. 이는 Qwen3와 유사한 지시/추론 하이브리드 모델이지만, 함수 호출(function calling)과 에이전트 스타일의 맥락에 더욱 최적화되어 있다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/c3c4f26a-1f41-4f89-a114-e478c3509d6a/image.png" alt=""></p>
<p>[Figure 33: GLM-4.5 benchmark from the <a href="https://github.com/zai-org/GLM-4.5">official GitHub repository</a>]</p>
<p>[그림 34]에서 볼 수 있듯이, GLM-4.5는 두 가지 버전으로 제공된다. 주력 모델인 3,550억 파라미터 모델은 12개 벤치마크 평균에서 Claude 4 Opus를 능가하며, OpenAI의 o3와 xAI의 Grok 4에 근소한 차이로 뒤처진다. 또한 3,550억 모델보다 성능이 약간 낮은 더 압축된 1,060억 파라미터 버전인 GLM-4.5-Air도 있다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/18a5447e-5e56-4c5f-97cd-64384ef1df45/image.png" alt=""></p>
<p>[Figure 34: GLM-4.5 next to a similarly-sized Qwen3 model.]</p>
<p>두 설계는 대체로 유사하지만, <strong>GLM-4.5</strong>는 DeepSeek V3에서 처음 도입된 구조적 선택을 채택했다. 즉, <strong>Mixture-of-Experts (MoE)</strong> 블록 <strong>앞에 3개의 밀집(dense) 레이어를 배치</strong>하는 것이다. </p>
<p><strong>여러 개의 밀집 레이어로 시작하는 것은 대규모 MoE 시스템에서 수렴 안정성과 전반적인 성능을 향상</strong>시킨다. MoE 라우팅이 즉시 도입되면, 희소 전문가 선택의 불안정성이 초기 구문 및 의미 특징 추출을 방해할 수 있다. </p>
<p>따라서 <strong>초기 레이어를 밀집 형태로 유지</strong>함으로써, 라우팅 결정이 더 높은 수준의 처리를 형성하기 전에 모델이 안정적인 <strong>저수준 표현(low-level representation)을 형성</strong>하도록 보장한다고 할 수 있다.</p>
<p>또한, <strong>GLM-4.5</strong>는 DeepSeek-V3와 유사하게(그리고 Qwen3와는 다르게) 공유 전문가를 사용한다.</p>
<p>(흥미롭게도, <strong>GLM-4.5</strong>는 GPT-2와 gpt-oss에서 사용된 <strong>attention bias</strong> 메커니즘 또한 유지하고 있다.)</p>
<hr>
<h1 id="12-qwen3-next">12. Qwen3-Next</h1>
<p>2025년 9월 11일, Qwen3 팀은 <strong>Instruct</strong>와 <strong>Thinking</strong> 두 가지 변형으로 제공되는 <strong>Qwen3 Next 80B-A3B</strong>를 출시했다 ([그림 35]). 이 모델의 설계는 이전에 논의된 Qwen3 아키텍처를 기반으로 하지만, 그림 번호의 일관성을 유지하고 일부 설계 변경 사항에 주목하기 위해 여기서는 별도의 항목으로 다룬다.</p>
<h2 id="121-expert-size-and-number"><strong>12.1 Expert Size and Number</strong></h2>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4f6dc4bc-2588-4dae-9ccb-466abf9a1aa5/image.png" alt=""></p>
<p>[Figure 35: The original Qwen3 model released in May (left) next to the Qwen3 Next model released in September (right).]</p>
<p>새로운 <strong>Qwen3 Next</strong> 아키텍처는 이전 235B-A22B 모델([그림 35])보다 3배 작음에도 불구하고, <strong>4배 더 많은 전문가를 도입하고 공유 전문가까지 추가</strong>했다는 점에서 두드러진다. </p>
<p>다수의 전문가를 사용하는 것과 공유 전문가를 포함하는 이 두 가지 설계 선택은 이 모델이 출시되기 전부터 향후 발전 방향으로 주목받아 온 바 있다.</p>
<h2 id="122-gated-deltanet--gated-attention-hybrid">12.2 Gated DeltaNet + Gated Attention Hybrid</h2>
<p>또 다른 주목할 만한 점은 일반적인 어텐션 메커니즘을 <a href="https://arxiv.org/abs/2412.06464"><strong>Gated DeltaNet</strong></a> + <a href="https://arxiv.org/abs/2505.06708"><strong>Gated Attention</strong></a> hybrid로 대체하여, 메모리 사용량 측면에서 262k 토큰의 네이티브 컨텍스트 길이를 가능하게 했다는 것이다 (이전 235B-A22B 모델은 네이티브 32k를 지원했으며, <strong>YaRN</strong> 스케일링을 통해 131k를 지원했다).</p>
<p>이 새로운 어텐션 하이브리드의 작동 방식은 다음과 같다. <strong>Grouped-Query Attention (GQA)</strong>은 표준적인 scaled dot-product attention으로서, (앞서 논의했듯이 쿼리 헤드 그룹 간 K/V를 공유하여 KV-cache 크기와 메모리 대역폭을 줄이지만) 디코딩 비용과 캐시는 여전히 시퀀스 길이에 따라 증가하는 한계가 있다. </p>
<p>이와 비교하여, Qwen3-Next의 하이브리드 메커니즘은 [그림 36]에서 볼 수 있듯이 <strong>Gated DeltaNet</strong> 블록과 <strong>Gated Attention</strong> 블록을 3:1 비율로 혼합한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/86b6c6c1-eeb1-4f15-9e9e-b57f55815da3/image.png" alt=""></p>
<p>[Figure 36: The Gated DeltaNet + Gated Attention hybrid mechanism. Note that these are arranges in a 3:1 ratio, meaning that 3 transformer blocks with Gated DeltaNet are followed by 1 transformer block with Gated Attention. The right subfigure is from the <a href="https://qwen.ai/blog?id=4074cca80393150c248e508aa62983f9cb7d27cd&from=research.latest-advancements-list">official Qwen3 blog</a>]</p>
<p><strong>Gated attention</strong> 블록은 GQA에서 사용될 수 있는 표준적인 scaled-dot-product attention으로 간주할 수 있지만, 몇 가지 수정 사항이 추가되어 있다. <strong>Gated attention</strong>과 <strong>일반 GQA 블록</strong>의 주요 차이점은 다음과 같다:</p>
<blockquote>
</blockquote>
<ul>
<li>잔차(residual)에 더해지기 전에 어텐션 결과의 크기를 조정하는 출력 게이트(일반적으로 채널별로 sigmoid로 제어됨)</li>
<li>표준 RMSNorm 대신 QKNorm에 사용되는 <strong>zero-centered RMSNorm</strong></li>
<li>부분적인 RoPE(차원의 서브셋에 적용)</li>
</ul>
<p>이러한 변경 사항들은 본질적으로 GQA의 안정성을 높이기 위한 것임에 유의해야 한다.</p>
<p><strong>Gated DeltaNet</strong>은 더 중요한 변경 사항이다. <strong>DeltaNet</strong> 블록에서는 $q, k, v$와 두 개의 게이트($α,β$)가 정규화가 포함된 선형 및 경량 컨볼루션 레이어(lightweight convolutional layer)에 의해 생성되며, 이 레이어는 어텐션을 <strong>fast‑weight delta rule</strong> 업데이트로 대체한다.</p>
<p>그러나 절충점(tradeoff)은 <strong>DeltaNet</strong>이 전체 어텐션보다 덜 정밀한 내용 기반 검색(content-based retrieval)을 제공한다는 것이며, 이것이 하나의 <strong>gated attention</strong> 레이어가 남아있는 이유이다.</p>
<p>어텐션이 이차적으로(quadratically) 증가한다는 점을 고려할 때, <strong>DeltaNet</strong> 구성 요소는 메모리 효율성을 돕기 위해 추가되었다. &quot;선형 시간, 캐시 프리(linear-time, cache-free)&quot; 계열에서 <strong>DeltaNet</strong> 블록은 본질적으로 Mamba의 대안이다. </p>
<p>Mamba는 학습된 상태 공간 필터(state-space filter, 본질적으로 시간에 따른 동적 컨볼루션)를 사용하여 상태를 유지한다. 반면 <strong>DeltaNet</strong>은 $α$와 $β$로 업데이트되는 작은 fast-weight 메모리를 유지하고 이를 q로 읽어들이며, 작은 컨볼루션은 $q, k, v, α,β$를 형성하는 데에만 사용된다.</p>
<h2 id="123-multi-token-prediction">12.3 Multi-Token Prediction</h2>
<p>위의 두 하위 섹션에서는 효율성을 목표로 한 두 가지 설계 결정을 설명했다. 이에 더해, Qwen3는 또 다른 기법인 <code>Multi-Token Prediction (MTP)</code>을 추가했다.</p>
<p><strong>Multi-token prediction</strong>은 각 단계에서 LLM이 단일 토큰 대신 <strong>여러 개의 미래 토큰을 예측</strong>하도록 훈련시킨다. 여기서 각 위치 $t$에서 작은 추가 헤드(선형 레이어)가 $t+1...t+k$에 대한 로짓(logit)을 출력하며, 이 오프셋들에 대한 <strong>cross-entropy 손실을 합산</strong>한다 (<strong>MTP</strong> 논문에서는 $k=4$를 권장했다). </p>
<p>이 추가적인 신호는 훈련 속도를 높이며, 추론은 한 번에 하나의 토큰만 처리하는 방식으로 유지될 수 있다. 그러나 추가 헤드는 <strong>추측적 다중 토큰 디코딩(speculative multi-token decoding)</strong>에 사용될 수 있으며, Qwen3-Next가 이 방식을 사용하는 것으로 보이나, 세부 사항은 아직 부족하다:</p>
<blockquote>
<p>Qwen3-Next는 네이티브 <strong>Multi-Token Prediction (MTP) 메커니즘</strong>을 도입하여, Speculative Decoding에서 높은 수용률(acceptance rate)을 보이는 MTP 모듈을 생성할 뿐만 아니라 전반적인 성능도 향상시킨다. </p>
</blockquote>
<p>또한, Qwen3-Next는 MTP의 다중 단계 추론 성능을 특별히 최적화하고, 훈련과 추론 간의 일관성을 유지하는 다중 단계 훈련을 통해 실제 시나리오에서 Speculative Decoding의 수용률을 더욱 향상시킨다. (출처: <a href="https://qwen.ai/blog?id=4074cca80393150c248e508aa62983f9cb7d27cd&amp;from=research.latest-advancements-list">Qwen3-Next 블로그</a>)</p>
<blockquote>
</blockquote>
<hr>
<p>수년이 지난 지금도 LLM 출시는 여전히 많은 기대를 모으고 있으며, 앞으로 어떤 발전이 있을지 귀추가 주목된다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[day-6 논문 핥기] LORA: Low-Rank Adaptation of Large Language Models]]></title>
            <link>https://velog.io/@choonsik_mom/day-6-%EB%85%BC%EB%AC%B8-%ED%95%A5%EA%B8%B0-LORA-Low-Rank-Adaptation-of-Large-Language-Models</link>
            <guid>https://velog.io/@choonsik_mom/day-6-%EB%85%BC%EB%AC%B8-%ED%95%A5%EA%B8%B0-LORA-Low-Rank-Adaptation-of-Large-Language-Models</guid>
            <pubDate>Thu, 18 Sep 2025 12:57:46 GMT</pubDate>
            <description><![CDATA[<p>LoRA: Low-Rank Adaptation of Large Language Models (ICLR 2022)</p>
<blockquote>
<h3 id="👉🏻-lora-low-rank-adaptation-of-large-language-models-by-microsoft">👉🏻 LoRA: Low-Rank Adaptation of Large Language Models by Microsoft</h3>
</blockquote>
<ul>
<li><a href="https://arxiv.org/pdf/2106.09685">paper </a></li>
<li><a href="https://github.com/microsoft/LoRA">github</a></li>
</ul>
<hr>
<h1 id="full-summary">Full Summary</h1>
<p>본 논문은 거대 언어 모델(Large Language Models)을 특정 태스크에 맞게 미세 조정(fine-tuning)할 때 발생하는 막대한 계산 비용과 저장 공간 문제를 해결하기 위해, <code>LoRA (Low-Rank Adaptation)</code>라는 매우 효율적인 파라미터 업데이트 방법을 제안한다. </p>
<h2 id="problem-state">Problem State</h2>
<ul>
<li><p><strong>비용 문제</strong>: GPT-3와 같이 수천억 개의 파라미터를 가진 거대 언어 모델을 <strong>full fine-tuning</strong>하는 것은 엄청난 비용이 든다. 
특히 여러 태스크에 대해 각각의 파인튜닝된 모델 인스턴스(예: 175B)를 독립적으로 저장하고 배포하는 것은 거의 불가능에 가깝다.</p>
</li>
<li><p><strong>기존 해결책의 단점</strong>: 이 문제를 해결하기 위해 <strong>Adapter</strong>나 <strong>Prefix-Tuning</strong> 같은 경량화된 파인튜닝 방법들이 제안되었지만, 다음과 같은 한계가 있었다.</p>
<ul>
<li><code>Adapter</code> : 모델의 중간에 새로운 레이어를 추가하는 방식이어서, 추론 시에 추가적인 계산이 필요해 <strong>추론 지연(inference latency)</strong> 발생</li>
</ul>
<ul>
<li><code>Prefix-tuning</code> : 입력 시퀀스 길이의 일부를 학습 파라미터(prefix)로 사용하기 때문에, 모델이 처리할 수 있는 실제 시퀀스 길이가 줄어듦</li>
</ul>
</li>
</ul>
<h2 id="proposed-method">Proposed Method</h2>
<p>본 논문에서 제안하는 LoRA 의 핵심 아이디어는 모델을 파인튜닝할 때 <strong>가중치 행렬의 변화량($ΔW$)은 매우 낮은 내재적 차원(low intrinsic rank)을 가질 것</strong>이라는 가설에서 출발한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4469f71d-28a5-47cb-9b7f-8520635dc3ea/image.png" alt=""></p>
<ul>
<li><p><strong>핵심 메커니즘</strong>:</p>
<ol>
<li>사전 학습된 거대 모델의 원본 가중치($W_0$)는 <strong>완전히 동결(freeze)</strong></li>
</ol>
<ol start="2">
<li><p>대신, 원본 가중치 옆에 두 개의 작은 저계급(low-rank) 행렬($A$와 $B$)을 추가하고, 학습 과정에서는 오직 이 두 행렬만 업데이트한다. 
여기서 가중치 변화량은 $ΔW=BA$로 표현된다.</p>
<ol start="3">
<li>$A$는 랜덤 가우시안 분포로, $B$는 $0$으로 초기화하여 학습 시작 시점에는 $ΔW$가 $0$이 되도록 한다.</li>
<li>최종적으로 모델의 출력은 원본 가중치를 통과한 결과($h=W_0x$)와 LoRA를 통과한 결과 $ΔWx=BAx$를 더해서 계산한다: $h=W_0x+BAx$</li>
</ol>
</li>
</ol>
</li>
</ul>
<ul>
<li><p><strong>LoRA의 주요 장점</strong>:</p>
<ul>
<li><p><strong>압도적인 파라미터 효율성</strong>: 학습해야 할 파라미터 수를 <strong>최대 10,000배까지 줄이고</strong>, GPU 메모리 요구량을 3배까지 감소시킨다. 
예를 들어 GPT-3 175B 모델의 경우, 전체 파인튜닝 시 필요한 VRAM이 1.2TB인 반면 LoRA는 350GB만으로 충분했다. 체크포인트 크기 역시 350GB에서 35MB로 극적으로 줄어든다.</p>
</li>
<li><p><strong>추론 지연 없음 (No Inference Latency)</strong>: 학습이 완료된 후에는 원본 가중치에 변화량 $ΔW$를 <strong>미리 합쳐서($W=W0+BA$) 저장</strong>할 수 있다. 
따라서 추론 시에는 어떠한 추가 계산도 필요 없어, 전체 파인튜닝된 모델과 동일한 속도를 가진다.</p>
</li>
</ul>
<ul>
<li><p><strong>효율적인 태스크 전환</strong>: 거대한 원본 모델은 공유하고, 각 태스크에 맞는 작은 LoRA 가중치($A$,$B$)만 교체하면 되므로 스토리지 부담이 적고 태스크 전환이 매우 빠르다.</p>
</li>
<li><p><strong>뛰어난 성능</strong>: 매우 적은 파라미터만 학습함에도 불구하고 RoBERTa, DeBERTa, GPT-2, GPT-3 등 다양한 모델에서 전체 파인튜닝과 동등하거나 <strong>더 나은 성능</strong>을 보였다.</p>
</li>
</ul>
</li>
</ul>
<h2 id="experiments-and-results">Experiments and Results</h2>
<ul>
<li>NLU (자연어 이해) task : RoBERTa와 DeBERTa 모델을 GLUE 벤치마크에서 평가한 결과, LoRA는 훨씬 적은 파라미터(예: 355M vs 0.8M)를 사용하고도 전체 파인튜닝과 비슷하거나 더 높은 평균 점수를 달성했다.</li>
</ul>
<ul>
<li>NLG (자연어 생성) task : GPT-2 모델을 사용한 E2E NLG Challenge에서 LoRA는 Adapter나 Prefix-Tuning 같은 다른 경량화 방법들보다 우수한 성능을 보였다.</li>
</ul>
<ul>
<li>GPT-3 175B 스케일업 실험: WikiSQL, MultiNLI, SAMSum 태스크에서 LoRA는 전체 파인튜닝을 포함한 모든 다른 적응 방법들을 능가하는 성능을 보였다. 특히 다른 방법들은 학습 파라미터 수가 늘어날 때 성능이 오히려 감소하는 현상을 보인 반면, LoRA는 안정적인 성능을 유지했다.</li>
</ul>
<h2 id="low-rank-updates-분석">Low-Rank Updates 분석</h2>
<ul>
<li><p><strong>어떤 가중치에 적용해야 하는가?</strong>: Transformer의 어텐션 가중치 중 $W_q$와 $W_v$ 에 함께 LoRA를 적용했을 때 가장 좋은 성능을 보였다. 이는 제한된 파라미터 예산 안에서 하나의 가중치에 높은 rank를 할당하는 것보다, 여러 가중치에 낮은 rank를 할당하는 것이 더 효과적임을 시사한다.</p>
</li>
<li><p><strong>최적의 Rank(r)는 무엇인가?</strong>: 놀랍게도 <strong>매우 작은 rank 값(r=1 또는 2)</strong>만으로도 충분히 경쟁력 있는 성능을 보였다. 이는 파인튜닝 시 가중치 변화량($ΔW$)의 &quot;내재적 차원(intrinsic rank)&quot;이 실제로 매우 낮다는 가설을 강력하게 뒷받침한다.</p>
</li>
<li><p><strong>$ΔW$와 $W$의 관계</strong>: 분석 결과, LoRA가 학습한 변화량 $ΔW$는 원본 가중치 $W$에 이미 존재하던 특징 중 일부를 <strong>증폭(amplify)</strong>하는 역할을 하는 것으로 나타났다. 
특히, W에서 중요하게 다뤄지지 않았던 방향성을 크게 증폭시켜 특정 다운스트림 태스크에 필요한 특징을 부각시키는 것으로 분석되었다. </p>
</li>
</ul>
<hr>
<h1 id="section-summary">Section Summary</h1>
<h2 id="introduction">Introduction</h2>
<ul>
<li><strong>거대 모델의 파인튜닝(Fine-tuning) 한계</strong></li>
</ul>
<p>자연어 처리(NLP)의 일반적인 패러다임은 거대 언어 모델을 사전 학습한 후, 특정 다운스트림 태스크에 맞게 전체 파라미터를 업데이트하는 파인튜닝 방식이다. </p>
<p>GPT-3 (175B 파라미터)와 같이 모델의 크기가 거대해지면서, 모든 태스크마다 전체 파라미터를 복제하여 저장하고 배포하는 것은 비용 문제로 인해 거의 불가능해졌다. </p>
<ul>
<li><strong>기존 경량화 기법들의 단점</strong></li>
</ul>
<p>이러한 문제를 해결하기 위해 Adapter 삽입이나 Prefix-Tuning 같은 파라미터 효율적 적응(parameter-efficient adaptation) 방법들이 제안되었다. </p>
<p>하지만 이 기법들은 모델의 깊이를 늘려 추론 지연(inference latency)을 발생시키거나, 사용 가능한 시퀀스 길이를 줄이는 단점이 있다. 또한, 종종 전체 파인튜닝 방식의 성능에 미치지 못하는 등 효율성과 성능 간의 트레이드오프가 존재했다. </p>
<ul>
<li><strong>LoRA (Low-Rank Adaptation) 제안</strong></li>
</ul>
<p>본 논문은 사전 학습된 모델의 가중치 변화량($ΔW$)이 <strong>낮은 &quot;내재적 차원(intrinsic rank)&quot;</strong>을 가질 것이라는 가설에 기반하여 LoRA를 제안한다. </p>
<p>LoRA는 기존의 사전 학습된 가중치는 <strong>동결(freeze)</strong>하고, Transformer 아키텍처의 각 레이어에 <strong>학습 가능한 저계급 분해 행렬(trainable rank decomposition matrices)</strong>을 주입하여 파인튜닝을 수행한다. </p>
<ul>
<li><strong>LoRA의 핵심 장점</strong></li>
</ul>
<ol>
<li><p>효율성: 학습 가능한 파라미터 수를 10,000배, GPU 메모리 요구량을 3배까지 줄여준다. 또한, 대부분의 파라미터에 대한 그래디언트를 계산할 필요가 없어 학습이 더 효율적이다. </p>
</li>
<li><p>추론 속도: 배포 시에는 학습된 저계급 행렬을 기존 가중치에 병합(merge)할 수 있으므로, 전체 파인튜닝된 모델과 비교해 추가적인 추론 지연이 전혀 발생하지 않는다. </p>
</li>
<li><p>성능 및 호환성: 더 적은 파라미터로도 RoBERTa, DeBERTa, GPT-2, GPT-3에서 전체 파인튜닝과 동등하거나 더 나은 성능을 보인다. 또한 Prefix-Tuning 등 다른 방법론과 결합하여 사용할 수도 있다. </p>
</li>
</ol>
<hr>
<h2 id="problem-statement">Problem Statement</h2>
<p>이 섹션에서는 full fine-tuning의 문제점을 수학적으로 정의하고, LoRA가 목표하는 파라미터 효율적인 접근법을 제시한다.</p>
<ul>
<li><strong>Full Fine-tuning의 정의</strong>
: 사전 학습된 언어 모델의 가중치를 $\Phi_{0}$라고 할 때, 전체 파인튜닝은 특정 다운스트림 태스크 데이터셋 $\mathcal{Z}$에 대해 조건부 언어 모델링 목표 함수를 최대화하는 방향으로 가중치 전체를 업데이트한다. </li>
</ul>
<p>즉, 모델의 파라미터는 $\Phi_{0}$에서 시작하여 그래디언트 업데이트를 통해 <strong>$\Phi_{0} + \Delta\Phi$</strong>로 변경된다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/dcbf210f-d21c-419d-94a1-7545966c1dd6/image.png" alt=""></p>
<ul>
<li><p><strong>전체 파인튜닝의 핵심 문제</strong>
: 가장 큰 단점은 각 다운스트림 태스크마다 원본 모델($|Φ_0|$)과 동일한 크기의 파라미터 변화량($|ΔΦ|$)을 새로 학습하고 저장해야 한다는 것이다. </p>
<p>만약 사전 학습 모델이 GPT-3 (175B 파라미터)처럼 거대하다면, 수많은 태스크에 대해 각각 독립적인 모델 인스턴스를 저장하고 배포하는 것은 현실적으로 불가능하거나 매우 어렵다. </p>
</li>
<li><p><strong>Parameter-Efficient Approach의 목표</strong>
: 본 논문에서는 이러한 문제를 해결하기 위해, 태스크별 파라미터 변화량 $ΔΦ$를 훨씬 더 작은 크기의 파라미터 집합 $Θ$로 인코딩하는 방식을 채택한다. (즉, $ΔΦ=ΔΦ(Θ)$ 이고, $|Θ|≪|Φ_0|$ 이다.) </p>
</li>
</ul>
<p>따라서 거대한 $ΔΦ$를 직접 찾는 대신, 훨씬 작은 $Θ$를 최적화하는 문제로 전환된다. </p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/45e33b51-5cdb-44d7-a16d-4b5e7814ebb3/image.png" alt=""></p>
<p>LoRA는 이 $Θ$를 저계급(low-rank) 행렬로 표현함으로써, 학습 파라미터의 수를 원본 모델 대비 0.01% 수준까지 줄이는 것을 목표로 한다.</p>
<hr>
<h2 id="arent-existing-solutions-good-enough">Aren&#39;t Existing Solutions Good Enough?</h2>
<p>본 섹션에서는 LoRA 이전에 사용되던 대표적인 파라미터 효율적 파인튜닝 방법들의 단점을 지적한다.</p>
<ul>
<li><p><strong>Adapter Layers의 한계</strong>:
: <code>Adapter</code> 방식은 Transformer 블록 사이에 새로운 레이어를 순차적으로 추가하는 방식이다.</p>
<p>이 추가된 레이어 때문에 추론 시에 반드시 추가적인 계산이 필요하며, 이는 추론 지연(inference latency)을 발생시킨다.</p>
<p>특히, 온라인 서비스와 같이 배치 크기(batch size)가 1처럼 매우 작은 환경에서는 지연 시간이 더욱 두드러진다.</p>
</li>
<li><p><strong>Prefix-Tuning의 한계</strong>:
: <code>Prefix-Tuning</code>은 입력 시퀀스의 앞부분에 연속적인 가상 토큰(prefix)을 추가하고 이 임베딩만 학습하는 방식이다.</p>
<p>이 방식은 최적화가 어렵고 학습 파라미터 수에 따라 성능이 비선형적으로 변하는 등 튜닝이 불안정하다.</p>
<p>더 근본적으로, 적응을 위해 시퀀스 길이의 일부를 할애해야 하므로, 다운스트림 태스크가 실제로 사용할 수 있는 컨텍스트 길이가 줄어든다는 단점이 있다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/cd7359d6-14e2-4917-8a7c-ed27f737011c/image.png" alt=""></p>
<hr>
<h2 id="our-method">Our Method</h2>
<h3 id="1-저계급-파라미터화-업데이트-행렬-low-rank-parametrized-update-matrices">1. <strong>저계급 파라미터화 업데이트 행렬 (Low-Rank-Parametrized Update Matrices)</strong></h3>
<ul>
<li><p><strong>핵심 가설</strong>: <code>Aghajanyan et al. (2020)</code>을 기반으로 사전 학습된 언어 모델은 낮은 &quot;내재적 차원(intrinsic dimension)&quot;을 가지며, 파인튜닝 시 가중치의 변화량(ΔW) 또한 <strong>낮은 내재적 차원(intrinsic rank)</strong>을 가질 것이라고 가정한다.</p>
</li>
<li><p><strong>저계급 분해 (Low-rank Decomposition)</strong>: 이 가설에 따라, 원본 가중치 $W_0$의 업데이트 행렬 $ΔW$를 직접 학습하는 대신, 이를 두 개의 작은 행렬 $B\in \mathbb{R}^{d \times r}$와 $A\in \mathbb{R}^{r \times k}$의 곱으로 표현한다 ($r$은 rank).</p>
<p>따라서 업데이트된 가중치는 $W_0+ΔW=W_0+BA$가 된다. 학습 중에는 원본 가중치 $W_0$는 동결(frozen)시키고, 오직 $A$와 $B$만 학습시킨다.</p>
</li>
<li><p><strong>순전파 (Forward Pass)</strong>: 입력 $x$에 대한 순전파는 $h=W_0x+ΔWx=W_0x+BAx$로 계산된다.</p>
<p>$A$는 랜덤 가우시안 분포로, $B$는 0으로 초기화하여 학습 시작 시점에는 $ΔW$가 0이 되도록 한다.</p>
<p>또한, 하이퍼파라미터 튜닝을 줄이기 위해 $ΔWx$에 상수 $\frac{\alpha}{r}$를 곱해 스케일링을 조정한다.</p>
</li>
</ul>
<ul>
<li><p><strong>추론 지연 없음 (No Additional Inference Latency)</strong>:배포 시에는 학습된 A와 B를 미리 곱해서 $W=W_0+BA$로 계산하여 하나의 행렬로 병합(merge)할 수 있다.</p>
<p>따라서 추론(inference) 시에는 추가적인 계산이 전혀 없어, 전체 파인튜닝된 모델과 완벽히 동일한 속도를 가진다. 다른 태스크로 전환할 때는 메모리 오버헤드가 거의 없이 기존 $BA$를 빼고 새로운 $B&#39;A&#39;$를 더하면 되므로 매우 빠르다.</p>
</li>
</ul>
<h3 id="2-transformer에-lora-적용-applying-lora-to-transformer">2. Transformer에 LoRA 적용 (Applying LoRA to Transformer)</h3>
<ul>
<li><p><strong>적용 범위</strong>: LoRA는 원칙적으로 신경망의 모든 가중치 행렬에 적용할 수 있다. 하지만 본 논문에서는 파라미터 효율성과 단순성을 위해,  Transformer의 Self-Attention 모듈 내 가중치 행렬($W_q,W_k,W_v,W_o$)에만 LoRA를 적용하는 것에 집중한다.</p>
<p>MLP 모듈은 동결시켜 다운스트림 태스크 학습 시 업데이트되지 않도록 한다.</p>
</li>
</ul>
<ul>
<li><p><strong>실질적 이점 (Practical Benefits)</strong>:</p>
<ul>
<li><p><strong>VRAM 감소</strong>: Adam 옵티마이저 사용 시, 동결된 파라미터에 대한 옵티마이저 상태(optimizer states)를 저장할 필요가 없어 VRAM 사용량을 최대 2/3까지 절약한다. GPT-3 175B 모델의 경우, 학습에 필요한 VRAM이 1.2TB에서 350GB로 감소했다.</p>
</li>
<li><p><strong>저장 공간 감소</strong>: 체크포인트 크기가 극적으로 줄어든다. GPT-3의 경우, 체크포인트가 350GB에서 35MB로 약 10,000배 감소했다.</p>
</li>
<li><p><strong>빠른 태스크 전환</strong>: 거대한 사전 학습 가중치는 VRAM에 그대로 두고, 각 태스크에 맞는 작은 LoRA 가중치만 교체하면 되므로 서비스 배포 시 비용이 매우 저렴하다.</p>
</li>
<li><p><strong>학습 속도 향상</strong>: 대부분의 파라미터에 대한 그래디언트를 계산할 필요가 없어, GPT-3에서 전체 파인튜닝 대비 학습 처리량이 25% 향상되었다.</p>
</li>
<li><p><strong>한계점</strong>: 가중치를 병합하여 추론 지연을 없애는 방식을 선택할 경우, 단일 순전파(forward pass) 내에서 각기 다른 LoRA 모듈을 사용하는 입력들을 배치(batch)로 처리하는 것이 직관적이지 않다는 한계가 있다</p>
</li>
</ul>
</li>
</ul>
<hr>
<h2 id="empirical-experiments">Empirical Experiments</h2>
<h3 id="1-baselines-비교-기준-모델">1. Baselines (비교 기준 모델)</h3>
<p>LoRA의 성능을 평가하기 위해 다음과 같은 여러 기준 모델과 비교했다.</p>
<ul>
<li><p><code>Fine-Tuning (FT)</code>: 모델의 모든 파라미터를 학습시키는 표준 방식이다.</p>
</li>
<li><p><code>BitFit (Bias-only)</code>: Bias 벡터만 학습하고 나머지 가중치는 모두 동결하는 방식이다.</p>
</li>
<li><p><code>Prefix-Tuning (PreEmbed &amp; PreLayer)</code>: 입력 시퀀스 앞단에 학습 가능한 prefix를 추가하여 파인튜닝을 대체하는 방식이다.</p>
</li>
<li><p><code>Adapter Tuning</code>: Transformer 레이어 사이에 작은 신경망 모듈(adapter)을 삽입하여 해당 모듈만 학습하는 방식이다.</p>
</li>
</ul>
<h3 id="2-roberta-및-deberta-실험-glue-benchmark">2. RoBERTa 및 DeBERTa 실험 (GLUE Benchmark)</h3>
<ul>
<li>RoBERTa (base/large) 모델을 GLUE 벤치마크에서 평가한 결과, LoRA는 전체 파인튜닝(FT)보다 <strong>훨씬 적은 파라미터(예: 355M vs 0.8M)</strong>를 사용하고도 동등하거나 더 나은 평균 점수를 달성했다. </li>
</ul>
<ul>
<li>DeBERTa XXL (1.5B) 모델에서도 LoRA는 4.7M개의 파라미터만으로 1.5B개를 모두 학습시킨 전체 파인튜닝과 대등한 성능을 보였다. </li>
</ul>
<h3 id="3-gpt-2-실험-nlg-tasks">3. GPT-2 실험 (NLG Tasks)</h3>
<p>GPT-2 medium/large 모델을 E2E NLG Challenge와 같은 자연어 생성(NLG) 태스크에서 평가했다. </p>
<p>결과적으로 LoRA는 비슷한 수의 파라미터를 가진  Adapter나 Prefix-Tuning 같은 다른 경량화 기법들보다 일관되게 더 좋은 성능을 보였다. </p>
<h3 id="4-gpt-3-175b-실험-scaling-up">4. GPT-3 175B 실험 (Scaling Up)</h3>
<p>LoRA의 최종 스트레스 테스트로 GPT-3 175B 모델에 적용하여 WikiSQL, MultiNLI, SAMSum 태스크를 수행했다. </p>
<p>놀랍게도 LoRA는 모든 태스크에서 전체 파인튜닝(FT)을 포함한 모든 비교 기법의 성능을 능가했다. </p>
<p>특히 Prefix-Tuning과 같은 다른 방법들은 학습 가능한 파라미터 수가 특정 지점을 넘어가면 오히려 성능이 저하되는 현상을 보였으나, LoRA는 안정적인 성능 확장성을 보여주었다.</p>
<hr>
<h2 id="related-works">Related Works</h2>
<ul>
<li><strong>Transformer Language Models</strong>: Transformer 아키텍처는 BERT와 GPT-2와 같은 거대 언어 모델의 등장을 이끌었으며, 일반적인 도메인 데이터에 사전 학습 후 특정 태스크에 파인튜닝하는 패러다임을 정착시켰다. </li>
</ul>
<ul>
<li><p><strong>Prompt Engineering and Fine-Tuning</strong>: GPT-3는 소수의 예제만으로도 작동하지만, 결과가 프롬프트 구성에 크게 의존하여 프롬프트 엔지니어링이 중요해졌다. </p>
<p>일반적으로는 전체 모델을 재학습시키는 파인튜닝이 더 높은 성능을 보이지만, GPT-3와 같은 거대 모델에서는 메모리 문제와 높은 하드웨어 장벽으로 인해 파인튜닝이 매우 어렵다.</p>
</li>
</ul>
<ul>
<li><p><strong>Parameter-Efficient Adaptation</strong>: </p>
<ul>
<li><p><code>Adapter Layers</code>: Houlsby et al. (2019) 등이 제안한 어댑터 방식은 기존 레이어 사이에 새로운 레이어를 삽입하는 방식이다. </p>
<p>이 방식은 LoRA와 유사하게 병목 구조를 사용하지만, 결정적으로 추론 시에 학습된 가중치를 기존 가중치와 병합할 수 없어 추가적인 추론 지연(latency)을 발생시킨다.</p>
</li>
<li><p><code>Prompt-based Methods</code>: Li &amp; Liang (2021) 등이 제안한 Prefix-Tuning과 같은 방식은 입력 임베딩을 최적화하는 방식으로 파인튜닝을 대체한다. </p>
<p>그러나 이 방식들은 프롬프트에 사용되는 특수 토큰의 수가 늘어날수록, 태스크가 실제로 사용할 수 있는 시퀀스 길이를 차지한다는 단점이 있다.</p>
</li>
</ul>
</li>
<li><p><strong>Low-Rank Structures in Deep Learning</strong>: 딥러닝에서 저계급(Low-rank) 구조는 매우 흔하며, 많은 선행 연구들이 신경망을 학습시킬 때 명시적으로 저계급 제약을 가하기도 했다.</p>
<p>하지만, 알려진 바로는 사전 학습된 모델을 동결(freeze)시킨 상태에서 다운스트림 태스크 적응을 위해 저계급 업데이트(low-rank update)를 적용한 연구는 LoRA가 최초이다. </p>
<p>본 논문에서 제안하는 저계급 적응 업데이트는 이러한 기존 연구들로부터 충분한 이론적 동기를 얻었다.</p>
</li>
</ul>
<hr>
<h2 id="understanding-the-low-rank-updates">Understanding the Low-rank Updates</h2>
<h3 id="1-어떤-가중치-행렬에-lora를-적용해야-하는가">1. 어떤 가중치 행렬에 LoRA를 적용해야 하는가?</h3>
<ul>
<li><p>Q. 제한된 파라미터 예산 내에서, Transformer의 <strong>어떤 가중치 행렬을 업데이트</strong>해야 최고의 성능을 낼 수 있는가?</p>
</li>
<li><p>실험: GPT-3 175B 모델에서 약 18M개의 파라미터 예산을 고정하고, 어텐션 가중치($W_q,W_k,W_v,W_o$)의 여러 조합에 LoRA를 적용하여 성능을 비교했다.</p>
</li>
<li><p>결과: $W_q$와 $W_v$ 두 가지에 동시에 LoRA를 적용했을 때 가장 좋은 성능을 보였다. </p>
<p>이는 하나의 가중치 행렬에 높은 rank를 할당하는 것보다, <strong>여러 가중치 행렬에 낮은 rank를 할당하는 것이 더 효과적</strong>임을 시사한다.</p>
</li>
</ul>
<h3 id="2-lora에-최적화된-rankr는-무엇인가">2. LoRA에 최적화된 Rank($r$)는 무엇인가?</h3>
<ul>
<li><p>Q. 업데이트 행렬 $ΔW$는 정말로 저계급(rank-deficient)인가? 그렇다면 실제 적용 시 어느 정도의 rank가 적절한가?</p>
</li>
<li><p>실험: $W_q$ 단독, 그리고 ${W_q,W_v}$ 조합 등에 대해 rank($r$) 값을 1부터 64까지 변화시키며 성능을 측정했다.</p>
</li>
<li><p>결과: 놀랍게도 매우 작은 rank 값($r=1$ 또는 $2$)만으로도 전체 파인튜닝에 필적하는 경쟁력 있는 성능을 보였다.</p>
</li>
<li><p>분석: 서로 다른 rank 값(예: $r=8$과 $r=64$)으로 학습된 LoRA 행렬의 특이 벡터(singular vector)들이 형성하는 부분 공간(subspace)의 유사도를 분석했다. </p>
<p>그 결과, 가장 중요한 최상위 특이 벡터 방향(top singular-vector directions)은 rank 값에 상관없이 매우 유사했으며, 이는 업데이트 행렬 $ΔW$가 실제로 <strong>매우 낮은 &quot;내재적 차원(intrinsic rank)&quot;</strong>을 가질 수 있음을 강력하게 뒷받침한다.</p>
</li>
</ul>
<h3 id="3-업데이트-행렬δw은-원본-가중치w와-어떤-관계인가">3. 업데이트 행렬($ΔW$)은 원본 가중치($W$)와 어떤 관계인가?</h3>
<ul>
<li><p>Q. 학습된 $ΔW$는 원본 가중치 $W$와 높은 상관관계가 있는가? $ΔW$는 $W$에 비해 얼마나 큰 변화를 주는가?</p>
</li>
<li><p>실험: $ΔW$가 형성하는 저차원 부분 공간에 원본 가중치 $W$를 투영(projection)시켜 두 행렬 간의 상관관계를 분석했다.</p>
</li>
<li><p>결과 및 분석: $ΔW$는 무작위 행렬보다 $W$와 더 높은 상관관계를 보였다. 이는 <strong>$ΔW$가 $W$에 이미 존재하는 특정 특징들을 증폭(amplify)</strong>하는 역할을 함을 의미한다.</p>
<p>하지만 $ΔW$는 $W$의 가장 중요한 방향성(top singular directions)을 그대로 반복하는 것이 아니라, $W$에서 상대적으로 덜 강조되었던 방향성을 선택적으로 증폭시키는 것으로 나타났다.</p>
<p>이 증폭 계수(amplification factor)는 매우 컸다 ($r=4$일 때 약 21.5배). 이는 LoRA가 일반적인 사전 학습에서는 덜 중요했지만 특정 다운스트림 태스크에 필수적인 특징들을 찾아내 크게 강화하는 방식으로 작동함을 시사한다.</p>
</li>
</ul>
<hr>
<h2 id="conclusion-and-future-work">Conclusion and Future Work</h2>
<h3 id="결론-conclusion">결론 (Conclusion)</h3>
<ul>
<li><p>LoRA의 가치: 거대 언어 모델의 전체 파인튜닝은 하드웨어 요구사항과 저장/전환 비용 측면에서 매우 비효율적이다. </p>
<p>본 논문은 <strong>추론 지연(inference latency)을 발생시키지 않고, 입력 시퀀스 길이를 줄이지 않으면서도 높은 모델 품질을 유지</strong>하는 효율적인 적응 전략인 LoRA를 제안했다.</p>
</li>
<li><p>핵심 장점: LoRA는 <strong>모델 파라미터의 대부분을 공유</strong>함으로써, 서비스로 배포되었을 때 빠른 태스크 전환을 가능하게 한다.</p>
</li>
<li><p>범용성: 본 논문은 Transformer 언어 모델에 집중했지만, LoRA의 원칙은 밀집 레이어(dense layer)를 가진 어떤 신경망에도 일반적으로 적용될 수 있다.</p>
</li>
</ul>
<h3 id="향후-연구-방향-future-work">향후 연구 방향 (Future Work)</h3>
<ul>
<li><p>다른 방법론과의 결합: LoRA는 다른 효율적인 적응 방법들과 결합하여 직교적인(orthogonal) 성능 향상을 가져올 수 있다.</p>
</li>
<li><p>파인튜닝 메커니즘 분석: 사전 학습된 특징(feature)이 다운스트림 태스크에 어떻게 변환되는지에 대한 메커니즘은 아직 불분명하다. LoRA는 전체 파인튜닝보다 분석이 용이하므로, 이 질문에 대한 해답을 찾는 데 더 다루기 쉬운 도구가 될 수 있다.</p>
</li>
<li><p>적용 가중치 선택: 현재는 LoRA를 적용할 가중치 행렬을 경험적(heuristics)으로 선택하고 있다. 이를 더 원칙에 입각한(principled) 방법으로 선택하는 방법에 대한 연구가 필요하다.</p>
</li>
<li><p>원본 가중치의 Rank-Deficiency: 업데이트 행렬 $ΔW$가 저계급(rank-deficient)이라는 사실은, 원본 가중치 행렬 $W$ 역시 저계급일 수 있다는 가능성을 시사하며, 이는 향후 연구의 영감이 될 수 있다.</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[day-5 논문 핥기] Retrieval-Augmented Generation (RAG) for
Knowledge-Intensive NLP Tasks]]></title>
            <link>https://velog.io/@choonsik_mom/day-5-%EB%85%BC%EB%AC%B8-%ED%95%A5%EA%B8%B0-Retrieval-Augmented-Generation-RAG-forKnowledge-Intensive-NLP-Tasks</link>
            <guid>https://velog.io/@choonsik_mom/day-5-%EB%85%BC%EB%AC%B8-%ED%95%A5%EA%B8%B0-Retrieval-Augmented-Generation-RAG-forKnowledge-Intensive-NLP-Tasks</guid>
            <pubDate>Tue, 16 Sep 2025 12:54:41 GMT</pubDate>
            <description><![CDATA[<p>Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis et al., 2020)</p>
<blockquote>
<h3 id="👉🏻-retrieval-augmented-generationrag-by-facebook-ai-research">👉🏻 Retrieval Augmented Generation(RAG) by Facebook AI Research</h3>
</blockquote>
<ul>
<li><a href="https://arxiv.org/pdf/2005.11401">paper </a></li>
</ul>
<hr>
<h1 id="full-summary">Full Summary</h1>
<p>본 논문은 사전 학습된 대규모 언어 모델(Parametric Memory)의 한계를 보완하기 위해, 외부의 방대한 지식 소스(Non-parametric Memory)에서 정보를 <strong>검색(Retrieve)</strong>하여 이를 기반으로 답변을 <strong>생성(Generate)</strong>하는 <code>RAG (Retrieval-Augmented Generation)</code> 프레임워크를 제안한다.</p>
<h3 id="problem-statement"><strong>Problem Statement</strong></h3>
<p>대규모 언어 모델(LLM)은 파라미터 내에 방대한 사실적 지식을 저장하지만, 다음과 같은 본질적인 한계를 가진다.</p>
<ul>
<li>지식 업데이트의 어려움: 세상의 정보가 바뀌었을 때, 모델의 지식을 수정하거나 확장하기 위해 전체 모델을 재학습해야 하므로 비용이 많이 든다.</li>
</ul>
<ul>
<li>환각 (Hallucination): 모델이 학습한 지식에만 의존하므로, 사실과 다르거나 존재하지 않는 정보를 생성할 수 있다.</li>
</ul>
<ul>
<li>출처 불분명: 생성된 답변이 어떤 정보에 근거했는지 추적하기 어려워 신뢰성을 판단하기 어렵다.</li>
</ul>
<p>RAG는 이러한 문제들을 해결하기 위해 LLM의 내부 지식과 외부의 명시적인 지식을 결합하는 하이브리드 접근법을 제시한다.</p>
<h3 id="proposed-method">Proposed Method</h3>
<p>RAG는 <code>Retriever</code>와 <code>Generator</code> 두 가지 핵심 요소로 구성된다.</p>
<ul>
<li><p><strong>Retriever (검색기)</strong>: DPR (Dense Passage Retrieval) 모델을 사용하여, 주어진 입력(Query)과 가장 관련성이 높은 K개의 문서를 외부 지식 소스(본 논문에서는 Wikipedia index)에서 검색한다. 이 외부 지식 소스가 Non-parametric Memory에 해당한다.</p>
</li>
<li><p><strong>Generator (생성기)</strong>: BART와 같은 사전 학습된 Seq2Seq 모델을 사용하여, 원본 입력과 Retriever가 검색한 문서를 함께 입력받아 최종 텍스트를 생성한다. 이 생성 모델의 가중치가 Parametric Memory 역할을 한다.</p>
</li>
</ul>
<p>본 논문은 다음과 같이 두 가지 RAG 모델을 제안한다.</p>
<ul>
<li><code>RAG-Sequence</code>: 하나의 답변 시퀀스 전체를 생성할 때 동일한 검색 문서를 참조한다.</li>
</ul>
<ul>
<li><code>RAG-Token</code>: 답변의 각 토큰을 생성할 때마다 서로 다른 문서를 참조할 수 있어, 여러 문서의 정보를 종합하는 데 더 유리하다.</li>
</ul>
<p>이 두 구성 요소는 검색할 정답 문서에 대한 명시적인 레이블 없이, 최종 출력에 대한 손실 값을 역전파하여 End-to-End 방식으로 함께 학습된다.</p>
<h3 id="experiments--results">Experiments &amp; Results</h3>
<p>본 논문은 다양한 지식 집약적 NLP 태스크에서 RAG의 성능을 평가했다.</p>
<ul>
<li>Open-domain Question Answering: Natural Questions, WebQuestions 등 4개의 QA 데이터셋에서 기존의 파라미터 기반 모델(T5)과 검색-추출(retrieve-and-extract) 모델을 모두 능가하며 SOTA(State-of-the-Art) 성능을 달성했다. 특히, 검색된 문서에 정답이 없는 경우에도 RAG는 11.8%의 정답률을 보여, 단순 추출 모델(0%)보다 강건함을 입증했다.</li>
</ul>
<ul>
<li>Knowledge-Intensive Generation: Jeopardy 문제 생성 및 MSMARCO 요약 태스크에서, 순수 BART 모델보다 더 사실에 기반하고(factual), 구체적이며(specific), 다양한(diverse) 결과물을 생성했다. 인간 평가에서도 RAG의 생성 결과가 BART보다 사실성과 구체성 측면에서 월등히 우수하다는 평가를 받았다.</li>
</ul>
<ul>
<li>Fact Verification: FEVER 데이터셋에서 별도의 검색 감독(retrieval supervision) 없이도 복잡한 파이프라인 기반의 SOTA 모델에 근접하는 성능을 보였다.</li>
</ul>
<h3 id="contributions--significance">Contributions &amp; Significance</h3>
<ul>
<li>지식 업데이트 용이성: 모델 전체를 재학습할 필요 없이, <strong>외부 문서 인덱스(Non-parametric Memory)를 최신 정보로 교체(index hot-swapping)</strong>하는 것만으로 모델의 지식을 쉽게 업데이트할 수 있음을 실험으로 증명했다.</li>
</ul>
<ul>
<li>Parametric &amp; Non-parametric 메모리의 시너지: RAG가 외부 문서에서 핵심 정보를 찾고(non-parametric), 이를 바탕으로 모델 내부의 지식(parametric)을 활용하여 유창한 문장을 완성하는, 두 메모리의 효과적인 상호작용을 보여주었다.</li>
</ul>
<ul>
<li>범용적 프레임워크 제시: 특정 태스크에 국한되지 않고 다양한 지식 집약적 NLP 태스크에 일관되게 적용할 수 있는 범용적인(general-purpose) fine-tuning 방법론을 제시했다. 이는 이후 수많은 RAG 관련 연구의 기틀이 되었다.</li>
</ul>
<hr>
<h1 id="section-summary">Section Summary</h1>
<h2 id="introduction">Introduction</h2>
<ul>
<li><p><strong>기존 사전 학습 언어 모델의 한계</strong></p>
<p>사전 학습된 신경망 언어 모델은 방대한 양의 지식을 파라미터 안에 암시적(implicit)으로 저장할 수 있다.</p>
<p>그러나 이러한 모델들은 저장된 지식을 쉽게 확장하거나 수정하기 어렵고, 예측의 근거를 명확히 제시하지 못하며, 사실과 다른 내용을 생성하는 <code>환각(hallucinations)</code> 현상을 보일 수 있다는 단점이 있다.</p>
</li>
<li><p><strong>하이브리드 모델의 필요성</strong></p>
<p>이러한 한계를 극복하기 위해 모델의 파라미터(parametric memory)와 외부 검색 기반의 <strong>비-파라미터 메모리(non-parametric memory)</strong>를 결합한 하이브리드 모델이 제안되었다.</p>
<p>비-파라미터 메모리를 활용하면 지식을 직접 수정 및 확장할 수 있고, 모델이 어떤 정보에 접근했는지 확인하고 해석할 수 있어 투명성이 높아진다.</p>
<p>REALM, ORQA와 같은 기존 연구들은 이러한 접근법의 가능성을 보여주었지만, 주로 추출형 질의응답(extractive question answering) 태스크에 국한되었다.</p>
</li>
</ul>
<ul>
<li><p><strong>RAG (Retrieval-Augmented Generation) 모델 제안</strong></p>
<p>본 논문은 Seq2Seq 모델에 검색 기반의 비-파라미터 메모리를 결합하는 범용적인 파인튜닝 방법론인 <strong>RAG(retrieval-augmented generation)</strong>를 제안한다.</p>
<p>RAG는 사전 학습된 Seq2Seq 모델(BART)을 파라미터 메모리로, 위키피디아의 밀집 벡터 인덱스(dense vector index)를 비-파라미터 메모리로 사용하며, 사전 학습된 신경망 검색기(neural retriever)를 통해 이 메모리에 접근한다.</p>
</li>
</ul>
<ul>
<li><p><strong>RAG의 주요 장점 및 기여</strong></p>
<p>RAG는 지식 집약적인(knowledge-intensive) 태스크에서 뛰어난 성능을 보인다. 특히 3개의 공개 도메인 QA 태스크에서 SOTA(최고 성능)를 달성했다.</p>
<p>언어 생성 태스크에서는 기존의 파라미터 기반 모델보다 더 구체적이고, 다양하며, 사실에 기반한(specific, diverse and factual) 언어를 생성한다.</p>
<p>외부 지식 소스에 접근하므로, 사람이 외부 지식 없이는 수행하기 어려운 태스크 해결에 큰 이점을 제공한다.</p>
</li>
</ul>
<hr>
<h2 id="methods">Methods</h2>
<p>RAG는 입력 시퀀스($x$)를 사용하여 텍스트 문서($z$)를 검색하고, 이를 추가적인 맥락(context)으로 활용하여 타겟 시퀀스($y$)를 생성하는 모델이다. </p>
<p>여기서 핵심은 검색된 문서($z$)를 직접 관찰할 수 없는 <strong>잠재 변수(latent variable)</strong>로 취급하고, 이 변수를 추론 과정에서 소거(marginalize)하는 확률적 접근 방식을 사용한다는 점이다.</p>
<h3 id="rag-모델링">RAG 모델링</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/810fd0de-8207-45f6-b49a-e19ed8db600a/image.png" alt=""></p>
<ul>
<li><strong>RAG-Sequence Model</strong></li>
</ul>
<p>이 모델은 하나의 동일한 문서($z$)를 사용하여 전체 답변 시퀀스($y$)를 생성한다고 가정한다.</p>
<p>먼저 Retriever $p_{\eta}(z|x)$를 이용해 상위 $K$개의 관련 문서를 검색한다.</p>
<p>이후 Generator $p_{\theta}(y|x, z)$는 각 문서($z$)에 대해 전체 시퀀스($y$)가 생성될 확률을 계산한다.</p>
<p>최종적으로 이 확률들을 각 문서의 검색 확률과 곱한 뒤 모두 더하여(marginalize), 최종 시퀀스 확률 $p(y|x)$를 구한다. </p>
<p>수식은 다음과 같다:
<img src="https://velog.velcdn.com/images/choonsik_mom/post/21191ceb-7275-47e6-b5a7-537cecd860a0/image.png" alt=""></p>
<ul>
<li><strong>RAG-Token Model</strong></li>
</ul>
<p>이 모델은 답변의  각 토큰($y_i$)을 생성할 때마다 다른 문서($z$)를 참조할 수 있다고 가정하여 유연성을 높였다.</p>
<p>RAG-Sequence와 같이 상위 $K$개의 문서를 먼저 검색한다.</p>
<p>각 생성 단계($i$)마다, Generator는 $K$개의 각 문서에 대해 다음 토큰($y_i$)이 나올 확률 분포를 계산한다.</p>
<p>이 분포들을 모든 문서에 대해 가중합(marginalize)하여 현재 단계의 최종 토큰 확률 분포를 얻고, 이 과정을 답변이 끝날 때까지 반복한다. </p>
<p>수식은 다음과 같다:
<img src="https://velog.velcdn.com/images/choonsik_mom/post/f2d06994-c338-46ce-bb65-047ed1888495/image.png" alt=""></p>
<h3 id="rag-구성-요소">RAG 구성 요소</h3>
<ul>
<li><p>Retriever: <code>DPR (Dense Passage Retrieval)</code></p>
<ul>
<li><p>구조: 검색기 $p_{\eta}(z|x)$는 DPR에 기반한 Bi-encoder 아키텍처를 사용한다. 이는 문서 인코더($d(z)=BERT_d(z)$)와 쿼리 인코더($q(x)=BERT_q(x)$) 두 개의 독립된 BERT 모델로 구성된다.</p>
</li>
<li><p>검색 방식: <strong>문서와 쿼리의 임베딩 벡터 간의 내적(inner product) 값이 가장 큰 상위 K개의 문서</strong>를 찾는다. 이는  <code>MIPS (Maximum Inner Product Search)</code> 문제에 해당하며, FAISS와 같은 라이브러리를 통해 효율적으로 근사치를 계산할 수 있다.</p>
<ul>
<li>초기화: 본 논문에서는 TriviaQA와 Natural Questions 데이터셋으로 사전 학습된 DPR의 Bi-encoder를 가져와 Retriever를 초기화하고, 문서 인덱스를 구축한다. 이 문서 인덱스가 non-parametric memory 역할을 한다.</li>
</ul>
</li>
</ul>
</li>
<li><p>Generator: <code>BART</code></p>
<ul>
<li><p>모델: 생성기 $p_{\theta}(y_{i}|x,z,y_{1:i-1})$는 400M개의 파라미터를 가진 사전 학습된 Seq2Seq Transformer 모델인 BART-large를 사용한다. BART의 파라미터는 parametric memory에 해당한다.</p>
</li>
<li><p>입력 방식: 검색된 내용($z$)과 원본 입력($x$)을 결합하기 위해, 두 텍스트를 단순히 이어붙여(concatenate) BART의 입력으로 제공한다.</p>
</li>
</ul>
</li>
</ul>
<h3 id="학습-및-추론">학습 및 추론</h3>
<ul>
<li><p><strong>학습 (Training)</strong></p>
<ul>
<li><p>목표: Retriever와 Generator는 End-to-End 방식으로 함께 학습된다. 학습 목표는 각 데이터 $(x_{j}, y_{j})$에 대해 <strong>음의 주변 로그 우도(negative marginal log-likelihood)</strong>를 최소화하는 것이다.</p>
</li>
<li><p>업데이트 방식: 학습 과정 전체에서 문서 인코더($BERT_d$)와 이를 기반으로 구축된 인덱스는 고정시킨다. 오직 </p>
</li>
<li><p>쿼리 인코더($BERT_q$)와 BART Generator의 파라미터만 업데이트하여 학습 효율성을 높인다. 이는 주기적으로 전체 문서 인덱스를 다시 계산해야 하는 비용을 없애준다.</p>
</li>
</ul>
</li>
</ul>
<ul>
<li><p><strong>추론 (Decoding)</strong></p>
<ul>
<li><p><code>RAG-Token</code>: 각 생성 단계의 확률 분포($p&#39;_θ$)가 일반적인 Seq2Seq 모델처럼 계산되므로, 표준 <strong>빔 서치(beam decoder)</strong>에 직접 적용하여 답변을 생성할 수 있다.</p>
</li>
<li><p><code>RAG-Sequence</code>: 전체 시퀀스($y$)에 대해 확률이 계산되므로 일반적인 빔 서치를 한 번에 적용할 수 없다. </p>
<p>대신, 검색된 각 문서($z$)에 대해 개별적으로 빔 서치를 실행하여 여러 후보군($Y$)을 생성한다. 이후, 각 후보 답변의 최종 확률을 모든 문서에 대해 계산하고 이를 합산하여 순위를 매긴다. 계산 비용을 줄이기 위해 추가적인 전방 계산(forward pass)을 생략하는 <code>Fast Decoding</code> 방식도 사용한다.</p>
</li>
</ul>
</li>
</ul>
<hr>
<h2 id="experiments">Experiments</h2>
<h3 id="1-공통-실험-환경">1. 공통 실험 환경</h3>
<ul>
<li>Non-parametric Knowledge Source: 모든 실험에서 단일 Wikipedia dump(2018년 12월 버전)를 비-파라미터 지식 소스로 사용했다.</li>
</ul>
<ul>
<li>문서 처리 및 인덱싱: Wikipedia의 각 글을 100단어 단위의 중복 없는 chunk로 분할하여 총 2,100만 개의 문서를 만들었다. 각 문서 chunk를 문서 인코더를 통해 임베딩한 후, 빠른 검색을 위해 FAISS를 사용하여 MIPS (Maximum Inner Product Search) 인덱스를 구축했다.</li>
</ul>
<ul>
<li>검색 문서 수 (K): 학습 시에는 각 쿼리당 상위 5개 또는 10개의 문서를 검색했다. 테스트 시에는 개발 데이터셋(dev data)을 통해 최적의 k값을 설정했다.</li>
</ul>
<h3 id="2-task별-실험-설계">2. Task별 실험 설계</h3>
<ul>
<li><p><strong>Open-domain Question Answering (QA)</strong></p>
<ul>
<li><p>목표: RAG가 정답을 직접 생성하는 방식이 기존의 추출형(extractive) QA나 검색 없이 파라미터 지식에만 의존하는 &quot;Closed-Book&quot; QA 방식과 어떻게 다른지 비교한다.</p>
</li>
<li><p>데이터셋: Natural Questions (NQ), TriviaQA (TQA), WebQuestions (WQ), CuratedTrec (CT)</p>
</li>
<li><p>학습 방식: 질문과 정답을 텍스트 쌍으로 간주하고, 정답의 negative log-likelihood를 직접 최소화하는 방식으로 RAG를 학습시켰다. WQ와 CT 같이 작은 데이터셋의 경우, NQ로 학습된 RAG 모델로 초기화하여 성능을 높였다.</p>
</li>
</ul>
</li>
</ul>
<ul>
<li><p><strong>Abstractive Question Answering</strong></p>
<ul>
<li><p>목표: RAG가 단순 추출을 넘어 자유로운 형태의 자연어 생성(NLG) 능력을 얼마나 갖추었는지 평가한다.</p>
</li>
<li><p>데이터셋: MSMARCO NLG task v2.1</p>
</li>
<li><p>특이사항: 데이터셋에서 제공하는 정답 관련 &quot;gold passages&quot;를 사용하지 않고, 오직 질문과 정답 쌍만 사용하여 open-domain 환경을 구성했다. 이로 인해 일부 질문은 Wikipedia만으로는 답변이 불가능할 수 있으며, 이런 경우 RAG는 파라미터 지식에 의존해 답변을 생성해야 한다.</p>
</li>
</ul>
</li>
</ul>
<ul>
<li><p><strong>Jeopardy Question Generation</strong></p>
<ul>
<li><p>목표: QA가 아닌 환경에서 RAG의 지식 집약적 생성 능력을 평가하기 위해, 정답(entity)을 보고 관련된 사실을 담은 질문(Jeopardy-style question)을 생성하는 까다로운 작업을 수행한다.</p>
</li>
<li><p>데이터셋: SearchQA 데이터셋의 분할</p>
</li>
<li><p>평가: 자동 평가로는 BLEU의 변형인 Q-BLEU-1을, 추가적으로 생성물의 <strong>사실성(factuality)</strong>과 <strong>구체성(specificity)</strong>을 측정하기 위한 인간 평가를 수행했다.</p>
</li>
</ul>
</li>
</ul>
<ul>
<li><p><strong>Fact Verification</strong></p>
<ul>
<li><p>목표: 생성(generation)이 아닌 분류(classification) 문제에 대한 RAG의 적용 가능성을 확인한다.</p>
</li>
<li><p>데이터셋: FEVER 데이터셋을 사용하며, 주어진 주장이 Wikipedia에 의해 &#39;지지(supports)&#39;, &#39;반박(refutes)&#39;, 혹은 &#39;정보 부족(not enough info)&#39;인지를 분류</p>
</li>
<li><p>학습 방식: 각 클래스 레이블을 단일 출력 토큰에 매핑하여 claim-class 쌍으로 직접 학습시켰다. 대부분의 기존 FEVER 연구와 달리, 어떤 증거 문서를 검색해야 하는지에 대한 검색 감독 정보(retrieval supervision)를 전혀 사용하지 않았다.</p>
</li>
</ul>
</li>
</ul>
<hr>
<h2 id="results">Results</h2>
<h3 id="open-domain-question-answering">Open-domain Question Answering</h3>
<p>RAG는 NQ, TQA, WQ, CT 4개 QA 데이터셋 모두에서 새로운 SOTA(State-of-the-Art) 성능을 달성했다.</p>
<p>RAG는 검색 없이 파라미터 지식만 사용하는 &quot;closed-book&quot; 접근법(T5)과, 검색 후 정답을 추출하는 &quot;open-book&quot; 접근법(DPR) 모두를 능가했다.</p>
<p>RAG의 강점은 생성 능력에 있다. 검색된 어떤 문서에도 정답이 문자 그대로 포함되어 있지 않은 경우에도, RAG는 관련된 단서들을 종합하여 정답을 생성해낼 수 있었다. </p>
<p>NQ 데이터셋에서 이런 경우 11.8%의 정확도를 기록했으며, 이는 추출 기반 모델이라면 0%를 기록할 상황이다.</p>
<h3 id="abstractive-question-answering">Abstractive Question Answering</h3>
<p>MS-MARCO NLG 태스크에서 RAG-Sequence 모델은 BART보다 Bleu 점수와 Rouge-L 점수 모두 2.6점 높았다.</p>
<p>정성적으로 평가했을 때, RAG 모델은 BART에 비해 환각(hallucinate) 현상이 적고 사실적으로 더 정확한 텍스트를 생성하는 경향을 보였다.</p>
<h3 id="jeopardy-question-generation">Jeopardy Question Generation</h3>
<p>자동 평가 지표인 Q-BLEU-1에서 RAG 모델들이 BART를 능가했다.</p>
<p>인간 평가에서 압도적인 우위를 보였다. 평가자들은 RAG가 BART보다 더 사실적(Factual)이라고 응답한 비율이 42.7%로, 그 반대(7.1%)보다 훨씬 높았다. 또한 더 구체적(Specific)이라는 응답도 37.4%로, 그 반대(16.8%)보다 높았다.</p>
<p>RAG-Token 모델은 여러 문서의 내용을 조합하는 능력이 뛰어났다. 예를 들어 &quot;헤밍웨이&quot;에 대한 질문 생성 시, 한 문서에서 &quot;The Sun Also Rises&quot; 정보를, 다른 문서에서 &quot;A Farewell to Arms&quot; 정보를 가져와 하나의 답변으로 합쳤다. 이는 </p>
<p>non-parametric memory(외부 지식)가 parametric memory(내부 지식)에 저장된 특정 지식을 효과적으로 이끌어내는 사례를 보여준다.</p>
<h3 id="fact-verification">Fact Verification</h3>
<p>FEVER 데이터셋에서 RAG는 검색할 증거에 대한 별도의 감독(supervision) 없이도 복잡한 파이프라인으로 구성된 SOTA 모델의 성능에 근접했다 (3-way 분류에서 4.3% 이내 차이).</p>
<p>RAG가 검색한 문서와 FEVER 데이터셋의 정답 증거(gold evidence) 간의 일치율을 분석한 결과, 상위 10개로 검색된 문서 내에 정답 증거가 포함된 경우가 90%에 달해, 검색 메커니즘이 효과적으로 작동함을 확인했다.</p>
<h3 id="additional-results">Additional Results</h3>
<ul>
<li>생성 다양성 (Generation Diversity): RAG 모델, 특히 RAG-Sequence는 BART보다 훨씬 더 다양한 n-gram을 사용하여 덜 반복적이고 다채로운 문장을 생성했다.</li>
</ul>
<ul>
<li>검색기 Ablation (Retrieval Ablations): Retriever를 파인튜닝하는 것이 고정된 Retriever를 사용하는 것보다 모든 태스크에서 더 좋은 성능을 보였다. 또한 RAG의 dense retriever(DPR)가 단어 빈도 기반의 BM25 검색기보다 대부분의 태스크에서 우수했다.</li>
</ul>
<ul>
<li>인덱스 교체 (Index hot-swapping): RAG의 가장 큰 장점 중 하나로, 모델 재학습 없이 문서 인덱스만 교체하여 지식을 업데이트할 수 있음을 증명했다. 2016년 Wikipedia 인덱스와 2018년 인덱스를 각각 사용하여 해당 연도의 세계 지도자에 대해 질문했을 때, 각 인덱스는 자신의 시점에 맞는 정답을 높은 정확도(68-70%)로 생성했지만, 시점이 맞지 않을 경우 정확도가 급격히 하락했다(4-12%).</li>
</ul>
<ul>
<li>검색 문서 수(K)의 영향: 테스트 시 검색 문서 수를 늘리면 RAG-Sequence의 QA 성능은 꾸준히 향상되었지만, RAG-Token은 K=10에서 성능이 정점을 찍고 이후 하락하는 경향을 보였다.</li>
</ul>
<hr>
<h2 id="related-work--discussion">Related Work &amp; Discussion</h2>
<h3 id="related-works">Related Works</h3>
<ul>
<li>Single-Task Retrieval: 기존 연구들은 QA, 팩트 체크, 대화 등 개별 NLP 태스크에 검색(retrieval)을 도입하여 성능을 향상시키는 데 집중했다. 반면, RAG는 여러 태스크에 범용적으로 적용할 수 있는 단일 검색 기반 아키텍처를 제안함으로써 이전의 성공 사례들을 통합하고 일반화했다.</li>
</ul>
<ul>
<li>General-Purpose Architectures: T5, BART와 같은 연구는 검색 기능 없이 단일 사전 학습 모델로 다양한 태스크를 해결하는 데 성공했다. RAG는 이러한 범용 아키텍처에 학습 가능한 검색 모듈(retrieval module)을 추가하여 그 가능성을 더욱 확장했다.</li>
</ul>
<ul>
<li>Learned Retrieval: 강화학습이나 잠재 변수 접근법을 사용해 특정 다운스트림 태스크에 맞춰 검색 모듈을 최적화하는 연구들이 있었다. RAG는 이러한 접근법을 단일 태스크가 아닌 다양한 태스크에 성공적으로 파인튜닝할 수 있음을 보여주었다.</li>
</ul>
<ul>
<li>Memory-based Architectures: RAG의 문서 인덱스는 Memory Network와 유사한 외부 메모리로 볼 수 있다. 하지만 RAG의 핵심적인 차별점은 메모리가 분산된 표현(distributed representations)이 아닌 <strong>사람이 읽을 수 있는 원본 텍스트(raw text)</strong>로 구성된다는 점이다. 이 덕분에 모델의 판단 근거를 해석하기 용이하고(interpretability), 사람이 직접 문서를 편집하여 모델의 지식을 동적으로 업데이트(human-writable)할 수 있다.</li>
</ul>
<ul>
<li>Retrieve-and-Edit Approaches: 유사한 예시를 검색해 수정하는 &#39;검색 후 편집&#39; 방식과 유사점도 있지만, RAG는 하나의 예시를 가볍게 편집하는 것보다 <strong>여러 검색 결과의 콘텐츠를 종합(aggregating content)</strong>하는 데 더 중점을 둔다는 차이가 있다.</li>
</ul>
<h3 id="discussion">Discussion</h3>
<p>본 논문은 파라미터 메모리와 비-파라미터 메모리를 결합한 하이브리드 생성 모델인 RAG를 제시하고 그 효과를 입증했다.</p>
<ul>
<li>주요 성과 요약: RAG 모델은 Open-domain QA에서 SOTA 성능을 달성했으며, 순수 파라미터 기반 모델인 BART보다 더 사실적이고 구체적인 텍스트를 생성함을 인간 평가를 통해 확인했다.</li>
</ul>
<ul>
<li>검색 컴포넌트의 유효성: 학습 가능한 검색 컴포넌트의 효과를 검증했으며, 모델 재학습 없이 인덱스를 교체(hot-swapped)하는 것만으로 지식을 업데이트할 수 있음을 보여주었다.</li>
</ul>
<ul>
<li>향후 연구 방향: 두 컴포넌트(Retriever와 Generator)를 처음부터 <strong>함께 사전 학습(jointly pre-trained)</strong>하는 연구가 유망할 수 있다고 제안했다.</li>
</ul>
<ul>
<li>연구의 의의: 본 연구는 파라미터 메모리와 비-파라미터 메모리가 어떻게 상호작용하고 효과적으로 결합될 수 있는지에 대한 새로운 연구 방향을 열었으며, 다양한 NLP 태스크에 적용될 수 있는 가능성을 보여주었다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Qwen3-Next: Towards Ultimate Training & Inference Efficiency]]></title>
            <link>https://velog.io/@choonsik_mom/Qwen3-Next-Towards-Ultimate-Training-Inference-Efficiency</link>
            <guid>https://velog.io/@choonsik_mom/Qwen3-Next-Towards-Ultimate-Training-Inference-Efficiency</guid>
            <pubDate>Fri, 12 Sep 2025 10:09:37 GMT</pubDate>
            <description><![CDATA[<p>Qwen3-Next가 출시되었다!</p>
<p>Qwen 3 나온지 얼마나 됐다고;; 매드맥스 마냥 중국발 ai 신기술 폭주중...</p>
<p>그래서 오늘은 논문은 아니지만 Qwen에서 업로드한 블로그 포스팅을 잠깐 훑어보려고 한다. </p>
<blockquote>
<h3 id="qwen3-next">Qwen3-Next</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/5cfff761-4230-4953-95eb-a6dccea45f93/image.png" alt=""></p>
</blockquote>
<ul>
<li><a href="https://qwen.ai/blog?id=4074cca80393150c248e508aa62983f9cb7d27cd&from=research.latest-advancements-list">blog post</a></li>
<li><a href="https://huggingface.co/collections/Qwen/qwen3-next-68c25fd6838e585db8eeea9d">huggingface</a></li>
</ul>
<hr>
<h2 id="introduction">Introduction</h2>
<p>본 논문은 <code>Context Length Scaling</code>과 <code>Total Parameter Scaling</code>이 대규모 모델의 미래에 있어 핵심 동향이라고 본다. long-context 및 large-parameter 설정에서 학습 및 추론 효율성을 더욱 향상시키기 위해, Qwen3-Next라는 새로운 모델 아키텍처를 설계했다. </p>
<p>Qwen3의 MoE 구조와 비교하여 <code>Qwen3-Next</code>는 <strong>하이브리드 어텐션 메커니즘(hybrid attention mechanism), 고도로 희소한 MoE(highly sparse Mixture-of-Experts) 구조, 학습 안정성을 위한 최적화, 그리고 더 빠른 추론을 위한 멀티 토큰 예측 메커니즘(multi-token prediction mechanism)</strong> 등 몇 가지 주요 개선 사항을 도입했다.</p>
<p>이 새로운 아키텍처를 기반으로 Qwen3-Next-80B-A3B-Base 모델을 학습시켰다. 이 모델은 800억 개의 파라미터를 가졌지만 추론 중에는 30억 개의 파라미터만 활성화된다. </p>
<p>이 기본 모델은 dense Qwen3-32B 모델과 비슷하거나 약간 더 나은 성능을 달성하면서도, 학습 비용(GPU hours)은 10% 미만으로 사용한다. 추론 시, 특히 32K 토큰 이상의 context length에서는 10배 이상 높은 처리량을 제공하여 학습과 추론 모두에서 극도의 효율성을 달성한다.</p>
<p>Qwen3-Next-80B-A3B-Base를 기반으로 두 가지 후속 학습 버전인 Qwen3-Next-80B-A3B-Instruct와 Qwen3-Next-80B-A3B-Thinking을 개발하고 출시했다. </p>
<p>본 논문은 하이브리드 어텐션과 고희소성 MoE 아키텍처로 인해 발생하는 <strong>강화 학습(RL) 훈련에서의 오랜 안정성 및 효율성 문제를 해결</strong>했다. 이를 통해 RL 훈련 속도와 최종 성능 모두에서 개선을 이뤘다.</p>
<p>Qwen3-Next-80B-A3B-Instruct는 주력 모델인 Qwen3-235B-A22B-Instruct-2507과 비슷한 성능을 보이며, 최대 256K 토큰의 초장문 context를 요구하는 작업에서 뚜렷한 이점을 보여준다. </p>
<p>Qwen3-Next-80B-A3B-Thinking은 복잡한 추론 작업에서 뛰어나며, Qwen3-30B-A3B-Thinking-2507 및 Qwen3-32B-Thinking과 같은 고비용 모델을 능가한다. </p>
<p>또한 여러 벤치마크에서 비공개 소스 모델인 Gemini-2.5-Flash-Thinking을 앞서고, 최상위 모델인 Qwen3-235B-A22B-Thinking-2507의 성능에 근접한다.</p>
<p>Qwen3-Next는 이미 Hugging Face와 <a href="https://modelscope.cn/collections/Qwen3-Next-c314f23bd0264a?spm=a2ty_o06.30285417.0.0.4766c921AoWK4q">ModelScope</a>에 출시되었다. 또한, 누구나 Alibaba Cloud Model Studio와 NVIDIA API Catalog를 통해 Qwen3-Next 서비스를 사용할 수 있다.</p>
<hr>
<h2 id="key-features">Key Features</h2>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/036b04d4-8fa7-4bee-a949-b38267ee7440/image.png" alt=""></p>
<h3 id="hybrid-architecture-gated-deltanet--gated-attention">Hybrid Architecture: Gated DeltaNet + Gated Attention</h3>
<p>Linear attention은 표준 어텐션의 이차 복잡도(quadratic complexity)를 해결하고 long context에 더 효율적이다. 그러나 linear attention만 사용하거나 표준 어텐션만 사용하는 것에는 한계가 있다. Linear attention은 빠르지만 recall 능력이 약하고, 표준 어텐션은 추론 시 비용이 많이 들고 느리다.</p>
<p>체계적인 실험을 통해 <code>Gated DeltaNet</code>이 Sliding Window Attention이나 Mamba2와 같은 일반적으로 사용되는 방법보다 더 강력한 in-context learning 능력을 제공한다는 것을 발견했다.</p>
<p>Gated DeltaNet과 표준 어텐션을 3:1 비율(75%의 레이어는 Gated DeltaNet 사용, 25%는 표준 어텐션 유지)로 혼합했을 때, 모델은 어떤 단일 아키텍처보다 일관되게 뛰어난 성능을 보이며, 더 나은 성능과 높은 효율성을 모두 달성했다.</p>
<p>표준 어텐션 레이어에는 다음과 같은 몇 가지 개선 사항을 추가했다:</p>
<ol>
<li><p>이전 연구의 <code>output gating mechanism</code>을 채택하여 어텐션의 low-rank 문제를 감소</p>
</li>
<li><p>어텐션 헤드당 차원을 128에서 256으로 증가</p>
</li>
<li><p><code>rotary position encoding</code>을 위치 차원의 첫 25%에만 적용하여 더 긴 시퀀스에 대한 외삽(extrapolation) 능력을 향상</p>
</li>
</ol>
<h3 id="ultra-sparse-moe-activating-only-37-of-parameters">Ultra-Sparse MoE: Activating Only 3.7% of Parameters</h3>
<p>Qwen3-Next는 <strong>고도로 희소한 MoE 설계(highly sparse MoE design)</strong>를 사용한다: 총 800억 개의 파라미터를 가지지만, 추론 단계마다 약 30억 개만 활성화된다. </p>
<p>실험에 따르면, global load balancing을 사용할 경우 활성화되는 expert 수를 고정한 채 총 expert 파라미터 수를 늘리면 학습 손실(training loss)이 꾸준히 감소하는 것으로 나타났다.</p>
<p>Qwen3의 MoE(총 128개 expert, 8개 routed)와 비교하여, Qwen3-Next는 총 512개의 expert로 확장했으며, 10개의 routed expert와 1개의 shared expert를 결합하여 성능 저하 없이 리소스 사용을 극대화한다.</p>
<h3 id="training-stability-friendly-designs">Training-Stability-Friendly Designs</h3>
<p>Attention output gating 메커니즘은 <code>Attention Sink</code> 및 <code>Massive Activation</code>과 같은 문제를 제거하여 모델 전반의 수치적 안정성을 보장하는 데 도움이 되는 것으로 나타났다.</p>
<p>Qwen3에서는 QK-Norm을 사용했지만, 일부 layer norm 가중치가 비정상적으로 커지는 것을 발견했다. 이를 해결하고 안정성을 더욱 향상시키기 위해, Qwen3-Next는 <code>Zero-Centered RMSNorm</code>을 채택하고, <strong>norm 가중치에 weight decay를 적용</strong>하여 무한한 성장을 방지한다.</p>
<p>또한 초기화 중에 <strong>MoE router 파라미터를 정규화</strong>하여, 훈련 초기에 각 expert가 편향 없이 선택되도록 보장한다. 이는 무작위 초기화로 인한 노이즈를 줄인다.</p>
<p>이러한 안정성에 초점을 맞춘 설계는 소규모 실험을 더 신뢰할 수 있게 만들고 대규모 훈련이 원활하게 실행되도록 돕는다.</p>
<h3 id="multi-token-prediction">Multi-Token Prediction</h3>
<p>Qwen3-Next는 <code>native  Multi-Token Prediction (MTP)</code> 메커니즘을 도입한다. 이는 <strong>Speculative Decoding에 대한 높은 수락률을 가진 MTP 모듈을 생성</strong>할 뿐만 아니라 전반적인 성능도 향상시킨다. </p>
<p>특히, Qwen3-Next는 MTP의 <strong>다중 단계 추론(multi-step inference) 성능을 최적화</strong>한다. 이는 학습과 추론 간의 일관성을 유지하는 다중 단계 훈련(multi-step training)을 통해 실제 시나리오에서 Speculative Decoding의 수락률을 더욱 향상시킨다.</p>
<hr>
<h2 id="pre-training">Pre-training</h2>
<ul>
<li><strong>Pretraining Efficiency &amp; Inference Speed</strong></li>
</ul>
<p>Qwen3-Next는 Qwen3의 36T 토큰 사전 학습 말뭉치에서 균일하게 샘플링된 15T 토큰의 서브셋으로 학습된다. </p>
<p>이 모델은 Qwen3-30A-3B에 필요한 GPU hours의 80% 미만을 사용하고, Qwen3-32B의 계산 비용의 9.3%만을 사용하면서도 더 나은 성능을 달성한다. 이는 뛰어난 학습 효율성과 가치를 보여준다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/229171de-8e9b-49da-907c-aab2667ea30c/image.png" alt=""></p>
<ul>
<li><strong>Inference stage</strong></li>
</ul>
<p>하이브리드 아키텍처 덕분에 Qwen3-Next는 추론에서도 뛰어난 성능을 보인다:</p>
<ol>
<li><p><code>Prefill Stage</code>: 4K context length에서 throughput은 Qwen3-32B보다 거의 7배 높다. 32K를 초과하면 10배 이상 빠름</p>
</li>
<li><p><code>Decode Stage</code>: 4K context에서 throughput은 거의 4배 높다. 32K를 초과하더라도 여전히 10배 이상의 속도 이점을 유지</p>
</li>
</ol>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/d5e2ddfe-4591-47c2-b93b-6002d0d50804/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/03885a54-21e7-44d0-9270-bb63ae30780a/image.png" alt=""></p>
<ul>
<li><strong>Base Model Performance</strong></li>
</ul>
<p>Qwen3-Next-80B-A3B-Base는 Qwen3-32B-Base가 사용하는 non-embedding 파라미터의 1/10만 활성화하지만, 대부분의 벤치마크에서 더 뛰어난 성능을 보이며 Qwen3-30B-A3B를 크게 능가한다. 이는 탁월한 효율성과 강력한 성능을 입증한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/b033b508-9641-4e74-80ad-a63527f84d68/image.png" alt=""></p>
<h2 id="post-trainig">Post-trainig</h2>
<ul>
<li><strong>Instruct Model Performance</strong></li>
</ul>
<p>Qwen3-Next-80B-A3B-Instruct는 Qwen3-30B-A3B-Instruct-2507과 Qwen3-32B-Non-thinking을 크게 능가하며, 주력 모델인 Qwen3-235B-A22B-Instruct-2507에 거의 필적하는 결과를 달성한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/3372d619-3d7f-41a1-acf0-5f083b6b6208/image.png" alt=""></p>
<p>RULER에서 Qwen3-Next-80B-A3B-Instruct는 모든 길이에서 (더 많은 attention layer를 가진) Qwen3-30B-A3B-Instruct-2507을 능가하며, 256K context 내에서는 (전체적으로 더 많은 layer를 가진) Qwen3-235B-A22B-Instruct-2507마저도 능가한다. </p>
<p>이는 long-context 작업에 대한 Gated DeltaNet + Gated Attention 하이브리드 설계의 강력함을 입증한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/3f2fa20a-f0c9-4e21-bbec-d1408c864579/image.png" alt=""></p>
<ul>
<li><strong>Thinking Model Performance</strong></li>
</ul>
<p>Qwen3-Next-80B-A3B-Thinking은 Qwen3-30B-A3B-Thinking-2507 및 Qwen3-32B-Thinking과 같은 고비용 모델보다 뛰어난 성능을 보인다. 이 모델은 여러 벤치마크에서 closed-source 모델인 Gemini-2.5-Flash-Thinking을 능가하며, 주요 지표에서 최신 주력 모델인 Qwen3-235B-A22B-Thinking-2507에 근접한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/82d8741e-1e12-41af-ad30-16acee92f8ef/image.png" alt=""></p>
<hr>
<h3 id="summary">Summary</h3>
<p>Qwen3-Next는 모델 아키텍처의 중요한 발전을 나타내며, linear attention과 attention gate를 포함한 <strong>어텐션 메커니즘의 혁신과 MoE 설계의 희소성 증가를 도입</strong>했다.</p>
<p>Qwen3-Next-80B-A3B는 thinking 및 non-thinking 모드 모두에서 더 큰 모델인 Qwen3-235B-A22B-2507과 동등한 성능을 제공하면서, 특히** long-context 시나리오에서 훨씬 빠른 추론 속도**를 제공한다. </p>
<p>이번 출시를 통해 오픈소스 커뮤니티가 최첨단 아키텍처 발전과 함께 진화할 수 있도록 지원하는 것을 목표로 한다. </p>
<p>앞으로 이 아키텍처를 더욱 개선하여 전례 없는 수준의 지능과 생산성을 목표로 하는 Qwen3.5를 개발할 것이다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[day-4 논문 핥기] RT-1(Robotics Transformer) paper]]></title>
            <link>https://velog.io/@choonsik_mom/day-4-%EB%85%BC%EB%AC%B8-%ED%95%A5%EA%B8%B0-RT-1Robotics-Transformer-paper</link>
            <guid>https://velog.io/@choonsik_mom/day-4-%EB%85%BC%EB%AC%B8-%ED%95%A5%EA%B8%B0-RT-1Robotics-Transformer-paper</guid>
            <pubDate>Wed, 10 Sep 2025 09:42:18 GMT</pubDate>
            <description><![CDATA[<p>RT-1: ROBOTICS TRANSFORMER FOR REAL-WORLD CONTROL AT SCALE</p>
<blockquote>
<h3 id="👉🏻-rt-1-robotics-transformer-by-google">👉🏻 RT-1 (Robotics Transformer) by Google</h3>
</blockquote>
<ul>
<li><a href="https://arxiv.org/pdf/2212.06817">paper (2023)</a></li>
<li><a href="https://github.com/google-research/robotics_transformer.git">github</a></li>
</ul>
<hr>
<h2 id="full-summary">Full Summary</h2>
<p>본 논문은 대규모의 다양한 데이터셋으로부터 지식을 효과적으로 흡수하고 일반화할 수 있는 로봇 제어 모델 <strong>RT-1 (Robotics Transformer)</strong>을 제안한다. </p>
<p>기존 로봇 학습은 특정 작업에 국한된 데이터를 사용하는 경우가 많아 새로운 작업이나 환경에 대한 일반화 능력이 부족했다. 이러한 한계를 극복하기 위해, 본 논문은 개방형, 작업에 구애받지 않는(task-agnostic) 학습 방식과 대용량 데이터를 처리할 수 있는 Transformer 기반의 고용량 아키텍처를 결합하는 것이 핵심이라고 주장한다.</p>
<p>RT-1은 이미지와 자연어 명령을 입력받아 로봇의 팔과 베이스 움직임을 출력하는 모델이다. 이 모델은 FiLM으로 조건화된 EfficientNet image encoder, TokenLearner, 그리고 Transformer를 결합한 효율적인 구조를 갖는다. 이 모델은 3500만 개의 파라미터를 가졌음에도 불구하고 실시간 제어에 필수적인 3Hz의 빠른 추론 속도를 달성한다.</p>
<p>13대의 로봇을 이용해 17개월간 수집한 13만 개 이상의 시연 데이터(700개 이상의 작업)로 학습한 결과, RT-1은 학습된 작업에서 97%의 높은 성공률을 보였다. 또한, 처음 보는 작업, 방해물, 배경에 대한 일반화 성능에서 기존 최고 성능의 모델(baseline)보다 각각 25%, 36%, 18% 더 뛰어난 성능을 입증했다. </p>
<p>나아가 시뮬레이션 데이터나 다른 종류의 로봇(예: Kuka)으로부터 수집된 이종 데이터를 성공적으로 학습하여 기존 성능 저하 없이 새로운 시나리오에 대한 일반화 능력을 향상시키는 &#39;데이터 흡수(data absorption)&#39; 능력도 보여주었다.</p>
<hr>
<h2 id="section-summary">Section Summary</h2>
<h3 id="1-introduction">1. Introduction</h3>
<ul>
<li><p>문제 제기
: 컴퓨터 비전, NLP 등 다른 분야에서는 대규모 데이터로 사전 학습된 범용 모델이 성공을 거두었지만, 데이터 수집이 특히 어려운 로봇 공학 분야에서는 아직 이러한 접근법이 제대로 입증되지 않았다.</p>
</li>
<li><p>핵심 과제
: 일반화 성능이 뛰어난 로봇 모델을 구축하기 위한 두 가지 핵심 과제는 <strong>(1) 규모와 다양성을 모두 갖춘 데이터셋을 구축</strong>하는 것과 <strong>(2) 대용량이면서도 실시간 제어가 가능한 효율적인 모델을 설계</strong>하는 것이다.</p>
</li>
<li><p>솔루션 제시
: 본 논문은 이 두 과제를 해결하기 위해 13만 건의 시연으로 구성된 대규모 데이터셋과, 이를 효과적으로 학습할 수 있는 RT-1 아키텍처를 제안한다. </p>
<p>RT-1은 뛰어난 일반화 및 강건성(robustness)을 보이며, SayCan 프레임워크와 결합하여 최대 50단계에 이르는 장기 과제(long-horizon task) 수행도 가능하다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/5c1d80cb-f9cc-4325-a34f-1b4434c1c662/image.png" alt=""></p>
<h3 id="2-related-work">2. Related Work</h3>
<ul>
<li>Transformer 기반 정책
: 최근 여러 연구에서 로봇 제어를 위해 Transformer를 사용했지만, RT-1은 언어와 시각 정보를 로봇 행동으로 매핑하는 전체 과정을 하나의 시퀀스 모델링 문제로 취급하여 Transformer를 더욱 적극적으로 활용한다.</li>
</ul>
<ul>
<li>실세계 로봇 조작
: Gato와 같은 기존 대규모 모델들은 실제 로봇으로 수행한 작업의 종류가 매우 제한적이었던 반면, RT-1은 700개가 넘는 다양한 실세계 작업에 대한 학습 및 일반화 성능을 평가한다.</li>
</ul>
<ul>
<li>다중 작업 및 언어 기반 학습
: RT-1은 로봇 공학의 오랜 연구 분야인 다중 작업 학습 및 언어 조건부 학습의 연장선에 있으며, 이전 연구들보다 훨씬 큰 규모의 데이터와 다양한 행동을 다루는 새로운 아키텍처를 제안함으로써 이 분야를 한 단계 발전시켰다.</li>
</ul>
<h3 id="3-preliminaries">3. Preliminaries</h3>
<ul>
<li><p><strong>Robot learning</strong>
: 본 논문은 언어 지시사항과 시각 정보를 기반으로 로봇 정책을 학습하는 것을 목표로 한다.</p>
<ul>
<li>policy $π$ : 언어 명령 $i$와 일련의 이미지 관찰 $x_j$가 주어졌을 때, 로봇의 행동 $a_t$를 출력</li>
<li>학습의 목표 :  주어진 지시사항에 대한 성공 여부를 나타내는 <strong>이진 보상(binary reward)을 최대화</strong>하는 정책을 학습</li>
</ul>
</li>
<li><p><strong>Transformer</strong>
: RT-1은 정책($π$)를 파라미터화하기 위해 Transformer를 사용한다. 
Transformer는 입력 시퀀스를 출력 시퀀스로 매핑하는 시퀀스 모델이며, 본 연구에서는 이미지와 언어 지시사항 같은 입력 데이터를 토큰 시퀀스로 변환하고, 이를 다시 행동 토큰 시퀀스로 매핑하는 데 사용된다.</p>
</li>
<li><p><strong>Imitation Learning</strong>
: 전문가(여기서는 사람)의 성공적인 시연 데이터셋을 사용하여, 주어진 상황에서 전문가의 행동을 모방하도록 정책을 학습시키는 행동 복제(behavioral cloning) 방식을 사용한다.
학습 목표는 이미지와 언어 지시사항이 주어졌을 때, 시연 데이터에 기록된 행동의 로그 가능도(log-likelihood)를 최대화(음의 로그 가능도를 최소화)하는 것이다.</p>
</li>
</ul>
<h3 id="4-system-overview">4. System Overview</h3>
<ul>
<li><p>하드웨어 및 환경
: Everyday Robots의 7축 팔을 가진 이동형 로봇을 사용하며, 대규모 데이터 수집을 위한 &#39;로봇 교실&#39;과 평가를 위한 실제 사무실 주방 2곳에서 실험을 진행했다.</p>
</li>
<li><p>데이터
: 13만 개 이상의 인간 원격 조종 시연 데이터로 구성되며, 각 시연에는 &quot;콜라 캔 집어&quot;와 같은 텍스트 설명이 달려 있다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/fa618690-ec24-44a7-b99e-d56f2878f271/image.png" alt=""></p>
<ul>
<li>RT-1 아키텍처</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/ca2ded72-0eeb-4a5b-8bc3-d10e41ec2369/image.png" alt=""></p>
<ul>
<li>입력: 이미지 시퀀스와 자연어 명령을 입력받는다.</li>
<li>처리: ImageNet으로 사전 학습된 EfficientNet이 FiLM을 통해 언어 임베딩으로 조건화되어 이미지 특징을 추출한다.</li>
<li>압축: TokenLearner가 추출된 특징 토큰을 소수의 핵심 토큰으로 압축한다.</li>
<li>출력: Transformer가 압축된 토큰을 처리하여 이산화된(discretized) 로봇 행동을 출력한다.</li>
<li>실시간 제어: 전체 시스템은 3Hz의 빈도로 로봇 행동을 제어한다.</li>
</ul>
<h3 id="5-rt-1--robotics-transformer">5. RT-1 : Robotics Transformer</h3>
<h4 id="model">Model</h4>
<ul>
<li><p><strong>Instruction and image tokenization</strong>
: RT-1은 6개의 이미지 시퀀스와 자연어 지시사항을 입력받는다. 6개의 이미지는 FiLM으로 조건화된 EfficientNet을 통과하여 81개의 시각-언어 토큰으로 변환된다. </p>
<p>언어 명령은 Universal Sentence Encoder (USE)로 임베딩되어 FiLM 레이어에 주입됨으로써, 초기 단계부터 작업과 관련된 특징을 추출하도록 돕는다. </p>
</li>
<li><p><strong>TokenLearner</strong>
: 위 81개의 토큰을 다시 8개로 압축하여 Transformer의 연산 효율성을 높인다.</p>
</li>
<li><p><strong>Transformer</strong>
: 8개의 self-attention 레이어로 구성된 decoder-only Transformer가 최종적으로 행동 토큰을 출력한다.</p>
</li>
</ul>
<ul>
<li><p><strong>Action tokenization</strong>
: 팔(7차원), 베이스(3차원), 제어 모드(1차원) 등 총 11차원의 행동 공간을 각각 256개의 구간(bin)으로 이산화하여 사용한다. 이는 복잡한 multi-modal 행동 분포를 효과적으로 표현할 수 있게 한다.</p>
</li>
<li><p><strong>Loss</strong>
: 모델 학습에는 standard categorical cross-entropy 손실을 사용하고, 이전 Transformer 기반 제어기들에서 활용되었던 casual masking을 적용하여 다음 행동을 예측한다.</p>
</li>
<li><p><strong>Inference speed</strong>
: 실시간 제어 요구사항(3Hz, 100ms 이내)을 만족시키기 위해 TokenLearner를 통한 토큰 수 감소와 이전 계산 결과를 재사용하는 기법을 적용한다.</p>
</li>
</ul>
<h4 id="data">Data</h4>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/56240475-5dcd-437d-a21c-90c66a215e70/image.png" alt=""></p>
<p>13대의 로봇으로 17개월에 걸쳐 13만 개의 시연 데이터를 수집했다.</p>
<p>데이터는 &#39;물건 집기&#39;, &#39;서랍 열기&#39; 등과 같은 기술(skill) 그룹으로 분류되며, 총 744개의 구체적인 명령어로 구성된다 (Table 1 참조). </p>
<p>데이터 수집은 다양한 물체와 행동을 포함하도록 설계되어 모델의 일반화 능력을 극대화하고자 했다.</p>
<h3 id="6-experiments">6. Experiments</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4e764198-a041-43ea-99ca-5251f06b7de2/image.png" alt=""></p>
<h4 id="61-experimental-setup">6.1. Experimental Setup</h4>
<ul>
<li><p><strong>하드웨어 및 환경</strong></p>
<ul>
<li>로봇: Everyday Robots의 mobile manipulator를 사용하여 실험을 수행</li>
<li>환경: 총 세 곳의 환경에서 평가 진행</li>
<li>학습 환경: 데이터 수집을 위해 제작된 모의 주방 환경</li>
<li>평가 환경 (실제 주방): 학습 환경과 유사한 조리대를 가졌으나, 조명, 배경, 전체적인 주방 구조(예: 찬장, 싱크대 유무 등)에서 차이가 있는 실제 사무실 주방 두 곳(Kitchen1, Kitchen2)에서 평가</li>
</ul>
</li>
<li><p><strong>평가 지표</strong>
: 모델의 성능, 일반화, 강건성을 측정하기 위해 다음과 같은 네 가지 지표를 사용했으며, 총 3,000회 이상의 실제 로봇 실험을 통해 평가됨</p>
<ul>
<li><p><strong>학습된 작업 성능 (Seen task performance)</strong> : 학습 데이터셋에 포함된 명령어에 대한 수행 능력을 평가. 단, 물체의 위치나 로봇의 시작 위치 등은 매번 무작위로 변경되어, 현실적인 환경 변화에 대한 일반화 능력을 함께 측정. 물건 집기, 옮기기, 서랍 조작 등 총 200개 이상의 작업을 대상으로 테스트.</p>
</li>
<li><p><strong>처음 보는 작업 일반화 (Unseen tasks generalization)</strong> : 학습 데이터에 포함되지 않은 21개의 새로운 명령어를 수행하는 능력을 평가. 명령어 자체는 새롭지만, 그 안에 포함된 개별 기술(skill)이나 객체는 학습 데이터에 다른 조합으로 등장한 적이 있음. 예를 들어, &quot;사과 집기&quot;가 평가 대상이라면 학습 데이터에는 &quot;사과 옮기기&quot;나 &quot;콜라 캔 집기&quot; 같은 관련 데이터가 포함됨</p>
</li>
<li><p><strong>강건성 (Robustness)</strong> : </p>
<ol>
<li>방해물(Distractor) 강건성: 장면에 방해물이 추가되었을 때의 성능 평가. 방해물의 수와 목표 객체의 가려짐 정도에 따라 쉬움(0-5개), 중간(9개), 어려움(9개, 가려짐) 난이도로 나누어 테스트</li>
<li>배경(Background) 강건성: 새로운 주방 환경이나 패턴이 있는 테이블보를 사용하는 등 시각적 배경이 바뀌었을 때의 성능 평가</li>
</ol>
<ul>
<li><strong>장기 시나리오 (Long-horizon scenarios)</strong> : 여러 기술을 순차적으로 연결해야 하는 현실적인 장기 과제에 대한 일반화 성능을 평가.&quot;테이블 위 모든 물건 버리기&quot;와 같은 상위 레벨의 지시사항을 SayCan 시스템을 이용해 자동으로 세부 단계로 나누어 수행하게 하고, 이를 통해 새로운 작업, 객체, 환경 등 여러 일반화 요소를 동시에 테스트</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 id="62-일반화-성능">6.2 일반화 성능</h4>
<p><em>CAN RT-1 LEARN TO PERFORM A LARGE NUMBER OF INSTRUCTIONS, AND TO GENERALIZE TO NEW TASKS, OBJECTS AND ENVIRONMENTS?</em></p>
<p>RT-1은 학습된 작업(Seen Tasks, 97%)뿐만 아니라, 처음 보는 작업(Unseen Tasks, 76%), 방해물이 있는 환경(Distractors, 83%), 새로운 배경(Backgrounds, 59%) 모두에서 Gato, BC-Z 등 비교 모델들을 큰 차이로 능가했다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/1da138b4-d854-45fc-be23-c6f9573f143b/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/852b1c78-7058-4135-90c9-5f767f8cb3d3/image.png" alt=""></p>
<h4 id="63-이종-데이터-흡수">6.3 이종 데이터 흡수</h4>
<p><em>CAN WE PUSH THE RESULTING MODEL FURTHER BY INCORPORATING HETEROGENEOUS DATA SOURCES SUCH AS SIMULATION OR DATA FROM DIFFERENT ROBOTS?</em></p>
<ul>
<li><p>시뮬레이션 데이터: 실제 데이터에 시뮬레이션 데이터를 추가 학습했을 때, 실제 환경에서의 기존 작업 성능은 유지하면서(-2%) 시뮬레이션에서만 본 객체에 대한 실제 작업 성공률을 23%에서 87%로 크게 향상시켰다.</p>
</li>
<li><p>타 로봇 데이터: 다른 종류의 로봇(Kuka)이 수집한 데이터를 추가 학습했을 때도 기존 작업 성능 저하를 최소화하면서(-2%), Kuka 로봇의 작업 환경과 유사한 새로운 &#39;상자 안 물건 집기&#39; 작업의 성공률을 22%에서 39%로 약 2배 가까이 향상시켰다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/367a69cf-4351-4979-ad5d-3d924ee1adae/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/790b7f44-fc5f-4f96-9023-5100f7536b72/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e528842b-ea77-4f83-8c9e-4dca2af5dc75/image.png" alt=""></p>
<h4 id="64-장기-과제-수행">6.4. 장기 과제 수행</h4>
<p><em>HOW DO VARIOUS METHODS GENERALIZE LONG-HORIZON ROBOTIC SCENARIOS?</em></p>
<p>SayCan 프레임워크와 결합하여 실제 주방 환경에서 장기 과제를 수행한 결과, RT-1은 67%의 성공률을 기록했다. 특히 학습 환경과 다른 두 번째 주방에서는 Gato가 0%, BC-Z가 13%의 성공률을 보인 반면, RT-1은 67%의 성능을 유지하며 뛰어난 환경 일반화 능력을 보였다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/2d39ee9c-46a6-42bc-bdd8-eddc774c3532/image.png" alt=""></p>
<h4 id="65-데이터-규모와-다양성">6.5 데이터 규모와 다양성</h4>
<p><em>HOW DO GENERALIZATION METRICS CHANGE WITH VARYING AMOUNTS OF DATA QUANTITY AND DATA DIVERSITY?</em></p>
<p>데이터의 양(quantity)보다 <strong>다양성(diversity)</strong>이 일반화 성능에 더 큰 영향을 미쳤다. 작업의 25%를 제거하자(데이터 양은 97% 유지), 데이터 양을 49% 줄인 것과 비슷한 수준으로 일반화 성능이 하락했다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/cccfdd2d-7d41-41ac-9606-30052f57022d/image.png" alt=""></p>
<h3 id="7-conclusions-limitations-and-future-work">7. Conclusions, Limitations, and Future Work</h3>
<ul>
<li><p>결론: RT-1은 대규모의 다양한 데이터를 효과적으로 흡수하여 뛰어난 일반화 성능을 보이는 로봇 학습 방법임을 입증했다.</p>
</li>
<li><p>한계점:</p>
<ul>
<li>시연자의 성능을 뛰어넘기 힘든 모방 학습의 근본적인 한계가 있다.</li>
<li>이전에 본 적 없는 완전히 새로운 동작을 생성하는 데는 한계가 있다.</li>
<li>다루는 작업이 고도의 정교함을 요구하지는 않는다.</li>
</ul>
</li>
</ul>
<ul>
<li>향후 연구: 비전문가도 쉽게 데이터를 수집하고 모델을 학습시킬 수 있는 방법 개발, 환경 다양성 증대, 확장 가능한 어텐션 및 메모리 구조를 통한 반응 속도 개선 등을 향후 연구 방향으로 제시했다.</li>
</ul>
<hr>
<h2 id="🔍-saycan-vs-rt-1-비교">🔍 SayCan vs RT-1 비교</h2>
<h3 id="✨-요약">✨ 요약</h3>
<p>SayCan과 RT-1은 로봇이 복잡한 작업을 수행하게 하는 서로 다른 계층의 문제를 해결하며, 함께 사용될 때 강력한 시너지를 내는 보완적인 관계에 있다. <strong>SayCan</strong>이 <strong>&#39;무엇을 할지&#39;</strong> 계획하는 고수준 두뇌 역할을 한다면, <strong>RT-1</strong>은 계획된 단계를 <strong>&#39;어떻게 실행할지&#39;</strong> 담당하는 강력한 저수준 실행기 역할을 한다.</p>
<table>
<thead>
<tr>
<th align="left">구분</th>
<th align="left"><strong>SayCan (Do As I Can, Not As I Say)</strong></th>
<th align="left"><strong>RT-1 (Robotics Transformer 1)</strong></th>
</tr>
</thead>
<tbody><tr>
<td align="left"><strong>주요 목표</strong></td>
<td align="left"><strong>고수준 계획(High-Level Planning)</strong>: &quot;음료수를 쏟았어, 도와줘&quot;와 같은 추상적이고 긴 지시사항을 이해하고, 로봇이 수행할 수 있는 구체적인 행동 순서로 변환하는 것을 목표로 한다.</td>
<td align="left"><strong>저수준 제어(Low-Level Control)</strong>: &quot;콜라 캔 집어&quot;와 같은 구체적인 단일 명령을 정확하게 수행하는 범용 정책 모델을 만드는 것을 목표로 한다.</td>
</tr>
<tr>
<td align="left"><strong>역할</strong></td>
<td align="left"><strong>플래너 (Planner)</strong>: 다음에 어떤 기술(skill)을 실행해야 가장 유용하고 성공 확률이 높은지 결정한다. 직접 로봇을 움직이지 않는다.</td>
<td align="left"><strong>실행기 (Executor/Policy)</strong>: 플래너가 결정한 특정 기술을 수행하기 위해, 이미지 입력을 받아 실제 모터 명령을 생성한다.</td>
</tr>
<tr>
<td align="left"><strong>핵심 기술</strong></td>
<td align="left"><strong>LLM과 가치 함수의 결합</strong>: 대규모 언어 모델(LLM)을 사용해 &quot;어떤 기술이 지시사항에 유용한지(Say)&quot;를 판단하고, 학습된 가치 함수(Value Function)를 통해 &quot;로봇이 그 기술을 물리적으로 성공할 수 있는지(Can)&quot;를 결합한다.</td>
<td align="left"><strong>Transformer 기반 End-to-End 모델</strong>: 이미지와 언어 입력을 받아 이산화된(discretized) 로봇 행동을 직접 출력하는 단일 Transformer 모델이다. 대규모의 다양한 데이터 학습을 통해 높은 일반화 성능을 확보한다.</td>
</tr>
<tr>
<td align="left"><strong>관계</strong></td>
<td align="left">RT-1과 같은 강력한 저수준 정책을 필요로 한다. RT-1이 제공하는 신뢰도 높은 기술 실행 능력이 있어야 SayCan의 계획이 의미를 가진다.</td>
<td align="left">SayCan과 같은 고수준 플래너와 결합하여 장기 과제(long-horizon task)를 수행할 수 있다. RT-1 논문에서 SayCan을 활용해 50단계에 달하는 복잡한 작업을 수행하는 실험을 진행했다.</td>
</tr>
</tbody></table>
<h3 id="✨-비교-내용-정리">✨ 비교 내용 정리</h3>
<p>두 시스템의 핵심적인 차이와 관계는 다음과 같다.</p>
<h4 id="1-목표와-역할-계획planning-vs-실행execution">1. 목표와 역할: 계획(Planning) vs. 실행(Execution)</h4>
<ul>
<li><p><code>SayCan</code>은 <strong>&#39;지시사항을 어떻게 나눌 것인가&#39;</strong>에 집중한다. 예를 들어, &quot;쏟은 음료수 치우는 것을 도와줘&quot;라는 명령을 받으면, LLM의 지식을 활용해 <strong>&quot;1. 스펀지 찾기, 2. 스펀지 집기, 3. 스펀지 가져오기&quot; 와 같은 일련의 계획을 생성</strong>한다. 이때 로봇이 <strong>실제로 스펀지를 집을 수 있는 상태인지를 가치 함수(어포던스)로 확인</strong>하여 비현실적인 계획(예: 근처에 없는 진공청소기 사용)을 배제한다.</p>
</li>
<li><p><code>RT-1</code>은 SayCan이 생성한 계획의 각 단계, 즉 &quot;스펀지 집기&quot;와 같은 <strong>단일 명령을 실제로 수행하는 역할</strong>을 한다. RT-1은 13만 건이 넘는 방대한 <strong>실제 로봇 시연 데이터를 학습</strong>하여, 다양한 물체와 환경에서도 높은 성공률로 명령을 실행할 수 있는 강건함과 일반화 능력을 갖추었다.</p>
</li>
</ul>
<h4 id="2-기술적-접근-시스템-결합-vs-단일-모델">2. 기술적 접근: 시스템 결합 vs. 단일 모델</h4>
<ul>
<li><p><code>SayCan</code>은 두 개의 독립적인 시스템을 창의적으로 결합한 접근 방식이다.
<code>Say (LLM)</code>: 웹의 방대한 텍스트로 학습된 의미론적 지식을 제공한다.
<code>Can (Value Function)</code>: 로봇이 실제 환경에서 상호작용하며 학습한 물리적 실행 가능성(affordance) 정보를 제공한다.</p>
</li>
<li><p><code>RT-1</code>은 시각 정보와 언어 명령을 입력받아 <strong>직접 행동을 출력하는 잘 짜인 단일 End-to-End 모델</strong>이다. FiLM-EfficientNet, TokenLearner, Transformer를 결합한 효율적인 구조로 대규모 데이터를 효과적으로 흡수(absorb)하여 일반화 성능을 극대화하는 데 초점을 맞춘다.</p>
</li>
</ul>
<h4 id="3-시너지-효과">3. 시너지 효과</h4>
<p>RT-1 논문은 SayCan과 RT-1의 시너지를 명확하게 보여준다. 기존 SayCan은 BC-Z와 같은 비교적 간단한 정책을 실행기로 사용했지만, RT-1을 실행기로 사용함으로써 훨씬 더 복잡하고 어려운 장기 과제를 높은 성공률로 수행할 수 있게 되었다. </p>
<p>특히 RT-1의 뛰어난 일반화 덕분에 처음 보는 주방 환경(Kitchen2)에서도 성능 저하 없이 67%의 실행 성공률을 기록했으며, 이는 다른 모델들이 급격한 성능 저하를 보인 것과 대조된다.</p>
<p>결론적으로, <strong>SayCan은 로봇에게 추상적인 목표를 이해하고 논리적인 계획을 세우는 능력을 부여하고, RT-1은 그 계획의 각 단계를 현실 세계에서 신뢰도 높게 실행하는 신체 능력을 제공</strong>한다. 이 둘의 조합은 범용 로봇을 향한 중요한 진전을 보여준다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[day-3 논문 핥기] GroundingDINO paper]]></title>
            <link>https://velog.io/@choonsik_mom/day-3-%EB%85%BC%EB%AC%B8-%ED%95%A5%EA%B8%B0-GroundingDINO-paper</link>
            <guid>https://velog.io/@choonsik_mom/day-3-%EB%85%BC%EB%AC%B8-%ED%95%A5%EA%B8%B0-GroundingDINO-paper</guid>
            <pubDate>Tue, 09 Sep 2025 12:31:06 GMT</pubDate>
            <description><![CDATA[<p>Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection</p>
<blockquote>
<h3 id="👉🏻-groundingdino-by-idea-research">👉🏻 GroundingDINO by IDEA-Research</h3>
</blockquote>
<ul>
<li><a href="https://arxiv.org/pdf/2303.05499">paper (ECCV 2024)</a></li>
<li><a href="https://github.com/IDEA-Research/GroundingDINO">github</a></li>
</ul>
<hr>
<h2 id="full-summary">full-summary</h2>
<p>본 논문은 <strong>오픈셋 객체 탐지(Open-Set Object Detection)</strong>를 위해  Grounding DINO라는 새로운 모델을 제안한다. Grounding DINO는 Transformer 기반의 탐지기인 DINO와 <strong>그라운딩 사전 학습(grounded pre-training)</strong>을 결합한 구조이다. 이 모델은 카테고리 이름이나 참조 표현(referring expression)과 같은 사용자 입력을 통해 임의의 객체를 탐지할 수 있는 능력을 갖추는 것을 목표로 한다. </p>
<p>기존의 폐쇄형(closed-set) 탐지기를 오픈셋으로 확장하기 위해, 본 논문은 언어와 비전 양식을 효과적으로 융합하는 &#39;긴밀한 융합(tight fusion)&#39; 방식을 제안한다. 이를 위해 기존 탐지기 구조를 특징 추출, 쿼리 초기화, 박스 예측의 세 단계로 나누고, 각 단계에서 언어 정보를 긴밀하게 통합하는 방법을 설계했다. </p>
<p>구체적으로는 <code>Feature Enhancer</code>, <code>Language-Guided Query Selection</code>, <code>Cross-Modality Decoder</code>를 통해 두 양식 간의 융합을 극대화했다. </p>
<p>또한, 대규모 데이터를 활용한 그라운딩 학습 방법론을 채택하고, 기존 방식의 단점을 보완하기 위해 &#39;sub-sentence level&#39; 텍스트 특징 추출 기법을 도입했다. </p>
<p>실험 결과, Grounding DINO는 COCO, LVIS, ODinW 등 주요 벤치마크에서 뛰어난 제로샷(zero-shot) 탐지 성능을 보였으며, 특히 COCO 제로샷 벤치마크에서 52.5 AP를 달성하며 새로운 기록을 세웠다. </p>
<hr>
<h2 id="section-summary">section-summary</h2>
<h3 id="1-서론-introduction">1. 서론 (Introduction)</h3>
<ul>
<li>문제 정의: 기존 객체 탐지는 미리 정의된 카테고리만 탐지하는 폐쇄형(Closed-Set) 방식에 머물러 있어, 실제 세계의 다양한 객체를 다루기 어렵다. 본 논문은 언어 입력을 통해 처음 보는 객체도 탐지할 수 있는 <strong>오픈셋 객체 탐지(Open-Set Object Detection)</strong>를 목표로 한다. </li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/d0338efb-8c6f-4400-954f-50fb704826ce/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/375ec050-b17c-4df7-823b-1c3957b3b634/image.png" alt=""></p>
<ul>
<li><p>핵심 아이디어:
긴밀한 양식 융합(Tight Modality Fusion): DINO와 같은 Transformer 기반 탐지기의 구조적 이점을 활용하여, 백본, 넥(neck), 헤드(head)의 여러 단계에서 이미지와 텍스트 특징을 긴밀하게 융합한다. </p>
<p>대규모 그라운딩 사전 학습(Large-scale Grounded Pre-train): 객체 탐지를 구문 그라운딩(phrase grounding) 문제로 재정의하고, 대규모 데이터셋으로 사전 학습하여 모델의 제로샷 일반화 성능을 높인다. </p>
</li>
</ul>
<ul>
<li>주요 성과: COCO, LVIS 등 주요 벤치마크에서 SOTA(State-of-the-Art) 성능을 달성했으며, Stable Diffusion과 결합하여 이미지 편집 등 다양한 응용 가능성을 제시했다. </li>
</ul>
<h3 id="2-관련-연구-related-work">2. 관련 연구 (Related Work)</h3>
<p>Detection Transformers: Grounding DINO는 DETR 계열 모델, 특히 DINO를 기반으로 한다. DINO는 대조적 디노이징(contrastive de-noising) 등의 기법으로 COCO 벤치마크에서 높은 성능을 보였으나, 사전 정의된 클래스에만 국한되는 한계가 있다. </p>
<ul>
<li>오픈셋 객체 탐지: 기존 연구들은 CLIP 같은 모델의 지식을 증류하거나(ViLD) , 탐지를 그라운딩 문제로 공식화(GLIP)하는  방식을 사용했다. 그러나 이들은 특징 융합을 특정 단계(예: 넥 또는 쿼리 초기화)에서만 부분적으로 수행하여 최적의 성능을 내기 어려웠다. Grounding DINO는 전 단계에 걸친 융합을 통해 이를 개선하고자 했다. </li>
</ul>
<h3 id="3-grounding-dino-방법론">3. Grounding DINO 방법론</h3>
<ul>
<li><p>전체 구조: Grounding DINO는 이중 인코더-단일 디코더(dual-encoder-single-decoder) 구조를 따른다. </p>
<p>이미지 백본(예: Swin Transformer)과 텍스트 백본(예: BERT)이 각각의 특징을 추출한 후, 세 가지 핵심 모듈을 통해 융합 및 객체 탐지를 수행한다. </p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/bd0a0442-ec84-46e7-a083-bdc577e097d4/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/cb88602e-a7cd-4eef-b417-286a31cb4188/image.png" alt=""></p>
<ul>
<li>핵심 구성 요소:<ul>
<li>Feature Enhancer: 이미지와 텍스트의 초기 특징(vanilla features)을 입력받아, self-attention, text-to-image cross-attention, image-to-text cross-attention을 통해 양방향으로 특징을 융합하고 강화한다. </li>
<li>Language-Guided Query Selection: 텍스트 특징과 이미지 특징 간의 유사도를 계산하여, 텍스트 프롬프트와 가장 관련성이 높은 이미지 영역 특징을 디코더의 초기 쿼리(query)로 선택한다. 이를 통해 탐지 과정이 언어 입력에 의해 효과적으로 안내된다. </li>
<li>Cross-Modality Decoder: 선택된 쿼리들은 디코더에 입력되어 self-attention, image cross-attention뿐만 아니라 text cross-attention을 추가적으로 거친다. 이를 통해 디코더의 각 레이어에서 텍스트 정보를 지속적으로 주입받아 객체 박스를 정제한다. </li>
<li>Sub-Sentence Level Text Feature: 기존 연구들이 문장 전체를 하나의 특징으로 인코딩하거나, 단어들을 단순히 이어 붙여 불필요한 단어 간 상호작용을 유발했던 문제를 해결한다. 이 방법은 attention mask를 사용해 관련 없는 카테고리 이름 간의 상호작용을 차단함으로써, 각 단어의 고유한 특징을 유지하면서도 세밀한 정보를 활용할 수 있게 한다. </li>
<li>손실 함수: 박스 회귀를 위해 L1 손실과 GIoU 손실을 사용하고, 분류를 위해 예측된 객체와 언어 토큰 간의 <strong>대조적 손실(contrastive loss)</strong>을 사용한다. </li>
</ul>
</li>
</ul>
<hr>
<h3 id="4-실험-experiments">4. 실험 (Experiments)</h3>
<ul>
<li><p>제로샷 전이(Zero-Shot Transfer):</p>
<ul>
<li><p>COCO: COCO 학습 데이터 없이 사전 학습된 모델만으로 평가했을 때 52.5 AP를 달성하여 GLIP과 DINO를 능가했다. </p>
</li>
<li><p>LVIS: 희귀 카테고리에서는 GLIP보다 다소 낮은 성능을 보였으나, 일반적인 객체에서는 더 나은 성능을 보였다. 또한 더 많은 데이터에 대해 더 나은 확장성(scalability)을 보였다. </p>
</li>
<li><p>ODinW: 35개의 다양한 데이터셋으로 구성된 이 벤치마크에서 26.1 AP를 기록하며 SOTA를 달성했고, 거대 모델인 Florence보다도 높은 성능을 보였다. </p>
</li>
</ul>
</li>
</ul>
<ul>
<li><p>참조 객체 탐지 (Referring Object Detection):</p>
<p>RefCOCO/+/g 데이터셋에서 사전 학습만으로는 GLIP과 마찬가지로 성능이 저조했지만, 해당 데이터를 학습에 포함시키자 상당한 성능 향상을 보였다. 이는 현재 오픈셋 모델들이 더 세밀한 탐지를 위해 개선이 필요함을 시사한다. </p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/7c58af0e-a10c-456c-bb62-71a652f6e3b1/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/87f3c6a1-e388-49cf-a759-55b3c958a910/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e5d761d4-f74b-4c80-ae50-0b6fb4c67869/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/95c39c3a-11d2-4b2a-a1f3-16c0fdc9dd90/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/39fafe8f-cee6-483d-b616-15b6aeb450e0/image.png" alt=""></p>
<ul>
<li><p>Ablation Studies:</p>
<p>제안된 각 모듈(encoder fusion, language-guided query selection, text cross-attention 등)을 제거하며 성능을 비교한 결과, 모든 요소가 모델 성능 향상에 긍정적으로 기여함을 확인했다. 특히 인코더 단계에서의 융합이 성능 향상에 가장 큰 영향을 미쳤다. </p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/f44201f8-9057-45ff-814a-1f03b6d39216/image.png" alt=""></p>
<h3 id="5-결론-conclusion">5. 결론 (Conclusion)</h3>
<ul>
<li>요약: 본 논문은 DINO를 오픈셋 객체 탐지로 확장한 Grounding DINO를 제안했다. 긴밀한 양식 융합 방식과 sub-sentence level 표현을 통해 다양한 벤치마크에서 뛰어난 성능을 입증했다. </li>
</ul>
<ul>
<li><p>한계점: </p>
<p>1) GLIPv2와 달리 분할(segmentation) 작업에는 사용할 수 없다. </p>
<p>2) 더 큰 규모의 데이터로 학습한 GLIP 모델보다는 학습 데이터가 적어 최종 성능이 제한될 수 있다. </p>
<p>3) 특정 경우에 거짓 양성(false positive)을 생성하는 문제가 있다. </p>
</li>
</ul>
<ul>
<li>향후 과제: REC 제로샷 성능에 대한 추가적인 연구가 필요함을 강조했다. </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[day-2 논문 핥기] Segment Anything (SAM) paper ]]></title>
            <link>https://velog.io/@choonsik_mom/day-2-%EB%85%BC%EB%AC%B8-%ED%95%A5%EA%B8%B0-Segment-Anything-SAM-paper</link>
            <guid>https://velog.io/@choonsik_mom/day-2-%EB%85%BC%EB%AC%B8-%ED%95%A5%EA%B8%B0-Segment-Anything-SAM-paper</guid>
            <pubDate>Mon, 08 Sep 2025 13:30:38 GMT</pubDate>
            <description><![CDATA[<blockquote>
<h3 id="👉🏻-segment-anything-sam-by-meta">👉🏻 Segment Anything (SAM) by Meta</h3>
</blockquote>
<ul>
<li><a href="https://arxiv.org/pdf/2304.02643">paper (2023)</a></li>
<li><a href="https://github.com/facebookresearch/segment-anything">github</a></li>
</ul>
<h3 id="abstract">Abstract</h3>
<p>본 논문은 image segmentation을 위한 새로운 과업, 모델, 데이터셋인 Segment Anything을 소개한다. 효율적인 모델을 데이터 수집 루프에 사용하여 1,100만 개의 이미지에 대해 10억 개 이상의 마스크를 포함하는, 현재까지 가장 큰 규모의 분할 데이터셋을 구축했다. 이 모델은 프롬프트가 가능하도록(promptable) 설계 및 훈련되어 새로운 이미지 분포와 과업으로 zero-shot 전이가 가능하다. 본 논문은 수많은 과업에 대한 모델의 성능을 평가했으며, 그 zero-shot 성능이 이전의 완전 지도 학습(fully supervised) 결과와 비슷하거나 능가할 정도로 인상적이라는 것을 확인했다. </p>
<hr>
<h2 id="1-introduction">1. Introduction</h2>
<p>웹 스케일 데이터셋으로 사전 훈련된 Large language model은 강력한 zero-shot 및 few-shot 일반화 능력으로 NLP 분야에 혁명을 일으키고 있다. 이러한 foundation model 은 훈련 과정에서 보지 못했던 과업과 데이터 분포에 대해서도 일반화가 가능하다. 이 능력은 종종 수작업으로 만든 텍스트를 이용해 language model이 특정 과업에 대한 유효한 텍스트 응답을 생성하도록 유도하는 prompt engineering을 통해 구현된다. </p>
<p>웹의 방대한 텍스트 코퍼스를 통해 확장 및 훈련되었을 때, 이 모델들의 zero-shot 및 few-shot 성능은 fine-tuning된 모델과 비교해도 놀라울 정도로 우수하며, 때로는 필적하기까지 한다. 경험적 추세에 따르면 이러한 현상은 모델 규모, 데이터셋 크기, 총 훈련 컴퓨팅 파워가 증가함에 따라 향상된다.</p>
<p>Foundation model은 컴퓨터 비전 분야에서도 탐구되어 왔지만, 상대적으로 그 범위는 제한적이었다. 아마도 가장 대표적인 사례는 웹에서 수집한 텍스트와 이미지 쌍을 정렬하는 것이다. 예를 들어, CLIP 과 ALIGN 은 대조 학습(contrastive learning)을 사용하여 두 양식을 정렬하는 텍스트 및 이미지 인코더를 훈련시킨다. </p>
<p>일단 훈련되고 나면, 조작된 텍스트 프롬프트는 새로운 시각적 개념과 데이터 분포에 대한 zero-shot 일반화를 가능하게 한다. 이러한 인코더는 다른 모듈과 효과적으로 결합하여 이미지 생성(예: DALL-E )과 같은 downstream task를 수행할 수도 있다. 비전-언어 인코더 분야에서 많은 발전이 있었지만, 컴퓨터 비전은 이 범위를 넘어서는 매우 다양한 문제들을 포함하며, 이러한 문제들 대부분에 대해서는 방대한 훈련 데이터가 존재하지 않는다.</p>
<p>본 연구의 목표는 image segmentation을 위한 foundation model을 구축하는 것이다. 즉, 강력한 일반화를 가능하게 하는 과업을 통해 광범위한 데이터셋에서 사전 훈련시킬 수 있는 프롬프트 기반 모델(promptable model)을 개발하고자 한다. 이 모델을 사용하여 prompt engineering을 통해 새로운 데이터 분포에 대한 다양한 downstream 분할 문제를 해결하는 것을 목표로 한다.</p>
<p>이 계획의 성공은 <strong>task, model, data</strong>라는 세 가지 핵심 요소에 달려있다. 이를 개발하기 위해, 본 논문은 이미지 분할에 관한 다음과 같은 질문들을 다룬다.</p>
<ol>
<li>어떤 <strong>task</strong>가 zero-shot 일반화를 가능하게 할 것인가? </li>
<li>그에 상응하는 <strong>model</strong> 아키텍처는 무엇인가? </li>
<li>어떤 <strong>data</strong>가 이 과업과 모델을 구동할 수 있는가? </li>
</ol>
<p>이 질문들은 서로 얽혀 있어 포괄적인 해결책이 필요하다. 본 논문은 먼저 광범위한 downstream 응용을 가능하게 하고 강력한 사전 훈련 목표를 제공할 만큼 충분히 일반적인 promptable segmentation task를 정의하는 것부터 시작한다. 이 과업은 유연한 프롬프트를 지원하고, 상호작용적 사용을 위해 프롬프트 입력 시 실시간으로 분할 마스크를 출력할 수 있는 모델을 요구한다. </p>
<p>모델을 훈련시키기 위해서는 다양하고 대규모의 데이터 소스가 필요하다. 안타깝게도, 분할을 위한 웹 스케일 데이터 소스는 존재하지 않는다. 이 문제를 해결하기 위해, 본 논문은 효율적인 모델을 데이터 수집에 활용하고 새로 수집된 데이터로 모델을 개선하는 과정을 반복하는 &quot;데이터 엔진&quot;을 구축한다.</p>
<p>다음으로 서로 연결된 각 구성 요소를 소개하고, 이어서 우리가 만든 데이터셋과 우리 접근 방식의 효과를 입증하는 실험들을 소개한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/dff1f4b4-a917-4f20-91dc-e85c58077266/image.png" alt=""></p>
<ul>
<li><p><code>Task (§2)</code>. 본 논문은 foundation model 연구 흐름에서 영감을 받아 promptable segmentation task를 제안한다. 본 task의 목표는 <strong>어떤 분할 프롬프트가 주어지더라도 유효한 분할 마스크를 반환하는 것</strong>이다 (Figure 1a 참조). </p>
<p>프롬프트는 이미지에서 분할할 대상을 간단히 지정하며, 예를 들어 객체를 식별하는 공간적 또는 텍스트 정보를 포함할 수 있다. </p>
<p>&quot;유효한 출력 마스크를 요구한다&quot;는 것은 프롬프트가 모호하여 여러 객체를 참조할 수 있는 경우 (예: 셔츠 위의 한 점이 셔츠 또는 그 셔츠를 입은 사람을 나타낼 수 있는 경우) 에도 출력이 해당 객체들 중 적어도 하나에 대한 합리적인 마스크여야 함을 의미한다.</p>
<p>본 논문은 promptable segmentation task를 사전 훈련 목표로 사용하고 prompt engineering을 통해 일반적인 downstream segmentation 과업을 해결하는 데 사용한다.</p>
</li>
</ul>
<ul>
<li><p><code>Model (§3)</code>. Promptable segmentation task와 실제 사용 목표는 모델 아키텍처에 제약을 가한다. </p>
<p>모델은 <strong>유연한 프롬프트를 지원</strong>해야 하고, 상호작용적 사용을 위해 <strong>분할 상환 실시간(amortized real-time)</strong>으로 마스크를 계산해야 하며, <strong>모호성을 인지</strong>할 수 있어야 한다. </p>
<p>본 논문은 간단한 설계(Figure 1b 참조)가 이 세 가지 제약을 모두 만족시킨다는 것을 발견했다. 본 논문은 이 모델을 <code>Segment Anything Model (SAM)</code>이라고 부른다. </p>
<p>SAM의 설계 구조는 다음과 같다: (1) 강력한 <strong>이미지 인코더(image encoder)가 이미지 임베딩을 계산하고,</strong> (2) <strong>프롬프트 인코더(prompt encoder)가 프롬프트를 임베딩</strong>한 다음, 두 정보 소스가 <strong>분할 마스크를 예측하는 경량 마스크 디코더(lightweight mask decoder)에서 결합</strong>되는 방식이다.</p>
<p>SAM을 <strong>image encoder</strong>와 <strong>fast prompt encoder / mask decoder</strong>로 분리함으로써, 동일한 이미지 임베딩을 다른 프롬프트와 함께 재사용할 수 있다 (그리고 그 비용은 분할 상환된다). </p>
<p>이미지 임베딩이 주어지면, 프롬프트 인코더와 마스크 디코더는 웹 브라우저에서 약 50ms 내에 프롬프트로부터 마스크를 예측한다. </p>
<p>본 논문은 점, 상자, 마스크 프롬프트에 중점을 두며, 자유 형식 텍스트 프롬프트를 사용한 초기 결과도 제시한다. </p>
<p>SAM이 모호성을 인지하도록 하기 위해, 단일 프롬프트에 대해 여러 개의 마스크를 예측하도록 설계하여 셔츠 대 사람 예시와 같은 모호성을 자연스럽게 처리할 수 있도록 했다.</p>
</li>
</ul>
<ul>
<li><p><code>Data engine (§4)</code>. 새로운 데이터 분포에 대한 강력한 일반화를 달성하기 위해, 본 논문은 기존의 어떤 분할 데이터셋보다도 크고 다양한 마스크 세트로 SAM을 훈련시킬 필요가 있음을 발견했다. </p>
<p>Foundation model의 일반적인 접근 방식은 온라인에서 데이터를 얻는 것이지만, 마스크는 자연적으로 풍부하지 않으므로 대안 전략이 필요하다. 우리의 해결책은 &quot;데이터 엔진&quot;을 구축하는 것이다. 즉, </p>
<p>model-in-the-loop 데이터셋 주석 작업을 통해 모델을 공동 개발한다 (Figure 1c 참조). 우리의 데이터 엔진은 세 단계로 구성된다: <strong>1. 보조-수동(assisted-manual), 2. 반자동(semi-automatic), 3. 완전 자동(fully automatic)</strong>. </p>
<blockquote>
</blockquote>
<p>Stage 1. SAM은 고전적인 대화형 분할 설정과 유사하게 주석자가 마스크를 주석 처리하는 것을 돕는다. </p>
<blockquote>
</blockquote>
<p>Stage 2. SAM은 가능한 객체 위치를 프롬프트로 받아 객체의 일부에 대한 마스크를 자동으로 생성할 수 있으며, 주석자는 나머지 객체를 주석 처리하는 데 집중하여 마스크 다양성을 높이는 데 도움을 준다. </p>
<blockquote>
</blockquote>
<p>Stage 3. 전경 포인트의 규칙적인 격자를 SAM에 프롬프트로 제공하여 이미지당 평균 약 100개의 고품질 마스크를 얻는다.</p>
</li>
</ul>
<ul>
<li><p><code>Dataset (§5)</code>. SAM의 최종 데이터셋인 SA-1B는 1,100만 개의 라이선스가 있고 개인 정보를 보호하는 이미지에서 추출한 10억 개 이상의 마스크를 포함한다 (Figure 2 참조). </p>
<p>데이터 엔진의 최종 단계를 사용하여 완전 자동으로 수집된 SA-1B는 기존의 어떤 분할 데이터셋보다 400배 더 많은 마스크를 보유하고 있으며, 논문에서 광범위하게 검증된 바와 같이 마스크의 품질과 다양성이 높다. </p>
<p>SAM을 견고하고 일반적으로 훈련시키는 데 사용되는 것 외에도, SA-1B가 새로운 foundation model을 구축하려는 연구에 귀중한 자원이 되기를 바란다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/83fafd0d-a1fc-4e15-8013-9b903d25df08/image.png" alt=""></p>
<ul>
<li><p><code>Responsible AI  (§6)</code>. 본 논문은 SA-1B와 SAM을 사용할 때 발생할 수 있는 잠재적인 공정성 문제와 편향을 연구하고 보고한다. SA-1B의 이미지는 지리적, 경제적으로 다양한 국가에 걸쳐 있으며, SAM은 다양한 인구 집단에 걸쳐 유사하게 수행됨을 발견했다. </p>
<p>이 모든 것을 통해, 본 논문의 연구가 실제 사용 사례에 더 공평하게 기여하기를 바란다. 부록에 모델 및 데이터셋 카드를 제공한다.</p>
</li>
<li><p><code>Experiments  (§7)</code>. 본 논문은 SAM을 광범위하게 평가한다. </p>
<p>첫째, 23개의 다양한 새로운 분할 데이터셋을 사용하여, SAM이 단일 전경 포인트로부터 고품질의 마스크를 생성하며, 이는 종종 수동으로 주석 처리된 ground truth보다 약간 낮은 수준임을 발견했다. </p>
<p>둘째, prompt engineering을 사용한 zero-shot transfer 프로토콜 하에서 가장자리 감지(edge detection), 객체 제안 생성(object proposal generation), 인스턴스 분할(instance segmentation), 그리고 텍스트-마스크 예측(text-to-mask prediction)의 예비 탐색을 포함한 다양한 downstream 과업에서 일관되게 강력한 정량적 및 정성적 결과를 발견했다.</p>
<p>이러한 결과는 SAM이 SAM의 훈련 데이터를 넘어서는 객체 및 이미지 분포를 포함하는 다양한 과업을 해결하기 위해 prompt engineering과 함께 즉시 사용될 수 있음을 시사한다. 그럼에도 불구하고, §8에서 논의하는 바와 같이 개선의 여지는 남아있다.</p>
</li>
</ul>
<hr>
<h2 id="2-segment-anything-task">2. Segment Anything Task</h2>
<h3 id="task">Task</h3>
<p><code>Kirillov et al. (2023)</code>은 자연어 처리에서 &quot;다음 토큰 예측&quot; 작업이 foundation model의 사전 훈련과 다양한 하위 작업 해결에 모두 활용되는 것에서 영감을 받아, 분할 분야에서도 유사한 능력을 가진 작업을 정의하고자 했다. </p>
<p>이들은 NLP의 프롬프트 개념을 분할 작업으로 확장하여, 프롬프트가 이미지에서 무엇을 분할해야 하는지를 나타내는 모든 정보가 될 수 있도록 정의했다.</p>
<p>구체적으로 프롬프트는 foreground / background 점들의 집합, 대략적인 바운딩 박스나 마스크, 자유형 텍스트, 또는 일반적으로 이미지에서 무엇을 분할할지 지시하는 모든 정보를 포함할 수 있다. promptable segmentation task의 핵심은 어떤 프롬프트가 주어져도 유효한 분할 마스크를 반환하는 것이다.</p>
<p>여기서 &quot;유효한&quot; 마스크의 요구사항은 매우 중요한데, 프롬프트가 모호하여 여러 객체를 지칭할 수 있는 경우에도 출력은 적어도 그 객체들 중 하나에 대한 합리적인 마스크여야 한다. </p>
<p>예를 들어 셔츠 위의 한 점이 셔츠 또는 셔츠를 입은 사람 모두를 지칭할 수 있지만, 둘 중 하나에 대한 합리적인 마스크를 생성해야 한다. 이는 언어 모델이 모호한 프롬프트에 대해서도 일관된 응답을 출력해야 한다는 기대와 유사하다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/12168549-2c94-4805-bd36-a4acc8aa9080/image.png" alt=""></p>
<h3 id="pre-training">Pre-training</h3>
<p>사전 훈련 방법론은 각 훈련 샘플에 대해 일련의 프롬프트들을 시뮬레이션하고, 모델의 마스크 예측을 ground truth와 비교하는 자연스러운 알고리즘을 제안한다. </p>
<p>이 방법은 interactive segmentation에서 차용했지만, 중요한 철학적 차이가 있다. 기존 interactive segmentation의 목표는 충분한 사용자 입력을 받은 후에 결국 유효한 마스크를 예측하는 것이다. </p>
<p>반면 SAM의 목표는 <code>프롬프트가 모호하더라도 어떤 프롬프트에 대해서도 항상 유효한 마스크를 예측하는 것</code>이다. 이러한 접근법은 모호성을 포함한 사용 사례에서 사전 훈련된 모델이 효과적으로 작동하도록 보장하며, 특히 데이터 엔진에서 요구되는 자동 주석 작업에 매우 중요하다.</p>
<p>저자들은 이 작업에서 우수한 성능을 달성하는 것이 도전적이며, 특수한 모델링과 훈련 손실 선택이 필요하다고 언급한다. 관련 세부사항들은 Section 3에서 자세히 다룬다.</p>
<h3 id="zero-shot-transfer">Zero-shot transfer</h3>
<p>제로샷 전이의 핵심 아이디어는 사전 훈련 작업이 모델에게 추론 시간에 어떤 프롬프트에도 적절히 응답할 수 있는 능력을 부여한다는 것이다. 따라서 하위 작업들은 적절한 프롬프트를 설계하는 것을 통해 해결될 수 있다.</p>
<p>구체적인 예시로, 고양이를 위한 바운딩 박스 검출기가 있다면, 검출기의 박스 출력을 SAM에 프롬프트로 제공함으로써 고양이 인스턴스 분할을 수행할 수 있다. 이는 기존 시스템과 SAM을 결합하여 새로운 능력을 창출하는 방식을 보여준다.</p>
<p>일반적으로 광범위한 실용적 분할 작업들이 프롬프팅을 통해 해결될 수 있다. 저자들은 자동 데이터셋 라벨링 외에도 실험에서 다섯 가지 다양한 예시 작업들을 탐구했는데, 이는 모델의 범용성과 다양한 도메인에서의 적용 가능성을 보여준다.</p>
<h3 id="related-tasks">Related tasks</h3>
<p>분할 분야는 대화형 분할(interactive segmentation), 경계 검출(edge detection), 객체 제안 생성(object proposal generation), 시맨틱 분할(semantic segmentation), 인스턴스 분할(instance segmentation), 파놉틱 분할(panoptic segmentation) 등 광범위하다. 본 논문의 과업은 이러한 여러 작업에 적용될 수 있는 모델을 목표로 한다.</p>
<p>기존의 다중 과업(multi-task) 시스템은 고정된 여러 과업(예: 시맨틱, 인스턴스, 파놉틱 분할을 동시에 수행)을 학습하고 테스트하는 방식이었다. 하지만 본 논문에서 제안하는 모델은 학습하지 않은 새로운 과업도 추론 시점에 수행할 수 있다는 점에서 중요하다.</p>
<p>이 모델은 더 큰 시스템의 일부(component)로 작동하여 새로운 작업을 수행한다. 예를 들어, 기존 객체 탐지기(object detector)와 결합하여 인스턴스 분할을 수행할 수 있다.</p>
<h3 id="discussion">Discussion</h3>
<p>프롬프트(Prompting)와 구성(Composition)은 모델 설계 시점에는 알려지지 않았던 작업들을 수행할 수 있도록 단일 모델을 확장 가능한 방식으로 사용할 수 있게 하는 강력한 도구다. 이는 CLIP과 같은 파운데이션 모델이 DALL-E 이미지 생성 시스템의 구성 요소로 사용되는 방식과 유사하다. 이러한 접근 방식은 고정된 작업 세트에 대해 특별히 훈련된 시스템보다 더 넓은 범위의 애플리케이션을 가능하게 할 것으로 기대된다.</p>
<p>대화형 분할(interactive segmentation) 모델은 인간 사용자를 염두에 두고 설계되었지만, 본 논문에서 제안하는 프롬프트 기반 분할(promptable segmentation) 모델은 더 큰 알고리즘 시스템에 통합될 수 있다는 점에서 차이가 있다.</p>
<hr>
<h2 id="3-segment-anything-model">3. Segment Anything Model</h2>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/2bfc91b0-7797-4f60-ad4f-580262bda9c3/image.png" alt=""></p>
<p>본 섹션에서는 promptable segmentation을 위한 Segment Anything Model (SAM)을 설명한다. SAM은 Figure 4에 설명된 바와 같이 이미지 인코더, 유연한 프롬프트 인코더, 빠른 마스크 디코더의 세 가지 구성 요소로 이루어져 있다. </p>
<p>본 논문은 분할 상환 실시간(amortized real-time) 성능을 위한 특정 절충안을 가진 Transformer 기반vision model을 기반으로 한다. 여기서는 이러한 구성 요소들을 높은 수준에서 설명한다. (자세한 내용은 부록 A 참조)</p>
<ul>
<li><strong>Image Encoder</strong>
: 확장성과 강력한 사전 훈련 방법론에 동기를 부여받아, 고해상도 입력을 처리하도록 최소한으로 수정된 MAE 사전 훈련 Vision Transformer (ViT)를 사용한다. 이미지 인코더는 이미지당 한 번만 실행되며, 모델에 프롬프트를 입력하기 전에 미리 적용될 수 있다.</li>
</ul>
<ul>
<li><p><strong>Prompt Encoder</strong>
: 두 가지 종류의 프롬프트, 즉 희소 프롬프트(sparse: 점, 상자, 텍스트)와 밀집 프롬프트(dense: 마스크)를 고려한다. </p>
<p>점과 상자는 위치 인코딩(positional encodings)과 각 프롬프트 유형에 대한 학습된 임베딩을 합산하여 표현하며, 자유 형식 텍스트는 CLIP의 기성 텍스트 인코더를 사용한다. </p>
<p>밀집 프롬프트(즉, 마스크)는 convolution을 사용하여 임베딩되고 이미지 임베딩과 요소별로 합산된다.</p>
</li>
</ul>
<ul>
<li><p><strong>Mask Decoder</strong>
: 마스크 디코더는 이미지 임베딩, 프롬프트 임베딩, 그리고 출력 토큰을 효율적으로 마스크로 매핑한다. 이 디자인은 Transformer 디코더 블록의 변형을 사용하며, 그 뒤에 동적 마스크 예측 헤드가 따라온다. </p>
<p>수정된 디코더 블록은 프롬프트 self-attention과 양방향 cross-attention(프롬프트-이미지 임베딩, 이미지-프롬프트 임베딩)을 사용하여 모든 임베딩을 업데이트한다. </p>
<p>두 개의 블록을 실행한 후, 이미지 임베딩을 업샘플링하고 MLP가 출력 토큰을 동적 선형 분류기로 매핑하여 각 이미지 위치에서 마스크의 전경 확률을 계산한다.</p>
</li>
</ul>
<ul>
<li><p><strong>Resolving Ambiguity</strong>
: 출력이 하나일 경우, 모호한 프롬프트가 주어지면 모델은 여러 유효한 마스크를 평균 내버리게 된다. 이 문제를 해결하기 위해, 단일 프롬프트에 대해 여러 출력 마스크를 예측하도록 모델을 수정했다 (그림 3 참조). </p>
<p>3개의 마스크 출력이 대부분의 일반적인 경우(예: 전체-부분-세부 부분으로 구성된 중첩 마스크)를 처리하기에 충분하다는 것을 발견했다. 훈련 중에는 마스크들에 대한 최소 손실(minimum loss)만을 역전파한다. 마스크의 순위를 매기기 위해 모델은 각 마스크에 대한 신뢰도 점수(즉, 추정된 IoU)를 예측한다.</p>
</li>
</ul>
<ul>
<li><strong>Efficiency</strong>
: 전반적인 모델 설계는 효율성에 크게 동기를 부여받았다. 미리 계산된 이미지 임베딩이 주어지면, 프롬프트 인코더와 마스크 디코더는 웹 브라우저의 CPU에서 약 50ms 내에 실행된다. 이러한 실행 시간 성능은 모델의 원활하고 실시간적인 대화형 프롬프팅을 가능하게 한다.</li>
</ul>
<ul>
<li><strong>Losses and training</strong>
: 마스크 예측은 focal loss와 dice loss의 선형 조합으로 감독한다. Promptable segmentation 과업을 위해 기하학적 프롬프트의 혼합을 사용하여 훈련한다. 마스크당 11라운드로 프롬프트를 무작위로 샘플링하여 대화형 설정을 시뮬레이션함으로써 SAM이 데이터 엔진에 원활하게 통합될 수 있도록 한다.</li>
</ul>
<hr>
<h2 id="4-segment-anything-data-engine">4. Segment Anything Data Engine</h2>
<p>Image Segmentation mask 데이터셋은 인터넷에 풍부하게 존재하지 않기 때문에, 11억 개의 마스크 데이터셋인 SA-1B를 수집하기 위해 <strong>데이터 엔진(Data Engine)</strong>을 구축했다. 이 데이터 엔진은 세 단계로 구성된다:</p>
<blockquote>
<p>◾ <strong>데이터 엔진(Data Engine) 구축 3단계</strong></p>
</blockquote>
<ol>
<li>모델 보조 수동 주석 단계 (Model-assisted manual annotation)</li>
<li>반자동 단계 (Semi-automatic stage)</li>
<li>완전 자동 단계 (Fully automatic stage)</li>
</ol>
<h3 id="1-assisted-manual-stage-보조-수동-단계">1. Assisted-manual stage (보조-수동 단계)</h3>
<p>이 첫 단계는 전통적인 <strong>대화형 분할(interactive segmentation)</strong>과 유사하다.</p>
<p>전문 주석가(annotator) 팀이 SAM 모델의 도움을 받아 객체의 전경/배경 지점을 클릭하여 마스크를 라벨링했다.</p>
<p>SAM 모델이 개선됨에 따라 마스크 당 평균 주석 시간은 34초에서 14초로 감소했고, 이미지 당 평균 마스크 수는 20개에서 44개로 증가했다. 이 단계에서 총 12만 개의 이미지로부터 430만 개의 마스크를 수집했다.</p>
<h3 id="2-semi-automatic-stage-반자동-단계">2. Semi-automatic stage (반자동 단계)</h3>
<p>이 단계의 목표는 마스크의 다양성을 높여 모델의 분할 능력을 향상시키는 것이었다.</p>
<p>먼저 신뢰도 높은 마스크를 자동으로 탐지한 후, 주석가들에게 이 마스크들이 미리 채워진 이미지를 제공하고 아직 주석이 달리지 않은 추가 객체들을 라벨링하도록 요청했다.</p>
<p>이 단계에서는 더 까다로운 객체들을 라벨링했기 때문에 마스크 당 평균 주석 시간은 34초로 다시 증가했다. 이미지 당 평균 마스크 수는 44개에서 72개로 증가했다. 이 단계에서 18만 개의 이미지로부터 추가로 590만 개의 마스크를 수집했다.</p>
<h3 id="3-fully-automatic-stage-완전-자동-단계">3. Fully automatic stage (완전 자동 단계)</h3>
<p>최종 단계에서는 주석 과정이 완전 자동으로 이루어졌다.</p>
<p>이는 이전 단계를 통해 모델 성능이 크게 향상되었고, 모호함을 인지하는(ambiguity-aware) 모델을 개발하여 애매한 경우에도 유효한 마스크를 예측할 수 있게 되었기 때문에 가능했다.</p>
<p>모델에 32×32의 정규 격자 포인트를 프롬프트로 입력하고 각 포인트에 대해 유효한 객체에 해당할 수 있는 마스크 세트를 예측했다.</p>
<p>이후 IoU 예측 모듈, 안정성 확인, NMS(Non-Maximal Suppression) 등의 과정을 거쳐 중복을 제거하고 신뢰도 높은 마스크만 필터링했다.</p>
<p>최종적으로 데이터셋의 모든 1,100만 개 이미지에 이 완전 자동 마스크 생성을 적용하여 총 11억 개의 고품질 마스크를 생성했다.</p>
<hr>
<h2 id="5-segment-anything-dataset">5. Segment Anything Dataset</h2>
<p>SA-1B 데이터셋은 1,100만 개의 다양한 고해상도, 라이선스가 확보되고 개인 정보가 보호되는 이미지와 데이터 엔진으로 수집된 11억 개의 고품질 분할 마스크로 구성된다.</p>
<p>SA-1B는 컴퓨터 비전용 파운데이션 모델의 향후 개발을 돕기 위해 공개된다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/8c1b4ab5-1e81-4a7c-8c8d-514817558429/image.png" alt=""></p>
<h3 id="image">Image</h3>
<p>사진작가와 직접 협력하는 제공업체로부터 1,100만 개의 새로운 고해상도 이미지(3300×4950 픽셀 평균)를 라이선스했다.</p>
<p>접근성을 위해 이미지의 짧은 쪽을 1,500픽셀로 다운샘플링하여 공개하며, 이는 COCO와 같은 기존 데이터셋보다 훨씬 높은 해상도다.</p>
<p>공개된 이미지에서는 얼굴과 차량 번호판이 블러 처리되었다.</p>
<h3 id="masks">Masks</h3>
<p>데이터 엔진은 11억 개의 마스크를 생성했으며, 이 중 99.1%가 완전 자동으로 생성되었다.</p>
<p>따라서 자동 생성된 마스크의 품질이 매우 중요하며, 분석 결과 이 마스크들은 고품질이며 모델 훈련에 효과적이라는 결론을 내렸다.</p>
<p>이러한 결과에 따라, SA-1B 데이터셋에는 자동으로 생성된 마스크만 포함된다.</p>
<h3 id="mask-quality">Mask quality</h3>
<p>마스크 품질을 평가하기 위해 무작위로 샘플링된 500개 이미지(약 5만 개 마스크)에 대해 전문 주석가들이 품질을 개선하도록 요청했다.</p>
<p>자동 예측 마스크와 전문가 수정 마스크 쌍 간의 IoU를 계산한 결과, 94%의 쌍이 90% 이상의 IoU를 보였다.이는 기존 연구에서 추정된 주석가 간 일치도인 85-91% IoU보다 높은 수치다.</p>
<p>사람 평가에서도 마스크 품질이 높으며, 자동 생성된 마스크로 모델을 훈련하는 것이 데이터 엔진이 생성한 모든 마스크를 사용하는 것만큼 효과적임을 확인했다.</p>
<h3 id="mask-properties">Mask properties</h3>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/3d8df561-c1e5-42c6-a781-c5edc9028812/image.png" alt=""></p>
<p>다른 대규모 데이터셋과 비교했을 때, SA-1B는 이미지 중앙 편향이 적고 이미지 모서리 부분까지 더 넓게 커버한다. SA-1B는 두 번째로 큰 Open Images 데이터셋보다 이미지 수는 11배, 마스크 수는 400배 더 많다.</p>
<p>이미지 당 평균 마스크 수가 다른 데이터셋보다 훨씬 많기 때문에, 상대적으로 작거나 중간 크기의 마스크 비율이 더 높다.</p>
<p>마스크 모양의 복잡성을 나타내는 오목함(concavity) 분포는 다른 데이터셋과 대체로 유사하다.</p>
<hr>
<h2 id="6-segment-anything-rai--responsible-ai-analysis">6. Segment Anything RAI ( Responsible AI) Analysis</h2>
<p>SA-1B 데이터셋과 SAM 모델 사용 시 발생할 수 있는 잠재적인 공정성 문제와 편향을 조사하고 분석한다.</p>
<p>분석은 SA-1B의 지리적 및 소득 분포, 그리고 보호받는 인구 속성(성별, 연령, 피부색 등)에 대한 SAM의 공정성에 초점을 맞춘다.</p>
<h3 id="geographic-and-income-representation-지리적-및-소득-대표성">Geographic and income representation (지리적 및 소득 대표성)</h3>
<p>이미지에 포함된 국가별 이미지 수를 시각화하고 상위 50개국을 분석했다. 상위 3개국은 서로 다른 대륙에 위치해 있다.</p>
<p>SA-1B는 기존 COCO나 Open Images 데이터셋에 비해 유럽, 아시아 및 오세아니아, 그리고 중간 소득 국가의 이미지 비율이 훨씬 높다.</p>
<p>모든 데이터셋에서 아프리카와 저소득 국가는 여전히 과소 대표되고 있다.</p>
<p>그럼에도 불구하고 SA-1B에서는 아프리카를 포함한 모든 지역이 최소 2,800만 개의 마스크를 보유하고 있으며, 이는 이전 데이터셋의 총 마스크 수보다 10배 이상 많은 수치다.</p>
<h3 id="fairness-in-segmenting-people-사람-분할의-공정성">Fairness in segmenting people (사람 분할의 공정성)</h3>
<p>인식되는 성별 표현(gender presentation), 연령대(age group), 피부색(skin tone)에 따른 SAM의 성능 차이를 측정하여 공정성 문제를 조사했다.</p>
<ul>
<li>성별 표현: 기존 데이터셋에서는 여성이 과소 대표되는 경향이 있었지만, SAM은 여성/남성 그룹 전반에 걸쳐 유사한 성능을 보였다.</li>
</ul>
<ul>
<li>연령대: 젊거나 나이가 많은 그룹이 과소 대표되는 경향이 있었으나, SAM은 나이가 많은 것으로 인식되는 그룹에서 가장 좋은 성능을 보였다 (신뢰 구간은 큼).</li>
</ul>
<ul>
<li>피부색: 밝은 피부톤이 과대 대표되는 경향이 있었지만, SAM은 피부색 그룹 간에 유의미한 성능 차이를 보이지 않았다.</li>
</ul>
<p>이러한 결과는 태스크 특성에서 비롯된 것으로 보이며, SAM이 더 큰 시스템의 일부로 사용될 때는 편향이 발생할 수 있음을 인정한다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/a503ffd4-550c-480f-a5cc-54b27ef9a170/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/eb81f7f8-9cbb-41f1-b5be-177a21827c49/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/268d0f20-6c51-4a17-a047-7862e1a2520e/image.png" alt=""></p>
<hr>
<h2 id="7-zero-shot-transfer-experiments">7. Zero-Shot Transfer Experiments</h2>
<p>이 섹션에서는 SAM(Segment Anything Model)을 사용한 제로샷 전이(zero-shot transfer) 실험들을 소개한다. 여기서 &#39;제로샷 전이&#39;는 SAM이 학습 과정에서 보지 못했던 데이터셋과 과업에 대해 평가하는 것을 의미하며, 이는 CLIP 논문에서의 용례를 따른다. </p>
<p>평가에 사용된 데이터셋에는 SA-1B 데이터셋에는 없는 것으로 알려진 수중 또는 1인칭 시점 이미지 같은 새로운 이미지 분포가 포함될 수 있다.</p>
<p>실험은 SAM의 핵심 목표인 <strong>&#39;어떤 프롬프트로부터든 유효한 마스크 생성하기&#39;</strong>를 테스트하는 것부터 시작하며, 특히 모호할 가능성이 높은 단일 전경 포인트 프롬프트의 어려운 시나리오에 중점을 둔다.</p>
<p>이후 이미지 이해도의 여러 단계를 아우르는 4가지 추가 과업을 통해 SAM의 성능을 평가한다. 이 과업들은 SAM이 학습한 &#39;프롬프트 기반 분할&#39; 태스크와는 크게 다르며, 프롬프트 엔지니어링을 통해 구현된다.</p>
<p>(1) 경계 검출 (Edge detection): 저수준(low-level) 태스크</p>
<p>(2) 객체 제안 생성 (Object proposal generation): &quot;모든 것 분할하기&quot;에 해당하는 중수준(mid-level) 태스크</p>
<p>(3) 인스턴스 분할 (Instance segmentation): &quot;탐지된 객체 분할하기&quot;에 해당하는 고수준(high-level) 태스크</p>
<p>(4)자유 형식 텍스트로부터 객체 분할 (Text-to-mask): 개념 증명(proof-of-concept) 단계의 태스크</p>
<blockquote>
</blockquote>
<h4 id="실험-설정-implementation">실험 설정 (Implementation)</h4>
<blockquote>
<p>:별도의 명시가 없는 한 모든 실험은 다음의 기본 설정을 따른다.</p>
<ul>
<li>SAM은 MAE로 사전 학습된 ViT-H 이미지 인코더를 사용한다.</li>
</ul>
</blockquote>
<ul>
<li>SAM은 데이터 엔진의 최종 단계에서 자동으로 생성된 마스크(SA-1B 데이터셋)만으로 학습되었다.</li>
<li>기타 하이퍼파라미터 등 세부 사항은 부록 A를 참조한다.</li>
</ul>
<h3 id="71-zero-shot-single-point-valid-mask-evaluation">7.1. Zero-Shot Single Point Valid Mask Evaluation</h3>
<ul>
<li><p><strong>Task</strong>
단 하나의 전경 포인트(single foreground point)만으로 객체를 분할하는 성능을 평가한다.</p>
<p>이 태스크는 하나의 포인트가 여러 객체를 가리킬 수 있어 본질적으로 모호하고 어렵다(ill-posed).</p>
<p>대부분의 데이터셋 정답 마스크는 가능한 모든 경우를 포함하지 않아, 자동 평가 지표가 신뢰하기 어려울 수 있다.</p>
<p>따라서 표준적인 mIoU(mean Intersection over Union) 지표와 함께, 사람이 직접 마스크 품질을 1점에서 10점까지 평가하는 <strong>인간 연구(human study)</strong>를 보조적으로 사용했다.</p>
<p>비교를 위한 주요 베이스라인 모델로는 강력한 대화형 분할 모델인 RITM을 사용했다.</p>
</li>
</ul>
<ul>
<li><p><strong>Datasets</strong>
평가를 위해 다양한 이미지 분포를 가진 새로운 23개의 데이터셋 모음을 구성했다.</p>
<p>mIoU 평가는 23개 전체 데이터셋을 사용했으며, 리소스가 많이 필요한 인간 연구는 이 중 일부 데이터셋에 대해서만 수행했다.</p>
</li>
</ul>
<ul>
<li><p><strong>Results</strong> </p>
<p>자동 평가 (mIoU): 23개 데이터셋 중 16개에서 SAM이 RITM보다 높은 mIoU 점수를 기록했다. 정답 마스크와 비교하여 SAM이 예측한 3개의 마스크 중 가장 근접한 것을 선택하는 </p>
<p>&quot;오라클(oracle)&quot; 평가: 모호성 문제를 해결했을 때 SAM이 모든 데이터셋에서 RITM을 능가했다.</p>
<p>인간 연구 평가: 주석가들은 모든 데이터셋에서 SAM의 마스크 품질을 RITM보다 일관되게 훨씬 높게 평가했다. 자동 평가 지표(mIoU)에서 SAM이 더 낮게 나온 데이터셋(DRAM, IBD 등)에서조차 인간 평가는 SAM의 압도적인 우위를 보였다. 이는 SAM이 정답과는 다르더라도 사람이 보기에 훨씬 더 타당하고 유효한 마스크를 생성했음을 의미한다.</p>
<p>포인트 수 증가: 프롬프트 포인트 수를 1개에서 9개로 늘리자 모델 간의 성능 격차는 줄어들었다. 이는 과업이 쉬워지기 때문이며, SAM은 다수의 포인트를 사용하는 초고정밀도(very high IoU) 환경에 최적화되지는 않았음을 보여준다.</p>
<p>무작위 포인트 샘플링: 기존의 중앙점 샘플링 대신 무작위로 포인트를 샘플링했을 때, SAM과 베이스라인 모델들 간의 성능 격차는 더욱 커졌다. 이는 SAM이 포인트 위치에 덜 민감하고 더 강건하게 작동함을 시사한다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/d7595f01-d3e2-4aa7-9ed0-d9937a854fea/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/252d3b48-212d-479a-b6f6-cbda23bd9071/image.png" alt=""></p>
<h3 id="72-zero-shot-edge-detection">7.2. Zero-Shot Edge Detection</h3>
<ul>
<li><p><strong>Approach</strong> </p>
<p>고전적인 저수준(low-level) 과업인 경계 검출에 대해 SAM의 성능을 평가했다.</p>
<p>자동 마스크 생성 파이프라인의 간소화된 버전을 사용했다.</p>
<p>구체적으로, SAM에 16×16 정규 격자(grid)의 전경 포인트를 프롬프트로 입력하여 768개의 마스크를 예측하게 했다.</p>
<p>중복 마스크는 NMS(Non-Maximal Suppression)로 제거한 뒤, 예측된 마스크 확률 맵에 Sobel 필터를 적용하고 표준적인 후처리 과정을 거쳐 최종 경계 맵(edge map)을 생성했다.</p>
</li>
<li><p><strong>Results</strong>
정성적 평가: SAM은 경계 검출용으로 학습되지 않았음에도 불구하고, 합리적인 수준의 경계 맵을 생성했다 (Fig. 10). </p>
<p>정답(ground truth)과 비교했을 때, SAM은 정답에는 주석 처리되지 않았지만 타당해 보이는 경계를 포함하여 더 많은 경계를 예측하는 경향을 보였다.</p>
<p>정량적 평가: 이러한 경향은 수치에도 반영되었다 (Table 3). 정밀도(precision)를 희생하는 대신, 50% 정밀도에서의 재현율(R50)은 높게 나타났다. </p>
<p>당연하게도 SAM은 평가 데이터셋(BSDS500)의 편향(어떤 경계를 억제해야 하는지 등)을 학습한 최신 방법들보다는 성능이 뒤처졌다.</p>
<p>결론: 그럼에도 불구하고, SAM은 BSDS500으로 학습한 HED와 같은 선구적인 딥러닝 방법과 비교할 만한 성능을 보였으며, 다른 제로샷 방법들보다는 훨씬 뛰어난 결과를 달성했다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/60c202ee-d3ba-4b98-b092-05a57615ff31/image.png" alt=""></p>
<h3 id="73-zero-shot-object-proposals">7.3. Zero-Shot Object Proposals</h3>
<ul>
<li><p><strong>Approach</strong>
SAM을 <strong>객체 제안 생성(object proposal generation)</strong>이라는 중수준(mid-level) 과업에 대해 평가했다.</p>
<p>평가는 대규모 카테고리를 가진 LVIS v1 데이터셋에서 표준적인 평균 재현율(Average Recall, AR) 메트릭을 사용하여 진행했다. 비교 대상인 베이스라인은 강력한 성능을 보이는 ViTDet-H 탐지기를 사용했다. 이 모델은 LVIS 데이터로 학습되었고 AR 점수를 높이는 데 유리하여 매우 까다로운 비교 대상이다.</p>
<p>SAM에서 객체 제안을 생성하기 위해, 약간 수정된 버전의 자동 마스크 생성 파이프라인을 실행하고 그 결과를 제안으로 사용했다.</p>
</li>
<li><p><strong>Results</strong>
예상대로 LVIS에 대해 학습된 ViTDet-H가 전반적으로 가장 좋은 성능을 보였다.</p>
<p>하지만 SAM은 여러 지표에서 놀라울 정도로 좋은 성능을 보였다. 특히 중간 크기 및 큰 객체, 그리고 희귀(rare) 및 일반(common) 카테고리 객체에서는 ViTDet-H를 능가했다.</p>
<p>SAM은 LVIS 데이터셋의 주석 편향을 학습할 수 있는 ViTDet-H와 달리, LVIS로 학습하지 않았기 때문에 작은 객체와 빈번한(frequent) 객체에서만 성능이 뒤처졌다.</p>
<p>모호성을 처리하여 여러 마스크를 출력하는 SAM의 능력이 중요한 역할을 했다. 3개 대신 단일 마스크만 출력하도록 수정한 버전(&quot;single out.&quot;)은 모든 AR 지표에서 성능이 크게 저하되었다</p>
</li>
</ul>
<h3 id="74-zero-shot-instance-segmentation">7.4. Zero-Shot Instance Segmentation</h3>
<ul>
<li><p>*<em>접근 방식 (Approach) *</em>
SAM을 인스턴스 분할기(instance segmenter)의 분할 모듈로 사용하는 고수준(high-level) 비전 과업을 평가했다.</p>
<p>구현은 간단하다: 먼저 ViTDet이라는 객체 탐지기를 실행하고, 탐지기가 출력한 경계 상자(bounding box)를 SAM에 프롬프트로 입력한다.</p>
<p>이는 SAM을 더 큰 시스템에 구성 요소로 통합(composing)하는 예시를 보여준다.</p>
</li>
<li><p><strong>결과 (Results)</strong> </p>
<p>정량적 평가 (Mask AP): COCO와 LVIS 데이터셋 모두에서 ViTDet의 마스크 AP 점수가 SAM보다 높게 나타났다. SAM이 합리적으로 근접한 성능을 보였지만, 완전히 지도 학습된 ViTDet에는 미치지 못했다.</p>
<p>정성적 및 인간 평가: 시각적으로 확인했을 때 SAM의 마스크가 ViTDet보다 더 깔끔한 경계를 가지는 등 질적으로 더 우수해 보였다. 이를 검증하기 위해 진행한 </p>
<p>인간 연구(human study)에서, 평가자들은 일관되게 SAM의 마스크 품질을 ViTDet보다 높게 평가했다.</p>
<p>결과 분석: 이러한 정량/정성 평가의 불일치는 데이터셋의 편향(bias) 때문으로 추측된다.</p>
<p>COCO 데이터셋은 정답 마스크의 품질이 상대적으로 낮은데, ViTDet은 이러한 COCO 특유의 편향을 학습하여 높은 AP 점수를 얻는 반면, 제로샷으로 동작하는 SAM은 이런 (바람직하지 않은) 편향을 학습할 수 없다.</p>
<p>LVIS 데이터셋은 품질이 더 높지만, 여전히 &#39;구멍 없는 마스크&#39;와 같은 특정 주석 관행이 존재하는데, ViTDet은 이를 학습하여 유리하게 활용할 수 있다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/323be0b1-32c2-4fd2-ab10-0e227f1f23d2/image.png" alt=""></p>
<h3 id="75-zero-shot-text-to-mask">7.5. Zero-Shot Text-to-Mask</h3>
<ul>
<li><p>*<em>접근 방식 (Approach) *</em>
자유 형식의 텍스트(free-form text)로부터 객체를 분할하는, 한 단계 더 높은 수준의 태스크를 평가했다. 이 실험은 SAM의 텍스트 프롬프트 처리 능력을 보여주기 위한 개념 증명(proof-of-concept)이다.</p>
<p>이 실험을 위해 SAM의 학습 절차를 일부 수정했지만, 새로운 텍스트 주석(annotation)은 필요하지 않았다.</p>
<p>학습 시, 수동으로 수집된 마스크 영역을 잘라내어 CLIP의 이미지 인코더를 통해 이미지 임베딩을 추출했다. 이 이미지 임베딩을 SAM에 프롬프트로 제공하여 학습시켰다.</p>
<p>핵심 아이디어는 CLIP이 이미지와 텍스트 임베딩을 정렬(align)하도록 학습되었기 때문에, 학습은 이미지 임베딩으로 하고, 추론 시에는 텍스트 임베딩을 프롬프트로 사용할 수 있다는 점이다.</p>
</li>
<li><p><strong>결과 (Results) **
정성적 평가 결과, SAM은 &quot;a wheel&quot; 같은 단순한 텍스트 프롬프트뿐만 아니라 **&quot;beaver tooth grille&quot;</strong>과 같은 미묘한 표현도 이해하고 객체를 분할할 수 있었다 (Fig. 12).</p>
<p>텍스트 프롬프트만으로 원하는 객체를 정확히 분할하지 못하는 경우, 추가적으로 포인트 프롬프트를 하나 제공하면 예측이 수정되는 경향을 보였다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/c3df1691-b63e-409a-96a6-6fcae8fd9038/image.png" alt=""></p>
<h3 id="76-ablations">7.6. Ablations</h3>
<p>단일 중앙 포인트 프롬프트 프로토콜을 사용하여 23개 데이터셋 모음에 대해 몇 가지 ablation study를 수행했다.</p>
<ul>
<li><p><strong>Impact of Data Engine Stages</strong>
데이터 엔진의 각 단계를 거치면서 수집된 데이터를 누적하여 학습시켰을 때, 매 단계마다 mIoU 성능이 향상되는 것을 관찰했다.</p>
<p>최종적으로 자동 생성된 마스크만 사용하여 학습했을 때, 모든 단계의 데이터를 함께 사용한 것과 비교하여 성능이 아주 약간만 감소(약 0.5 mIoU)하는 데 그쳤다.</p>
<p>따라서 학습 설정을 단순화하기 위해, 기본 모델은 자동 생성 마스크만으로 학습하는 방식을 채택했다.</p>
</li>
<li><p><strong>Impact of Data Volume</strong>
전체 SA-1B 데이터셋(1,100만 개 이미지)을 100만 개 및 10만 개로 샘플링하여 데이터 양의 영향을 분석했다.</p>
<p>10만 개 이미지를 사용했을 때는 성능이 크게 하락했다.</p>
<p>하지만 전체의 약 10%에 해당하는 100만 개 이미지만 사용했을 때도 전체 데이터셋을 사용한 것과 거의 비슷한 결과를 얻을 수 있었다. 이는 약 1억 개의 마스크를 포함하는 규모로, 많은 실제 사용 사례에서 실용적인 설정이 될 수 있다.</p>
</li>
</ul>
<ul>
<li><p><strong>Impact of Image Encoder Scale</strong>
ViT-B, ViT-L, ViT-H 이미지 인코더를 사용하여 모델 크기의 영향을 분석했다.</p>
<p>ViT-H는 ViT-B에 비해 성능이 크게 향상되었지만, ViT-L보다는 아주 약간의 향상만을 보였다.</p>
<p>이는 이미지 인코더의 크기를 계속 키우는 것이 현재로서는 큰 효과를 보기 어려우며, 성능 향상이 점차 둔화(saturating)되고 있음을 시사한다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/8b05ddc7-43a6-4b42-be67-1df8969447d5/image.png" alt=""></p>
<hr>
<h2 id="8-discussion">8. Discussion</h2>
<h3 id="foundation-models">Foundation Models</h3>
<p>SAM의 연구는 광범위한 데이터로 학습되어 다양한 하위 작업에 적용 가능한 &#39;파운데이션 모델&#39;의 정의와 잘 부합한다.</p>
<p>하지만 파운데이션 모델이 자기지도 학습(self-supervised learning)을 강조하는 것과는 대조적으로, SAM의 능력은 대부분 <strong>대규모 지도 학습(large-scale supervised training)</strong>에서 비롯되었다.</p>
<p>이는 데이터 엔진을 통해 주석(annotation)을 확장할 수 있는 경우, 지도 학습이 효과적인 해결책이 될 수 있음을 보여준다.</p>
<h3 id="compositionality">Compositionality</h3>
<p>SAM의 목표는 다른 시스템과 쉽게 결합하여 사용될 수 있도록 하는 것이다. 이는 CLIP 모델이 DALL-E 시스템의 구성 요소로 사용되는 것과 유사하다.</p>
<p>SAM이 광범위한 프롬프트에 대해 신뢰성 있는 마스크를 예측하도록 함으로써, 다른 구성 요소와의 안정적인 인터페이스를 만들고자 한다.</p>
<p>예를 들어, SAM은 3D 재구성 모델과 결합되거나, 웨어러블 기기에서 감지된 시선 지점(gaze points)을 프롬프트로 받아 새로운 애플리케이션을 가능하게 할 수 있다.</p>
<h3 id="limitations">Limitations</h3>
<p>SAM은 완벽하지 않으며, </p>
<p>미세한 구조를 놓치거나, 작은 분리된 구성 요소를 잘못 생성할 수 있다.</p>
<p>경계(boundary) 생성은 더 계산 집약적인 방법들만큼 선명하지 않다.</p>
<p>다수의 포인트가 주어지는 고정밀(high IoU) 대화형 분할 환경에서는 전용으로 설계된 다른 모델들이 SAM보다 성능이 좋을 것으로 예상된다.</p>
<p>무거운 이미지 인코더를 사용할 경우 전체 성능이 실시간은 아니다.</p>
<p>텍스트-마스크(text-to-mask) 변환 기능은 아직 탐색적인 수준이며 완전히 안정적이지는 않다.</p>
<p> semantic segmentation이나 panoptic segmentation 같은 특정 작업을 위한 간단한 프롬프트를 어떻게 설계할지는 아직 불분명하다.</p>
<h3 id="conclusion">Conclusion</h3>
<p>Segment Anything는 image segmentation 분야를 파운데이션 모델의 시대로 끌어올리려는 시도이다.</p>
<p>이 연구의 핵심적인 기여는 이러한 도약을 가능하게 한 세 가지 요소, 즉 <strong>새로운 task (promptable segmentation), 모델(SAM), 그리고 데이터셋(SA-1B)</strong>이다.</p>
<p>SAM이 실제로 파운데이션 모델의 지위를 얻게 될지는 앞으로 커뮤니티에서 어떻게 활용되는지에 달려있다. </p>
<p>하지만 이 연구가 제시하는 관점, 10억 개가 넘는 마스크 데이터셋의 공개, 그리고 프롬프트 기반 분할 모델은 앞으로 해당 분야가 나아갈 길을 닦는 데 도움이 될 것으로 기대한다.</p>
<hr>
]]></description>
        </item>
        <item>
            <title><![CDATA[[day-1 논문 핥기] Qwen3 technical report]]></title>
            <link>https://velog.io/@choonsik_mom/day-1-%EB%85%BC%EB%AC%B8-%ED%95%A5%EA%B8%B0-Qwen-3-technical-report</link>
            <guid>https://velog.io/@choonsik_mom/day-1-%EB%85%BC%EB%AC%B8-%ED%95%A5%EA%B8%B0-Qwen-3-technical-report</guid>
            <pubDate>Wed, 03 Sep 2025 10:40:01 GMT</pubDate>
            <description><![CDATA[<p>다소 뒷북인 Qwen3 paper review 지만...</p>
<p>하루에 논문 1편씩(?) 간단하게 훑고 올려 보기로 했다.</p>
<p>자세히 읽는 것도 좋지만 요즘 워낙 논문이 많이 쏟아지니까.. 빠르게 훑고 중요 논문이나 공부해야할 용어라던지, 기술 등은 따로 자세히 공부해서 포스팅 해 보는 것도 좋을거 같아서 시작해본다. </p>
<blockquote>
<h3 id="👉🏻-qwen3">👉🏻 Qwen3</h3>
</blockquote>
<ul>
<li><a href="https://arxiv.org/pdf/2505.09388"> paper</a></li>
<li><a href="https://huggingface.co/collections/Qwen/qwen3-67dd247413f0e2e4f653967f"> huggingface </a></li>
<li><a href="https://github.com/QwenLM/Qwen3"> github </a> </li>
</ul>
<hr>
<h3 id="abstract">Abstract</h3>
<p>Qwen3는 0.6 ~ 2,350억 개에 이르는 다양한 매개변수 규모의 대규모 언어 모델(LLMs) 시리즈다. 이 모델은 성능, 효율성, 그리고 다국어 능력을 발전시키기 위해 설계되었다. 주요 혁신 사항은 복잡하고 다단계 추론을 위한 <code>사고 모드(thinking mode)</code>와 빠르고 컨텍스트 기반의 응답을 위한 <code>비사고 모드(non-thinking mode)</code>를 단일 프레임워크에 통합한 것이다. </p>
<p>이는 사용자가 특정 작업에 따라 모델의 동작을 유연하게 조정할 수 있게 한다. 또한, <code>사고 예산(thinking budget)</code> 메커니즘을 도입하여 <strong>추론 시 계산 리소스를 동적으로 할당</strong>할 수 있게 함으로써, 작업 복잡성에 따라 지연 시간과 성능의 균형을 맞출 수 있다. Qwen3는 SOTA를 달성했으며, 특히 코드 생성, 수학적 추론, 에이전트 작업 등 다양한 벤치마크에서 뛰어난 성능을 보인다. Qwen2.5에 비해 Qwen3는 다국어 지원을 29개에서 119개 언어 및 방언으로 확장하여 전 세계적인 접근성을 높인다.</p>
<hr>
<h2 id="1-introduction">1. Introduction</h2>
<p>인공 일반 지능(artificial general intelligence, AGI) 또는 초인공지능( artificial super intelligenc, ASI) 추구는 오랜 인류의 목표다. GPT-4o, Claude 3.7, Gemini 2.5, DeepSeek-V3, Llama-4, Qwen2.5와 같은 large foundation models의 최근 발전은 이 목표를 향한 상당한 진전을 보여준다. 이 모델들은 수조 개의 토큰에 이르는 방대한 데이터셋으로 훈련되어 인간의 지식과 능력을 효과적으로 추출한다. </p>
<p>최근에는 강화 학습을 통해 최적화된 추론 모델(reasoning models)의 발전이 기반 모델의 추론 시간 확장 및 더 높은 수준의 지능 달성 가능성을 강조한다. 대부분의 최첨단 모델은 독점적(proprietary)이지만, 오픈 소스(open-source) 커뮤니티의 급속한 성장은 오픈 가중치 모델과 비공개 소스 모델 간의 성능 격차를 크게 줄였다. 점점 더 많은 최고 수준의 모델들이 오픈 소스로 공개되어 인공 지능 연구와 혁신을 촉진하고 있다.</p>
<h3 id="qwen-3-overview">Qwen-3 Overview</h3>
<p>Qwen3는 Qwen 모델 제품군의 최신 시리즈로, 다양한 작업과 도메인에서 SOTA를 달성하는 open-weight 대규모 언어 모델 컬렉션이다. 이 시리즈는 <strong>dense 아키텍처 모델</strong>과 <strong>Mixture-of-Experts(MoE)</strong> 아키텍처 모델을 모두 포함하며, 매개변수 규모는 0.6억 ~ 2,350억 개에 달한다.</p>
<p>Qwen3의 주요 특징은 다음과 같다.</p>
<blockquote>
</blockquote>
<ul>
<li><strong>통합된 사고 및 비사고 모드</strong>: Qwen3는 <code>사고 모드(thinking mode)</code>와 <code>비사고 모드(non-thinking mode)</code>를 단일 모델에 통합한다. 이를 통해 사용자는 다른 모델(예: Qwen2.5에서 QwQ로 전환) 간에 전환할 필요 없이 이 모드들 사이를 전환할 수 있다. 이 유연성은 개발자와 사용자가 특정 작업에 맞게 모델의 동작을 효율적으로 조정할 수 있도록 한다.</li>
<li><strong>사고 예산(Thinking Budget) 메커니즘</strong>: Qwen3는 <code>사고 예산(thinking budget)</code> 기능을 통합하여, 사용자가 작업 실행 중 모델이 적용하는 추론 노력의 수준을 세밀하게 제어할 수 있도록 한다. 이 기능은 계산 리소스 및 성능을 최적화하는 데 중요하며, 실제 애플리케이션의 다양한 복잡성을 충족하도록 모델의 사고 동작을 맞춤 설정할 수 있게 한다.</li>
<li><strong>강화된 다국어 능력</strong>: Qwen3는 36조 개의 토큰으로 사전 훈련되었으며, 119개 언어 및 방언을 지원하도록 다국어 지원을 확장했다. 이는 교차 언어 이해 및 생성 능력을 향상시켜 전 세계적인 사용 사례에 대한 잠재력을 증폭시킨다.</li>
<li><strong>효율적인 소규모 모델 구축</strong>: 플래그십 모델의 지식을 활용하여 소규모 모델 구축에 필요한 계산 리소스를 크게 줄이면서도 높은 경쟁력 있는 성능을 보장한다.</li>
<li><strong>최첨단 성능</strong>: 광범위한 벤치마크에서 SOTA를 달성했으며, 코드 생성, 수학적 추론, 에이전트 작업 등에서 대규모 MoE 모델 및 독점 모델과 경쟁력 있는 성능을 보인다.</li>
</ul>
<hr>
<h2 id="2-architecture">2. Architecture</h2>
<p>Qwen3 시리즈는 6개의 dense model(Qwen3-0.6B, Qwen3-1.7B, Qwen3-4B, Qwen3-8B, Qwen3-14B, Qwen3-32B)과 2개의 MoE model(Qwen3-30B-A3B, Qwen3-235B-A22B)로 구성된다. 
플래그십 모델인 Qwen3-235B-A22B는 총 2,350억 개의 매개변수를 가지며, 토큰당 220억 개의 매개변수가 활성화된다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/8f009602-a464-46fe-9bda-965b8b688904/image.png" alt=""></p>
<h3 id="qwen3-dense-model"><strong>Qwen3 dense model</strong></h3>
<p>Qwen3 dense model의 아키텍처는 Qwen2.5와 유사하며, 그룹화된 쿼리 어텐션(Grouped Query Attention, GQA), <strong>SwiGLU</strong>, 회전 위치 임베딩(Rotary Positional Embeddings, RoPE), 그리고 사전 정규화가 적용된 <strong>RMSNorm</strong>을 포함합니다. Qwen2에서 사용된 QKV-바이어스를 제거하고 QK-정규화(QK-Norm)를 어텐션 메커니즘에 도입하여 Qwen3의 안정적인 훈련을 보장합니다.</p>
<ul>
<li><strong>컨텍스트 길이</strong>: Qwen3-0.6B 및 Qwen3-1.7B는 32K 토큰, 나머지 조밀한 모델은 128K 토큰의 컨텍스트 길이를 지원합니다.</li>
</ul>
<h3 id="qwen3-moe-model"><strong>Qwen3 MoE model</strong></h3>
<p>Qwen3 MoE 모델은 Qwen3 조밀한 모델과 동일한 기본 아키텍처를 공유한다. Qwen2.5-MoE를 따라 fine-grained expert segmentation을 구현했다. </p>
<p>Qwen3 MoE 모델은 <strong>총 128개의 전문가</strong>를 가지며, <strong>토큰당 8개의 전문가가 활성화</strong>된다. Qwen2.5-MoE와 달리 Qwen3-MoE 설계에서는 shared expert를 제외한다. 또한, global-batch load balancing loss를 채택하여 전문가의 전문화를 장려한다.</p>
<ul>
<li><strong>컨텍스트 길이</strong>: 두 MoE 모델(Qwen3-30B-A3B, Qwen3-235B-A22B) 모두 128K 토큰의 컨텍스트 길이를 지원</li>
<li><strong>토크나이저</strong>: Qwen3 모델은 <code>byte-level byte-pair encodin(BBPE)</code>을 구현한 Qwen의 토크나이저를 사용하며, a vocabulary size는 151,669임 </li>
</ul>
<hr>
<h2 id="3-pre-training">3. Pre-training</h2>
<p>Qwen3 모델의 사전 훈련은 데이터 규모와 다양성, 언어 지원 측면에서 Qwen2.5에 비해 크게 확장되었다.</p>
<h3 id="31-pre-training-data">3.1. Pre-training Data</h3>
<ul>
<li><p><strong>규모 및 다양성</strong>: 모든 Qwen3 모델은 총 <strong>36조 개의 토큰</strong>으로 구성된 대규모 및 다양성 있는 데이터셋으로 훈련</p>
<p>Qwen2.5에 비해 두 배 많은 토큰 수와 세 배 많은 언어를 포함. 데이터셋은 코딩,  STEM(Science, Technology, Engineering, and Mathematics), 추론 작업, 서적, 다국어 텍스트, 합성 데이터 등 다양한 도메인의 고품질 콘텐츠를 포함</p>
</li>
<li><p><strong>데이터 확장 기법</strong>:</p>
<ul>
<li><strong>Qwen2.5-VL 활용</strong>: Qwen2.5-VL 모델을 사용하여 대량의 PDF 문서에서 텍스트를 추출하고, 이를 Qwen2.5 모델로 정제하여 <strong>수조 개의 고품질 텍스트 토큰</strong>을 추가 확보</li>
<li><strong>합성 데이터 생성</strong>: Qwen2.5, Qwen2.5-Math, Qwen2.5-Coder 모델을 사용하여 교과서, 질문-답변, 지침, 코드 스니펫 등 수십 개 도메인에 걸쳐 <strong>수조 개의 합성 텍스트 토큰</strong>을 생성</li>
<li><strong>다국어 데이터 확장</strong>: Qwen2.5에서 지원하던 29개 언어에서 <strong>119개 언어 및 방언</strong>으로 지원 언어 수 크게 증가</li>
</ul>
</li>
<li><p><strong>다국어 데이터 주석 시스템</strong>: 훈련 데이터의 품질과 다양성을 높이기 위해 <strong>교육적 가치, 분야, 도메인, 안전</strong> 등 여러 차원에서 30조 개 이상의 토큰에 주석 작업하여 데이터 필터링 및 조합을 더욱 효과적으로 지원</p>
</li>
</ul>
<h3 id="32-pre-training-stage">3.2. Pre-training Stage</h3>
<p>Qwen3 모델은 다음의 <strong>세 단계</strong>를 거쳐 사전 훈련된다:</p>
<blockquote>
</blockquote>
<ol>
<li><code>General Stage (S1)</code><blockquote>
</blockquote>
: 이 첫 번째 사전 훈련 단계에서 모든 Qwen3 모델은 4,096 토큰 시퀀스 길이를 사용하여 30조 개 이상의 토큰으로 훈련됨<blockquote>
</blockquote>
이 단계에서 모델은 119개 언어 및 방언을 포함한 언어 숙련도와 일반적인 세계 지식에 대해 충분히 사전 훈련됨</li>
</ol>
<blockquote>
<ol start="2">
<li><code>Reasoning Stage (S2)</code></li>
</ol>
</blockquote>
<p>: 추론 능력을 더욱 향상시키기 위해 STEM, 코딩, 추론 및 합성 데이터의 비율을 늘려 사전 훈련 코퍼스를 최적화
 모델은 약 5조 개의 고품질 토큰으로 4,096 토큰 시퀀스 길이로 추가 사전 훈련됨</p>
<blockquote>
<ol start="3">
<li><code>Long Context Stage</code></li>
</ol>
</blockquote>
<p>: 마지막 사전 훈련 단계에서는 고품질 장문 컨텍스트 코퍼스를 수집하여 Qwen3 모델의 컨텍스트 길이를 확장. 모든 모델은 수천억 개의 토큰, 32,768 토큰의 시퀀스 길이로 사전 훈련됨. </p>
<blockquote>
</blockquote>
<p> long context corpus에는 16,384에서 32,768 토큰 길이의 텍스트가 75%, 4,096에서 16,384 토큰 길이의 텍스트가 25% 포함됨. Qwen2.5를 따라 RoPE의 기본 주파수를 10,000에서 1,000,000으로  <code>ABF technique (Xiong et al., 2023)</code>을 사용하여 증가시킴.</p>
<blockquote>
</blockquote>
<p> 또한, <code>YARN (Penget al., 2023)</code> 및 <code>Dual Chunk Attention(DCA)</code>을 도입하여 추론 시 시퀀스 길이 용량을 네 배로 증가시킴</p>
<h3 id="33-pre-training-evaluation">3.3. Pre-training Evaluation</h3>
<p>Qwen3 시리즈의 base language mode에 대한 포괄적인 평가를 수행한다. 평가는 주로 일반 지식, 추론, 수학, 과학 지식, 코딩 및 다국어 능력에 중점을 둔다. 평가 데이터셋은 15개의 벤치마크를 포함하며, Qwen2.5 및 DeepSeek-V3 Base, Gemma-3, Llama-3, Llama-4와 같은 다른 주요 오픈 소스 기본 모델과 비교된다.</p>
<h4 id="🪑-benchmarks">🪑 benchmarks</h4>
<ul>
<li><p><code>General Tasks</code> : MMLU (Hendrycks et al., 2021a) (5-shot), MMLU-Pro (Wang et al., 2024) (5shot, CoT), MMLU-redux (Gema et al., 2024) (5-shot), BBH (Suzgun et al., 2023) (3-shot, CoT), SuperGPQA (Du et al., 2025) (5-shot, CoT)</p>
</li>
<li><p><code>Math &amp; STEM Tasks</code> : GPQA (Rein et al., 2023) (5-shot, CoT), GSM8K (Cobbe et al., 2021) (4-shot,CoT), MATH (Hendrycks et al., 2021b) (4-shot, CoT)</p>
</li>
</ul>
<h4 id="✅-평가-결과-요약">✅ 평가 결과 요약</h4>
<blockquote>
<ul>
<li><strong>Qwen3-235B-A22B-Base</strong>
: 대부분의 작업에서 DeepSeek-V3 Base, Llama-4-Maverick Base 및 Qwen2.5-72B-Base와 같은 이전 SOTA 오픈 소스 조밀/MoE 기본 모델을 능가하며, 훨씬 적은 총 매개변수 또는 활성화된 매개변수로 성능 달성
특히 DeepSeek-V3-Base보다 총 매개변수는 약 1/3, 활성화된 매개변수는 2/3 수준임에도 불구하고 15개 벤치마크 중 14개에서 더 우수한 성능을 보임</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li><strong>Qwen3 MoE 기본 모델의 효율성</strong>
: 동일한 사전 훈련 데이터를 사용했을 때, Qwen3 MoE 기본 모델은 <strong>활성화된 매개변수의 1/5만으로 Qwen3 dense 기본 모델과 유사한 성능</strong>을 달성할 수 있음.
또한 Qwen2.5 MoE 기본 모델보다 활성화된 매개변수가 1/2 미만이고 총 매개변수도 적음에도 불구하고 더 나은 성능을 보임. 
Qwen2.5 dense 기본 모델의 활성화된 매개변수의 1/10만으로도 비교할 만한 성능을 달성하여 추론 및 훈련 비용에서 상당한 이점을 제공</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li><strong>Qwen3-dense 기본 모델의 성능</strong>
: Qwen3 조밀한 기본 모델의 전반적인 성능은 더 높은 매개변수 규모의 Qwen2.5 기본 모델과 비교할 만 함. 특히 STEM, 코딩 및 추론 벤치마크에서 Qwen3 조밀한 기본 모델은 더 높은 매개변수 규모의 Qwen2.5 기본 모델의 성능을 능가하기도 함</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li><strong>Qwen3-32B-Base</strong>
: Qwen3 시리즈 중 가장 큰 조밀한 모델로, Qwen2.5-32B-Base 및 Gemma-3-27B Base보다 대부분의 벤치마크에서 뛰어난 성능을 보임. Qwen2.5-72B-Base보다 매개변수가 절반 이하임에도 불구하고 15개 평가 벤치마크 중 10개에서 Qwen2.5-72B-Base를 능가</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li><strong>소형 모델의 강점</strong>
: Qwen3-8B / 4B / 1.7B / 0.6B-Base 모델들은 모든 벤치마크에서 강력한 성능을 유지. 
Qwen3-8B / 4B / 1.7B-Base 모델들은 더 큰 규모의 Qwen2.5-14B / 7B / 3B Base 모델들보다 절반 이상의 벤치마크에서, 특히 STEM 관련 및 코딩 벤치마크에서 뛰어난 성능을 보임.</li>
</ul>
</blockquote>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/b4265d1c-ffcb-48db-8450-a49bb2f0cb84/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/3e2f669e-39e0-491b-9a60-b6406558830b/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/7f70f76a-0953-4033-87f6-186b3e22b443/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/4a23c683-fd78-48f0-a98c-d7d9f9811611/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e970f112-417c-4b37-a6d6-ecde5b5bbfe6/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/d84c44d8-cdb7-46f5-8e3a-542069834dbb/image.png" alt=""></p>
<hr>
<h2 id="4-post-training">4. Post-training</h2>
<p>Qwen3의 후처리 훈련 파이프라인은 두 가지 핵심 목표로 전략적으로 설계되었다:</p>
<blockquote>
</blockquote>
<ol>
<li><strong>사고 제어 (Thinking Control)</strong>: &quot;비사고 모드&quot;와 &quot;사고 모드&quot;라는 두 가지 개별 모드의 통합을 포함하여, 사용자가 모델이 추론에 참여할지 여부를 선택하고, 사고 과정에 대한 <strong>토큰 예산</strong>을 지정하여 사고의 깊이를 제어할 수 있는 유연성을 제공합니다.<blockquote>
</blockquote>
</li>
<li><strong>강화-약화 증류 (Strong-to-Weak Distillation)</strong>: 경량 모델의 후처리 훈련 프로세스를 간소화하고 최적화하는 것을 목표로 합니다. 대규모 모델의 지식을 활용하여 소규모 모델 구축에 필요한 계산 비용과 개발 노력을 크게 줄입니다.</li>
</ol>
<p>플래그십 모델은 정교한 4단계 훈련 프로세스를 따른다. 처음 두 단계는 모델의 &quot;사고&quot; 능력 개발에 중점을 두고, 다음 두 단계는 강력한 &quot;비사고&quot; 기능을 모델에 통합하는 것을 목표로 한다. </p>
<p>경량 모델의 경우, 모든 소규모 모델에 대해 개별적으로 4단계 훈련 프로세스를 수행할 필요 없이 teacher model로부터 직접 출력을 <code>증류(distillation)</code>하는 것이 효과적이다. 이 접근 방식은 GPU 시간을 1/10만 요구하면서도 더 나은 즉각적인 성능과 모델의 탐색 능력 향상(Pass@64 점수 향상)을 가져온다.</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/c04ecd3e-0f68-4c29-a6cd-a7b4dd124180/image.png" alt=""></p>
<h3 id="41-long-cot-cold-start">4.1. Long-CoT Cold Start</h3>
<ul>
<li><p><strong>목표</strong>: 모델에 Chain-of-Thought(CoT) 추론의 기초적인 패턴을 주입하는 초기 단계</p>
</li>
<li><p><strong>데이터셋 구축</strong>: 수학, 코드, 논리적 추론, 일반 STEM 문제 등 광범위한 범주를 아우르는 포괄적인 데이터셋을 수집. 각 문제에는 검증된 참조 답변 또는 코드 기반 테스트 케이스가 쌍으로 연결</p>
</li>
<li><p><strong>필터링</strong>: Qwen2.5-72B-Instruct를 사용하여 검증하기 어렵거나, CoT 추론 없이도 정확하게 답변할 수 있는 쿼리, 또는 지나친 반복, 추측성 답변 등을 제거</p>
</li>
<li><p><strong>후보 응답 생성</strong>: QwQ-32B를 사용하여 각 쿼리에 대해 여러 후보 응답을 생성하고, 정확도가 낮은 경우 인간 주석자가 수동으로 평가</p>
</li>
<li><p><strong>훈련</strong>: 선별된 데이터셋을 사용하여 <strong>초기 콜드 스타트(cold-start) 훈련</strong>을 수행하며, 이 단계에서는 즉각적인 추론 성능보다는 기본적인 추론 패턴 주입에 집중함</p>
</li>
</ul>
<h3 id="42-reasoning-rl">4.2. Reasoning RL</h3>
<ul>
<li><p><strong>목표</strong>: <code>강화 학습(Reinforcement Learning, RL)</code>을 통해 모델의 추론 능력을 실질적으로 향상</p>
</li>
<li><p><strong>데이터</strong>: 콜드 스타트 단계에서 사용되지 않았고, 모델이 학습할 수 있으며, 도전적이고, 다양한 하위 도메인을 포괄하는 query-verifier pair를 수집</p>
</li>
<li><p><strong>훈련</strong>: <code>GRPO (Shao et al., 2024)</code>를 사용하여 모델 매개변수를 업데이트하며, 큰 배치 크기와 높은 rollout 수, 그리고 샘플 효율성을 높이기 위한 <strong>오프-정책(off-policy)</strong> 훈련이 유익함이 관찰되었음. 탐색(exploration)과 활용(exploitation)의 균형을 맞추기 위해 모델의 엔트로피를 제어하여 훈련 안정성을 유지</p>
</li>
<li><p><strong>성과</strong>: 단일 RL 실행 과정에서 훈련 보상 및 검증 성능이 꾸준히 향상되었으며, 예를 들어 Qwen3-235B-A22B 모델의 AIME’24 점수는 170 RL 훈련 단계 동안 70.1에서 85.1로 증가</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/86fddad8-9208-4c53-ac8f-9abb4f9fd18a/image.png" alt=""></p>
<blockquote>
</blockquote>
<ul>
<li>사고 모드와 비사고 모드의 chat template (Table 9)<blockquote>
</blockquote>
<strong>명령어(Flag)</strong> 사용: 사용자가 프롬프트 끝에 <code>/think</code> 또는 <code>/no_think</code> 라는 특별한 명령어를 붙여 모델의 작동 방식을 제어함. <code>/think</code>는 기본값이므로 생략 가능</li>
<li><em>사고 모드 (Thinking Mode)*</em> :사용자가 <code>/think</code> 명령어를 사용하면, 모델은 최종 답변을 내놓기 전에 먼저 <code>&lt;think&gt;...&lt;/think&gt;</code> 태그 안에 자신의 사고 과정(reasoning process)을 생성하도록 학습됩니다.</li>
<li><em>비사고 모드 (Non-Thinking Mode)*</em> :사용자가 <code>/no_think</code> 명령어를 사용하면, 모델은 사고 과정을 거치지 않고 비어있는 <code>&lt;think&gt;&lt;/think&gt;</code> 태그를 출력한 뒤 바로 최종 답변을 생성하도록 학습됩니다</li>
</ul>
<h3 id="43-thinking-mode-fusion">4.3. Thinking Mode Fusion</h3>
<ul>
<li><p><strong>목표</strong>: 이 단계는 이전에 개발된 &quot;사고&quot; 모델에 &quot;비사고&quot; 기능을 통합하는 것이 목표. 이를 통해 개발자는 추론 동작을 관리하고 제어하는 동시에, 사고 및 비사고 작업에 대한 별도의 모델을 배포하는 비용과 복잡성을 줄임</p>
</li>
<li><p><strong>훈련 방식</strong>: 추론 RL 모델에 대한 <strong>지속적인 지도 미세 조정(continual supervised fine-tuning, SFT)</strong>을 수행하고 두 모드를 융합하기 위한 <strong>채팅 템플릿</strong>을 설계</p>
</li>
<li><p><strong>SFT 데이터 구성</strong>: SFT 데이터셋은 &quot;사고&quot; 데이터와 &quot;비사고&quot; 데이터를 모두 결합. &quot;사고&quot; 데이터는 2단계 모델을 사용하여 생성되며, &quot;비사고&quot; 데이터는 코딩, 수학, 지시 따르기, 다국어 작업, 창의적 글쓰기, 질문 답변 및 역할극 등 다양한 작업을 포괄하도록 신중하게 큐레이션됨.</p>
</li>
<li><p><strong>채팅 템플릿 설계</strong>: 사용자가 모델의 사고 프로세스를 동적으로 전환할 수 있도록 채팅 템플릿을 설계했. 예를 들어, &quot;사고 모드&quot; 및 &quot;비사고 모드&quot; 샘플에 대해 사용자 쿼리 또는 시스템 메시지에 각각 <code>/think</code> 및 <code>/no think</code> 플래그를 도입합니다. 기본적으로 모델은 사고 모드에서 작동.</p>
</li>
<li><p><strong>사고 예산 (Thinking Budget) 구현</strong>: 모델이 &quot;비사고&quot; 모드와 &quot;사고&quot; 모드에서 모두 응답하는 방법을 학습하면, <strong>불완전한 사고를 기반으로 응답을 생성</strong>하는 중간 케이스를 처리하는 능력이 자연스럽게 발달.</p>
<p>모델의 사고 길이가 사용자 정의 임계값에 도달하면, 사고 프로세스를 수동으로 중지하고 특정 지침을 삽입하여 모델이 해당 지점까지 축적된 추론을 기반으로 최종 응답을 생성하도록 함. 이 능력은 명시적으로 훈련되지 않고 사고 모드 통합 적용의 결과로 자연스럽게 나타나는 특징임.</p>
</li>
</ul>
<h3 id="44-general-rl">4.4. General RL</h3>
<ul>
<li><p><strong>목표</strong>: 다양한 시나리오에서 모델의 능력과 안정성을 광범위하게 향상시키는 것</p>
</li>
<li><p><strong>보상 시스템</strong>: 20개 이상의 다양한 작업에 대한 정교한 보상 시스템을 구축했으며, 각각 맞춤형 채점 기준이 있음. 다음 핵심 능력 향상에 중점:</p>
<ul>
<li><p><code>지시 따르기(Instruction Following)</code>: 모델이 콘텐츠, 형식, 길이, 구조화된 출력 사용 등 사용자 지시를 정확히 해석하고 따르도록 보장</p>
</li>
<li><p><code>형식 따르기(Format Following)</code>: <code>/think</code> 및 <code>/no think</code> 플래그에 따라 사고 모드와 비사고 모드를 전환하고, <code>&lt;think&gt;</code> 및 <code>&lt;/think&gt;</code> 토큰을 사용하여 사고 및 응답 부분을 분리하는 등 특정 형식 규칙을 준수하도록 함</p>
</li>
<li><p><code>선호도 정렬(Preference Alignment)</code>: 개방형 쿼리에 대한 모델의 유용성, 참여도 및 스타일을 개선하여 보다 자연스럽고 만족스러운 사용자 경험을 제공하는 데 중점을 둠</p>
</li>
<li><p><code>에이전트 능력(Agent Ability)</code> 지정된 인터페이스를 통해 도구를 올바르게 호출하도록 모델을 훈련하는 것을 포함</p>
</li>
<li><p><code>특수 시나리오 능력</code>: 검색 증강 생성(RAG) 작업과 같은 특정 시나리오에 맞춰진 작업을 설계하여 정확하고 맥락에 적절한 응답을 생성하도록 모델을 유도하여 <strong>환각(hallucination)</strong> 위험을 최소화</p>
</li>
</ul>
</li>
<li><p><strong>보상 유형</strong>:</p>
<ol>
<li><p><code>규칙 기반 보상(Rule-based Reward)</code>: 추론 RL 단계에서 널리 사용되었으며, 지시 따르기 및 형식 준수와 같은 일반 작업에도 유용</p>
</li>
<li><p><code>참조 답변을 사용한 모델 기반 보상(Model-based Reward with Reference Answer)</code>: 각 쿼리에 대한 참조 답변을 제공하고, Qwen2.5-72B-Instruct가 이 참조를 기반으로 모델의 응답을 채점하도록 함</p>
</li>
<li><p><code>참조 답변 없는 모델 기반 보상(Model-based Reward without Reference Answer)</code>: 인간 선호도 데이터를 활용하여 보상 모델을 훈련하여 모델 응답에 스칼라 점수를 할당</p>
</li>
</ol>
</li>
</ul>
<h3 id="45-strong-to-weak-distillation">4.5 Strong-to-Weak Distillation</h3>
<ul>
<li><p><strong>목표</strong>: 경량 모델(5개의 조밀한 모델: Qwen3-0.6B, 1.7B, 4B, 8B, 14B 및 1개의 MoE 모델: Qwen3-30B-A3B)을 최적화하고 강력한 모드 전환 기능을 효과적으로 부여하기 위해 설계됨</p>
</li>
<li><p><strong>두 가지 주요 단계</strong>:</p>
<ol>
<li><strong>오프-정책 증류(Off-policy Distillation)</strong>: 초기 단계에서는 응답 증류를 위해 <code>/think</code> 및 <code>/no think</code> 모드로 생성된 teacher model의 출력을 결합. 이는 경량 student model이 기본적인 추론 기술과 다른 사고 모드 간에 전환하는 능력을 개발하는 데 도움이 됨.</li>
</ol>
</li>
</ul>
<pre><code>2. **온-정책 증류(On-policy Distillation)**: 이 단계에서는 학생 모델이 미세 조정을 위해 온-정책 시퀀스를 생성. 

프롬프트가 샘플링되고, student model은 `/think` 또는 `/no think` 모드로 응답을 생성합니다. 그런 다음 student model은 teacher model(Qwen3-32B 또는 Qwen3-235B-A22B)의 로짓과 일치하도록 미세 조정되어 **KL 발산(KL divergence)**을 최소화</code></pre><h3 id="46-post-training-evaluation">4.6. Post-training Evaluation</h3>
<p>명령어 미세 조정 모델의 품질을 종합적으로 평가하기 위해 사고 및 비사고 모드에서 모델 성능을 평가하는 자동화된 벤치마크를 채택한다.</p>
<p><strong>평가 벤치마크 범주</strong>:</p>
<ul>
<li><strong>일반 작업</strong>: MMLU-Redux, GPQA-Diamond, C-Eval, LiveBench 등</li>
<li><strong>정렬 작업</strong>: IFEval, Arena-Hard, AlignBench v1.1, Creative Writing V3, WritingBench 등이 사용되어 인간 선호도에 대한 모델의 정렬도 평가</li>
<li><strong>수학 및 텍스트 추론</strong>: MATH-500, AIME’24 및 AIME’25, ZebraLogic, AutoLogi 등이 수학 및 논리적 추론 능력을 평가</li>
<li><strong>에이전트 및 코딩</strong>: BFCL v3, LiveCodeBench v5, Codeforces Ratings 등이 모델의 코딩 및 에이전트 기반 작업 능력을 테스트</li>
<li><strong>다국어 작업</strong>: Multi-IF, INCLUDE, MMMLU, MT-AIME2024, PolyMath, MLogiQA 등이 명령어 따르기, 지식, 수학, 논리적 추론 등 다양한 다국어 능력을 평가</li>
</ul>
<p><strong>주요 평가 결과 요약</strong>:</p>
<ul>
<li><p><strong>Qwen3-235B-A22B (플래그십 모델)</strong>:</p>
<ul>
<li><p><strong>사고 모드</strong>: 오픈 소스 모델 중 전반적으로 SOTA를 달리며, DeepSeek-R1 및 DeepSeek-V3와 같은 강력한 기준 모델을 능가. </p>
<p>활성화된 매개변수가 60%, 총 매개변수가 35%에 불과함에도 불구하고 DeepSeek-R1보다 23개 벤치마크 중 17개에서 뛰어난 성능을 보임. OpenAI-o1, Grok-3-Beta (Think), Gemini2.5-Pro와 같은 closed-source 선도 모델과도 경쟁력이 매우 높아, 오픈 소스 모델과 클로즈드 소스 모델 간의 추론 능력 격차를 좁힘</p>
</li>
<li><p><strong>비사고 모드</strong>: DeepSeek-V3, LLaMA-4-Maverick 및 이전 플래그십 모델인 Qwen2.5-72B-Instruct를 포함한 다른 주요 오픈 소스 모델을 능가. 클로즈드 소스 GPT-4o-2024-11-20보다 23개 벤치마크 중 18개에서 우수한 성능을 보여, 의도적인 사고 과정이 강화되지 않아도 본질적으로 강력한 능력을 보임</p>
</li>
</ul>
</li>
<li><p><strong>Qwen3-32B (flagship dense model)</strong>:</p>
<ul>
<li><p><strong>사고 모드</strong>: 이전의 가장 강력한 추론 모델인 QwQ-32B를 23개 벤치마크 중 17개에서 능가하여, 32B 규모에서 <strong>새로운 SOTA 추론 모델</strong>이 됨. 클로즈드 소스 OpenAI-o3-mini (medium)와도 경쟁력을 가지며 더 나은 정렬 및 다국어 성능을 보임.</p>
</li>
<li><p><strong>비사고 모드</strong>: 거의 모든 벤치마크에서 모든 기준 모델보다 뛰어난 성능을 보임. Qwen2.5-72B-Instruct와 일반 작업에서 동등한 성능을 보이며, 정렬, 다국어 및 추론 관련 작업에서 상당한 이점을 보여 Qwen3가 Qwen2.5 시리즈 모델보다 근본적으로 개선되었음을 다시 한번 입증</p>
</li>
</ul>
</li>
<li><p><strong>경량 모델 (Qwen3-30B-A3B, Qwen3-14B 및 기타 소형 모델)</strong>:</p>
<ul>
<li><strong>강화-약화 증류의 성공</strong>: 이 모델들은 유사하거나 더 큰 매개변수 양을 가진 오픈 소스 모델보다 <strong>일관되게 우수한 성능</strong>을 보여, 강화-약화 증류 접근 방식의 성공을 입증. 특히 Qwen3-30B-A3B는 QwQ-32B와 비교할 만한 성능을 더 작은 모델 크기와 1/10 미만의 활성화된 매개변수로 달성하여 경량 모델에 심오한 추론 능력을 부여하는 강화-약화 증류의 효율성을 보임.</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/33412b96-02d5-49f7-893a-622bb244924a/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/59519b18-6fcf-4ca4-a479-829b28a022cf/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e3719f95-990b-4d34-a500-d895a4b32404/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/21974699-c92b-4eb5-863f-62da58058394/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/07efc6a1-5cd5-483c-a7f8-4acd38128b94/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/cf8b8927-66a0-4c88-b583-51ce0c23a264/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/2d5417c7-c9c2-41db-aae1-f9f8c3123dea/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/5bb4cdff-1263-4ee0-b7dd-b30e6854c582/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/624036bd-27a5-442f-a6aa-242d671d8787/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/bc9691e7-ec91-4655-b372-06447e228531/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/1480ab13-968d-42c9-b779-9165cb1b5933/image.png" alt=""></p>
<h3 id="47-discussion">4.7. Discussion</h3>
<ul>
<li><p><strong>사고 예산의 효과 (Effectiveness of Thinking Budget)</strong>: Qwen3는 증가된 사고 예산을 활용하여 지능 수준을 향상시킬 수 있음을 입증한다. 수학, 코딩, STEM 도메인에 걸친 4가지 벤치마크에서 할당된 사고 예산에 비례하여 <strong>확장 가능하고 부드러운 성능 향상</strong>을 보인다.</p>
</li>
<li><p><strong>온-정책 증류의 효과 및 효율성 (Effectiveness and Efficiency of On-Policy Distillation)</strong>: 온-정책 증류는 동일한 오프-정책 증류된 8B 체크포인트에서 시작한 직접 강화 학습보다 <strong>훨씬 더 나은 성능</strong>을 달성하며, GPU 시간은 약 <strong>1/10만 요구</strong>한다. 증류는 학생 모델이 탐색 공간을 확장하고 추론 잠재력을 향상시킨다.</p>
</li>
<li><p><strong>사고 모드 통합 및 General RL의 효과 (The Effects of Thinking Mode Fusion and General RL)</strong>:</p>
<ul>
<li><strong>3단계(사고 모드 통합)</strong>: 비사고 모드를 모델에 통합하고, <code>ThinkFollow</code> 벤치마크에서 88.7점을 기록하여 모드 간 전환 능력을 초기적으로 개발했음을 입증. 사고 모드에서 모델의 일반 및 지시 따르기 능력을 향상</li>
</ul>
</li>
</ul>
<pre><code>- **4단계(General RL)**: 사고 및 비사고 모드 모두에서 모델의 일반, 지시 따르기 및 에이전트 능력을 더욱 강화. `ThinkFollow` 점수는 98.9로 향상되어 정확한 모드 전환을 보장합니다.

- **성능 저하 및 trade-off**: 지식, STEM, 수학, 코딩 작업에서는 사고 모드 통합 및 General RL이 **유의미한 개선을 가져오지 못함**. 실제로, AIME’24 및 LiveCodeBench와 같은 도전적인 작업에서 사고 모드 성능은 이 두 훈련 단계 후에 감소. 

이는 모델이 더 넓은 범위의 일반 작업에 훈련되면서 복잡한 문제 처리에 대한 전문화된 능력이 저하될 수 있기 때문. Qwen3 개발 중에는 모델의 전반적인 다용도성 향상을 위해 이러한 성능 트레이드오프를 수용하기로 결정함.</code></pre><p><img src="https://velog.velcdn.com/images/choonsik_mom/post/cb92296e-b8d5-433a-9430-e7f538373d6e/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/c9b91991-1014-4871-a73e-5e4fdcf030db/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/344d5709-d2d8-452d-857e-de5758f7325b/image.png" alt=""></p>
<hr>
<h2 id="5-conclusion">5. Conclusion</h2>
<p>Qwen3는 사고 모드와 비사고 모드를 모두 특징으로 하여 사용자가 복잡한 사고 작업에 사용되는 토큰 수를 동적으로 관리할 수 있다. 이 모델은 36조 개의 토큰을 포함하는 방대한 데이터셋으로 사전 훈련되어 119개 언어 및 방언을 이해하고 생성할 수 있다. </p>
<p>Qwen3는 코드 생성, 수학, 추론 및 에이전트와 관련된 작업을 포함한 다양한 표준 벤치마크에서 사전 훈련 및 후처리 훈련 모델 모두에서 강력한 성능을 입증한다.</p>
<blockquote>
<p><strong>향후 연구 방향</strong>:</p>
</blockquote>
<ul>
<li>더 높은 품질과 더 다양한 콘텐츠의 데이터를 사용하여 사전 훈련 확장</li>
<li>효과적인 압축 및 <strong>극도로 긴 컨텍스트</strong>로의 확장을 위한 모델 아키텍처 및 훈련 방법 개선</li>
<li>환경 피드백으로부터 학습하는 에이전트 기반 RL 시스템에 특히 중점을 두고 강화 학습을 위한 계산 리소스 증대</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[5090에서 GroundingDINO build하기]]></title>
            <link>https://velog.io/@choonsik_mom/5090%EC%97%90%EC%84%9C-GroundingDINO-build%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@choonsik_mom/5090%EC%97%90%EC%84%9C-GroundingDINO-build%ED%95%98%EA%B8%B0</guid>
            <pubDate>Tue, 26 Aug 2025 09:43:22 GMT</pubDate>
            <description><![CDATA[<p>GroundedSAM 좀 쓰려고 했더니만 망할 compatibility 때문에 빌드가 안 된다....</p>
<p>망할 삽질 Jonnan 했넹 ㅠ</p>
<hr>
<h2 id="grounded-segment-anything">Grounded-Segment-Anything</h2>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/19051c0c-3677-4ae1-97b4-44ae922e1453/image.png" alt=""></p>
<p>대충 빌드하다가 이런 에러가 떴다면..?</p>
<p>git issue 좀 찾아보니까, GroundingDINO 특정 파일 일부를 수정하면 된다고 함.</p>
<p>여기서 디렉토리명은 <a href="https://github.com/IDEA-Research/Grounded-Segment-Anything">Grounded-Segment-Anything</a> 기준이다.</p>
<blockquote>
<p><strong>ms_deform_attn_cuda.cu</strong> 파일 수정</p>
</blockquote>
<ul>
<li><code>groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.cu</code></li>
</ul>
<p>여기서 <code>type() -&gt; scalar_type()</code> 으로 수정 (line 65, 135)</p>
<blockquote>
<p><strong>ms_deform_attn.h</strong> 파일 수정</p>
</blockquote>
<ul>
<li><code>groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn.h</code></li>
</ul>
<p>여기서 <code>value().type().is_cuda() -&gt; value.is_cuda()</code> 으로 수정 (line 30, 52)</p>
<hr>
<p>그리고 5090은 cuda 호환성도 중요하다. cuda 12.8+ 써야 함</p>
<blockquote>
<p>nvcc fatal : Unsupported gpu architecture &#39;compute_120&#39;</p>
</blockquote>
<p>5090과 cuda, torch compatibility가 맞지 않으면 빌드할 때 이런 식의 에러가 뜬다.</p>
<p>local에 cuda12.8 설치되었다면 <code>$CUDA_HOME</code> 을 <code>/usr/local/cuda-12.8</code>로 export 해주고, cuda12.8과 호환되는 torch, torchvision, torchaudio를 install 해줘야 한다.</p>
<pre><code class="language-bash">$ pip install torch==2.7.1 torchvision==0.22.1 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu128</code></pre>
<p>torch 2.9도 해봤는데, 뭔가 torch 연산할 때 compatibility가 꼬여서 안되는 듯 싶다. 내부 연산 방식이 달라졌나 봄</p>
<p>torch install 할때 version에 무조건 cuda 12.8 명시하기. </p>
<hr>
<h2 id="grounded-segment-anything-2">Grounded-Segment-Anything 2</h2>
<p>GroundedSAM2도 테스트 해봤는데, 똑같이 groundingdino 요구하지만 빌드가 좀 더 간단해서 (코드 변경 요하지 않음) 편했다. cuda, torch compatibility만 잘 맞춰놓고 github의 install 가이드라인을 따르자. </p>
<blockquote>
<p><a href="https://github.com/IDEA-Research/Grounded-SAM-2.git">GroundedSAM2 github</a></p>
</blockquote>
<p>빌드를 마치고, 동영상 넣어서 real-time으로 frame 연산하는 테스트도 해봤다. GroundedSAM2 demo 영상 돌려봤을 때, 5090 기준으로 평균 fps 12 정도 나오고 연산에 사용되는 Vram은 4.5Gb, utill은 최대 ~50%대까지 올라가는 걸 봤다.</p>
<p>보통은 한 20~40%?</p>
<p><img src="https://velog.velcdn.com/images/choonsik_mom/post/e090608c-c79b-4bd0-ae8f-ef84b7f6f612/image.png" alt=""></p>
<p><del>아니 근데 데모 영상이 좀 숭한데요..?</del></p>
<p>아무튼 줘도 못먹는... 아니 먹기 힘든 rtx 5090 대여자의 하루였다.</p>
]]></description>
        </item>
    </channel>
</rss>