meta-recsys/generative-recommenders
Repository hosting code for "Actions Speak Louder than Words: Trillion-Parameter Sequential Transducers for Generative Recommendations" (https://arxiv.org/abs/2402.17152).
프로젝트 내용
Generative Recommenders는 ICML 2024 논문 Actions Speak Louder than Words: Trillion‑Parameter Sequential Transducers for Generative Recommendations의 아이디어를 구현한 연구급 코드베이스입니다. 저자들은 고전적인 딥러닝 추천 모델(DLRM)을 생성 모델링 문제로 재정의할 수 있음을 보여줍니다. 이를 통해 특히 HSTU(고속 시퀀셜 트랜스듀서)와 M‑FALCON이라는 새로운 훈련 및 추론 알고리즘을 도입하여 대규모 시퀀셜 추천을 극적으로 가속화(10×‑1000× 더 빠름)하면서 정확도를 향상시킵니다.
이 저장소에는 다음이 포함됩니다:
- HSTU 계열 및 그 위에 구축된 DLRM‑v3의 모델 정의와 훈련 스크립트.
- 공개 데이터셋(MovieLens‑1M, MovieLens‑20M, Amazon Books)에서 실험을 재현하기 위한 구성 파일(Gin).
- 프랙탈 확장을 통해 합성 30억 평점 데이터셋을 생성하는 유틸리티.
- 초고속 어텐션 및 FP8 행렬 곱셈을 위한 고도로 최적화된 CUDA/Triton 커널(FlashAttention‑V3 기반) 및 NVIDIA H100 GPU에서 속도 향상을 보고하는 벤치마크.
- 멀티 GPU 설정에서 훈련 및 추론을 위한 엔드투엔드 스크립트.
요약하자면, 최첨단 생성 추천 모델을 대규모로 훈련, 평가, 벤치마킹할 수 있는 완전한 연구 구현입니다.
시작하기
- 의존성 설치 – 가장 쉬운 방법은
pip3 install -r requirements.txt입니다. README에는 Ubuntu 22.04, CUDA 12.4, Python 3.10에서 테스트되었다고 명시되어 있습니다. 수동 설치를 선호하는 경우 PyTorch 외에gin-config,pandas,fbgemm_gpu,torchrec,tensorboard가 필요합니다. - 데이터 준비 –
python3 preprocess_public_data.py를 실행하면tmp/폴더가 생성되고 MovieLens / Amazon 데이터가 다운로드됩니다. - 실험 실행 – Gin 구성 파일(예:
configs/ml-1m/hstu-sampled-softmax-n128-large-final.gin)을 선택하고 실행합니다:
로그는CUDA_VISIBLE_DEVICES=0 python3 main.py \ --gin_config_file=configs/ml-1m/hstu-sampled-softmax-n128-large-final.gin \ --master_port=12345exps/에 기록됩니다. TensorBoard로 시각화할 수 있습니다. - 커널 벤치마크 – 저수준 성능 테스트를 위해 제공된 벤치마크 모듈을 실행합니다. 예:
python3 -m generative_recommenders.ops.benchmarks.hstu_ultra_stack_bench \ --config-name hstu_ultra_semi_local --provider all --sequence-lengths 512 - 확장 – 저장소에는 합성 30억 평점 데이터셋 생성 스크립트(
run_fractal_expansion.py)와 DLRM‑v3 모델을 4 GPU로 훈련/추론하는 스크립트가 포함되어 있습니다.
누구에게 유용한가
| 대상 | 중요성 |
|---|---|
| 추천 시스템 또는 대규모 생성 모델의 학술 연구자 | 완전한 재현 가능한 파이프라인, 최첨단 결과, 새로운 알고리즘 기여(HSTU, M‑FALCON). |
| 프로덕션 추천 서비스를 구축하는 엔지니어 | 최적화된 CUDA/Triton 커널, FP8 지원, 실제 워크로드에 적용 가능한 멀티 GPU 훈련 스크립트. |
| 성능 엔지니어 / 하드웨어 아키텍트 | H100 GPU에서의 상세 벤치마크, FlashAttention‑V3 기반 커널, 속도 향상 가능성을 측정하기 위한 FP8 양자화 경로. |
| 시퀀셜 추천을 배우는 학생 | 이론(논문)과 실무를 연결하는 엔드투엔드 예제 코드(데이터 전처리, 모델 구성, 훈련 루프). |
제한 사항 / 미해결 과제
- 하드웨어 부담 – 가장 빠른 커널은 고급 GPU(예: H100, 24 GB HBM 이상)가 필요합니다. 일반 하드웨어에서 전체 규모 실험을 실행하는 것은 느리거나 불가능할 수 있습니다.
- 합성 데이터 의존 – 30억 평점 데이터셋은 프랙탈 확장으로 생성되며 실제 세계의 분포적 미묘함을 반영하지 못할 수 있습니다.
- 연구급 코드 – 저장소는 기능하지만 프로덕션 라이브러리와 같은 완성도(광범위한 테스트, CI, 쉬운 pip 설치 패키지 등)가 부족합니다.
- 시퀀셜 추천으로 제한 – 생성 공식은 다음 항목 예측에 대해서만 입증되었습니다. 다른 추천 작업(예: 멀티모달, 그래프 기반)으로 확장하려면 추가 작업이 필요합니다.
더 넓은 AI 생태계에서의 위치
Generative Recommenders는 대규모 언어 스타일 생성 모델링과 산업용 추천 시스템의 교차점에 있습니다. 추천을 시퀀스 간 생성 문제로 취급함으로써, 이 프로젝트는 transformer/LLM 세계의 발전(예: 샘플링 소프트맥스, FP8 양자화, FlashAttention)을 활용하여 추천 처리량과 모델 크기의 한계를 넓힙니다. 이는 원래 NLP를 위해 개발된 기술(대규모 파라미터 생성 모델, 효율적인 어텐션 커널)이 추천, 검색, 심지어 로보틱스와 같은 다른 영역에 재사용되는 더 넓은 추세를 반영합니다. 이 작업은 또한 추천 시스템의 컴퓨팅 스케일링 법칙에 대한 지속적인 논의에 기여하며, 올바른 알고리즘과 시스템 트릭이 있다면 조 단위 파라미터 모델을 효율적으로 훈련하고 서비스할 수 있음을 보여줍니다.
빠른 참조(가장 자주 사용하는 명령)
# 설치
pip3 install -r requirements.txt
# 공개 데이터 전처리
mkdir -p tmp/ && python3 preprocess_public_data.py
# MovieLens‑1M에서 HSTU 훈련(단일 GPU)
CUDA_VISIBLE_DEVICES=0 \
python3 main.py \
--gin_config_file=configs/ml-1m/hstu-sampled-softmax-n128-large-final.gin \
--master_port=12345
# 결과 시각화
tensorboard --logdir ~/generative-recommenders/exps/ml-1m-l200/ --port 24001
# 초고속 어텐션 벤치마크(H100)
python3 -m generative_recommenders.ops.benchmarks.hstu_ultra_stack_bench \
--config-name hstu_ultra_semi_local --provider all --sequence-lengths 512
라이선스
Apache 2.0 – 상업 및 학술 사용 무료.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트