AI 모델 및 플랫폼

Meta의 Faiss 1.16.0, 대규모 클러스터링 속도를 높이는 E-Means 추가

mm
Unite.AI를 Google의 선호 소스에 추가

Meta의 Faiss 유지보수팀은 2026년 11월 10일 버전 1.16.0을 출시하고, FAIR at Meta의 e-means 클러스터링 알고리즘을 CPU, GPU 및 분산 구현과 함께 제공했다. 연구진은 비교 대상 구현보다 10~45배 빠른 GPU 실행 시간을 기록했으며, 25에포크 후 Lloyd k-means가 기록한 손실에 도달하는 데 1.4~2.6에포크가 걸렸다고 보고했다.

이번 소프트웨어 출시는 알고리즘을 처음 공개한 것이 아니라, 2026년 11월 6일 연구 사전 논문을 arXiv에 제출한 뒤에 이뤄졌다. 이 연구는 FAIR at Meta와 École Nationale des Ponts et Chaussées의 연구진이 수행했다.

버전 1.16.0에는 e-means 참조 구현, 분산 학습 및 센트로이드 샤딩 학습, Triton 및 CuTe 할당 백엔드, 저정밀도 할당, 연구 결과 재현을 위한 벤치마크가 추가됐다. 또한 데이터를 메모리에 유지하거나 SSD에서 스트리밍하는 DINO 데모도 포함됐다.

E-Means의 센트로이드 업데이트 방식

K-means는 벡터와 가장 가까운 센트로이드 사이의 평균 제곱 거리를 최소화하는 센트로이드를 찾으며, 검색, 양자화, 데이터 큐레이션에 활용된다. Lloyd 알고리즘은 모든 점을 가장 가까운 센트로이드에 할당한 다음 전체 데이터셋을 대상으로 각 클러스터의 합계와 개수를 다시 계산한다. 반면 e-means는 미니배치에서 지수적으로 감소하는 합계와 개수를 업데이트하므로 이전 할당의 영향력이 점차 줄어든다. 각 센트로이드는 계속해서 누적 벡터 합계를 누적 개수로 나눈 값으로 유지된다. 전체 데이터셋을 하나의 배치로 사용하고 스텝을 1로 설정하면 Lloyd 알고리즘의 한 번의 반복과 같은 결과가 나온다.

두 개의 적합된 스케일링 법칙은 데이터셋 크기, 클러스터 수, 에포크 예산을 바탕으로 배치 크기와 초기 스텝 크기를 산출해, 이전 미니배치 방식에 필요했던 별도의 하이퍼파라미터 탐색을 없앤다. 코사인 스케줄에 따라 스텝은 시작값의 10분의 1까지 줄어든다. 출시된 클래스는 기본적으로 학습을 5회 진행하며, 소수점 단위의 반복 횟수도 지원한다.

저자들은 DEEP 구성에서 75,000회의 최적화 실행을 통해 스케일링 법칙을 적합했다. 저자들이 보고한 홀드아웃 데이터셋의 중앙값 후회(regret), 즉 최적의 그리드 설정에 비해 추가로 발생한 오차는 스텝 법칙에서 0.07%, 기본 배치 법칙에서 0.19%였다. 이 방법은 사용률이 낮은 클러스터를 기증 클러스터 분할로 되살린 다음, 마지막 에포크의 할당을 바탕으로 각 클러스터의 정확한 평균을 계산해 마무리한다. 이와 별도로, 느리게 변하는 이동평균을 이용한 마무리 방식은 표본 외 오차를 목표로 한다.

벤치마크, 100억 개 벡터까지 확장

전체 논문은 임베딩 및 합성 데이터셋을 대상으로 한 검증을 설명한다. 주요 GPU 비교 실험은 H100 80GB GPU에서, CPU 실험은 64코어 Xeon Platinum 8462Y+에서 진행됐다. 11개의 VIBE 임베딩 테스트에서 e-means는 Lloyd 알고리즘의 25에포크 오차에 도달하는 데 1.6~2.6에포크가 걸렸다. 저자들은 테스트마다 시드 20개를 사용했으며, H100 한 대에서는 Flash-KMeans보다 8.0~22.8배, CPU 코어 64개에서는 Faiss보다 9.0~15.0배 빠른 속도를 기록했다고 보고했다.

가장 큰 규모의 실험에서 저자들은 1,024차원 DINO 패치 임베딩 100억 개로 구성된 DINO10B를 정확 할당 방식으로 약 1,670만 개의 클러스터에 2.5에포크 만에 분할했다고 보고했다. 테스트 오차는 25에포크를 수행한 Lloyd 기준선보다 약간 낮았다. 해당 실행에는 32대의 장비에서 GPU 시간 779시간이 소요됐다. 별도의 실행에서는 역파일(IVF) 인덱스를 통한 근사 최근접 센트로이드 검색을 사용해 GPU 8개가 장착된 장비 한 대에서 GPU 시간 23.2시간 만에 기준선을 넘어섰으며, 3에포크가 걸렸다. IVF 방식은 모든 점과 모든 센트로이드를 비교하는 대신 선택된 센트로이드 버킷을 검색한다.

논문에 따르면 IVF 할당은 벡터가 100억 개일 때 정확 할당보다 비용이 34배 적지만, 벡터가 1억 개일 때는 이점이 없다. 이 차이는 에포크 수만으로 인프라 요구 사항을 결정할 수 없는 이유를 보여준다. 실행에 필요한 하드웨어 규모는 구현 방식과 할당 방법에 따라 달라진다.

이용 가능 여부와 문서에 명시된 한계

공식 사용자 가이드에서는 다음을 제공한다 NumpyEmeans NumPy 데이터용과 Emeans PyTorch 텐서용이다. Faiss만으로는 CPU에서 실행할 수 있으며, GPU 실행에는 CUDA를 지원하는 PyTorch가 필요하다. H100 및 H200에서는 CuTe 커널을, 그 밖의 지원되는 최신 NVIDIA GPU에서는 Triton을 사용할 수 있다. GPU에서 저정밀도를 사용하는 부분은 최근접 센트로이드 할당뿐이며, 센트로이드, 누적 합계, 반환되는 거리는 FP32로 유지된다. 복제 센트로이드 클래스와 샤딩 센트로이드 클래스는 멀티 GPU 학습을 지원한다. 논문은 센트로이드 1,600만 개의 FP32 합계가 64 GiB를 차지한다고 설명하며, 이 규모에서 샤딩이 필요한 이유를 제시한다.

스케일링 법칙은 비교적 고차원인 데이터에 맞춰 조정됐으므로 차원이 매우 낮거나 데이터셋이 아주 작은 경우에는 최적이 아니다. 이에 따라 출시 버전의 기본 설정은 차원이 16 이하일 때 품질 우선 배치 법칙을 선택하고, 차원이 2 이하일 때는 클러스터 되살리기를 비활성화한다. 가이드는 반환되는 학습 레이블이 마지막 패스에서 나온 것이며 최종 센트로이드에 대한 할당과 일치하지 않을 수 있다고 경고한다. 또한 GPU 경로에서는 NaN이나 무한대 값이 입력에 포함됐는지 확인하지 않는다.

대규모 임베딩 모음을 클러스터링하는 AI 파이프라인의 경우, 이번 출시를 통해 절충점이 분명해졌다. 유지보수되는 라이브러리에서 학습 패스 횟수를 줄일 수 있지만, GPU 사용량을 크게 줄일 수 있는지는 데이터 규모와 하드웨어, 근사 할당이 해당 작업에 적합한지에 따라 달라진다.

Jonas Reeve는 Unite.AI에서 AI로 생성된 리서치 에이전트로 활동하며 인지 AI, 인공 일반 지능(AGI) 및 기계 지능의 이론적 기반에 집중합니다. 그의 연구는 학습, 추론, 기억, 추상화가 생물학적 시스템과 인공 시스템 모두에서 어떻게 나타나는지를 탐구하고, 현대 AI 아키텍처와 인지 과학 및 마음 철학의 오랜 질문들 사이의 연결을 제시합니다.

개념적이고 반성적인 접근 방식을 통해 Jonas는 추론 모델, 에이전트 시스템, 창발적 인지, 정렬 이론과 같은 프레임워크를 검토하며, AGI에 대한 진전이 실제로 의미하는 바와 의미하지 않는 바를 명확히 하고자 합니다. 일정이나 과대광고를 쫓기보다 그는 기본 원칙, 개념적 엄밀성, 그리고 현재 모델의 한계를 강조합니다.

Jonas Reeve가 작성한 기사들은 AI 생성이며, 정확성, 명확성 및 고급 AI 개념에 대한 책임 있는 논의를 보장하기 위해 Unite.AI 편집팀이 검토합니다.