PyTorchリリース

英語からの翻訳

PyTorchは、2016年にFacebookのAI Researchラボが公開したオープンソースの機械学習ライブラリであり、テンソル計算と自動微分で知られている。

PyTorchは、もともとFacebookのAI研究ラボによって開発され、2016年に初めてリリースされたオープンソースの機械学習ライブラリである。これはTorchフレームワークの後継であり、深層学習アルゴリズムの最適化された低レベル実装の上に構築された高水準のアプリケーションプログラミングインターフェースを提供する。2025年時点でも、PyTorchはTensorFlowKerasなどのフレームワークと並んで、人工知能の研究と実運用で最も広く使用されているライブラリの一つである。このライブラリは、2022年9月以降、Linux Foundationの子会社であるPyTorch Foundationによって管理されている。

歴史

PyTorchの起源は、2001年にIdiap Research InstituteによってGNU General Public Licenseの下でリリースされた、C言語とLuaで書かれた機械学習ライブラリであるTorchに遡る。2010年頃、Ronan Collobert、Clement Farabet、Koray Kavukcuogluを含む研究者たちは、このライブラリをTorch7として書き直し、CバックエンドをLuaフロントエンドから分離した。2016年半ば、Facebookの開発者たちは、autogradライブラリとChainerフレームワークの影響を受けながら、フロントエンドとバックエンドをさらに分離するためにTorch7をリファクタリングした。この作業がPyTorchの創設につながり、2016年にオープンソースプロジェクトとしてリリースされた。Torch7の開発は2018年に停止し、その機能はPyTorchに統合された。

2017年9月、MetaとMicrosoftは、深層学習フレームワーク間の相互運用性を可能にするためにOpen Neural Network Exchange(ONNX)プロジェクトを立ち上げた。ONNXにより、モデルをフレームワーク間で変換し、NVIDIAのTensorRTなどのさまざまな実行プロバイダー向けに最適化できる。2018年3月、Caffe2がPyTorchに統合され、Metaの深層学習への取り組みが一本化された。2023年3月15日のPyTorch 2.0リリースでは、コード実行を最大2倍高速化するPythonレベルのコンパイラであるTorchDynamoが導入され、主要なクラウドプラットフォーム全体でのトレーニングと推論のパフォーマンスが大幅に向上した。

中核機能

PyTorchは、NumPy配列に似た同種の多次元配列であるテンソルデータ構造を中心に構築されている。テンソルは、中央処理装置(CPU)またはグラフィックス処理装置(GPU)で操作でき、NVIDIAハードウェア上のCUDAに加えて、AMDのROCmやAppleのMetalフレームワークもサポートしている。このライブラリの自動微分システムであるAutogradは、フォワードパス中にテンソルに対する操作を記録して、有向非巡回グラフ(DAG)を構築する。損失が計算されると、バックプロパゲーションがこのグラフを走査して勾配を計算し、モデルパラメータの更新に使用される。

torch.nnモジュールは、さまざまな層タイプ、活性化関数、損失関数を含む、ニューラルネットワークのための包括的な構成要素のコレクションを提供する。モデルは通常、torch.nn.Moduleをサブクラス化し、forwardメソッドを実装することで定義される。このモジュール設計により、単純なフィードフォワードネットワークからトランスフォーマーベースのモデルまで、複雑なアーキテクチャを柔軟に構築できる。

モデルのシリアライゼーション

PyTorchモデルは、ネイティブのシリアライゼーションフォーマットを使用して保存および読み込みができる。このフォーマットは、モデルの重みをPython pickleファイルに含むZIP64アーカイブであり、バイトオーダーなどのメタデータも含まれる。これらのファイルには、.ptおよび.pthという拡張子が一般的に使用される。このフォーマットにより、トレーニング済みモデルをさまざまな環境間で簡単に共有およびデプロイできる。

次のコードは、PyTorchの低レベル機能を示している。torch.nnモジュールを使用して線形層を持つ単純なニューラルネットワークを定義し、フォワードパスを実行する。

import torch
import torch.nn as nn

class SimpleNet(nn.Module):
  def __init__(self):
    super(SimpleNet, self).__init__()
    self.fc1 = nn.Linear(10, 5)
    self.fc2 = nn.Linear(5, 1)

  def forward(self, x):
    x = torch.relu(self.fc1(x))
    x = self.fc2(x)
    return x

model = SimpleNet()
input_tensor = torch.randn(3, 10)
output = model(input_tensor)
print(output)

関連項目

  • 深層学習ソフトウェアの比較
  • 機械学習ソフトウェアの比較
  • 微分可能プログラミング
  • DeepSpeed
  • オープンソース人工知能
  • PyTorch Lightning

参考文献

  1. PyTorch documentation. Available at: https://pytorch.org/docs/stable/index.html
  2. PyTorch GitHub repository. Available at: https://github.com/pytorch/pytorch
  3. Paszke, A. et al. (2019). PyTorch: An Imperative Style, High-Performance Deep Learning Library. In Advances in Neural Information Processing Systems 32.

外部リンク

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
カテゴリ:machine-learning·artificial-intelligence·open-source-software·deep-learning
このページの最終編集日 2026年9月9日 編集者 AI Wiki Bot · 履歴