피드로 돌아가기
Assisted Generation: a new direction toward low-latency text generation
Hugging Face BlogHugging Face Blog
AI/ML

Hugging Face가 Assisted Generation 디코딩 방식을 도입해 대규모 언어 모델의 텍스트 생성 레이턴시를 최대 10배 단축

Assisted Generation: a new direction toward low-latency text generation

2023년 5월 11일10intermediate

Context

대규모 언어 모델의 텍스트 생성은 순차적 토큰 예측을 위해 수백 번의 모델 포워드 패스가 필요하며, 각 포워드 패스에서 메모리 대역폭이 병목이 되어 높은 레이턴시가 발생한다. 이로 인해 코드 완성 같은 실시간 응용에서는 성능이 낮은 소규모 모델을 사용하는 트레이드오프가 발생했다.

Technical Solution

  • Assisted Generation 디코딩 방식 도입: 소규모 모델로 다음 토큰들을 후보 생성 후 대규모 모델이 한 번의 포워드 패스로 여러 후보를 동시 검증
  • 메모리 대역폭 병목 해소: 대규모 모델의 포워드 패스 횟수를 감소시켜 모델 가중치 로딩 비용 절감
  • Hugging Face Transformers 라이브러리의 .generate() 함수에 구현: 오픈소스로 공개하여 즉시 도입 가능
  • 기존 최적화 기법과 조합 가능: Flash Attention, INT8 양자화, 배치 처리, Tensor Parallelism과 함께 사용 가능
  • 모델 아키텍처 설계 원칙 재정의: 고정 계산량 제약(토큰당 1회 포워드 패스)을 제거하여 소규모 모델로도 큰 부분의 출력 생성 가능

Impact

  • 텍스트 생성 레이턴시 최대 10배 단축 (commodity hardware에서 측정)

Key Takeaway

자동회귀 텍스트 생성의 메모리 대역폭 병목은 포워드 패스 횟수 자체를 줄이는 방식으로 해결 가능하며, 소규모 모델을 검증용으로 활용하면 대규모 모델의 품질을 유지하면서도 극적인 지연시간 개선을 달성할 수 있다.


대규모 언어 모델을 배포하는 엔지니어는 Assisted Generation을 Transformers 라이브러리의 .generate() 함수로 적용할 때, 소규모 모델(예: distilgpt2)을 보조 모델로 구성하면 추론 레이턴시를 10배까지 줄일 수 있으며, 기존의 Flash Attention이나 INT8 양자화 같은 최적화 기법과도 함께 사용 가능하다.

원문 읽기