계산 비용은 ChatGPT와 같은 대규모 모델을 구축할 때 사람들이 직면하는 주요 과제 중 하나입니다.
통계에 따르면 GPT에서 GPT-3으로의 진화는 모델 크기가 성장하는 과정이기도 합니다. 매개변수 수가 1억 1,700만 개에서 1,750억 개로 늘어났고, 사전 훈련 데이터의 양도 1,700만 개에서 1,750억 개로 늘어났습니다. 5GB~45TB(이 중 GPT-3 교육) 일회성 비용은 460만 달러로 총 교육 비용은 1,200만 달러에 이릅니다.
훈련 외에도 추론에는 비용이 많이 듭니다. 어떤 사람들은 ChatGPT를 실행하는 OpenAI의 컴퓨팅 전력 비용이 하루에 US$100,000라고 추정합니다.
대형 모델이 더 많은 기능을 습득할 수 있도록 기술을 개발하는 동안 일부 사람들은 AI에 필요한 컴퓨팅 리소스를 줄이려고 노력하고 있습니다. 최근 FlexGen이라는 기술이 "ChatGPT 볼륨 모델을 실행하는 RTX 3090"으로 인해 사람들의 관심을 끌었습니다.
FlexGen으로 가속화된 대형 모델은 1,750억 개의 매개변수 언어 모델을 실행할 때 초당 1개의 토큰으로 여전히 매우 느리게 보이지만 인상적인 점은 불가능을 가능하게 만들었다는 것입니다.
전통적으로 LLM(대형 언어 모델) 추론의 높은 계산 및 메모리 요구 사항으로 인해 훈련을 위해 여러 고급 AI 가속기를 사용해야 했습니다. 이 연구에서는 LLM 추론 요구 사항을 소비자 등급 GPU로 줄이고 실용적인 성능을 달성하는 방법을 탐구합니다.
최근 Stanford University, UC Berkeley, ETH Zurich, Yandex, Moscow State Higher School of Economics, Meta, Carnegie Mellon University 및 기타 기관의 새로운 연구에서는 제한된 GPU를 실행하는 방법인 FlexGen을 제안했습니다. 인메모리 LLM용 엔진.
FlexGen은 GPU, CPU 및 디스크의 메모리와 계산을 집계하여 다양한 하드웨어 리소스 제약 조건 하에서 유연하게 구성할 수 있습니다. 선형 프로그래밍 최적화 프로그램을 통해 가중치, 활성화 및 어텐션 키/값(KV) 캐시를 포함하여 텐서를 저장하고 액세스하기 위한 최상의 패턴을 검색합니다. FlexGen은 정확도 손실을 무시할 수 있는 수준으로 가중치와 KV 캐시를 4비트로 더욱 압축합니다. 최첨단 오프로딩 시스템과 비교하여 FlexGen은 단일 16GB GPU에서 OPT-175B를 100배 더 빠르게 실행하고 처음으로 초당 1토큰의 실제 생성 처리량을 달성합니다. 또한 FlexGen에는 파이프라인 병렬 런타임이 함께 제공되어 더 많은 분산 GPU를 사용할 수 있는 경우 디코딩 시 초선형 확장이 가능합니다.
현재 이 기술은 코드를 공개했으며 수천 개의 별을 얻었습니다. 소개
최근 몇 년간 대형 언어 모델은 다양한 작업에서 탁월한 성능을 보여왔습니다. LLM은 전례 없는 일반 지능을 보여주지만 구축 시 사람들을 전례 없는 과제에 노출시키기도 합니다. 이러한 모델에는 수십억 또는 심지어 수조 개의 매개변수가 있을 수 있으므로 이를 실행하는 데 매우 높은 계산 및 메모리 요구 사항이 발생합니다. 예를 들어 GPT-175B(GPT-3)는 모델 무게를 저장하는 데에만 325GB의 메모리가 필요합니다. 이 모델이 추론을 수행하려면 최소 5개의 Nvidia A100(80GB)과 복잡한 병렬 처리 전략이 필요합니다.LLM 추론 리소스 요구 사항을 줄이는 방법은 최근 사람들이 자주 논의하는 내용입니다. 이러한 노력은 세 가지 방향으로 나뉩니다.
(2) 분산화를 통한 비용 공유를 위한 협업 추론
(3) CPU 활용을 위한 오프로딩 그리고 디스크 메모리.
이러한 기술은 LLM 사용에 필요한 계산 리소스 요구 사항을 크게 줄여줍니다. 그러나 모델은 GPU 메모리에 적합한 것으로 가정되는 경우가 많으며 기존 오프로딩 기반 시스템은 여전히 단일 GPU를 사용하여 허용 가능한 처리량으로 1,750억 개의 매개변수 크기 모델을 실행하는 데 어려움을 겪고 있습니다.
새로운 연구에서 저자는 처리량이 높은 생성 추론을 위한 효과적인 오프로딩 전략에 중점을 둡니다. GPU 메모리가 부족하면 보조 저장소로 오프로드하고 부분 로딩을 통해 하나씩 계산을 수행해야 합니다. 일반적인 시스템에서 메모리 계층은 아래 그림과 같이 세 가지 수준으로 나뉩니다. 높은 수준의 메모리는 빠르지만 부족하고, 낮은 수준의 메모리는 느리지만 풍부합니다.
FlexGen에서 저자는 낮은 대기 시간을 추구하는 것이 아니라 벤치마킹, 정보 추출, 데이터 정렬 등의 응용 분야에서 널리 사용되는 처리량 지향 시나리오를 목표로 합니다. 낮은 대기 시간을 달성하는 것은 본질적으로 오프로드의 과제이지만 처리량 중심 시나리오의 경우 오프로드 효율성을 크게 향상시킬 수 있습니다. 그림 1은 오프로딩을 사용하는 세 가지 추론 시스템의 지연 시간-처리량 균형을 보여줍니다. 신중한 스케줄링을 통해 I/O 비용은 많은 수의 입력에 대해 상각되고 계산과 겹칠 수 있습니다. 이 연구에서 저자는 단일 소비자급 GPU 처리량 최적화 T4 GPU가 컴퓨팅 성능 단위당 비용 측면에서 클라우드의 지연 시간 최적화 A100 GPU 8개보다 4배 더 효율적이라는 것을 보여주었습니다.
그림 1. OPT-175B(왼쪽) 및 OPT-30B(오른쪽)의 세 가지 오프로딩 기반 시스템에 대한 지연 시간 및 처리량 절충. FlexGen은 새로운 Pareto 최적 경계를 달성하여 OPT-175B의 최대 처리량을 100배 늘립니다. 다른 시스템에서는 메모리 부족으로 인해 처리량을 더 이상 늘릴 수 없었습니다.
훈련의 맥락에서 오프로딩의 지연 시간-처리량 균형을 논의하는 연구가 있었지만, 아직까지 이를 사용하여 별개의 프로세스인 LLM 추론을 생성한 적이 없습니다. 생성 추론은 LLM의 자동 회귀 특성으로 인해 고유한 문제를 제시합니다. 모든 매개변수를 저장하는 것 외에도 순차적 디코딩과 대규모 주의 키/값 캐시(KV 캐시) 유지가 필요합니다. 기존 오프로드 시스템은 이러한 과제에 대처할 수 없기 때문에 너무 많은 I/O를 수행하고 하드웨어 성능보다 훨씬 낮은 처리량을 달성합니다.
생성 추론을 위한 좋은 오프로드 전략을 설계하는 것은 어렵습니다. 첫째, 이 프로세스에는 가중치, 활성화 및 KV 캐시라는 세 가지 텐서가 있습니다. 정책은 3단계 계층 구조에서 무엇을, 어디서, 언제 제거할지 지정해야 합니다. 둘째, 배치별, 토큰별, 레이어별 계산 구조는 다양한 방식으로 계산할 수 있는 복잡한 종속성 그래프를 형성합니다. 전략은 실행 시간을 최소화하는 일정을 선택해야 합니다. 이러한 선택이 합쳐져 복잡한 디자인 공간이 만들어집니다.
이를 위해 새로운 방식인 FlexGen에서 LLM 추론을 위한 오프로딩 프레임워크가 제안되었습니다. FlexGen은 GPU, CPU 및 디스크에서 메모리를 집계하고 I/O 작업을 효율적으로 예약합니다. 또한 저자는 가능한 압축 방법과 분산 파이프라인 병렬 처리에 대해서도 논의합니다.
이 연구의 주요 기여는 다음과 같습니다.
1. 저자는 가능한 오프로딩 전략의 검색 공간을 공식적으로 정의하고 비용 모델과 선형 프로그래밍 솔버를 사용하여 최적의 전략을 검색합니다. 특히 연구원들은 검색 공간이 최적 계산 순서의 2배 이내 I/O 복잡도로 거의 I/O 최적 계산 순서를 포착한다는 것을 입증했습니다. 검색 알고리즘은 다양한 하드웨어 사양과 대기 시간/처리량 제약 조건에 맞게 구성할 수 있어 절충 공간을 원활하게 탐색할 수 있는 방법을 제공합니다. 기존 전략과 비교하여 FlexGen 솔루션은 가중치, 활성화 및 KV 캐시 배치를 통합하여 더 큰 배치 크기를 가능하게 합니다.
2. 연구에 따르면 OPT-175B와 같은 LLM의 가중치 및 KV 캐시는 재교육/보정 없이 무시할 수 있는 정확도 손실로 4비트로 압축될 수 있습니다. 이는 세분화된 그룹화 양자화를 통해 달성되며, 이는 I/O 비용을 크게 줄일 수 있습니다.
3. NVIDIA T4 GPU(16GB)에서 OPT-175B를 실행하여 FlexGen의 효율성을 입증하세요. 단일 GPU에서 동일한 대기 시간 요구 사항을 고려할 때 압축되지 않은 FlexGen은 DeepSpeed Zero-Inference(Aminabadi et al., 2022) 및 Hugging Face Accelerate(HuggingFace, 2022)에 비해 65배 더 높은 처리량을 달성할 수 있습니다. 후자는 현재 가장 발전된 것입니다. 업계 오프로딩 기반 추론 시스템. 더 높은 대기 시간과 압축이 허용되면 FlexGen은 처리량을 더욱 높이고 100배의 개선을 달성할 수 있습니다. FlexGen은 단일 T4 GPU를 사용하여 OPT-175B에 대해 1 토큰/초 속도 처리량을 달성한 최초의 시스템입니다. 파이프라인 병렬 처리 기능을 갖춘 FlexGen은 여러 분산 GPU를 사용하여 디코딩 시 초선형 확장을 달성합니다.
연구에서 저자는 또한 오프로딩 및 분산 집합 추론 방법의 대표자로 FlexGen과 Petals를 비교했습니다. 결과에 따르면 단일 T4 GPU를 사용하는 FlexGen은 처리량 측면에서 12개의 T4 GPU를 사용하는 분산형 Petal 클러스터보다 성능이 뛰어나며 경우에 따라 지연 시간도 단축되는 것으로 나타났습니다.
FlexGen은 GPU, CPU 및 디스크의 메모리와 계산을 집계하여 다양한 하드웨어 리소스 제약 조건 하에서 유연하게 구성할 수 있습니다. 선형 프로그래밍 최적화 프로그램을 통해 가중치, 활성화 및 어텐션 키/값(KV) 캐시를 포함하여 텐서를 저장하고 액세스하기 위한 최상의 패턴을 검색합니다. FlexGen은 정확도 손실을 무시할 수 있는 수준으로 가중치와 KV 캐시를 4비트로 더욱 압축합니다.
FlexGen의 핵심 아이디어는 대기 시간과 처리량을 절충하는 것입니다. 오프로드 방법에서는 낮은 대기 시간을 달성하는 것이 본질적으로 어려운 일이지만 처리량 중심 시나리오의 경우 오프로드 효율성을 크게 향상시킬 수 있습니다(아래 그림 참조). FlexGen은 아래 그림 (b)에 표시된 것처럼 블록 스케줄링을 활용하여 가중치를 재사용하고 계산과 I/O를 겹치는 반면, 다른 기본 시스템은 아래 그림 (a)에 표시된 것처럼 비효율적인 행별 스케줄링을 사용합니다.
현재 연구 작성자가 계획한 다음 단계에는 Apple M1, M2 칩 지원 및 Colab 배포 지원이 포함됩니다.
FlexGen은 출시 이후 GitHub에서 빠르게 수천 개의 별을 받았으며 소셜 네트워크에서도 매우 인기가 높습니다. 사람들은 이 프로젝트가 매우 유망하다고 표현했습니다. 고성능 대규모 언어 모델을 실행하는 데 장애가 되는 장애물이 점차 극복되어 올해 안에 ChatGPT를 단일 시스템에서 처리할 수 있기를 바랍니다.
누군가가 이 방법을 사용하여 언어 모델을 학습시켰는데 결과는 다음과 같습니다.
AI는 많은 양의 데이터를 공급받지 않았고 구체적인 내용을 알지 못하지만 지식, 질문에 대답하는 논리는 비교적 명확한 것 같습니다. 아마도 향후 게임에서 그러한 NPC를 볼 수 있을까요?
위 내용은 ChatGPT 볼륨 모델을 실행하려면 지금부터 GPU만 필요합니다. 여기에 이를 100배 가속하는 방법이 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!