SlideShare a Scribd company logo
TorchDataチュートリアル解説
連結可能なDataPipeで保守性を高める
自己紹介
● 名前: 西岡 賢一郎
○ Twitter: @ken_nishi
○ note: 西岡賢一郎@研究者から経営者へ (https://note.com/kenichiro)
○ YouTube: 【経営xデータサイエンスx開発】西岡 賢一郎のチャンネル
(https://www.youtube.com/channel/UCpiskjqLv1AJg64jFCQIyBg)
● 経歴
○ 東京大学で位置予測アルゴリズムを研究し博士 (学術) を取得
○ 東京大学の博士課程在学中にデータサイエンスをもとにしたサービスを提供する株式会社ト
ライディアを設立
○ トライディアを別のIT会社に売却し、CTOとして3年半務め、2021年10月末にCTOを退職
○ CDPのスタートアップと株式会社データインフォームドの2つに所属
○ 自社および他社のプロダクト開発チーム・データサイエンスチームの立ち上げ経験
今回のお話
● PyTorchとTorchData
● TorchDataのDataPipe ← 今日一番持ち帰っていただきたいこと
● TorchDataのチュートリアル
PyTorchとTorchData
PyTorch
● PyTorchとは
○ ディープラーニングフレームワークの一つ
○ GPUアクセラレーションを備える
○ 動的計算グラフをサポート
出典: https://pytorch.org/blog/computational-graphs-constructed-in-pytorch/
TorchData
● 2022年3月10日にfunctorchとともにベータリリース
○ TorchData: 柔軟で高性能なデータパイプラインを構築するためのライブラリ
○ functorch: 構成可能な関数変換を追加するライブラリ
● TorchDataが必要となった背景
○ 既存のDataLoaderは多くの機能を備えていて拡張することが難しい
○ 同じようなデータロードを何回も書き直さないといけないことがある
● TorchDataでは、iterDataPipeとMapDataPipeを組み合わせることでデータ
ロードを可能にする
TorchDataのDataPipe
データロードを構成するDataPipe: IterDataPipeとMapDataPipe
● 「再利用可能なローディングツールのPyTorch Dataset」と「実際のコーパ
ス上に構築されたiterator/accessor」の間で混乱が生じている
● Datasetの名前をDataPipeに変え、データロードを構成できるように再利用
● 2種類のDataPipe
○ IterDataPipe: iteratorを作る
○ MapDataPipe: 変換を加えるMapper
● DataPipeを連結することで変換グラフを作ることができる
IO DataPipe
Grouping
DataPipe
Mapping
DataPipe
Splitting
DataPipe
Combining
DataPipe
Mapping
DataPipe
連結のイメージ
IterDataPipeの例
JsonをパースするDataPipe
1. 他のDataPipeを受け取り
2. 新しいDataPipeのためのイテレータ実装
出典: https://github.com/pytorch/data#what-are-datapipes
DataPipeの2つの使い方
DataPipeのメソッドもしくはインスタンス生成でDataPipeを追加可能
メソッド インスタンス
zip_with_mapとMapKeyZipperはどちら
も同じ挙動となる
DataPipeにメソッドを追加
functional_datapipeデコレータを利用して、datapipeのメソッドに登録できる
出典:
https://github.com/pytorch/data/blob/b6ade8f097bc9ac08460cd403034a35daff09cfa/torchdata/datapip
es/iter/util/combining.py#L116
DataPipeが
zip_with_mapメソッド
を使えるようになる
TorchDataチュートリアル
TorchDataチュートリアル
● ライブコーディングでTorchDataのチュートリアルを解説
○ Torch Data チュートリアル: https://pytorch.org/data/main/tutorial.html
● チュートリアルで利用するビルトインのDataPipe
○ FileLister: ディレクトリにあるファイルをリスト
○ Filter: DataPipeに含まれる要素を絞る
○ FileOpener: Fileを読み込む
○ CSVParser: CSVをparseする
FileLister Filter FileOpener CSVParser
関連情報
● 今回は紹介しなかった、その他DataPipe
○ https://github.com/pytorch/data/tree/main/torchdata/datapipes
○ Shuffler, Zipper, HttpReader, S3FileLister, S3FileLoaderなど (未検証)
○ 使い方はDocstringを読めば十分
● 使用したコードhttps://github.com/knishioka/machine-learning-
workshop/tree/main/pytorch/torchdata

More Related Content

PDF
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
PDF
「世界モデル」と関連研究について
PPTX
[DL輪読会]When Does Label Smoothing Help?
PDF
深層生成モデルと世界モデル(2020/11/20版)
PDF
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
PDF
[DL輪読会]Deep Learning 第15章 表現学習
PPTX
【DL輪読会】Dropout Reduces Underfitting
PPTX
Sliced Wasserstein距離と生成モデル
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
「世界モデル」と関連研究について
[DL輪読会]When Does Label Smoothing Help?
深層生成モデルと世界モデル(2020/11/20版)
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
[DL輪読会]Deep Learning 第15章 表現学習
【DL輪読会】Dropout Reduces Underfitting
Sliced Wasserstein距離と生成モデル

What's hot (20)

PPTX
[DL輪読会] マルチエージェント強化学習と心の理論
PDF
研究効率化Tips Ver.2
PPTX
[DL輪読会]相互情報量最大化による表現学習
PPTX
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
PPTX
強化学習 DQNからPPOまで
PDF
ELBO型VAEのダメなところ
PDF
スペクトラルグラフ理論入門
PDF
機械学習におけるオンライン確率的最適化の理論
PDF
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
PDF
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
PPTX
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
PDF
方策勾配型強化学習の基礎と応用
PDF
Control as Inference (強化学習とベイズ統計)
PPTX
[DL輪読会]Pay Attention to MLPs (gMLP)
PDF
SchNet: A continuous-filter convolutional neural network for modeling quantum...
PPTX
【DL輪読会】HyperTree Proof Search for Neural Theorem Proving
PDF
実践多クラス分類 Kaggle Ottoから学んだこと
PPTX
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
PDF
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
PDF
【DL輪読会】A Path Towards Autonomous Machine Intelligence
[DL輪読会] マルチエージェント強化学習と心の理論
研究効率化Tips Ver.2
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
強化学習 DQNからPPOまで
ELBO型VAEのダメなところ
スペクトラルグラフ理論入門
機械学習におけるオンライン確率的最適化の理論
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
方策勾配型強化学習の基礎と応用
Control as Inference (強化学習とベイズ統計)
[DL輪読会]Pay Attention to MLPs (gMLP)
SchNet: A continuous-filter convolutional neural network for modeling quantum...
【DL輪読会】HyperTree Proof Search for Neural Theorem Proving
実践多クラス分類 Kaggle Ottoから学んだこと
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
【DL輪読会】A Path Towards Autonomous Machine Intelligence
Ad

Similar to TorchDataチュートリアル解説 (20)

PPTX
H2Oを使ったノーコードのAutoML
PPTX
Feature StoreのOnline StoreとOffline Storeの違いについて理解する
PPTX
H2O Waveを使ったAIアプリケーション作成入門
PPTX
Amazon SageMakerのNotebookからJobを作成する
PPTX
Amazon SageMaker JumpStart
PPTX
Amazon SageMakerでカスタムコンテナを使った学習
PPTX
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
PPTX
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
PPTX
機械学習の特徴量を管理するAmazon SageMaker Feature Store
PPTX
AutoGluonではじめるAutoML
PPTX
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
PPTX
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
PPTX
Amazon AthenaでSageMakerを使った推論
PPTX
機械学習の技術的負債
PPTX
Amazon SageMaker ML Governance 3つの機能紹介
PPTX
XAI (説明可能なAI) の必要性
PPTX
Amazon SageMaker Studio Lab紹介
PPTX
Amazon SageMaker Canvasを使ったノーコード機械学習
PPTX
未来のカタチ x AI
PPTX
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
H2Oを使ったノーコードのAutoML
Feature StoreのOnline StoreとOffline Storeの違いについて理解する
H2O Waveを使ったAIアプリケーション作成入門
Amazon SageMakerのNotebookからJobを作成する
Amazon SageMaker JumpStart
Amazon SageMakerでカスタムコンテナを使った学習
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
機械学習の特徴量を管理するAmazon SageMaker Feature Store
AutoGluonではじめるAutoML
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
Amazon AthenaでSageMakerを使った推論
機械学習の技術的負債
Amazon SageMaker ML Governance 3つの機能紹介
XAI (説明可能なAI) の必要性
Amazon SageMaker Studio Lab紹介
Amazon SageMaker Canvasを使ったノーコード機械学習
未来のカタチ x AI
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
Ad

More from 西岡 賢一郎 (10)

PPTX
リモートワークで知っておきたい コミュニケーション時の過大な期待
PPTX
リモートワークで意識すべき7つのこと
PPTX
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
PPTX
機械学習プラットフォーム5つの課題とAmazon SageMakerの4つの利点
PPTX
ストリートビューから地域の豊かさを推定
PPTX
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
PPTX
人間の意思決定を機械学習でモデル化できるか
PPTX
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
PPTX
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
PPTX
表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」
リモートワークで知っておきたい コミュニケーション時の過大な期待
リモートワークで意識すべき7つのこと
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
機械学習プラットフォーム5つの課題とAmazon SageMakerの4つの利点
ストリートビューから地域の豊かさを推定
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
人間の意思決定を機械学習でモデル化できるか
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」

TorchDataチュートリアル解説

Editor's Notes

  • #3: こちらが私のプロフィールとなります。 機械学習には、大学時代の研究から携わっており、自分で立ち上げたスタートアップでも機械学習を使ったサービスを提供していました。 プロダクト開発チームやデータサイエンスチームの立ち上げなどもやっています。
  • #4: 今回のお話です。 今回は大きく3つに分けてお話します。 まずはじめにPyTorchとTorchDataについてお話します。 次に、TorchDataの主となる機能のDataPipeについてお話します。 TorchDataのDataPipeの挙動が、今日の発表でもっとも持ち帰っていただきたい内容となります。 最後に、10分程度でTorchDataのチュートリアルをライブコーディングを交えて解説していきます。
  • #6: PyTorchはここにいるみなさんはご存知だと思いますが、ディープラーニングフレームワークの1つとして有名な機械学習ライブラリです。 GPUを使った演算をサポートしており、高速な学習が実現できるので、研究分野で特に人気のようです。 ディープラーニングのフレームワークとしてはTensorFlowも有名です。 TensorFlowとPytorchの違いとしてよく言われるものが計算グラフをどのように作るかです。 TensofrFlowが静的な計算グラフを作るのに対し、PyTorchは計算の条件に合わせて変化させる動的な計算グラフを作成します。
  • #7: 今回お話するTorchDataはPyTorchの1つのライブラリです。 2022年3月にベータ版がfunctorchとともにリリースされました。 簡単にTorchDataとfunctorchを説明すると、TorchDataは柔軟で高性能なデータパイプラインを構築するためのライブラリ、functorchは構成可能な関数変換を追加するライブラリとなっています。 どちらもベータ版で今後APIが変わる可能性もあるということです。 PyTorchを使っている人にとって、TorchDataはDatasetと何が違うのかが気になるところだと思います。 現在、PyTorch Datasetなどデータローダー周りは、非常に多くの機能を担うことが多く、拡張することが難しくなっています。 そして、同じようなデータロードを何度も書き直す必要が出てきていて、無駄な工数を発生させがちです。 そこで、このような問題に対処するために、TorchDataでは、iteratorスタイルのDataPipeとMapスタイルのDataPipeの2つをベースとしたデータの処理機構を組み合わせてデータロードを実現しています。 この2つのDataPipeにより、改変しやすい保守性の高いデータロードを実現するということです。 今回は、このTorchDataで作成されるDataPipeについてデモとともに紹介します。
  • #9: TorchDataは、先程述べたように既存のDatasetが抱える問題を解決するために作られたライブラリです。 具体的には、再利用可能なDatasetと実際のコーパス上に構築されたiterator/accesor