harshatheg/Qwen-2.5-1B-RLCD
Parallel Constrained Decoding — Apple Silicon에서 구조화 추론을 최대 7배 빠르게
MLX 기반의 고처리량 추론 엔진 Parallel Constrained Decoding이 공개됐습니다. 다중 필드 JSON 스키마를 토큰 단위로 순차 생성하는 대신 동시에 평가해, Apple Silicon M4 Max에서 표준 자기회귀 디코딩 대비 5.6~7.0배의 지연시간 단축과 100% 스키마 유효성을 달성했습니다.
- 주제
본문
구조화된 정보 추출·의사결정 라우팅·분류 작업에서 LLM이 JSON을 생성하는 방식을 근본적으로 바꾼 프로젝트가 Hugging Face에 공개됐습니다. 표준적인 구조화 생성(JSON 모드나 grammar-guided sampling)은 '{' → 개행 → 'risk' → ':' → 'HIGH' 같은 식으로 토큰을 하나씩 생성하며, 통상 150~500번의 순차적 forward pass가 필요합니다. 각 토큰마다 GPU/NPU forward pass와 메모리 대역폭 왕복이 발생하므로 스키마가 커질수록 지연시간이 출력 토큰 길이에 비례해 증가하고, 문법 깨짐·필드 누락·없는 키 생성(hallucination) 같은 문제도 따라옵니다.
작동 원리 — 모든 필드를 한 번에 평가
이 엔진은 구조화 추출·분류에서 필드 값이 유한한 후보 집합(boolean 또는 categorical enum)에 속한다는 성질을 이용합니다. 먼저 컨텍스트 문서와 스키마 설명을 한 번만 MLX KV-Cache에 prefill하고(Single Broadcast Prefill), 이 캐시 상태를 M개의 스키마 필드 전체에 병렬로 브로드캐스트합니다(KV-Cache Broadcasting). 각 필드에 대해서는 유효한 후보 선택지에 해당하는 토큰 ID만 평가하고 나머지 어휘는 마스킹하는 Sub-Vocabulary Logit Slicing을 적용한 뒤, 후보 슬라이스 위에서 정규화된 softmax 확률을 계산해 필드별 보정된 신뢰도를 얻습니다. 후보들이 다중 토큰 접두사를 공유하는 경우에는 Token Tree Disambiguation으로 슬라이스된 캐시 상태에서 메모리 재할당 없이 continuation step을 실행하며, 출력 JSON은 검증된 값으로부터 프로그래매틱하게 조립돼 파싱 오류 없이 100% 유효한 문법이 보장됩니다.
벤치마크 — M4 Max에서 5.6~7.0배 단축
mlx-community/Qwen2.5-1.5B-Instruct-4bit 모델로 macOS Sequoia에서 측정한 결과, 4개 필드의 핀테크 사기 라우팅은 420ms에서 75ms로(5.6배), 4개 필드의 코드 보안 감사는 380ms에서 68ms로(5.6배), 255개 선택지를 가진 관세 분류 단일 필드는 500ms에서 89ms로(5.6배), 28개 필드의 엔터프라이즈 지원 티켓 분류는 1,900ms에서 270ms로(7.0배) 단축됐습니다. 벤치마크 출력 예시에서는 자기회귀 방식이 148~312회의 forward pass를 수행한 반면, 병렬 방식은 단 1회의 pass로 동일 작업을 완료해 step 수 기준으로 수백 배의 절감을 보였습니다.
사용법과 데모
스키마는 StructuredSchema와 FieldDefinition으로 정의하며, enum 타입은 최대 255개 선택지와 필드 추론을 유도하는 description을 지원합니다. run_parallel_generation(context, schema) 한 호출로 추론을 실행하면 경과 시간·prefill 시간·forward pass 수와 함께 parsed_json 안에 각 필드의 값과 확률, 그리고 top_choices 분포를 담은 field_telemetry가 반환됩니다. 비교용으로 stream_naive_generation으로 자기회귀 스트리밍도 가능하며, FastAPI 기반 웹 UI에서 두 방식의 지연시간을 실시간 타이머로 나란히 비교하고 누락·hallucinated 키를 하이라이트할 수 있습니다. Hugging Face Spaces의 drinkmoonshine/parallel-constrained-decoding에서 라이브 데모를 체험할 수 있고, 요구 환경은 Apple Silicon(M1~M4), macOS 14.0 이상, Python 3.10 이상이며 라이선스는 Apache 2.0입니다.
원문: Hugging Face / 번역·요약: Trawling