에이전트와 개발

Hugging Face transformers v5.21.0, MiniCPM-OCR 등 모델 6종 추가

Hugging Face가 transformers v5.21.0에 문서 이해 모델 MiniCPM-OCR와 UltraVBert, 전문가 혼합 언어 모델 Flint, 음성 합성 모델 Gradium Phonon TTS와 Pocket TTS, 오디오 토크나이저를 넣었다. 파이썬 최소 버전은 3.11로 오르고 텐서 병렬 설정 방식도 바뀌었다.

루카스 ·

Hugging Face의 오픈소스 라이브러리 transformers가 v5.21.0을 내놓고 모델 6종을 새로 지원한다. 스캔 문서와 영수증을 읽는 MiniCPM-OCR, 전문가 혼합 언어 모델 Flint, 문서 검색용 UltraVBert, 음성 합성 모델 Gradium Phonon TTS와 Pocket TTS, Pocket TTS용 오디오 토크나이저다.

기존 사용자가 살펴야 할 변경이 있다. 파이썬 최소 버전이 3.11로 올랐고, 텐서 병렬(TP)에서 입력 임베딩을 다루는 방식이 바뀌어 임베딩에 ColwiseParallel이나 RowwiseParallel을 직접 적용한 맞춤 TP 계획은 새 방식으로 고쳐야 한다. 또 모든 전문가 혼합(MoE) 모델의 TP·EP 계획이 전문가를 나눠 담도록 바뀌어, 맞춤 또는 하위 MoE 병렬 계획은 전문가 분할을 추가해야 한다.

새로 지원하는 모델

MiniCPM-OCR는 OpenBMB의 MiniCPM-V 계열에 속한 문서 이해 모델이다. MiniCPM-V 4.6의 구조를 그대로 두어, SigLIP 비전 인코더와 윈도 어텐션 병합기를 Qwen3.5 언어 모델에 연결한다. 스캔한 페이지, 화면 캡처, 영수증, 표처럼 글자가 빽빽한 이미지를 읽는 데 특화했다. 문서 페이지와 논문 링크가 함께 공개됐다.

Flint는 Recursive가 만든 전문가 혼합 언어 모델이다. 표준 SwiGLU 전문가 혼합 모델인 Qwen3-MoE와 비교하면 어텐션 구성이 다르다. 대부분의 층은 현재 토큰과 앞선 512개 토큰에만 회전 임베딩을 적용하는 슬라이딩 윈도 어텐션을 쓰고, 나머지 층은 위치 인코딩 없는 전체 어텐션을 쓴다. GPT-OSS처럼 학습되는 어텐션 싱크도 두었고, 헤드마다 쿼리와 키를 RMS 정규화한다.

전문가 층은 시그모이드 점수로 토큰 하나를 256개 전문가 가운데 6개에 보내고, 게이트 없는 공유 전문가를 하나 더한다. 앞의 두 층은 전문가 없이 조밀하게 구성했다.

UltraVBert는 ModernVBert을 확장한 모델로, UltraBERT 텍스트 인코더와 SigLIP 비전 인코더를 묶어 시각 문서 이해와 검색에 쓴다. 이미지 처리기는 페이지를 512픽셀 타일로 자르고 전체 보기를 하나 더 만든다. 연결 모듈이 비전 패치 4x4 블록을 토큰 하나로 합치므로 타일 하나가 이미지 토큰 64개가 되고, 이 토큰은 UltraBERT 토큰 임베딩의 크기에 맞춰 RMS 정규화한다. 페이지당 타일 수의 상한은 max_image_tiles 설정으로 정하며 기본값은 27이다.

음성 쪽에서는 음성 합성 모델 두 가지와 오디오 코덱이 추가됐다. Pocket TTS는 Kyutai가 만든 1억 매개변수 모델로, 연속 오디오 언어 모델 방식이며 CPU에서 실시간보다 빠르게 돌아간다고 소개돼 있다. 인과적 트랜스포머가 프레임마다 연속 오디오 잠재 벡터를 만들어 원스텝 흐름 헤드로 12.5Hz에 맞춰 내놓고, 별도의 종료 헤드가 멈출 시점을 정한다. Mimi 기반 오디오 토크나이저가 음성 프롬프트를 인코딩하고, 생성된 잠재 벡터를 24kHz 오디오로 디코딩한다. 흐름 헤드는 라그랑지안 자기 증류(기본값)와 드리프팅 두 가지가 공개됐다. 목소리는 녹음에서 복제하거나, 미리 계산한 잠재 벡터로 넘기거나, 캐시된 KV 상태에서 불러올 수 있다.

Gradium Phonon TTS는 Gradium의 온디바이스 음성 합성 모델군으로, Pocket TTS 방식으로 학습했다. 인과적 트랜스포머가 음성 프롬프트와 텍스트를 읽고, 스텝마다 32차원 연속 오디오 잠재 벡터를 원스텝 흐름 헤드로 12.5Hz에 맞춰 내놓는다. 종료 헤드가 발화의 끝을 정하고, 잠재 벡터는 Pocket TTS 오디오 토크나이저가 24kHz 오디오로 복원한다. Pocket TTS와 다른 점은 음성 조건이다. 공개되지 않은 별도의 화자 코덱이 만든 512차원 잠재 벡터를 쓰기 때문에 목소리는 미리 계산된 잠재 벡터로만 제공되며 녹음에서 복제할 수 없다.

Pocket TTS 오디오 토크나이저는 Pocket TTS가 쓰는 코덱이다. Mimi와 같은 구조(SEANet 합성곱과 양쪽의 작은 인과 트랜스포머)이지만 잔차 벡터 양자화기를 32차원 연속 병목으로 바꿨다. 24kHz 오디오를 12.5Hz 잠재 벡터로 바꾸고 다시 오디오로 복원한다. PocketTTSProcessor의 audio_tokenizer로 쓰이며 인코더와 디코더를 따로 불러올 수도 있다.

호환성이 바뀌는 항목

텐서 병렬은 임베딩 전용 방식을 갖게 됐다. 모든 모델의 입력 임베딩을 기본으로 나눠 담고, 너비가 TP 크기로 나누어떨어지지 않아도 처리한다. 이에 따라 ColwiseParallel과 RowwiseParallel은 선형 층에만 적용된다. 임베딩에 두 방식을 적용한 맞춤 TP 계획은 새 임베딩 방식으로 바꿔야 한다. 또 모든 MoE의 TP·EP 계획에서 전문가를 나눠 담도록 바뀌었고, 이를 확인하는 테스트도 추가됐다. 맞춤 또는 하위 MoE 병렬 계획은 이 테스트를 통과하고 메모리 낭비를 피하려면 전문가 분할을 추가해야 한다.

양자화 KV 캐시에는 fp8 백엔드가 quanto, hqq에 이어 추가됐다. KV 상태를 텐서마다 스케일 하나로 torch.float8_e4m3fn에 저장하며, cache_implementation="quantized"와 cache_config={"backend": "fp8"}로 켠다.

Gemma4, Gemma4 통합 프로세서, EmbeddingGemma2 프로세서의 임포트도 고쳤다. PIL은 있고 torch는 없는 환경에서 from transformers import *가 실패하던 문제로, 사용자가 따로 할 일은 없다.

캐시, 비전, 생성, 병렬화 수정

캐시에서는 플래시 어텐션이 정적 캐시와 함께 동작하고, BLOOM이 정적 캐시나 컴파일된 generate에서 죽던 문제가 사라졌다. 청크 프리필은 캐시 이어붙이기를 지원한다. Qwen4-Exp 인덱서의 위치 기록은 캐시된 키와 어긋나지 않게 정리했다. 선형 어텐션 캐시에는 is_recording_past, get_recurrent_state, 합성곱 상태 접근용 getter가 생겼다.

비전 이미지 처리기는 PNG 투명 영역을 검은 픽셀로 드러내지 않고 흰색 위에 합성한다. DeepSeek-VL과 Janus 처리기는 background_color를 제대로 유지한다. 모델별 수정으로는 이미지 토큰이 패치 크기의 배수가 아닐 때 SmolVLM의 inputs_merger, 배치 빔 서치에서 HunYuan-VL의 이미지 배정, TP·EP 환경에서 Ernie4.5-VL-MoE의 전문가 분할이 있다.

생성 쪽에서는 generate가 ModelOutput 같은 딕셔너리형 입력의 타입을 잃던 문제, HunYuan-VL과 Idefics2·3의 배치·빔 서치 이미지 배정 오류를 고쳤다. Qwen3-Omni 오디오 생성의 모드 처리, SAM 마스크 생성의 멀티줌 크롭, 짧은 영상에서 프레임 샘플링이 비는 문제도 수정 목록에 있다.

병렬화에서는 Nemotron용 TP 계획을 추가했고, torch 2.7에서 2.10 사이에서 전문가 병렬 토큰 분배의 그래디언트를 복구했다. Molmo2의 모델 병렬 장치 불일치도 고쳤으며, PP-OCR 검출기와 CLIPSeg, TimesFM, CLIP, VideoPrism 헤드 등의 base_model_prefix를 바로잡아 기본 체크포인트가 로드되게 했다.

DeepSeek-V4 계열 모델의 FP4 전문가는 이제 올바르게 처리된다. FineGrainedFP8Config에 expert_dtype 옵션이 생겼고, 기본값은 "fp8"이며 "fp4"로 바꿀 수 있다. TimesFM 2.5는 bitsandbytes 4비트·8비트 같은 양자화로 불러올 때 실수 입력을 정수 가중치 자료형으로 바꾸던 문제가 사라졌다.

댓글

기사에 대한 의견이나 틀린 내용 제보를 남겨 주세요.

댓글을 불러오고 있습니다.