Opt.Gear-1M · 2026/08/02

Opt.Gear-1M: MCU에서 실행되는 생성 언어 모델

약 1M 파라미터의 언어 모델을 STM32 Cortex-M7에 직접 배포해 20 tokens/s의 자기회귀 생성을 달성한 Opt.Gear-1M을 소개합니다.

By Opt.Gear Team

어두운 보라색 배경 위의 Opt.Gear-1M 워드마크
Opt.Gear-1M

🤗 HUGGING FACE 🏠 OptAI ✉️ CONTACT

Opt.Gear Model Family
이 글은 Opt.Gear 시리즈의 세 번째 글입니다. 모델 아키텍처와 학습 레시피를 다룬 1편: Opt.Gear 소개, 양자화 인지 학습을 다룬 2편: Opt.Gear-QAT에 이어, 이번 글에서는 마이크로컨트롤러용 초소형 모델 Opt.Gear-1M을 소개합니다.

Opt.Gear-1M의 목표는 Opt.Gear-270M, 1B 모델을 단순히 축소하는 것이 아닙니다. 모바일 NPU나 서버 GPU보다 훨씬 제한적인 마이크로컨트롤러에서 auto-regressive language model을 실제로 실행하는 것이 목표입니다.

이를 위해 Opt.Gear-1M을 STM32H747I-DISCO의 ARM Cortex-M7 코어에 직접 배포했습니다. 4-bit weight와 FP32 activation을 사용하는 W4A32 구성에서 측정한 생성 속도는 다음과 같습니다.

STM32 Cortex-M7 400MHz에서 20 tokens/s, 즉 약 50ms/token
W4A32 양자화 기준, ARM Cortex-M7에서 20 tokens/s를 달성한 최초의 생성 언어 모델입니다.

이 결과는 host simulator가 아니라 실제 MCU에서 동작하는 embedded C runtime을 통해 측정했습니다.

MCU에서는 최적화 문제 자체가 달라진다

서버 GPU에서는 모델의 연산량과 GPU utilization이 주요 최적화 대상입니다. 모바일 NPU에서는 연산자 지원 여부, tensor layout, quantization 형식과 accelerator memory가 중요합니다.

마이크로컨트롤러에서는 제약이 한층 더 강해집니다:

따라서 MCU용 언어 모델은 단순히 파라미터 수만 작아서는 충분하지 않습니다. 작은 vocabulary, 제한된 context, 작은 KV cache, 고정 크기 state, 단순한 activation과 정적 memory allocation까지 함께 설계해야 합니다. Opt.Gear-1M은 이러한 MCU 제약에서 출발했습니다.

Configuration of Opt.Gear-1M

Opt.Gear는 1B, 270M, 1M의 세 가지 크기로 구성됩니다. Opt.Gear-1M은 MCU에서의 실행을 위해 거의 모든 구성을 다시 축소했습니다.

Configuration Opt.Gear-1M
Hidden dimension 128
Decoder layers 5
Normalization QK-LN
FFN activation ReLU6GLU
FFN dimension 272
Attention type Hybrid
Attention heads 2
KV heads 1
Head dimension 64
Sliding-window size
Conv kernel size 4
Maximum context 512
Global RoPE theta 1,000,000
Local RoPE theta
Tokenizer Custom BPE
Vocabulary size 2,048
Tied embedding No

Opt.Gear-1M의 목표는 광범위한 지식 benchmark를 포괄하는 것이 아닙니다. 짧은 command, 제한된 도메인의 local generation, embedded-control prompt와 offline human-machine interface를 작은 메모리 안에서 안정적으로 처리하는 것이 우선입니다.

아키텍처: 고정 크기 state의 힘

모든 Opt.Gear 제품군은 attention과 ConvKV-Gated Mixer를 함께 사용하는 hybrid sequence mixing architecture를 채택합니다.

Attention은 멀리 떨어진 token 사이의 관계를 직접 모델링할 수 있지만, decoding 과정에서 이전 token의 key와 value를 KV cache에 저장해야 합니다. Cache 크기는 sequence length와 함께 증가합니다. 반면 ConvKV-Gated Mixer는 key와 value에 causal depthwise convolution을 적용하고, 전체 context 대신 convolution kernel에 의해 결정되는 고정 크기 state를 유지합니다.

Sequence mixer 처리 범위 Decoding state
GQA attention Context 내 token 관계 Sequence length에 따라 증가하는 KV cache
ConvKV-Gated Mixer 짧은 local pattern Conv kernel에 의해 결정되는 고정 크기 state

Opt.Gear-1B와 270M은 kernel size 3을 사용하지만, Opt.Gear-1M은 kernel size 4를 사용합니다. Hidden dimension이 매우 작은 환경에서 local receptive field를 조금 더 넓히기 위한 구성입니다. Conv layer는 causal하게 동작하므로 현재 token을 처리할 때 미래 token을 참조하지 않으며, auto-regressive decoding에서는 직전의 작은 convolution state만 유지하면 됩니다.

이 구조의 목적은 attention을 완전히 제거하는 것이 아닙니다:

이를 통해 모델의 표현력과 MCU memory footprint 사이의 균형을 맞춥니다.

단순한 연산이 곧 성능이다: ReLU6GLU

Opt.Gear-1B와 270M의 FFN은 GeGLU 기반의 gated dense MLP를 사용합니다. Opt.Gear-1M은 hidden dimension 128, intermediate dimension 272의 더 작은 FFN에 ReLU6 기반의 gated 구성(ReLU6GLU)을 사용합니다:

ReLU6(x) = min( max(0, x), 6 )

출력이 0에서 6 사이로 제한되기 때문에 activation range가 예측 가능하고, sigmoid나 GELU와 같은 복잡한 비선형 함수 없이 비교적 단순한 연산으로 구현할 수 있습니다.

대형 accelerator가 없는 Cortex-M7에서는 이론적인 연산량뿐 아니라 함수 구현의 복잡성, temporary buffer와 memory access도 중요합니다. Opt.Gear-1M은 이러한 조건에 맞춰 큰 gated FFN보다 작고 단순한 FFN 구성을 사용합니다.

Board-Control Post-Training
Opt.Gear-1M은 270M/1B와 다른 post-training 경로를 따릅니다. STM32 보드 제어에 특화된 5만 쌍의 합성 명령 데이터셋(stm32_cmd_synth)으로 학습되어, 짧은 자연어 명령을 LCD·LED·카메라 제어를 위한 구조화된 JSON 스타일 인텐트로 변환합니다. 자유 형식 텍스트보다 예측 가능한 명령 생성을 의도적으로 우선하는 설계입니다.

Results of STM32H747I-DISCO

Item Measured or configured value
Board STM32H747I-DISCO
MCU / core STM32H747XIH6 / ARM Cortex-M7
CPU clock 400MHz
Runtime Embedded C
Quantized format W4A32
Embedding / LM head 16-bit
Deployment sequence length 160 tokens
Maximum new tokens 40 tokens
Measured throughput 20 tokens/s
Per-token latency 50ms/token
.text / .rodata 1,596,400 bytes
.data 532 bytes
.bss 444,404 bytes
Total static RAM (incl. reserved heap/stack) 449,032 bytes

20 tokens/s의 의미

20 tokens/s는 token 하나를 생성하는 데 약 50ms가 걸린다는 의미입니다. 최대 40개의 token을 생성한다면 decode 구간만 단순 계산했을 때 약 2초가 필요합니다. 실제 사용자가 체감하는 전체 응답 시간에는 prompt prefill과 application processing 시간이 추가됩니다.

이 정도의 속도는 긴 문서를 생성하기 위한 서버급 처리량은 아니지만, 짧은 command response나 local status generation에서는 token이 실시간으로 출력되는 것을 확인할 수 있는 수준입니다. Gear-1M은 MCU의 Flash에 들어가는 데서 끝나지 않고, 사용자가 관찰 가능한 속도로 auto-regressive generation을 수행합니다.

Footprint는 ELF로 측정한다

최종 ELF를 arm-none-eabi-size로 분석했을 때 .text.rodata의 합은 1,596,400 bytes(약 1.5MB)입니다. 이 수치는 순수한 model weight 크기만을 의미하지 않습니다:

따라서 W4 weight의 이론적인 크기와 최종 ELF section 크기는 서로 다릅니다. 실제 device build에서는 model weight뿐 아니라 inference code, lookup table, scale과 각종 constant가 함께 Flash를 사용합니다. 이러한 이유로 MCU 모델에서는 단순한 parameter count보다 최종 ELF를 기준으로 한 footprint 측정이 더 중요합니다.

최종 build의 .bss section은 444,404 bytes이며, .data와 예약된 heap/stack 영역을 포함한 static RAM footprint는 449,032 bytes(약 449KB)입니다. RAM은 주로 다음 구성에 사용됩니다:

What can we do

Opt.Gear-1M의 목표는 MCU에서 범용 chatbot을 실행하는 것이 아닙니다. 모델의 크기와 2,048 vocabulary에는 분명한 한계가 있습니다. 우리가 도전하고 싶었던 것은 서버 GPU나 모바일 NPU 없이 마이크로컨트롤러 자체 CPU에서 생성형 언어 모델이 실용적인 속도로 동작할 수 있는가라는 질문입니다.

STM32H747I-DISCO에서 측정한 20 tokens/s는 다음 가능성을 보여줍니다:

Conclusion

Opt.Gear-1M은 약 1M 파라미터의 언어 모델을 STM32H747I-DISCO의 ARM Cortex-M7에 직접 배포했습니다. 핵심 설계는 다음과 같습니다:

실제 배포 build는 약 1.5MB의 .text/.rodata와 약 449KB의 static RAM을 사용했습니다. 400MHz Cortex-M7에서 측정한 생성 속도는 20 tokens/s, 약 50ms/token입니다.

이 결과가 의미하는 것은 단순히 "1M 모델을 MCU에 넣었다"는 사실만이 아닙니다.

Flash와 SRAM, 연산 성능이 극도로 제한된 환경에서도 architecture와 runtime을 함께 설계하면 auto-regressive generation을 사용자가 관찰 가능한 속도로 실행할 수 있다.

Opt.Gear-1M은 Opt.Gear 제품군의 배포 범위를 모바일과 edge accelerator에서 센서, controller, 소형 로봇과 offline human-machine interface와 같은 deeply embedded system까지 확장하기 위한 첫 번째 단계입니다.

Citation

@misc{optgear2026,
    title  = {{Opt-Gear} Technical Report},
    author = {{OptAI Gear Team}},
    year   = {2026},
    url    = {https://huggingface.co/OptGear}
}

Correspondence: contact@opt-ai.kr · Hugging Face: huggingface.co/OptAI

← All posts Get the models →

언어 모델은 부정확한 내용을 생성할 수 있으며, OptAI의 견해를 대표하지 않을 수 있습니다. 의존하거나 게시하거나 배포할 내용은 반드시 검토해 주세요.