
会社は機械学習ワークステーションを購入し、私にその実行と保守の責任を任せました。
目標: 独自の ML アプリケーションを開発し、世界中のオフィスがワークステーションに接続して独自のモデルをトレーニング/実行できるようにします。また、他のグローバル チームが分類モデルとオブジェクト検出モデルのトレーニングを開始できるように、標準のトレーニング フレームワークも設定します。
開発言語: Python
ワークステーションの仕様:
- ウブントゥ 18.04
- GPUドライバーと一般的なMLライブラリはすべてプリインストールされています
- インテル Core i9-9920X、4x RTX 2080 Ti
- 128 GB RAM、2 TB NVMe + 2 TB SATA SSD
現在の計画では、すべてのユーザーに異なるユーザー アカウントを設定し、各自のアカウントに SSH 接続します。ただし、これが機能するかどうかはわかりません。ユーザーが異なるライブラリ バージョンなどを望む場合はどうなりますか?
Docker コンテナは最適な方法でしょうか? この方法なら、誰もが自分の隔離された環境を持ち、自由に好きなように設定できます。最近、Python 仮想環境についても学びましたが、これが今のところ最も簡単な解決策のように思えます。
私はこの分野での経験があまりなく、まだ始めたばかりです。皆さんの経験や提案を共有してください。また、追加の詳細が必要な場合はお知らせください。よろしくお願いします。
答え1
Python 仮想環境は、まさにあなたのユースケースのために作られています。こうすることで、すべてのプロジェクトに Python パッケージの依存関係ができるので、グローバル インストールやバージョンの不一致を回避できます。
各ユーザーは独自のシステム アカウントを持ち、1 つ以上の仮想環境にアクセスできます。
プロジェクトごとに 1 つの仮想環境を考慮する必要があります。
さらに、pyenv複数の Python バージョンで作業/切り替えができるようになります。
また、ここでの唯一の欠点は、追加のディスク容量が必要になることです。
答え2
docker も可能性としてはありますが、構成のオーバーヘッドが大きすぎる可能性があります。
しかし、conda 環境おそらく解決策となるでしょう。これにより、異なる (Python) ライブラリが互いに隣接する分離された環境で共存できるようになります。最も簡単なのは、システム全体に Miniconda をインストールし、誰もが必要に応じて独自の conda 環境を作成できるようにすることです。