stanford-oval/wikipedia huggingface dataset:
ジョー・イングルス
経歴 > ユタ・ジャズ

1年目は開幕からは得意の3ポイントシュートが影を潜めていたが、終盤となった2015年3月23日のミネソタ・ティンバーウルブズ戦でキャリアハイとなる18得点を記録し、7月20日にジャズとの複数年契約に合意した。
2016年12月8日のゴールデンステート・ウォリアーズ戦でキャリアハイの21得点をマーク。プレイオフ1回戦のロサンゼルス・クリッパーズ戦・第4試合で11アシストをマークし、勝利に貢献した。2016-17シーズンは、チームで唯一人全82試合に出場し、3ポイントシュートはリーグ3位の44.1%を記録した。2017年7月1日にジャズとの4年総額5,200万ドルの延長契約を締結すると報道され、同月25日に正式に再契約に合意した。
2019年10月21日にジャズとの単年1,400万ドルで2021-22シーズンまでの延長契約に合意した。
2020-21シーズンの2021年1月8日にアキレス腱損傷のため試合に出場できず、418試合で連続出場記録が途絶えた。同年1月29日、キャリア通算846本目となるスリーポイントショットを成功させ、ジョン・ストックトンが保持していたジャズのフランチャイズ記録を抜いて通算3ポイント成功数で歴代1位となった。4月17日のロサンゼルス・レイカーズ戦では、20得点とキャリアハイの14アシストを記録した。シーズン終了後には、チームメイトであるジョーダン・クラークソンとともにNBAシックスマン賞のファイナリストにもノミネートされた (受賞したのはクラークソン)。
2021-22シーズン、2022年1月31日のミネソタ・ティンバーウルブズ戦で左膝の前十字靭帯を断裂し、シーズン終了となった。
経歴 > ミルウォーキー・バックス

2022年2月9日に3チーム間トレードでポートランド・トレイルブレイザーズへ放出された。ブレイザーズでは前述の怪我の影響のため、試合に出場することはなかった。
その後、2022年7月6日にミルウォーキー・バックスとの単年契約に合意した。
経歴 > オーランド・マジック

2023年7月7日にオーランド・マジックと2年総額2,200万ドルの契約に合意した。
経歴 > ミネソタ・ティンバーウルブズ

2024年7月3日にミネソタ・ティンバーウルブズとの単年330万ドルの契約に合意した。
プレースタイル

シューティングに長けた3&Dのスウィングマン。身体能力はNBA選手としては低めだがバスケットIQが高く、視野が広いことから時にはポイントフォワードとしても起用され、状況に応じた臨機応変なプレーを行う。また、タフなロックダウンディフェンダーであり、イングルスが出場していない時間帯はジャズのネットレーティングがマイナス4.1であることから、チームメイトのルディ・ゴベアとともにジャズの重要なディフェンスの一角を担っていた。
狡猾な一面も持ち合わせており、マッチアップ相手を必要以上に煽りファウルを誘う事も多い。
代表歴

2008年の北京オリンピックの予選でオーストラリア代表デビューし、本大会に出場。2010年のFIBAバスケットボール世界選手権、2012年のロンドンオリンピック、2014年のFIBAバスケットボール・ワールドカップにも出場した。ロンドンオリンピックではパティ・ミルズ、デビッド・アンダーセン、アロン・ベインズらと共にプレーしている。2020年の東京オリンピックでは同国初のメダル獲得にも貢献した。
個人成績

| 略称説明 |
| --- | --- | --- | --- | --- | --- |
|   GP | 出場試合数 |   GS  | 先発出場試合数 |  MPG  | 平均出場時間 |
|  FG%  | フィールドゴール成功率 |  3P%  | スリーポイント成功率 |  FT%  | フリースロー成功率 |
|  RPG  | 平均リバウンド数 |  APG  | 平均アシスト数 |  SPG  | 平均スティール数 |
|  BPG  | 平均ブロック数 |  PPG  | 平均得点 |  太字  | キャリアハイ |
|   | リーグリーダー |  |  |  |  |
個人成績 > NBA > レギュラーシーズン

| シーズン | チーム | GP | GS | MPG | FG% | 3P% | FT% | RPG | APG | SPG | BPG | PPG |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 2014–15 | UTA | 79 | 32 | 21.2 | .415 | .356 | .750 | 2.2 | 2.3 | .9 | .1 | 5.0 |
| 2015–16 | UTA | 81 | 2 | 15.3 | .426 | .386 | .722 | 1.9 | 1.2 | .7 | .0 | 4.2 |
| 2016–17 | UTA | 82* | 26 | 24.1 | .452 | .441 | .735 | 3.2 | 2.7 | 1.2 | .1 | 7.1 |
| 2017–18 | UTA | 82* | 81 | 31.4 | .467 | .440 | .795 | 4.2 | 4.8 | 1.1 | .2 | 11.5 |
| 2018–19 | UTA | 82* | 82* | 31.3 | .448 | .391 | .707 | 4.0 | 5.7 | 1.2 | .2 | 12.1 |
| 2019–20 | UTA | 72 | 45 | 29.7 | .445 | .399 | .787 | 3.9 | 5.2 | .9 | .2 | 9.8 |
| 2020–21 | UTA | 67 | 30 | 27.9 | .489 | .451 | .844 | 3.6 | 4.7 | .7 | .2 | 12.1 |
| 2021–22 | UTA | 45 | 15 | 24.9 | .404 | .347 | .773 | 2.9 | 3.5 | .5 | .1 | 7.2 |
| 2022–23 | MIL | 46 | 0 | 22.7 | .435 | .409 | .857 | 2.8 | 3.3 | .7 | .1 | 6.9 |
| 2023–24 | ORL | 68 | 0 | 17.2 | .436 | .435 | .824 | 2.1 | 3.0 | .6 | .1 | 4.4 |
| 通算 | 通算 | 704 | 313 | 24.7 | .448 | .410 | .774 | 3.1 | 3.6 | .9 | .1 | 8.1 |
個人成績 > NBA > プレーオフ

| シーズン | チーム | GP | GS | MPG | FG% | 3P% | FT% | RPG | APG | SPG | BPG | PPG |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 2017 | UTA | 11 | 11 | 30.3 | .403 | .366 | .667 | 3.7 | 3.3 | 2.0 | .5 | 6.5 |
| 2018 | UTA | 11 | 11 | 34.7 | .471 | .455 | .647 | 4.4 | 3.4 | .5 | .2 | 14.5 |
| 2019 | UTA | 5 | 5 | 30.1 | .324 | .276 | --- | 4.8 | 5.0 | 2.2 | .0 | 6.4 |
| 2020 | UTA | 7 | 7 | 33.4 | .407 | .350 | 1.000 | 3.4 | 4.7 | .6 | .1 | 9.1 |
| 2021 | UTA | 11 | 6 | 27.8 | .494 | .414 | .769 | 3.1 | 3.5 | .6 | .0 | 10.2 |
| 2023 | MIL | 5 | 0 | 17.8 | .522 | .500 | --- | 1.2 | 2.0 | .6 | .2 | 6.8 |
| 2024 | ORL | 7 | 0 | 9.6 | .333 | .286 | .500 | 1.9 | 1.7 | .4 | .0 | 1.6 |
| 通算 | 通算 | 57 | 40 | 27.4 | .441 | .397 | .723 | 3.3 | 3.4 | 1.0 | .2 | 8.5 |
個人成績 > ユーロリーグ

| --- | --- |
†: ユーロリーグチャンピオン
| シーズン | チーム | GP | GS | MPG | FG% | 3P% | FT% | RPG | APG | SPG | BPG | PPG | PIR |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 2010–11 | FCバルセロナ | 15 | 4 | 15.7 | .462 | .233 | .727 | 1.1 | 1.1 | .8 | .1 | 5.0 | 4.7 |
| 2011–12 | FCバルセロナ | 21 | 2 | 13.3 | .375 | .231 | .800 | 1.7 | 1.4 | .6 | .0 | 4.3 | 4.4 |
| 2012–13 | FCバルセロナ | 29 | 16 | 20.1 | .442 | .394 | .786 | 2.1 | 1.1 | .4 | .1 | 6.0 | 5.4 |
| 2013–14† | マッカビ・テルアビブBC | 30 | 13 | 22.9 | .476 | .417 | .697 | 3.0 | 2.9 | .8 | .1 | 6.4 | 9.3 |
| 通算 | 通算 | 95 | 35 | 18.5 | .443 | .349 | .755 | 2.2 | 1.7 | .6 | .1 | 5.6 | 6.3 |
PyTorch

| --- | --- |
 
作者:  Adam Paszke Sam Gross Soumith Chintala Gregory Chanan
初版:  2016年10月 (8年前) (2016-10)

最新版:  2.6.0   - 2025年1月29日 (17日前) 
リポジトリ:  github.com/pytorch/pytorch  
プログラミング 言語:  Python C++ CUDA
対応OS:  Linux macOS Windows
プラットフォーム:  IA-32 x86-64
対応言語:  英語
種別:  機械学習/ディープラーニングライブラリ
ライセンス:  修正BSDライセンス
公式サイト:  pytorch.org 
テンプレートを表示
PyTorchは、コンピュータビジョンや自然言語処理で利用されているTorch（英語版）を元に作られた、Pythonのオープンソースの機械学習ライブラリである。最初はFacebookの人工知能研究グループAI Research lab（FAIR）により開発された。PyTorchはフリーでオープンソースのソフトウェアであり、修正BSDライセンスで公開されている。
さまざまなディープラーニングのソフトウェアがPyTorchを利用して構築されており、その中には、UberのPyro、HuggingFaceのTransformers、Catalystなどがある。
PyTorchは以下の機能を備えている：
強力なGPUサポートを備えた（NumPyのような）テンソル演算
自動微分エンジンの上に構築された深層学習トレーニング (torch.autograd)
自動微分化や自動ベクトル化などの（JAXのような）関数変換（functorch / torch.func）
実行時コンパイル (torch.jit)
並列処理（#並列処理参照）
機械学習モデル形式「ONNX」へのエクスポート（torch.onnx）
歴史

FacebookはPyTorchとConvolutional Architecture for Fast Feature Embedding（Caffe2）をメンテナンスしていた。しかし、互換性が無いためPyTorchで定義されたモデルのCaffe2への移行やまたその逆の作業が困難であった。これら2つのフレームワークでモデルを変換することができるように、2017年9月にFacebookとマイクロソフトがOpen Neural Network Exchange（ONNX）プロジェクトを作成した。2018年3月下旬に、Caffe2はPyTorchに併合された。
2019年12月、Preferred Networksは自社開発していたChainerのバージョン7をもって、PyTorchによる研究開発へ順次移行して行くことを発表した
。
PyTorchのテンソル

PyTorch はテンソルに Tensor (torch.Tensor）と呼ばれるクラスを定義しており、それを均質（homogeneous）な多次元の長方形の数値配列の保存と演算に利用している。PyTorch の Tensor は NumPy の多次元配列 (numpy.ndarray) に似ているが、CUDA が有効な Nvidia のGPU上での演算も可能になっている。NumPyの配列からPyTorchのテンソルへと変換するための専用APIも存在する (torch.from_numpy)。なおPyTorch 2.1以降はPyTorchだけでなくNumPyを使ったコードのGPU向けコンパイルにも対応している。
PyTorch には 32bit 浮動小数点数用の FloatTensor や 16bit 浮動小数点数用の HalfTensor 、32bit 整数用の IntTensor など、さまざまな型のTensorサブタイプが存在する。またテンソルにはCPUに配置する torch.*Tensor とGPUに配置する torch.cuda.*Tensor が存在している。それぞれは Tensor.to(...) メソッドなどを用いることで変換することができる。
また PyTorch のテンソルは機械学習の逆伝播に使われる微分のためのパラメータ（勾配データ (Tensor.grad) や 微分関数 (Tensor.grad_fn)）を持つことが出来る (requires_grad=Trueの場合、詳しくは後述の#autogradモジュールを参照)。勾配データ (grad) は追加メモリを必要とするため、不要な場合に取り除くことが可能となっている（torch.no_grad() や Tensor.detach() など）。
複素数テンソル（dtype=torch.cfloatのテンソル）や量子化テンソル（dtype=torch.quint8やdtype=torch.qint8などのテンソル）も存在している。量子化テンソルはスケールやゼロポイントなどの量子化パラメータを持っている。なお4bit量子化向けのdtype=torch.quint4x2のテンソルもあるが、2023年現在その対応は一部（EmbeddingBag命令）のみとなっている。また8bit浮動小数点数向けの torch.float8_e4m3fn 及び torch.float8_e5m2 のテンソルにも対応しているが対応命令はごく一部となっている[（8bit浮動小数点数はNVIDIA H100などの一部GPUのTransformer Engineがネイティブに対応している）。
基本のテンソルは長方形であり、非長方形のデータを扱う際には padding で穴埋めする必要があるが、穴の多いデータを穴埋めするのは無駄となるため、非長方形のデータを扱うための疎テンソル (torch.sparse) や ネストされたテンソル (torch.nested) も用意されている。なお、疎テンソル構造はNVIDIA GPUのAmpere以降などでも直接サポートされるようになっているものの、その対応は2:4スパース（半構造化スパース）に限られているが、PyTorch 2.1以降はその疎半構造化テンソルにも試験的に対応している (SparseSemiStructuredTensor)。
PyTorchのモデル

PyTorch のモデルは基本的に torch.nn.Module の派生クラスとする必要があり、そのtrain() メソッドとeval()メソッドにより、トレーニングモードと評価モードの切り替えが可能となっている。
また to(...) メソッドなどによってモデル全体のパラメータ型の変換が可能であり、それによってモデルパラメータの半精度化（専用のhalf()メソッドもある）やbfloat16化（専用のbfloat16()メソッドもある）を行うことでメモリ使用量を減らすことが可能となっている。ただしモデルパラメータのより高い圧縮を行うためには torch.quantization などで量子化を行う必要がある。
フロントエンド

PyTorch のフロントエンドには Pythonインターフェイスだけでなく C++インターフェイスも存在している。
フロントエンド > autogradモジュール

PyTorchは自動微分と呼ばれるメソッドを利用する。recorderは実行された演算を記録し、その後、勾配の計算を行うときに記録した演算を逆方向にリプレイする。このメソッドは、ニューラルネットワークの構築時に特に強力であるため、順方向のパラメータの微分を計算することで、1エポックの計算にかかる時間を節約することができる。
フロントエンド > optimモジュール

torch.optimは、ニューラルネットワークの構築時に使用されるさまざまな最適化アルゴリズムを実装したモジュールである。通常使用されるメソッドのほとんどはすでに対応しているため、スクラッチで構築する必要がない。
フロントエンド > nnモジュール

PyTorchのautogradは、簡単に計算グラフを定義して勾配を得られるようになっているが、生のautogradは複雑なニューラルネットワークを定義するにはすこし低レベルすぎる場合がある。そのような場合のサポートとしてnnモジュールが提供されている。
フロントエンド > jitモジュール

TorchScriptとして後述。
バックエンド

PyTorch のバックエンドは主に C++ で実装されている (ATen)。ATenは外部から直接使うことも可能となっている (C++ではATenライブラリ、Pythonではtorch.ops.aten)。
また PyTorch にはCPUだけでなくGPUバックエンドもあり、NVIDIA製GPU向けにはCUDAで、AMD製GPU向けにはROCm（英語版）のHIPで、Intel製GPU向けにはSYCLで、macOS向けにはMetal Performance Shaders (MPS) で実装されている。CUDAにバージョン毎の互換性の問題があることもあって、PyTorch のバイナリはGPUプラットフォーム毎に別々で提供されている。
AI専用チップ向けのバックエンドでは外部プロジェクトとして Intel Gaudi 向けの habana_frameworks.torch 、Huawei Ascend 向けの torch_npu などが存在する。PyTorchではこれら外部バックエンドを登録するための仕組み「PrivateUse1」が用意されている。
PyTorch 2.0以降にはOpenAIのTritonなどをバックエンドとして使用できるTorchDynamoも統合されている（#TorchDynamoを参照）。TorchDynamo ではバックエンドの実装を簡略化するために、複合的な Aten 命令を単純な Prims 命令 (torch._prims) へと低下させる機能も提供している。
また PyTorch では別パッケージとして Torch-TensorRT が用意されており、これを使うことにより PyTorch のバックエンドとして NVIDIA の TensorRT を使うことも可能となっている。
バックエンド > 並列処理

PyTorch は標準で並列処理機能を内蔵しているものの一部のみとなっている。外部プロジェクトの DeepSpeed（英語版） はより高度な並列処理を実装している。並列処理を簡単に使うための補助ライブラリとして HuggingFace Accelerate や Lightning Fabric（旧Lightning Lite）が存在する。
また既存モデルでは推論の並列処理を簡単に使うための DeepSpeed MII も存在する。
またコンピュータ・クラスターを使った学習向けでは外部プロジェクトに MosaicML の Composer が存在し、この Composer はクラウドコンピューティングを使った学習とも相性が良いとされる。
バックエンド > 並列処理 > データ並列 (DP)

PyTorchは以下のデータ並列処理に対応している:
マルチスレッドデータ並列処理 (torch.nn.DataParallel) - 2024年現在Pythonのグローバルインタプリタロック (GIL) の問題がありスケールしにくい。
マルチプロセス/マルチマシンデータ並列処理 (DDP; torch.nn.parallel.DistributedDataParallel)
完全共有データ並列処理 (FSDP; torch.distributed.fsdp.FullyShardedDataParallel) - FairScale の FSDP を統合した。
前述の FairScale 及び DeepSpeed は、どちらも最適化状態分割 (OSS; ZeRO Stage 1)、最適化および勾配状態分割 (SDP; ZeRO Stage 2)、完全共有データ並列処理 (FSDP; ZeRO Stage 3) の3つに対応している。加えて DeepSpeed は ZeRO Stage 3 よりもノード間通信効率の良い ZeRO++ にも対応している。
その他 DeepSpeed にはデータをCPUメモリやNVMeなどへとオフロードするための ZeRO-Infinity（及びそのサブセットでホストCPUメモリのみ対応の旧来の ZeRO-Offload）も搭載されている。
バックエンド > 並列処理 > パイプライン並列 (PP)

PyTorchは以下のパイプライン並列処理に対応している:
パイプライン並列処理 (torch.distributed.pipeline) - nn.Sequentialにのみ対応。FairScaleの実装 (Fairscale.nn.Pipe) を統合したもので、元々は torchgpipe の GPipe実装に由来する。
PyTorchモデルの自動パイプライン並列処理に向けては PiPPy が開発中となっている。また DeepSpeed もパイプライン並列処理に対応している (deepspeed.pipe)。
また推論のパイプライン並列処理にはPetalsやFlexGenも存在する。
バックエンド > 並列処理 > テンソル並列 (TP)

PyTorchは以下のテンソル並列処理に対応している:
テンソル並列処理 (torch.distributed.tensor.parallel)
また DeepSpeed も DeepSpeed-Inference で推論におけるテンソル並列処理に対応している。
バックエンド > 並列処理 > エキスパート並列

エキスパート並列は複数エキスパート（専門家）の混合 (MoE) レイヤー（Switch Transformerなど）を用いたモデルの並列処理を行う。
このエキスパート並列には DeepSpeed MoE が対応している。
バックエンド > 並列処理 > 推論の自動ウェイトオフロード

HuggingFaceのAccelerateは大規模モデルの推論を処理するためにウェイトの自動オフロードに対応している。
またDeepSpeed も推論でのデータオフロードにも対応している（DeepSpeed ZeRO-Inference）。
バックエンド > 並列処理 > その他

PyTorch は CUDA の複数ストリームを使った明示的なGPU並列処理にも対応している。
ファイル形式

PyTorch で良く使われているファイル形式は Python における Python オブジェクトの標準シリアライズ（直列化）である Pickle形式 (*.pkl) 及びウェイトやバイアスなどのパラメータを無圧縮ZIPアーカイブでまとめたpt形式となっている。PyTorchでのこの形式の読み書きはtorch.load/torch.saveやtorch.jit.load/torch.jit.save（TorchScript向け）などを使うことで可能となっている。この形式はPyTorch内外を含め広く用いられているものの、Pickle形式は仮想マシンの命令コードを記述したものであり様々な操作が実行できるため、セキュリティのリスクが存在している。
そのため PyTorch 標準形式よりも安全で効率的なパラメータ保存形式が開発されてきており、その中の一つ HuggingFace の safetensors 形式は広く普及してきている。
ONNX出力

ONNX出力 (torch.onnx) には従来のTorchScript経由によるもの (torch.onnx.export) と新しいTorchDynamo経由によるもの (torch.onnx.dynamo_export) がある。前者は#TorchScriptを参照。
TorchScript

TorchScriptは推論モデル生成のための静的型付け言語である。Pythonのサブセット。TorchScriptプログラムはPythonに依存しない環境（例: C++）で実行可能であり、JITコンパイルにより動作環境での最適化がおこなわれる。JITコンパイラでは演算fusion等がおこなわれる。
なおTorchScriptモデルの保存にはTorchScriptモデル形式が使われている (torch.jit.load / torch.jit.save) が、この形式はPyTorchモデル形式と同じく拡張子に「.pt」が使われている。またTorchScriptを介したONNX形式への変換 (torch.onnx.export) も可能となっている。また外部の LLVM プロジェクトの Torch-MLIR では TorchScript を介してPyTorchモデルのコンパイルを行うことができる。
TorchScript > 実行

TorchScriptはJITオプティマイザ・JITコンパイラ付きのインタプリタにより実行される。内部ではGraphExecutorによる最適化とinterpreterによる実行がおこなわれる。対応している最適化には、入力型に基づくGraphの特殊化、演算子の融合 (Op fusion)、定数の事前計算、不要ノード削除などがある。
TorchScript > 生成

TorchScriptコードは直接記述 (torch.jit.script) およびPyTorch実行トレース (torch.jit.trace) により生成される。
以下は前向き (forward) 関数のスクリプト変換の例である：
import torch # PyTorchモジュールを読み込み
def f(x, y): return x + y # 前向き関数を作る
ts_converted = torch.jit.script(f) # Pythonコードから直接TorchScriptに変換
print("Converted:\n%s" % ts_converted.code) # 変換したTorchScriptを表示
ts_traced = torch.jit.trace(f, (torch.tensor([1,2]), torch.tensor([3,4]))) # PyTorchの実行をトレースしてTorchScriptを生成
print("Traced:\n%s" % ts_traced.code) # 生成したTorchScriptを表示

torch.jit.save(ts_converted, "converted.pt") # 変換したTorchScriptをTorchScriptモデル形式で保存
torch.onnx.export(ts_converted, (torch.tensor([1,2]), torch.tensor([3,4])), "converted.onnx") # 上記をONNX形式で出力
TorchScript > 生成 > torch.jit.script

torch.jit.script はTorchScriptコンパイラのPythonラッパー関数である。
torch.jit.script はPythonオブジェクトとして書かれたTorchScriptコードをコンパイラへ渡し、コンパイル結果へPythonからアクセスするためのラッパーオブジェクトを返す。Pythonデコレータとしても利用できる。
TorchScriptコードのコンパイルをおこなうため、全てのTorchScirpt機能を利用できる（c.f. torch.jit.trace によるトレース）。例えば動的条件分岐を記述できる。
TorchScript > 生成 > torch.jit.trace

torch.jit.trace は実行時トレースに基づくPython-to-TorchScriptトランスパイラである。
torch.jit.trace は実行可能Pythonオブジェクトとその仮入力を引数に取り、これをトレースしながら実行し、トレース結果に基づいてTorchScriptコードを生成する。すなわち実行時トレースに基づいてPythonコードをTorchScriptコードへ変換する。
仮入力を用いたトレースに基づいて生成をおこなうため、利用できるTorchScript機能に制限がある（c.f. torch.jit.script によるコンパイル）。例えば条件分岐は仮入力が満たす片方のパスしか記録されないため、TorchScriptの動的条件分岐として変換されない。すなわちTorchScriptの動的条件分岐は利用できない。
FX

torch.fx はモデルの高レベルグラフ化・変換・コード生成に関するモジュールである。モデルを入力/出力/演算の有向非巡回グラフと見なすIRを定義し、モデル→IR→モデルの変換とIR編集をサポートする。主に次の3つの機能を提供する。
Model-to-IR: シンボリックトレースによるPython/PyTorchモデルからのIR生成
IR-to-IR: IRで表現されたグラフの変換
IR-to-Model: IRからのPython/PyTorchコード生成
FXはPythonをホスト言語とするIRグラフのメタプログラミングであり、グラフの分析・可視化、演算子の書き換えによる量子化、グラフ全体を考慮したop fusion、IRからのアクセラレータコード直接生成など様々な用途に利用される。
モデルエクスポートのための幅広い演算サポートを目指すTorchScript IRと異なり、FX IRは動的な制御フローを含まず演算ノード単位の操作を前提とした高レベルな表現と、それに付随するシンプルなIR生成・IR操作・モデル生成実装を掲げている。
以下は前向き (forward) 関数の変換の例である：
import torch # PyTorchモジュールを読み込み
def f(x, y): return x + y # 前向き関数を作る
fx_traced = torch.fx.symbolic_trace(f) # PyTorchの実行をトレースしてFX Graphを生成
print(fx_traced.graph) # FX GraphのIRを表示
print(fx_traced.code) # FX GraphをPythonコードに再変換して表示
FX > AOT Autograd

AOT Autograd (functorch.compile) は前向き関数と後向き関数をコンパイルするための実験的サブシステムである。FX GraphをTorchScriptのコンパイラによってコンパイルするための functorch.compile.ts_compile も実験的に提供されている。
以下は前向き (forward) 関数の変換の例である：
import torch, functorch # PyTorch 及び functorch モジュールを読み込み
def f(x, y): return x + y # 前向き関数を作る
fx_traced = torch.fx.symbolic_trace(f) # PyTorchの実行をトレースしてFX Graphを生成
ts_compiled = functorch.compile.ts_compile(fx_traced, [torch.Tensor([1,2]), torch.Tensor([3,4])]) # TorchScriptコンパイラでFXグラフをコンパイル
ts_compiled([torch.Tensor([1,2]), torch.Tensor([3,4])]) # コンパイルされた関数を実行
FX > TorchDynamo

TorchDynamo (torch._dynamo) は任意のPythonコードをコンパイルのためのサブシステムである。JITコンパイルするためのtorch.compile API、事前コンパイルするためのtorch.export APIもある（後者は#事前コンパイルと量子化参照）。コンパイルできないコードは自動的にPythonインタプリタへとフォールバックされる。2023年にリリースされたPyTorch 2.0で本体へと統合された。
狭義のTorchDynamoはPythonのバイトコードから前述のFX Graphを作るサブシステムであり、FX Graphを各実行環境向けIRへと変換するための各バックエンド（TorchInductor、onnxrtバックエンドなど）と組み合わせてPythonコードのコンパイルを行うことができる。バックエンドを実装しやすくするためのものとして、FX Graphの複合的なAten命令を単純なPrim命令へと置き換えるPrimTorchも存在する。
以下は前向き (forward) 関数の最適化の例である：
import torch
def f(x, y): return x + y # 前向き関数を作る
optimized_f = torch.compile(f, backend="inductor") # 前向き関数をTorchDynamo（+ TorchInductor）で最適化
optimized_f(1, 2) # 最適化された前向き関数を実行
また派生プロジェクトとしてバックエンドにOpenXLAのXLAコンパイラを使うためのPyTorch/XLAも開発中となっているが、こちらも試験的にTorchDynamoへと対応しており、場合によってはTorchDynamo+Inductorよりも高速であるとされる。
FX > 事前コンパイルと量子化

PyTorch 2.1以降には事前コンパイル (torch.export) が試験的に実装されている。また量子化 (torch.ao.quantization) も試験的にtorch.exportに対応している。
量子化では訓練後量子化（Post Training Quantization; PTQ）と量子化意識訓練 (Quantization Aware Training; QAT) の両方に対応している。
モバイル向け展開

PyTorchモデルのモバイル向け展開にはPyTorch MobileとExecutorchが存在する。
PyTorch MobileはTorchScriptを使った軽量インタプリタとなっているが、最適化 (torch.utils.mobile_optimizer) にも対応している。
一方、Executorchはtorch.compileベースとなっている。
またPyTorchのモデルから別の機械学習フレームワークTensorFlowのモバイル向け実装LiteRT（旧称TensorFlow Lite）のモデルへと変換することも可能であり、これには前述のONNX出力でONNX形式を出力した後にそのファイルをonnx2tfでLiteRTモデルへと変換する方法や、GoogleのAI Edge Torchを使う方法が存在する。
モデル / ライブラリ > Transformer モデル

性能の高い機械学習モデル「Transformer」が人気となるにつれ、PyTorchでも内部プロジェクト外部プロジェクト合わせ数多くの実装が登場した。その代表的なものには以下が存在する：
torch.nn.Transformer - PyTorch 1.2で実装された。
Accelerated Transformers - 旧Better Transformers。HazyResearch社 の FlashAttention や Meta AI（英語版）社 の xFormers などを取り入れて上記APIを高速化したものであり、PyTorch 2.0で安定版が搭載された。前身のBetter TransformersはHugging FaceのOptimumで簡単に使用することが出来た。
Transformers (Hugging Face) - 様々な応用モデルを実装している。PyTorch以外にも対応している。
Fairseq (Meta AI) - Transformer派生を含む様々な応用モデルを実装している。またNVIDIAによりこのFairseqに基づくTransformerの実装が「Transformer for PyTorch」として提供されている。
xFormers (Meta AI) - 高速かつ省メモリな複数の実装を含んでいる（CUTLASSを使った実装やOpenAI Tritonを使った実装など）。前述のFairseqや後述のDiffusersでも使えるようになっている。
モデル / ライブラリ > 拡散モデル

拡散モデル（確率拡散モデル; Diffusion model）は特に生成AI（ジェネレーティブAI）において人気となり、PyTorchでもその実装が登場した。その代表的なものには以下が存在する：
Diffusers (Hugging Face) - 単純なU-Netベースの拡散モデルだけでなく、変分オートエンコーダー (VAE) による潜在空間（英語版）を使った潜在拡散モデル (LDM) やその応用の Stable Diffusion (SD)、埋め込み表現にCLIPの代わりにXLM-RobertaベースのAltCLIPを使ってマルチリンガル化した AltDiffusion、ベクトル量子化VAE (VQ-VAE) による潜在空間を使った VQ-Diffusion、CLIPのテキスト埋め込みを直接使わず画像埋め込みへと変換してからガイドとして使用するDALL-E 2を模したKarlo unCLIP、U-Net部分までTransformerに置き換えたDiT (Diffusion Transformer)、動画生成に対応する Text-to-Video / Text2Video-Zero、オーディオに特化した Audio Diffusion / Latent Audio Diffusion、 MIDIからオーディオを生成する Spectrogram Diffusion、汎用拡散モデルの Versatile Diffusion などを実装している。また追加学習ではTextual Inversion、Text-to-imageファインチューニング、DreamBooth、LoRAなどに対応している。
モデル / ライブラリ > torchvision

torchvision は PyTorch 向けの画像処理向けのライブラリである。画像分類 (Swin Transformer / MaxVit / Swin Transformer V2 / EfficientNet / ConvNeXt / EfficientNetV2 / RegNet / VisionTransformer等)、動画分類 (Video ResNet / Video S3D / Video MViT / Video SwinTransformer)、セマンティックセグメンテーション (LRASPP / FCN / DeepLabV3)、物体検出 (SSDlite / SSD / FCOS / RetinaNet / Faster R-CNN)、インスタンスセグメンテーション (Mask R-CNN)、キーポイント検出 (Keypoint R-CNN)、オプティカルフロー (RAFT) などに対応している。
モデル / ライブラリ > torchaudio

torchaudio は PyTorch 向けの音声処理向けのライブラリである。音声認識 (Emformer RNN-T / XLS-R / Conformer RNN-T)、視覚音声認識 (AV-ASR)、テキスト音声合成 (Tacotron2)、音声強調 (MVDR)、ビームフォーミング (DNNBeamformer)、音源分離（英語版） (Hybrid Demucs)、音声品質測定 (TorchAudio-Squim) 、テキストへの強制位置合わせ (CTC forced alignment) などに対応している。
その他、音声のベクトル化では wav2vec 2.0、HuBERT、WavLM に対応している。GPUベースのCTCビームサーチ (CUCTCDecoder) にも対応している。
モデル / ライブラリ > torchtext

torchtext は PyTorch 向けのテキスト処理ライブラリである。大規模言語モデル (LLM) の XLM-RoBERTa や T5 に対応している。なお大規模言語モデルで文書分類、言語モデリング、質疑応答、機械翻訳などの多様なタスクを行うには、モデルをそれぞれへと適応するためのファインチューニングやプロンプティングが必要となる。
その他、テキストのトークン化では正規表現での置換によるトークン化 (RegexTokenizer)、文字バイト対符号化 (BPE) によるトークン化 (CharBPETokenizer)、バイトレベルBPEによるトークン化（CLIPで使われるCLIPTokenizerやGPT-2で使われるGPT2BPETokenizer）、WordPieceによるトークン化（BERTで使われるBERTTokenizer）、事前学習モデルによるトークン化（T5などに使われるSentencePieceTokenizer）に対応している。また単語の埋め込みベクトルへの変換では GloVe、FastText、CharNGram に対応している。
2023年9月、開発をメンテナンスモードに移行し、2024年4月開発終了となった。
モデル / ライブラリ > TorchRL

TorchRL は PyTorch 向けの強化学習ライブラリである。暗黙的Q学習 (IQL)、深層Q学習 (DQN)、近傍方策最適化（英語版） (PPO)、深層決定論的方策勾配法 (DDPG)、双生遅延DDPG (TD3)、Advantage Actor-Critic (A2C)、Soft-Actor-Critic (SAC)、保守的Q学習 (CQL)、ランダム化アンサンブル化ダブルQ学習 (REDQ)、Dreamer、Decision Transformer、人間のフィードバックによる強化学習 (RLHF)に対応している。
モデル / ライブラリ > TensorDict

TensorDict は PyTorch 向けの辞書構造ライブラリである。
モデル / ライブラリ > TorchRec

tensordict は PyTorch 向けのレコメンデーション（推薦）ライブラリである。
モデル / ライブラリ > torchtune

torchtuneは PyTorch 向けの大規模言語モデル (LLM) ファインチューニングライブラリである。
モデル / ライブラリ > torchchat / gpt-fast

torchchatはPyTorch向けのLLMを使ったチャット実装であり、gpt-fastはPyTorchを使ったLLM実装である。
モデル / ライブラリ > PyTorch Hub

PyTorch Hub (torch.hub) は GitHub のリポジトリ上に存在するPyTorchの事前学習モデルを簡単に使用できるようにするための仕組みである。リポジトリをこの PyTorch Hub で使えるようにするためにはリポジトリ上に「hubconf.py」を設置する必要がある。
PyTorch Hub に対応しているリポジトリには例えば以下が存在する：
torchvision ("pytorch/vision")
Fairseq ("pytorch/fairseq")
YOLOv5 ("ultralytics/yolov5")
PyTorch Hubでリポジトリ上のモデルを読み込むコードの例：
import torch
yolov5s_model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
なお外部プロジェクトには GitHub 及び PyTorch Hubを使わずに、GitHubに似た独自リポジトリシステムとその読み込みスクリプトを提供するものも存在する（Hugging Face の Hugging Face Hubなど）。
モデル / ライブラリ > TorchMetrics

Lightning AI製の評価指標（メトリクス）用ライブラリ。
学習 > データローダ

PyTorchに使うことのできるデータローダには以下が存在する：
DataLoader (torch.utils.data.DataLoader) - PyTorch標準のデータローダ。
DataLoader2 (torchdata.dataloader2.DataLoader2) - 別パッケージのTorchDataで開発されているDataPipesを基にした実験的なデータローダ。
FFCV (Fast Forward Computer Vision; ffcv.loader)
NVIDIA DALI (Data Loading Library; nvidia.dali.plugin.pytorch) - GPUDirect Storageに対応したデータローダ。PyTorch以外にも対応している。実験的なGPUデータ解凍にも対応している (fn.experimental.inflate)。
またデータセットの自動ダウンロードに対応するデータローダとして HuggingFace Datasets Hub のデータセットが使用可能な HuggingFace 製の Datasets も存在する。
学習 > PyTorch Lightning

→「PyTorch Lightning」を参照
PyTorch Lightning は学習から展開までの簡易化のための PyTorch 向けサードパーティー製ライブラリである。
学習 > 高速化

より高い効率で学習を行うための様々な標準機能・外部ライブラリが提供されている。以下はその一例である。
| 名称 | 手法 |
| --- | --- |
torch.jit.script: TorchScript言語での記述 → TorchScriptによる学習の最適化
torch.jit.trace: 仮入力トレースによるTorchScriptへの変換 → TorchScriptによる学習の最適化
torch.fx.symbolic_trace: FXのTrace機能によるGraphIR化→各バックエンドによる学習の最適化
torch._dynamo: 部分的GraphIR化→PythonJITコンパイラでの部分的バックエンド利用による学習の最適化
それぞれの手法で特徴と適用範囲が異なる。例えばDynamoでは動的条件分岐を扱えるがfx.symbolic_traceでは扱えない。
サペラヴィ

サペラヴィ（欧字名:Saperavi、2017年4月28日 - ）は、日本の競走馬。主な勝ち鞍は2024年の阪神ジャンプステークス。
馬名の意味は、「色をつける」（ジョージア語）。
戦績

2019年7月13日、福島競馬場第5レースの2歳新馬戦（芝1800m）で、井上敏樹を背にデビューし5着。3戦目の新潟競馬場・2歳未勝利戦（芝2000m）で初勝利を収めた。
重賞初出走となった3歳5月の京都新聞杯は8着。条件戦での勝利を挟み、再度の重賞挑戦で出走した9月のセントライト記念は8着に敗れる。11月の精進湖特別で通算3勝目を挙げるが、その後は3勝クラスで足踏みが続き、2年近くにわたって勝利から遠ざかった。
5歳夏から障害路線へ転向。障害デビューとなった8月の新潟競馬場・3歳以上未勝利戦で約1年9か月ぶりの勝利を収めた。翌6歳4月の障害4歳以上オープンで、平地競走も含めてオープン戦初勝利。7月には初の障害重賞挑戦として新潟ジャンプステークスに出走し、重賞では初の馬券圏内となる3着に好走した。
7歳シーズンは5月のオープン戦でシーズン初勝利。管理する南田美知雄調教師も、この勝利をもってJRA通算200勝を達成した。9月の阪神ジャンプステークスは2番手追走から早めに仕掛けてそのまま押し切り、キャリア39戦目にして重賞初優勝を果たした。
血統表

| 0 | 1 | 2 | 3 | 4 |
| --- | --- | --- | --- | --- |
| サペラヴィの血統 | サペラヴィの血統 | サペラヴィの血統 | （血統表の出典） | （血統表の出典） |
| 父系 | キングマンボ系/ミスタープロスペクター系  | キングマンボ系/ミスタープロスペクター系  | キングマンボ系/ミスタープロスペクター系  |  |
| 父 ローズキングダム 2007 黒鹿毛 | 父の父キングカメハメハ 2001 鹿毛 | Kingmambo | Mr. Prospector | Mr. Prospector |
| 父 ローズキングダム 2007 黒鹿毛 | 父の父キングカメハメハ 2001 鹿毛 | Kingmambo | Miesque | Miesque |
| 父 ローズキングダム 2007 黒鹿毛 | 父の父キングカメハメハ 2001 鹿毛 | *マンファス | *ラストタイクーン | *ラストタイクーン |
| 父 ローズキングダム 2007 黒鹿毛 | 父の父キングカメハメハ 2001 鹿毛 | *マンファス | Pilot Bird | Pilot Bird |
| 父 ローズキングダム 2007 黒鹿毛 | 父の母ローズバド 1998 青毛 | *サンデーサイレンス | Halo | Halo |
| 父 ローズキングダム 2007 黒鹿毛 | 父の母ローズバド 1998 青毛 | *サンデーサイレンス | Wishing Well | Wishing Well |
| 父 ローズキングダム 2007 黒鹿毛 | 父の母ローズバド 1998 青毛 | ロゼカラー | Shirley Heights | Shirley Heights |
| 父 ローズキングダム 2007 黒鹿毛 | 父の母ローズバド 1998 青毛 | ロゼカラー | *ローザネイ | *ローザネイ |
| 母 セミニョン 2008 鹿毛 | 母の父マンハッタンカフェ 1998 青鹿毛 | *サンデーサイレンス | Halo | Halo |
| 母 セミニョン 2008 鹿毛 | 母の父マンハッタンカフェ 1998 青鹿毛 | *サンデーサイレンス | Wishing Well | Wishing Well |
| 母 セミニョン 2008 鹿毛 | 母の父マンハッタンカフェ 1998 青鹿毛 | *サトルチェンジ | Law Society | Law Society |
| 母 セミニョン 2008 鹿毛 | 母の父マンハッタンカフェ 1998 青鹿毛 | *サトルチェンジ | Santa Luciana | Santa Luciana |
| 母 セミニョン 2008 鹿毛 | 母の母トリアノン 2000 鹿毛 | *アフリート | Mr. Prospector | Mr. Prospector |
| 母 セミニョン 2008 鹿毛 | 母の母トリアノン 2000 鹿毛 | *アフリート | Polite Lady | Polite Lady |
| 母 セミニョン 2008 鹿毛 | 母の母トリアノン 2000 鹿毛 | アダージオ | *ダンシングブレーヴ | *ダンシングブレーヴ |
| 母 セミニョン 2008 鹿毛 | 母の母トリアノン 2000 鹿毛 | アダージオ | サンデーベスト | サンデーベスト |
| 母系(F-No.) | ソーダストリーム(FR)系(FN:3-e) | ソーダストリーム(FR)系(FN:3-e) | ソーダストリーム(FR)系(FN:3-e) |  |
| 5代内の近親交配 | サンデーサイレンス：S3×M3、Mr. Prospector：S4×M4、Lyphard：S5×M5 | サンデーサイレンス：S3×M3、Mr. Prospector：S4×M4、Lyphard：S5×M5 | サンデーサイレンス：S3×M3、Mr. Prospector：S4×M4、Lyphard：S5×M5 |  |
出典: ↑    ↑    ↑    ↑
Scribes

| --- | --- |
 Scribes showing 'replace' function
開発元:  Lateef Alabi-Oki
初版:  ?
プログラミング 言語:  Python
対応OS:  UNIX系
対応言語:  ?
種別:  テキストエディタ
ライセンス:  GPL
公式サイト:  scribes.sourceforge.net 
テンプレートを表示
Scribes（スクライブス）は、GNOMEデスクトップのテキストエディタ。その他フリーのデスクトップ環境（KDE、Enlightenment、XFCEなど）でも使用できる。
設計思想

仕事の流れの阻害を最小限にすること、おもしろみのない作業を自動化すること、不要な設定変更をなくすこと、シンプルさに基づいた理性的な編集作業を達成することを目標にしている。この目標を達成するために必要のない慣習は守っていない。
特徴

以下に Scribes の特徴の一部を挙げる：
Snippet （スニペット）と呼ばれる動的なテンプレートシステム
自動的に単語を補完する
自動的にカッコを補完、スマートな挿入
自動保存
自動インデント
ブックマーク機能
いくつかの言語のエンコーディングをサポート
ドラッグ・ドロップ
外国語テキストのフルサポート
30 以上の言語のハイライト表示
パワフルな GNOME との連携
ドイツ語、ロシア語、フランス語、イタリア語、ポルトガル語の翻訳
必要なソフトウェア

Scribes を使用するには、以下のソフトが必要：
Yelp
Python
GNOME Python Extras
Scribes は Python により実装されている。