付録A機械学習のためのインフラ入門
本付録では、機械学習にとって有用なインフラツールであるコンテナについて、DockerやKubernetesを取り上げ、簡単に紹介します。ここまで来ると、ソフトウェアエンジニアリングチームへパイプラインを引き渡す段階でしょう。とはいえ、機械学習パイプラインを構築するエンジニアにとっても、DockerやKubernetesの知識は役に立ちます。
A.1 コンテナとは
Linuxは皆、ファイルシステムやディレクトリ構造に基づいています。このようなディレクトリ構造は、あらゆるハードドライブとパーティションを含みます。そして、このファイルシステムのルート(/)から、Linuxのほぼすべての側面にアクセスできます。コンテナは、新規に作成されたより小規模なルートであり、ホスト内で「ミニLinux」として使用されます。これにより、特定のコンテナ専用のライブラリを個別に用意できます。さらに、各コンテナのCPU時間やメモリなどのリソースを制御できます。
Dockerは、コンテナを管理するための使い勝手の良い仮想化ソフトウェアです。Dockerを使うことで、コンテナのビルド、パッケージ化、保存、デプロイを何度も繰り返し行えます。また、開発者はコンテナをローカルで構築し、中央レジストリへイメージを公開できます。これにより、他の人がイメージをプルして、コンテナを即座に実行できます。
依存関係の管理は、機械学習やデータサイエンスでは大きな問題です。RであれPythonであれ、ほぼ常にサードパーティー製のモジュールに依存しています。これらのモジュールは頻繁に更新されており、バージョンが競合するとパイプラインが実行不可能になる変更が引き起こされる可能性があります。このような問題は、コンテナを使うことで回避できます。コンテナを使えば、正しいモジュールのバージョンと一緒に、データ処理のコードをあらかじめパッケージ化しておけるからです。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access