PyTorch
torch.optimは、ニューラルネットワークの構築時に使用されるさまざまな最適化アルゴリズムを実装したモジュールである。通常使用されるメソッドのほとんどはすでに対応しているため、スクラッチで構築する必要がない。
PyTorch のバックエンドは主に C++ で実装されている (ATen)。ATenは外部から直接使うことも可能となっている (C++ではATenライブラリ、Pythonではtorch.ops.aten)。
また PyTorch にはCPUだけでなくGPUバックエンドもあり、NVIDIA製GPU向けにはCUDAで、AMD製GPU向けにはROCm(英語版)のHIPで、macOS向けにはMetal Performance Shaders (MPS) で実装されている。CUDAにバージョン毎の互換性の問題があることもあって、PyTorch のバイナリはGPUプラットフォーム毎に別々で提供されている。Intel製GPU向けには外部プロジェクトのintel-extension-for-pytorchが必要となる。
2023年にリリースされたPyTorch 2.0以降にはOpenAIのTritonなどをバックエンドとして使用できるTorchDynamoが統合されている(#TorchDynamoを参照)。TorchDynamo ではバックエンドの実装を簡略化するために、複合的な Aten 命令を単純な Prims 命令 (torch._prims) へと低下させる機能も提供している。
また PyTorch では別パッケージとして Torch-TensorRT が用意されており、これを使うことにより PyTorch のバックエンドとして NVIDIA の TensorRT を使うことも可能となっている。
torchaudio は PyTorch 向けの音声処理向けのライブラリである。音声認識 (Emformer RNN-T / XLS-R / Conformer RNN-T)、視覚音声認識 (AV-ASR)、テキスト音声合成 (Tacotron2)、音声強調 (MVDR)、ビームフォーミング (DNNBeamformer)、音源分離(英語版) (Hybrid Demucs)、音声品質測定 (TorchAudio-Squim) などに対応している。
その他、音声のベクトル化では wav2vec 2.0、HuBERT、WavLM に対応している。GPUベースのCTCビームサーチ (CUCTCDecoder) にも対応している。