「何をしたいか」を書くだけで ML が動く──宣言的 AutoML ライブラリ AioWay を読み解く
「何をしたいか」を書くだけで ML が動く──宣言的 AutoML ライブラリ AioWay を読み解く
ひとことでいうと
AioWay(エアウェイ)は、機械学習の「何をしたいか」を宣言的に書くだけで、最適なアルゴリズムやモデルを自動的に選んで動かすことを目指す Python ライブラリです。これまでの機械学習開発では、「どのアルゴリズムを使うか」「どの構造が合っているか」を開発者が手動で決める必要がありました。AioWay はその判断を自動化するビジョンを掲げており、SQL(データベースへの問い合わせ言語)のように「何が欲しいか」を書けば残りはシステムが考えてくれる世界を目指しています。ベースは PyTorch(パイトーチ)という人気の深層学習フレームワークで、現在はプレリリース段階(v0.0.*)として活発に開発が進んでいます。機械学習の自動化や新しい抽象化に興味がある方にとって、注目すべき実験的プロジェクトです。
こんな人におすすめ
1. AutoML や自動化の仕組みに興味がある研究者・学習者
「アルゴリズムを自分で選ばなくてよい機械学習」がどのように設計されるのかを学びたい方に向いています。AioWay のコードベースやサンプルを読むことで、宣言的な ML 設計の考え方を実際のコードから理解できます。AutoML の仕組みをゼロから学ぶ教材としても使えます。
2. PyTorch をすでに使っていて、より高レベルの書き方を探している開発者
PyTorch の細かい API に慣れているが、「何をしたいか」だけを宣言できる書き方を試してみたい方に適しています。PyTorch の延長線上にある新しい抽象化として、無理なく学べる切り口です。
3. 説明可能 AI(XAI)や白箱モデルに取り組むデータサイエンティスト
判断根拠がわかるモデルを作りたい方に向いています。データベースのような宣言的な発想を深層学習へ持ち込む試みに共感できる方、ブラックボックスではない AI システムを研究したい方に特におすすめです。
インストール・使い方
AioWay を動かすには Python 3.12 以上 と PyTorch 環境 が必要です。パッケージ管理には PDM(ピーディーエム:Python 専用の依存関係管理ツール)を使います。
初めての方へ: 以下の操作はすべて「ターミナル」(macOS・Linux)または「コマンドプロンプト」(Windows)と呼ばれる、文字で命令を送る画面で行います。コマンドはそのままコピー&ペーストして Enter キーを押すだけです。
Step 1: リポジトリをクローンする
git clone https://github.com/rentruewang/aioway.git
cd aioway
リポジトリ(ソースコードの置き場所)を自分のパソコンにダウンロードします。AioWay はバージョン情報を git のタグから読み取る仕組みを使っているため、zip でのダウンロードや --depth 1 の浅いクローンは避けて、このコマンドで完全に取得してください。
Step 2: PDM をインストールして依存関係をセットアップする
pip install pdm
pdm install
PDM(使うライブラリを管理するツール)をインストールし、AioWay が必要とするすべてのライブラリを一括でセットアップします。pdm install を実行すると pdm.lock ファイルの内容をもとに、動作確認済みのバージョンが自動でインストールされます。
Step 3: サンプルスクリプトを動かす
pdm run python notebooks/hello.py
pdm run python notebooks/modules.py
notebooks/ フォルダ内のサンプルスクリプトを実行します。hello.py では基本的な API の使い方、modules.py では PyTorch モジュールとの連携例が確認できます。pdm run は「PDM が管理する Python 環境の中で実行する」という意味です。
Step 4: テストを走らせる(任意)
pip install nox
nox
nox は複数の Python 環境でテストを自動実行するツールです。このステップは必須ではありませんが、ライブラリの動作確認や開発への参加を検討している方に便利です。個別のテストだけ実行したい場合は pdm run pytest tests/ でも動かせます。
デモについて
AioWay は現在プレリリース段階のため、ブラウザ上で動作するインタラクティブなデモは現時点では提供されていません。API がまだ安定していないことと、PyTorch 環境などのセットアップが必要なことが主な理由です。実際の動作確認は、上の「インストール・使い方」セクションの手順でローカル環境を構築した上で、notebooks/ フォルダのサンプルをお試しください。
動かしてみた
公式リポジトリの構成と pyproject.toml の記述から、動作環境の目安を確認しました。
- Python バージョン: 3.12 以上(
pyproject.tomlに明記) - ディスク容量の目安: PyTorch CPU 版で約 1〜2 GB、GPU 版(CUDA)では 3 GB 以上を見込んでおくと安心です
- OS: Python 3.12 が動く Linux・macOS・Windows であれば基本的に対応しています
- パッケージ管理: PDM が
pdm.lockで依存関係を固定済みのため、再現性の高い環境構築が可能です - git クローンの注意点: バージョン管理に
setuptools-scmを使っているため、タグ情報を含む完全なクローンが必要です。CI 環境など git タグが参照できない場合は、環境変数SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0を設定することで対応できます
notebooks/ フォルダには hello.py・state_dicts.py・fate.py・modules.py・tags.py・attributes.py など複数のサンプルが用意されています。また tests/ フォルダには test_fn.py・test_notebooks.py・test_spaces.py などのテストファイルがあり、期待される動作や設計意図を把握する手がかりになります。
はじめの一歩:ノートブックで設計思想を掴む
AioWay はまず notebooks/ のサンプルを読むのが最も確実なスタートです。以下の順番で進めると理解しやすくなります。
hello.pyから始める: AioWay の基本的な API の使い方が凝縮されています。最初に読むファイルとして最適です。modules.pyで PyTorch との統合を確認する: PyTorch モジュールを AioWay にどう組み込むかが確認できます。既存の PyTorch コードとの関係を把握するのに役立ちます。state_dicts.pyでモデル状態の管理を学ぶ: モデルのパラメータを保存・読み込みする方法が示されています。実用的なユースケースに近い内容です。disable_ops.py/print_torch_ops.pyで低レベル拡張を見る: PyTorch の演算子をフックしたり差し替えたりする仕組みを学べます。カスタマイズや研究目的の方に参考になります。noxfile.pyを確認してテスト環境を把握する: 開発への参加を考えている場合、noxの設定を読むと複数環境でのテスト手順が一目でわかります。- API は変更の可能性あり: プレリリース段階のため、インターフェースは今後変わることがあります。最新の
notebooks/とtests/を都度確認するのが確実です。
活用アイデア
AioWay のビジョンとコードベースから考えられる具体的な活用シーンを紹介します。
- AutoML パイプラインのプロトタイプ開発: 宣言的な記述で複数のアルゴリズムを比較評価するプロトタイプを素早く作れます。「どのモデルがこのデータに合っているか」を自動で試したい場面でのベースラインとして活用できます。
- 機械学習の学習・教育教材: 遅延評価(Lazy Evaluation)やコンパイル型 ML パイプラインの実装パターンを学ぶ題材として最適です。前身プロジェクト
koilaとの比較を通じて、PyTorch の内部アーキテクチャへの理解も深まります。 - ホワイトボックス ML の研究基盤:
disable_ops.pyやprint_torch_ops.pyを参考に、PyTorch の演算子にフックを挿入したり差し替えたりする研究基盤として使えます。説明可能 AI(XAI)の実験環境として応用できます。 - 新しい ML 抽象化の設計実験: 「SQL のように宣言的に書ける機械学習」という設計思想をベースに、自分のプロジェクト向けの抽象化レイヤーを試作する際の参考実装として役立ちます。
- オープンソース開発への入門:
noxによる自動テスト環境やpdm.lockによる再現性の高い環境が整備されており、初めてオープンソースへのコントリビューション(貢献)に挑戦したい方にとって取り組みやすい構成です。
用語とポイント解説
宣言的 ML(Declarative ML)
「どのアルゴリズムを使うか」ではなく「何を達成したいか」を記述することで処理を定義するスタイルです。かんたんに言うと、SQL が「どうやってデータを取るか」でなく「何のデータが欲しいか」を書くのと同じ発想です。AioWay はこの考え方を機械学習に持ち込み、モデルの選択や最適化をシステム側に任せることを目指しています。
AutoML(自動機械学習)
人間が手動で選んでいたアルゴリズムや設定値(超パラメータ)を、コンピュータが自動で探索・最適化する技術の総称です。かんたんに言うと、「どのモデルが一番いいかを機械が自分で探してくれる仕組み」です。AioWay はこの AutoML の考え方を宣言的な記述と組み合わせることをビジョンとしています。
遅延評価(Lazy Evaluation)
計算の実行を、実際に結果が必要になるまで先延ばしにする技術です。かんたんに言うと、「頼まれた計算をすぐにやらず、必要になったときだけ実行する」方式です。AioWay の前身プロジェクト koila がこの仕組みを PyTorch のテンソル操作に適用していました。
PyTorch(パイトーチ)
Meta(旧 Facebook)が開発した、深層学習モデルを作るための人気 Python ライブラリです。かんたんに言うと、「AI モデルを組み立てるための部品箱」です。AioWay はこの PyTorch をベースに構築されており、PyTorch の基本を知っていると理解がスムーズになります。
PDM(Python Dependency Manager)
Python プロジェクトが依存するライブラリを管理するツールで、pyproject.toml という標準形式に準拠しています。かんたんに言うと、「使うライブラリのバージョンを一覧で記録して、誰でも同じ環境を再現できるようにする管理ツール」です。pip より厳密な依存関係のロックができるため、環境の再現性が高くなります。
setuptools-scm
git のタグやコミット情報からパッケージのバージョン番号を自動生成するツールです。かんたんに言うと、「git の履歴を見てバージョン番号を自動で決めてくれる仕組み」です。このため AioWay を動かすには、zip ダウンロードではなくタグ情報を含む完全な git クローンが必要になります。
白箱モデル(ホワイトボックスモデル)
内部の判断プロセスが人間に説明できるモデルのことです。かんたんに言うと、「なぜその答えを出したかを説明できる AI」のことです。ニューラルネットのような「なぜその結果になったかわかりにくい」ブラックボックスモデルの対概念であり、XAI(説明可能 AI)の分野で重視されています。
koila(コイラ)
AioWay の前身となる Python ライブラリで、PyTorch のテンソル(多次元の数値配列)操作に遅延評価を実装したプロジェクトです。かんたんに言うと、「PyTorch の計算を後回しにして効率化しようとしたライブラリ」です。PyTorch 公式の FakeTensor と機能が重なったため開発が終了し、現在は AioWay リポジトリの koila ブランチで参照できます。
nox
Python プロジェクトのテストを複数のバージョンや環境で自動実行するツールです。かんたんに言うと、「いろんな Python バージョンで自動テストをまとめて走らせるスケジューラー」です。noxfile.py に設定を書いておくだけで、環境の切り替えやテストの実行を自動化でき、開発参加のハードルを下げてくれます。
AioWay はまだ開発途上のプロジェクトですが、「何をしたいかを宣言するだけで動く機械学習」というビジョンは、これからの ML 開発のあり方を考えるうえで非常に刺激的な視点を提供してくれます。ぜひ AutoML パイプラインの試作や、説明可能 AI の研究基盤づくりなどに活用してみてはいかがでしょうか。