Repolode
lucidrains

lucidrains/vector-quantize-pytorch

VQ-VAEなどの離散潜在モデルの学習に使える、ベクトル・残差・スカラー・Lookup-Free量子化レイヤーを実装したPyTorchライブラリ。

スター
4,019
フォーク
342
未解決の Issue
74
最終コミット
29 日前

これは何?

vector-quantize-pytorchは、PyTorch用の量子化レイヤーをすぐに使える形で提供するPythonパッケージです。ベクトル量子化は、連続値のニューラルネットワーク特徴量を学習可能な離散コード集合に対応付ける手法で、画像・音声・動画生成モデルのVQ-VAEなどで使われます。このライブラリには、論文をもとに一から実装する代わりに、数行のコードでモデルに組み込める量子化レイヤーがまとめられています。

中核となるVectorQuantizeクラスは、指数移動平均でコードブックを更新し、量子化された出力、コードのインデックス、コミットメント損失を返します。さらに、複数の量子化器を積み重ねるResidualVQやGroupedResidualVQに加え、k-meansによるコードブックの初期化、コサイン類似度による距離計算、使用されないコードの失効、勾配の伝播に使うrotation trickやDiVeQなどのオプションを備えています。また、SimVQ、Finite Scalar Quantization(FSQ)、Lookup-Free Quantization(LFQ)、Latent Quantization、音声の自己教師あり学習向けのランダム射影量子化器といった別方式も利用できます。

各量子化器には、インデックスをコードに戻すメソッドがあり、生成したトークンのデコードに役立ちます。パッケージはpipでインストールでき、ライセンスはMITです。

主な機能

  • 01EMAによるコードブック更新とコミットメント損失に対応したベクトル量子化レイヤー。
  • 02複数のコードブックを積み重ねる残差量子化器およびグループ化残差量子化器。
  • 03k-meansによる初期化、コサイン類似度による距離計算、使用されないコードの失効に対応。
  • 04straight-through estimator、rotation trick、DiVeQなどの勾配伝播方式。
  • 05FSQ、LFQ、Latent Quantization、SimVQといったスカラー量子化系の方式。

ユースケース

  • PyTorchでVQ-VAEやVQ-GAN形式の画像・音声トークナイザーを学習する。
  • ニューラル音声コーデック向けの残差量子化を構築する。
  • 離散表現の研究で、コードブック崩壊への対処法を試す。
  • マスク音声の事前学習向けにランダム射影量子化器を作成する。

クイックスタート

  1. 1

    PyPIからパッケージをインストールする

    pip install vector-quantize-pytorch
  2. 2

    VectorQuantizeをインポートし、ランダムなテンソルに適用する

使う前に知っておきたいこと

  • 提供されるのはVQレイヤーのみです。周辺のモデルは自分で構築し、学習させる必要があります。
  • PyTorchが必要です。また、READMEの例ではPyTorchが正常にインストールされていることを前提としています。

トピック

よくある質問

vector-quantize-pytorch とは?
VQ-VAEなどの離散潜在モデルの学習に使える、ベクトル・残差・スカラー・Lookup-Free量子化レイヤーを実装したPyTorchライブラリ。 vector-quantize-pytorchは、PyTorch用の量子化レイヤーをすぐに使える形で提供するPythonパッケージです。ベクトル量子化は、連続値のニューラルネットワーク特徴量を学習可能な離散コード集合に対応付ける手法で、画像・音声・動画生成モデルのVQ-VAEなどで使われます。このライブラリには、論文をもとに一から実装する代わりに、数行のコードでモデルに組み込める量子化レイヤーがまとめられています。
vector-quantize-pytorch は無料で使えますか?ライセンスは?
vector-quantize-pytorch は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
vector-quantize-pytorch は今もメンテナンスされていますか?
活発にメンテナンス中。vector-quantize-pytorch の最終コミットは 2026年9月24日 です。
vector-quantize-pytorch は何に使えますか?
PyTorchでVQ-VAEやVQ-GAN形式の画像・音声トークナイザーを学習する。 ニューラル音声コーデック向けの残差量子化を構築する。 離散表現の研究で、コードブック崩壊への対処法を試す。 マスク音声の事前学習向けにランダム射影量子化器を作成する。
vector-quantize-pytorch のインストール方法は?
PyPIからパッケージをインストールする: pip install vector-quantize-pytorch VectorQuantizeをインポートし、ランダムなテンソルに適用する
vector-quantize-pytorch はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/lucidrains/vector-quantize-pytorch

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト