FLINT: Efficiently Leveraging High Bandwidth Flash for Capacity-Scalable LLM Inference Acceleration
FLINT는 하드웨어 버스트 버퍼 컨트롤러, 팬텀 플레인 리프레시 메커니즘, 그리고 지연 시간, 크리티컬 패스 간섭, 관리 오버헤드 문제를 극복하기 위한 읽기 전용 FTL을 도입함으로써 고대역폭 플래시(HBF) 상에서 용량 확장이 가능한 LLM 추론을 가속화하는 워크로드 주도형 서브스트레이트이다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
현재 인공지능의 세계는 물리적 한계를 향해 질주하고 있습니다. 코드를 작성하고, 이야기를 구상하며, 복잡한 문제를 해결하는 가장 진보된 언어 모델들은 너무 거대해진 나머지, 이들을 실행하는 컴퓨터 프로세서에 부착된 표준 메모리 칩 안에 더 이상 들어가지 못하게 되었습니다. 수십 권의 책만 담을 수 있는 배낭에 10억 권의 책이 담긴 도서관을 통째로 넣으려고 노력하는 상황을 상상해 보십시오. 이것이 현재 이 모델들을 구동하는 하드웨어가 직면한 현실입니다. 이러한 시스템을 작동시키기 위해 엔지니어들은 모델을 여러 개의 별도 컴퓨터로 나누어야만 했으며, 이는 컴퓨터들이 부하를 분담하기 위해 끊임없이 서로 통신해야 하기 때문에 비용이 많이 들고 느리며 에너지를 많이 소비하는 해결책입니다. 고대역폭 플래시(high-bandwidth flash)라고 불리는 새로운 기술은 이 거대한 도서관을 프로세서 바로 옆에 저장할 수 있는 방법을 제시하며, 아주 작은 패키지 안에 테라바이트 단위의 공간을 제공합니다. 그러나 이 새로운 저장 장치는 프로세서 자체의 메모리보다 읽기 속도가 훨씬 느리기 때문에, 컴퓨터가 데이터가 도착하기를 기다리며 대부분의 시간을 허비하게 만드는 병목 현상을 만들어냅니다.
화웨이(Huawei)와 ETH 취리히(ETH Zurich)의 연구진은 이 기다림의 문제를 해결하기 위해 FLINT라고 불리는 시스템을 설계했습니다. 최근 발표된 연구에 상세히 기술된 이들의 작업은, 이전 설계들이 요구했던 복잡하고 미리 계획된 스케줄 없이도 이 고용량 플래시 저장 장치가 프로세서의 요구에 맞춰 충분히 빠르게 작동할 수 있는 방법을 제안합니다. 다음에 어떤 데이터를 필요로 할지 예측하는 대신, FLINT는 실시간으로 프로세서를 관찰하고 발생하는 대로 데이터 요청을 정리합니다. 이러한 요청들을 하나로 묶고 저장 칩의 내부 버퍼를 더 효율적으로 사용함으로써, 이 시스템은 데이터 스트림을 프로세서 자체 메모리의 속도에 가깝게 송출할 수 있습니다. 연구팀은 현재 존재하는 가장 크고 복잡한 모델 중 일부를 포함하여 6가지의 다양한 대규모 언어 모델을 사용하여 이 시스템을 시뮬레이션했습니다. 그 결과, 이 방식은 단 하나의 컴퓨터 패키지가 이전에 수십 대의 기계를 필요로 했던 작업을 처리할 수 있게 해주며, 훨씬 적은 에너지를 사용하면서도 훨씬 빠르게 결과를 전달한다는 것을 보여주었습니다.
문제의 핵심은 이러한 모델들이 어떻게 구축되는지에 있습니다. 추론(inference), 즉 모델이 응답을 생성하는 행위를 수행하기 위해 컴퓨터는 모델의 가중치(weights), 즉 모델의 지식을 정의하는 수십억 개의 숫자에 끊임없이 접근해야 합니다. 과거에는 이 가중치들이 프로세서에 직접 연결된 고속 메모리에 완전히 들어갈 만큼 작았습니다. 이제 수천억 개 또는 심지어 수조 개의 파라미터를 가진 모델들과 함께, 가중치는 그 빠른 메모리에 담기에는 너무 큽니다. 대안은 솔리드 스테이트 드라이브(SSD)를 사용하는 것이었지만, 이는 크고 저렴하지만 너무 느립니다. 혹은 여러 개의 프로세서를 사용하는 방법이 있었으나, 이는 작업 동기화를 위한 지연을 초래합니다. 고대역폭 플래시는 중간 지점으로 제안되었습니다. 이는 프로세서와 같은 작은 패키지에 들어가면서도 방대한 용량을 제공하지만, 프로세서가 멈춤 없이 직접 사용하기에는 여전히 읽기 속도가 느린 저장 기술입니다.
플래시 저장 장치를 사용하려는 이전의 시도들은 독자가 다음에 어떤 책을 필요로 할지 사서가 추측하는 것과 유사한 방법에 의존했습니다. 시스템은 모델의 다음 레이어를 예측하고 프로세서가 요청하기 전에 해당 가중치를 가져오려고 시도했습니다. 연구진은 이 '추측 게임'이 처참하게 실패했다는 것을 발견했습니다. 모델이 매우 복잡하고 질문에 따라 행동이 변하기 때문에, 예측은 자주 틀렸습니다. 시스템은 프로세서가 아직 필요로 하지 않는 데이터를 가져왔고, 이로 인해 제한된 버퍼 공간이 가득 차 실제로 필요한 데이터를 버려야 하는 상황을 만들었습니다. 이는 결과적으로 프로세서가 올바른 데이터가 다시 가져와지기를 기다리느라 대부분의 시간을 낭비하게 만들었고, 플래시 저장 장치의 높은 속도를 무용지물로 만들었습니다.
FLINT는 추측을 완전히 제거함으로써 이 접근 방식을 바꿉니다. 사서가 추측하는 대신, 이 시스템은 실시간으로 자동차의 흐름을 관찰하는 매우 효율적인 교통 통제관처럼 작동합니다. 프로세서가 특정 데이터 조각을 요청하면, FLINT는 단순히 그 조각 하나만을 가져오는 데 그치지 않습니다. FLINT는 프로세서로부터 들어오는 요청 스트림을 살펴보고 이를 그룹화합니다. 만약 프로세서가 플래시 칩의 동일한 물리적 영역에 저장된 여러 데이터 조각을 요청한다면, FLINT는 이를 하나의 커다란 요청으로 묶습니다. 이를 통해 플래시 칩은 한 번에 방대한 양의 데이터를 읽을 수 있어 그 성능을 최대한 활용할 수 있습니다. 그런 다음 시스템은 이 데이터를 칩의 내부 버퍼에 보유하고 있다가, 정확히 필요한 시점에 프로세서에게 전달합니다. 이러한 동적 그룹화 덕분에 시스템은 필요하지 않은 데이터를 가져오는 데 시간을 낭비하지 않으며, 데이터 파이프라인을 가득 채우고 원활하게 흐르게 유지합니다.
플래시 저장 장치의 또 다른 주요 장애물은 유지보수가 필요하다는 점입니다. 시간이 흐름에 따라 데이터를 읽는 행위는 칩 내부의 전기적 전하를 저하시켜 오류를 유발할 수 있습니다. 이를 해결하기 위해 칩은 주기적으로 멈추고 데이터를 새로운 위치에 다시 써야 합니다. 이전 설계에서는 프로세서가 데이터를 읽으려고 시도하는 동안 이 유지보수가 발생하여 시스템이 오랫동안 멈추는 문제가 있었습니다. 연구진은 '팬텀 플레인(phantom plane)' 시스템을 만들어 이 문제를 해결했습니다. 그들은 칩에 예비 차선 역할을 하는 약간의 추가 공간을 더했습니다. 칩의 특정 섹션에 유지보수가 필요할 때, 시스템은 메인 데이터 흐름을 중단하지 않고 백그라운드에서 조용히 데이터를 이 예비 차선으로 복사합니다. 이를 통해 유지보수 작업이 프로세서의 작업을 방해하지 않도록 하여, 칩이 노후화되더라도 시스템이 매끄럽게 작동하도록 보장합니다.
연구진은 또한 프로세서의 요청을 칩의 물리적 위치로 변환하는 방식을 단순화했습니다. 표준 저장 시스템은 지속적인 쓰기와 재작성을 처리하도록 설계되어 있어, 이를 관리하기 위한 복잡한 지도와 무거운 장치가 필요합니다. 언어 모델의 가중치는 한 번 쓰여지면 변경되지 않기 때문에, FLINT는 읽기에만 최적화된 훨씬 단순하고 가벼운 지도를 사용합니다. 이러한 복잡성의 감소는 시스템이 요청을 거의 즉각적으로 변환할 수 있게 하여 또 다른 지연 계층을 제거합니다.
연구진이 상세한 시뮬레이션을 통해 이러한 아이디어들을 테스트했을 때, 결과는 놀라웠습니다. 그들은 자신들의 시스템을 느린 SSD를 사용하는 표준 시스템, 여러 프로세서가 협력하는 시스템, 그리고 플래시 저장 장치를 사용하는 이전의 시도 등 세 가지 설정과 비교했습니다. FLINT 시스템은 텍스트를 디코딩하는 과정(모델의 출력을 생성하는 과정)에서 SSD를 사용하는 시스템보다 최대 1,205배 더 빠르게 작동했습니다. 여러 프로세서가 함께 작동하는 시스템과 비교했을 때, FLINT는 평균적으로 두 배 이상 빨랐습니다. 아마도 가장 중요한 점은, FLINT가 훨씬 적은 수의 컴퓨터를 사용하여 이 성능을 달성했다는 것입니다. 적은 양의 요청(batch)에 대해, FLINT를 갖춘 단 한 대의 컴퓨터가 이전에 네 대에서 여덟 대의 컴퓨터가 필요했던 작업을 수행할 수 있었으며, 훨씬 적은 에너지를 소비하며 이를 해냈습니다.
연구는 또한 시스템이 얼마나 오래 지속될지도 살펴보았습니다. 플래시 저장 장치가 끊임없이 읽히기 때문에, 연구진은 칩이 얼마나 빨리 마모될지 우려했습니다. 그들은 오류가 발생하기 전에 데이터를 다시 쓰는 이들의 유지보수 시스템이, 집중적인 사용 환경에서도 저장 장치의 수명을 수년 동안 연장한다는 것을 발견했습니다. 시스템은 밀집형 모델부터 문제를 해결하기 위해 서로 다른 전문가(expert) 사이를 전환하는 복잡한 모델에 이르기까지 6가지의 다양한 모델을 대상으로 테스트되었으며, 모든 분야에서 우수한 성능을 보였습니다. 연구진은 시스템이 칩에 약간의 물리적 공간을 추가하지만, 그 비용은 얻게 되는 엄청난 속도와 용량의 이득에 비하면 미미하다고 언급했습니다.
이 작업은 인공지능의 한계가 단순히 모델이 얼마나 똑똑한가에 달려 있는 것이 아니라, 우리가 데이터를 어떻게 이동시키느냐에 달려 있음을 보여줍니다. 프로세서와 저장 장치가 상호작용하는 방식을 재설계함으로써, 연구진은 방대한 용량과 빠른 속도를 모두 갖춘 시스템을 구축하는 것이 가능하다는 것을 입증했습니다. FLINT 시스템은 한때 실시간 사용에는 너무 느리다고 간주되었던 기술을 차세대 인공지능을 위한 실질적인 해결책으로 탈바꿈시켜, 강력한 모델들이 전체 데이터 센터를 필요로 하는 대신 단일 기계에서도 실행될 수 있도록 만들었습니다. 이 연구 결과는 적절한 엔지니어링이 뒷받침된다면 메모리의 물리적 제약을 극적으로 극복할 수 있으며, 더 유능하고 효율적인 AI 시스템의 시대를 열 수 있음을 시사합니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.