PyTorch Blog

PyTorch Blog

pytorch.org/blog/
51
Articles
11月14日 05:01
Last updated
No Image

Beyond Quantization: Bringing Sparse Inference to PyTorch

この記事では、PyTorchにおけるスパース推論の統一フレームワークの構築について述べています。大規模言語モデル(LLM)の運用コストが高いため、低精度の量子化だけでは不十分であり、スパース性の最適化が必要とされています。初期のモデルでは、95%から99%の重みが非活性化されていることが示されており、これを利用してメモリと計算を節約する方法が提案されています。特に、Deja Vuと呼ばれる手法を用いることで、推論速度が2-6倍向上し、精度の低下もほとんど見られないことが報告されています。さらに、最新のモデルではSiLUやGeLUといった滑らかな活性化関数が使用されており、これにより活性化のスパース性が低下していますが、Reluficationという手法を用いることで再びスパース性を高めることが可能であるとされています。 • 大規模言語モデルの運用コストが高く、低精度の量子化だけでは不十分である。 • スパース性の最適化が次のフロンティアであり、PyTorchでの統一フレームワークの構築が進められている。 • 初期モデルでは95%から99%の重みが非活性化されており、これを利用してメモリと計算を節約できる。 • Deja Vu手法により、推論速度が2-6倍向上し、精度の低下もほとんど見られない。 • 最新モデルではSiLUやGeLUが使用され、活性化のスパース性が低下しているが、Relufication手法で再びスパース性を高めることが可能。

PyTorch Blog
library tool
No Image

KernelFalcon: Autonomous GPU Kernel Generation via Deep Agents

KernelFalconは、GPUカーネルを生成するための深層エージェントアーキテクチャであり、階層的なタスク分解、決定論的な制御プレーン、早期勝利の並列探索、ツールの使用、持続的なメモリと可観測性を組み合わせています。このシステムは、250のL1/L2/L3 KernelBenchタスクにおいて100%の正確性を達成した初のオープンエージェントシステムです。KernelFalconは、PyTorchのセマンティクスを保持しつつ、最適化されたTritonカーネルを生成するコードからコードへのシステムです。従来の静的なグラフベースのコンパイラとは異なり、Pythonのセマンティクスを保持し、動的な形状やデータ依存のルーティングを有効にします。KernelAgentは候補カーネルをコンパイルし、テストし、最初に数値的に正しいカーネルを早期に見つけ出します。これにより、より広範なカバレッジと現実的なパフォーマンスが実現されます。 • KernelFalconはGPUカーネル生成のための深層エージェントアーキテクチャである。 • 100%の正確性を持つ初のオープンエージェントシステムである。 • PyTorchのセマンティクスを保持しつつ、最適化されたTritonカーネルを生成する。 • 従来のコンパイラの限界を克服するために、動的な形状やデータ依存のルーティングをサポート。 • KernelAgentは候補カーネルをコンパイルし、数値的に正しいカーネルを早期に見つける。 • 並列探索と実行ベースの検証を使用して、実際にGPU上で動作するカーネルを提供。 • タスクを明確に分解し、LLMの失敗モードを減少させる。

PyTorch Blog
library tool
No Image

Hybrid Models as First-Class Citizens in vLLM

この記事では、vLLMにおけるハイブリッドモデルの重要性とその進化について説明しています。大規模言語モデルは、注意メカニズムのスケーリング限界に直面しており、特に長いシーケンスに対する効率的な推論が求められています。ハイブリッドモデル(例:Qwen3-Next、Nemotron Nano 2など)は、注意と他のメカニズムを組み合わせることで、モデリングの質を保ちながら長シーケンスの推論を可能にします。vLLMコミュニティでは、これらのハイブリッドモデルが実験的な手法から正式にサポートされるようになり、性能向上が期待されています。特に、長いシーケンスが必要な実世界のワークロード(例:情報検索を用いた生成)において、ハイブリッドモデルは重要な役割を果たします。 • 大規模言語モデルは注意メカニズムのスケーリング限界に直面している。 • ハイブリッドモデルは注意と他のメカニズムを組み合わせ、長シーケンスの推論を効率化する。 • vLLM V1ではハイブリッドモデルが正式にサポートされ、性能向上が期待される。 • 長いシーケンスは実世界のワークロードにおいて必要不可欠である。 • 情報検索を用いた生成(RAG)などのパターンが長いシーケンスを必要とする。

PyTorch Blog
api framework tool
No Image

Monarch + Lightning AI: Unlocking New Possibilities in Distributed Training

MonarchとLightning AIの提携により、大規模トレーニングの新たな可能性が開かれました。このコラボレーションは、ユーザーがインタラクティブなノートブックから直接大規模GPUクラスターを活用できるようにし、迅速な反復サイクルを実現します。Monarchは、分散コンピューティングのための一般的な言語を提供し、ユーザーがクラスター上で直接開発し、単一のローカルトレーニングスクリプトからワークフローを考慮できるようにします。Lightning AIのMulti-Machine Training(MMT)アプリと統合することで、ユーザーは大規模なジョブを非同期にスケジュールし、複数のクラウドベンダーからのトレーニング最適化されたコンピューティング環境を構成できます。MonarchのAPIを利用することで、ユーザーはインタラクティブな開発体験を享受しつつ、クラスターの実行を直接制御できるようになります。 • MonarchとLightning AIの提携により、大規模トレーニングの効率が向上する。 • ユーザーはインタラクティブなノートブックから直接GPUクラスターを利用できる。 • Monarchは分散コンピューティングのための一般的な言語を提供し、開発のボトルネックを解消する。 • Lightning AIのMMTアプリを通じて、非同期に大規模ジョブをスケジュールできる。 • MonarchのAPIを使用することで、ユーザーはクラスターの実行を直接制御できる。

PyTorch Blog
api tool
No Image

torchcomms: a modern PyTorch communications API

torchcommsは、PyTorch Distributed(PTD)用の新しい実験的で軽量な通信APIです。このAPIは、100,000以上のGPUにスケールするために開発された新しいバックエンドNCCLXをオープンソース化しています。torchcommsの初回リリースでは、信頼性が高くパフォーマンスに優れた分散トレーニングを可能にするコア通信プリミティブに焦点を当てています。今後1年間で、プロトタイピングを容易にし、障害耐性を備えたスケーラビリティを実現し、デバイス中心の通信パターンを最適化する機能を追加していく予定です。torchcommsは、次世代の大規模AIシステムを構築するための基盤を提供し、オープンな開発プロセスを通じてコミュニティのフィードバックを受け入れながら進化します。最終的には、torchcommsがPyTorch Distributedの全機能を支える基盤となることを目指しています。 • torchcommsはPyTorch Distributed用の新しい通信APIである。 • NCCLXという新しいバックエンドをオープンソース化し、100,000以上のGPUにスケール可能。 • コア通信プリミティブに焦点を当て、信頼性の高い分散トレーニングを実現。 • 通信レイヤーを独立して反復できるように設計されている。 • 100K以上のGPUにスケールするための通信リソース管理の再考が必要。 • 異種ハードウェアのサポートを考慮して設計されている。 • 障害耐性を備えたバックエンドをオープンソース化し、信頼性を向上させる。

PyTorch Blog
api tool
No Image

Helion: A High-Level DSL for Performant and Portable ML Kernels

Helionは、パフォーマンスとポータビリティを兼ね備えた機械学習カーネルのための高水準DSL(ドメイン特化言語)です。従来のカーネルはハードウェア特有の低水準言語で書かれることが多く、移植性が低く、メンテナンスが困難でした。Helionは、Pythonに埋め込まれた高水準DSLを使用して、Tritonコードに自動的にコンパイルします。これにより、開発者はハードウェア特有の実装詳細に煩わされることなく、アルゴリズムの論理に集中できるようになります。Helionは、PyTorchの使いやすさと低水準言語のパフォーマンスを橋渡しする新しい抽象化レイヤーを提供し、最適なカーネル構成を自動的に探索する強力なオートチューニングエンジンを備えています。これにより、ハードウェアアーキテクチャ間でのパフォーマンスのポータビリティが実現され、開発の手間が大幅に削減されます。 • Helionは高性能な機械学習カーネルのための高水準DSLである。 • 従来のカーネルはハードウェア特有の低水準言語で書かれ、移植性が低くメンテナンスが困難であった。 • HelionはPythonに埋め込まれたDSLを使用し、Tritonコードに自動的にコンパイルする。 • 開発者はハードウェア特有の実装詳細に煩わされず、アルゴリズムの論理に集中できる。 • HelionはPyTorchの使いやすさと低水準言語のパフォーマンスを橋渡しする。 • オートチューニングエンジンにより、最適なカーネル構成を自動的に探索する。 • ハードウェアアーキテクチャ間でのパフォーマンスのポータビリティを実現し、開発の手間を削減する。

PyTorch Blog
library tool
No Image

Introducing ExecuTorch 1.0: Powering the next generation of edge AI

ExecuTorch 1.0は、PyTorchモデルをエッジデバイス(モバイル、組み込み、デスクトップ)に直接デプロイできるフレームワークで、変換や再記述の必要がありません。これにより、CPU、GPU、NPUに対する広範なハードウェアサポートと、安定した生産環境での使用が可能になります。ExecuTorchは完全にオープンソースで、実際のアプリケーションでの使用が進んでおり、ユーザーのデバイス上でのAI機能を強化します。このアプローチは、データをローカルに保持することでプライバシーを向上させ、インターネット接続がなくても機能するパーソナライズされた体験をサポートします。ExecuTorchは、複雑なモデルを簡単にデプロイできるように設計されており、特にマルチモーダルなLLMや新しいAIアプリケーションのニーズに応えています。 • ExecuTorchはPyTorchモデルをエッジデバイスに直接デプロイ可能にする。 • 変換や再記述なしで、広範なハードウェアバックエンドをサポート。 • 生産環境での安定性とモデル互換性を提供。 • データをローカルに保持することでプライバシーを向上。 • マルチモーダルなLLMや新しいAIアプリケーションに対応。

PyTorch Blog
framework tool
No Image

Introducing PyTorch Monarch

PyTorch Monarchは、複雑な機械学習ワークフローを簡素化するための分散プログラミングフレームワークです。従来のHPCスタイルのマルチコントローラーモデルから、単一コントローラープログラミングモデルへの移行を提案し、全ての分散リソースを一つのスクリプトで制御できるようにします。これにより、プログラムは単一マシンのPythonプログラムのように見え、数千のGPUにスケール可能です。Monarchは、ホスト、プロセス、アクターをスケーラブルなメッシュに整理し、シンプルなAPIを通じて操作を行います。また、障害処理を進行的に行うことができ、データ転送と制御を分離することで、GPU間の直接的なメモリ転送を可能にします。Monarchは、PyTorchとシームレスに統合され、分散テンソルをローカルのように扱うことができます。 • MLワークフローの複雑さに対応するための新しいフレームワーク • 単一コントローラープログラミングモデルによる分散リソースの制御 • ホスト、プロセス、アクターをスケーラブルなメッシュに整理 • 障害処理を進行的に追加可能 • データ転送と制御を分離し、GPU間の直接メモリ転送を実現 • PyTorchとのシームレスな統合による分散テンソルの利用

PyTorch Blog
library tool
No Image

Introducing torchforge – a PyTorch native library for scalable RL post-training and agentic development

torchforgeは、PyTorchネイティブの強化学習(RL)ライブラリで、研究者がインフラに煩わされることなくアルゴリズムに集中できるように設計されています。強化学習は、フィードバックを通じてモデルを改善するために不可欠であり、従来のRLトレーニングループは、エージェントが環境内で行動を取り、その結果得られる報酬を用いて行動方針を更新するというものです。しかし、現実には、分散インフラの複雑さが研究を圧迫しています。torchforgeは、GPUクラスター全体でシームレスにスケーリングし、RLを擬似コードとして表現できるようにすることで、これらのパフォーマンスボトルネックを解消します。特に、重みの同期や非同期処理の管理を簡素化し、研究者がアルゴリズムに集中できる環境を提供します。 • 強化学習のインフラの複雑さが研究を圧迫している問題を解決する。 • torchforgeは、GPUクラスター全体でシームレスにスケーリングできるRLライブラリである。 • RLを擬似コードとして表現することで、研究者がアルゴリズムに集中できるようにする。 • 重みの同期や非同期処理の管理を簡素化し、パフォーマンスボトルネックを解消する。 • 分散インフラにおけるトレーニングと推論の異なるワークロードに対応する。

PyTorch Blog
library tool
No Image

Enabling vLLM V1 on AMD GPUs With Triton

vLLM V1は、vLLMの内部アーキテクチャを大幅に再設計したもので、2025年1月にアルファ版が発表された。V1の設計目標は、コードベースの簡素化、拡張性の向上、すべてのパフォーマンス最適化をデフォルトで有効にすることだった。これにより、カーネル開発者が最適化されたアテンションカーネルを書く際の利便性が向上した。V1では、リクエストのバッチ形成方法に重要な変更が加えられ、混合バッチを形成できるようになった。最初は、CUDAバージョンのFlashAttentionパッケージのみがこれらの「V1バッチ」をサポートしていたため、AMD GPUはサポートされていなかったが、Tritonカーネルに基づく新しいアテンションバックエンドが開発され、AMDのサポートが実現した。 • vLLM V1は内部アーキテクチャの再設計で、コードベースの簡素化と拡張性の向上を目指している。 • すべてのパフォーマンス最適化がデフォルトで有効になり、カーネル開発者にとって利便性が向上した。 • リクエストのバッチ形成方法が変更され、混合バッチが形成可能になった。 • 最初はNVIDIA GPUのみがサポートされていたが、Tritonカーネルに基づく新しいアテンションバックエンドが開発され、AMD GPUのサポートが追加された。 • vLLM V1は、コンテキスト長、クエリ長、シーケンス長の3つの重要な量を考慮している。

PyTorch Blog
library tool
No Image

PyTorch 2.9 Release Blog

PyTorch 2.9のリリースが発表され、主な新機能には、C++/CUDA拡張用の安定したlibtorch ABIの更新、マルチGPUカーネルのプログラミングを容易にする対称メモリの導入、torch.compileにおけるグラフブレーク時のエラーまたは再開の切り替え機能が含まれています。また、ROCm、XPU、CUDA 13を含むホイールバリアントのサポート拡大、Intel GPUでのFlexAttentionの有効化、X86 CPUでのFlashデコーディングの最適化、Linux aarch64バイナリホイールビルドのサポートが強化されました。これらの機能は、3216のコミットと452の貢献者によって実現され、PyTorchコミュニティへの感謝が述べられています。 • C++/CUDA拡張用の安定したlibtorch ABIの更新 • マルチGPUカーネルのプログラミングを容易にする対称メモリの導入 • torch.compileにおけるグラフブレーク時のエラーまたは再開の切り替え機能 • ROCm、XPU、CUDA 13を含むホイールバリアントのサポート拡大 • Intel GPUでのFlexAttentionの有効化 • X86 CPUでのFlashデコーディングの最適化 • Linux aarch64バイナリホイールビルドのサポート強化

PyTorch Blog
library tool