Hugging Face Transformers: 생태계 상호 운용성을 위한 모델 정의 표준화

Hugging Face는 Transformers 라이브러리를 모델 정의의 주요 레퍼런스로 설정하여, 라이브러리가 지원하는 모든 아키텍처가 자동으로 더 넓은 머신러닝 생태계와 호환되도록 하고 있습니다. 이러한 표준화는 파편화를 줄이고 모델이 학습 프레임워크, 추론 엔진, 로컬 배포 도구 사이를 원활하게 이동할 수 있게 합니다.

Transformers: 생태계의 중심축

Transformers 라이브러리는 현재 300개 이상의 모델 아키텍처를 지원하며, 주당 평균 3개의 새로운 아키텍처가 추가되고 있습니다. 중심축 역할을 함으로써 Transformers는 모델을 한 번만 다양한 도구에 통합하면 여러 플랫폼에서 사용할 수 있게 합니다:

  • 추론 엔진: vLLM, SGLang, TGI와 같은 인기 엔진이 Transformers를 백엔드로 통합하고 있습니다. 예를 들어 vLLM에서는 사용자가 이제 model_impl="transformers"를 사용해 새로운 모델을 로드할 수 있어, 모델이 Transformers 라이브러리에 추가되는 즉시 프로덕션 급 서빙, 동적 배칭, 특수 커널의 혜택을 받을 수 있습니다.
  • 학습 프레임워크: 이 라이브러리는 Axolotl, Unsloth, DeepSpeed, FSDP, PyTorch-Lightning, TRL, Nanotron 등 주요 학습 도구에 이미 통합되어 있습니다.
  • 로컬 배포 및 상호 운용성: llama.cpp와 MLX와의 강력한 상호 운용성을 제공합니다. 여기에는 Transformers에서 GGUF 파일을 직접 로드해 파인튜닝할 수 있는 기능과 Transformers 모델을 GGUF 파일로 변환해 llama.cpp에서 사용할 수 있는 기능이 포함됩니다. 또한 Transformers의 safetensors 파일은 MLX 모델과 바로 호환됩니다.

모델 기여 간소화

새로운 아키텍처 추가 장벽을 낮추기 위해 Hugging Face는 모델링 코드를 간소화하는 작업을 가속화하고 있습니다. 목표는 20개 파일에 걸쳐 6,000줄에 달하는 대규모 복잡한 기여에서 벗어나 보다 모듈식 접근법으로 전환하는 것입니다:

  • API 간소화: KV 캐시 및 다양한 Attention 함수와 같은 핵심 구성 요소에 대해 명확하고 간결한 API를 구현합니다.
  • 중복 폐기: 느린 토크나이저를 효율적인 토크나이징으로 대체하고, 빠른 벡터화 비전 프로세서를 사용하는 등 단일하고 효율적인 경로를 위해 중복 요소를 제거합니다.
  • 모듈식 정의: 새로운 모델이 최소한의 코드 변경만으로 구현될 수 있도록 모듈식 모델 정의를 강화합니다.

사용자와 제작자에 대한 영향

모델 사용자에게

표준화는 학습, 추론, 프로덕션에 사용되는 도구들 간의 상호 운용성을 높입니다. 사용자가 실험에 Transformers에 얽매이지는 않지만, 표준화를 통해 선택한 툴체인이 효율적으로 함께 작동하도록 보장합니다.

모델 제작자를 위해

표준화는 새로운 모델을 출시하는 운영 부담을 줄여줍니다. 모든 주요 라이브러리에 개별적으로 모델을 통합하는 데 많은 시간을 소비하는 대신, Transformers 라이브러리에 한 번 기여하면 해당 구현을 통합한 모든 하위 라이브러리에서 모델을 사용할 수 있게 됩니다.

Sources