Optimizing Transformer Neural Network for Real-Time Outlier Detection on FPGAs
본 논문은 금융 시계열 데이터의 효율적이고 저지연인 실시간 이상치 탐지를 가능하게 하기 위해 PYNQ-Z2 FPGA에 구현된 최적화된 트랜스포머 신경망 구조를 제안하고 입증한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 북적이는 도시에서 도둑을 찾아내려는 형사라고 상상해 보십시오. 도시는 숫자의 강물이며, 주식 가격, 서버의 온도, 혹은 택시 대기 줄의 인원수처럼 끊임없이 흐르고 있습니다. 대부분의 경우 이 강물은 매끄럽게 흐르지만, 가끔은 거대한 바위—즉 "글리치(glitch)"나 "이상치(outlier)"—가 흐름에 뛰어들어 하류의 모든 것을 망쳐놓을 수 있는 물보라를 일으키기도 합니다. 금융과 데이터 과학의 세계에서 이러한 물보라는 매우 위험합니다. 컴퓨터가 잘못된 결정을 내리도록 속일 수 있기 때문입니다. 오랫동안 이러한 물보라를 잡아내는 것은 건초더미에서 바늘을 손으로 찾는 것처럼 느린 작업이었습니다. 하지만 최근 과학자들은 "트랜스포머(Transformer)"라고 불리는 초지능형 형사를 만들어냈습니다. 트랜스포머를 백만 권의 책을 동시에 읽고, 첫 페이지의 이야기가 천 번째 페이지의 이야기와 어떻게 연결되는지 즉각적으로 기억할 수 있는 천재 사서라고 생각하십시오. 이 사서는 기이한 패턴을 포착하는 데 탁월하지만, 한 가지 문제가 있습니다. 사서가 너무 무겁고 느려서 실시간으로 도둑을 잡을 만큼 빨리 달릴 수 없다는 점입니다.
여기 FPGA가 등장합니다. 이는 마치 즉석에서 재구성 가능한 맞춤형 초고속 레이스카 엔진과 같습니다. 이 논문이 다루는 핵심 질문은 이것입니다: 우리의 천재적이고 무거운 사서(트랜스포머)를 이 레이스카(FPGA)에 태워 학습시켜서, 나쁜 데이터를 즉각적으로 포착하게 할 수 있을까? 저자인 일리아 소바킨스키(Ilia Sobakinskikh)와 폴 알렉산더 빌로콘(Paul Alexander Bilokon)은 이 거대한 두뇌를 지능을 잃지 않으면서도 작은 재구성 가능 칩 안에 집어넣을 수 있는지 확인하고자 했습니다. 그들은 금융 글리치를 찾아내기 위해 거대한 슈퍼컴퓨터가 필요한 것이 아니라, 아주 작은 보드에서도 재앙이 발생하기 전 충분히 빠르게 해낼 수 있다는 것을 증명하고 싶었습니다.
글리치를 잡기 위한 경주
저자들은 먼저 "이상 탐지(anomaly detection)" 문제부터 살펴봤습니다. 간단히 말해, 이것은 목록에서 이상한 숫자를 찾는 것입니다. 그들은 "점 이상치(point anomalies)"에 집중했는데, 이는 주식 가격이 갑자기 튀는 것과 같습니다. 예를 들어, 주가가 움직여서는 안 될 순간에 순식간에 100달러에서 101달러로 뛰는 상황을 생각해보십시오. 이를 잡기 위해 그들은 트랜스포머라는 특정 유형의 AI를 사용했습니다. 기존의 AI 모델들이 데이터를 한 단계씩 읽는 방식(책을 단어 하나하나 읽는 것과 같은)인 것과 달리, 트랜스포머는 전체 그림을 한꺼번에 보며 오늘의 가격이 몇 주 전의 가격과 어떻게 연관되는지를 이해합니다.
하지만 이러한 트랜스포머를 실행하는 것은 보통 느리고 비용이 많이 듭니다. 저자들은 이들을 FPGA, 구체적으로는 PYNQ-Z2라는 보드에서 실행해 보기로 했습니다. 이를 성공시키기 위해 그들은 칩을 프로그래밍하는 방식에 매우 영리한 전략을 세워야 했습니다. 그들은 트랜스포머 내부의 수학적 계산을 공장의 조립 라인처럼 취급했습니다. 하나의 계산이 끝날 때까지 기다렸다가 다음 계산을 시작하는 대신, "파이프라이닝(pipelining)"이라는 기술을 사용했습니다. 첫 번째 차가 여전히 비눗물을 맞고 있는 동안 두 번째 차가 이미 헹굼 단계에 들어가는 세차장을 상상해 보십시오. 이 방식은 라인이 빠르게 계속 돌아가게 유지해 줍니다. 또한 그들은 "언롤링(unrolling)" 기법을 사용했는데, 이는 한 명의 작업자가 열 번 연속으로 일을 하는 대신 열 명의 작업자가 동일한 작업을 정확히 동시에 수행하는 것과 같습니다.
결과: 속도 대 지능
팀은 두 가지 버전의 AI 형사를 테스트했습니다. 첫 번째는 표준적이고 무거운 버전인 "바닐라 트랜스포머(Vanilla Transformer)"였습니다. 두 번째는 복잡한 수학 계산을 생략한 더 가볍고 빠른 버전인 "리니어 트랜스포머(Linear Transformer)"였습니다. 그들은 이 모델들을 FPGA에서 실행하고 표준 컴퓨터 프로세서(CPU)와 비교했습니다.
결과는 두 가지 서로 다른 트레이드오프(trade-off)의 이야기였습니다. 최적화된 표준 트랜스포머는 믿기 힘들 정도로 빨라졌습니다. 이 모델은 데이터를 단 37.14 마이크로초(0.000037초!) 만에 처리할 수 있었습니다. 이러한 특별한 최적화가 없었다면 동일한 작업에 347.45 마이크로초가 걸렸을 것이며, 이는 10배나 더 느린 속도입니다. 리니어 트랜스포머는 훨씬 더 빨랐으며, 29.86 마이크로초를 기록했습니다.
하지만 속도에는 대가가 따랐습니다. 그 속도를 얻기 위해 칩은 훨씬 더 열심히 일해야 했습니다. 최적화된 트랜스포머는 사용 가능한 "LUT"(칩 내부의 미세한 로직 스위치)의 **90%**와 "FF"(메모리 비트)의 **30%**를 사용한 반면, 최적화되지 않은 느린 버전은 각각 **10%**와 **2%**만을 사용했습니다. 이는 자전거를 오토바이로 업그레이드하는 것과 같습니다. 훨씬 더 빠르게 갈 수는 있지만, 훨씬 더 큰 엔진과 더 많은 연료가 필요합니다.
형사가 임무를 완수했는가?
속도도 중요하지만, 형사가 여전히 똑똑한가요? 저자들은 뉴욕시 택시 수요, 서버 성능 로그, 고빈도 주식 가격를 포함한 실제 데이터를 사용하여 모델을 테스트했습니다. 그들은 자신들의 AI를 가장 최근의 숫자만을 보고 예측하는 단순한 "선형 회귀(Linear Regression)" 모델과 비교했습니다.
결과는 트랜스포머가 단순한 모델보다 일반적으로 이상치를 훨씬 더 잘 포착한다는 것을 보여주었습니다. KPI 데이터셋(서버 로그)에서 표준 트랜스포머는 훈련 데이터에서 0.98, 검증 데이터에서 0.97의 정확도를 달了 달성했으며, F1 스코어(잘못된 것을 잡아내는 능력과 헛것을 보고 경보를 울리지 않는 능력 사이의 균형)는 각각 0.71과 0.76이었습니다. 리니어 트랜스포머는 정확도가 약간 낮았지만 여전히 강력했습니다. 그러나 주식 시장 데이터(FI2010)에서는 모델들이 다소 고전하며 F1 스코어가 0.06과 0.09로 떨어졌는데, 이는 이 모델들이 빠르기는 하지만 모든 종류의 데이터에서 모든 글리치를 완벽하게 잡아내지는 못한다는 점을 시사합니다.
흥글랍게도, 저자들은 "포지셔널 인코딩(positional encoding, AI에게 숫자의 순서를 알려주는 방법)"과 같이 트랜스포머에 필수적이라고 여겨지는 일부 기능들이 오히려 특정 설정에서 훈련을 불안정하게 만들고 성능을 저하시킨다는 것을 발견했습니다. 그들은 칩에서 모델이 제대로 작동하도록 하기 위해 이러한 기능들을 꺼야만 했습니다.
결론
이 논문은 이상 탐지의 미스터리를 영원히 해결했다고 주장하는 것이 아닙니다. 대신, 우리는 강력한 AI 모델을 작고 빠른 칩에 맞게 축소할 수 있다는 것을 보여줍니다. 저자들은 파이프라이닝과 언롤링 같은 영리한 프로그래밍 기법을 사용하면 트랜스포머를 FPGA에서 10배 더 빠르게 실행할 수 있음을 입증했습니다. 이러한 속도는 칩 자원 측면에서 큰 비용을 수반하지만, 이는 거대한 데이터 센터 없이도 실시간 고속 이상 탐지가 가능하다는 것을 증명합니다. 이는 금융 글리치를 잡아내는 미래가 거대한 서버실이 아니라, 데이터를 향해 번개처럼 질주하는 작고 재구성 가능한 칩 속에 있을 수 있다는 개념 증명입니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.