lucidrains/vector-quantize-pytorch
Vector (and Scalar) Quantization, in Pytorch
해결하는 문제
이 라이브러리는 생성형 AI에서 연속 데이터(예: 이미지 또는 오디오)를 학습된 코드의 이산 집합으로 매핑하는 데 사용되는 벡터 양자화(VQ)를 위한 포괄적인 도구 세트를 제공합니다. 일반적인 VQ 문제인 "사라진" 코드북 항목(일부 코드가 전혀 사용되지 않는 경우)과 비미분 가능 양자화 레이어의 학습 어려움을 해결합니다.
작동 방식
이 라이브러리는 입력 벡터를 이산 인덱스로 변환하고 다시 양자화된 벡터로 복원하는 다양한 양자화 전략을 구현합니다:
- 표준 VQ: 코드북과 지수 이동 평균(EMA)을 사용하여 사전을 업데이트합니다.
- 잔차 VQ: 원본 벡터와 양자화된 벡터의 차이(잔차)를 여러 양자화기로 재귀적으로 양자화하여 더 높은 정밀도를 달성합니다.
- FSQ(유한 스칼라 양자화): 스칼라를 이산 레벨로 반올림하여 코드북이나 커밋먼트 손실이 필요 없도록 간소화합니다.
- LFQ(검색 없는 양자화): 코드북을 완전히 제거하고 독립적인 이진 잠재 변수를 사용합니다.
- FSP(유한 스칼라 편향): 이산화를 구조화된 노이즈로 간주하여 표현에 주입함으로써 학습을 안정화합니다.
- 고급 기울기 방법: 전통적인 스트레이트스루 추정기(STE)보다 더 나은 기울기 흐름을 제공하는 "회전 기법"과 DiVeQ를 구현합니다.
대상 사용자
VQ-VAE, VQ-GAN, Encodec 및 SoundStream과 같은 오디오 코덱과 같은 생성 모델을 개발하는 연구자 및 개발자들을 위한 것입니다. PyTorch에서 유연하고 고성능의 양자화 레이어가 필요하신 분들에게 적합합니다.
주요 특징
- 다양한 구현: 표준 VQ, 잔차 VQ, 그룹화된 잔차 VQ, FSQ, LFQ, SimVQ를 지원합니다.
- 코드북 건강 관리: 낮은 코드북 차원, 코사인 유사도, 오래된 코드 교체 등의 기법을 통해 코드북 붕괴를 방지합니다.
- 유연한 초기화: 첫 번째 배치 데이터를 기반으로 k-means 초기화를 지원합니다.
- 다중 프로세스 지원: 여러 프로세스 간에 코드북을 자동으로 동기화합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트