언어 생성 모델 추론 엔진 FlexGen 공개
제한된 GPU 자원 하에서 OPT-175B, GPT-3 같은 언어 생성 모델의 추론 속도를 최대 100배 향상한 FlexGen(https://github.com/FMInference/FlexGen) 엔진이 나왔네요. 기존 허깅페이스 액셀러레이트, 딥스피드 ZeRO의 정적인 오프로딩* 전략과 달리 추론 배치 크기와 여러 배치를 묶은 블록의 크기 그리고 모델 가중치와 키 - 밸류 캐싱 값을 CPU, GPU, 디스크에 각각 어떻게 배분할지 변수로 두고 현재 하드웨어 사양을 제약 조건으로 둬서 선형계획법으로 최적값을 구합니다. 그렇게 함으로써 처리량(throughput)을 최대로 하는 동적인 오프로딩 전략을 구사할 수 있고 극단적인, 예를 들어 GPU 1장의 환경에서도 디스크(SSD)를 적절히 사용하여 추론값을 제공할 수 있게 되는 거죠. 처리량의 극적인 향상은 물론이고요. 여기에 정확도 손실 없이 가중치와 키 - 밸류 캐싱을 4비트로 압축하는 방법도 더했네요. NVIDIA T4(16GB), DRAM 208GB, 1.5TB SSD에서 OPT-175B의 0.69 ~ 1.12 초당 토큰 처리량이 나옵니다. * 오프로딩은 딥러닝 연산을 CPU, GPU, 디스크에 적절히 잘 분배해서 연산 속도를 향상하고 메모리 크기 한계를 회피하는 기법입니다. 정정: 제가 원 글에서는 실제 서비스에 많이 사용될 것 같다고 이야기했지만 저자도 코멘트했듯이 이것은 실시간이 아닌, 배치 추론 상황에서만 가능한 방법입니다. 리소스가 풍족한 상황에서는 별다른 이점도 없어 보이고요. 이에 정정합니다.