どうも!北海道大学の大学院でAI(画像処理)を研究しているヒグマです
今回は、プログラミングやAI開発を始めたばかりの方向けに、「環境構築」のお話をしていきます。
私自身、最初はよく分からないまま「Anaconda」を使い始め、研究が進むにつれて「Docker」も使うようになりました。これまでGTX 1650、RTX 3060、RTX 4060、そして最近だと最新のRTX 5060でも環境を作って研究をしています。
そんな私の経験から、これから環境構築をする方に向けた結論を先にお伝えします
理由は非常にシンプル。Anacondaの方が、圧倒的に早く「本題」に入れるからです。
Anacondaは、とにかく始めるのがラク!
Anacondaを使って環境を作る場合、基本的には以下のコマンドだけで済みます。
conda createで環境の箱を作るconda activate 環境名でその箱を有効にする
基本は本当にこれだけです。
あとはPyTorchやOpenCVなどをインストールしてしまえば、すぐに使い始められます。一度環境を作ってしまえば次からは activate するだけでサクッと使えるので非常に手軽です。
画像処理を始めたばかりの頃ってやりたいのは「環境構築そのもの」ではありませんよね。
「とりあえずYOLOを動かしてみたい」
「OpenCVで画像を読み込んでみたい」
「GPUを使ってサクッと学習させてみたい」
こういうことのはずです。 その点Anacondaは目的を達成するまでの道のりが圧倒的に短いです。私自身も最初の頃はずっとAnacondaを使っていましたし今でも「ちょっと新しいモデルを試したいだけ」という時は、サクッとAnacondaで作る事が多いです。
Dockerを初めて使った時の本音:「普通に面倒くさい」
もちろんDockerも非常に便利です。
実際、私も今はバリバリ使っています。 ただ、最初に触った時の感想は「普通に面倒くさいな……」でした。
DockerをインストールしてWSL2を用意して、Linuxのコマンドを叩いて……。
ただ画像処理のプログラムを動かしたいだけなのに、その前に「新しく覚えなきゃいけないこと」が多すぎるのです。
特にこれまでWindowsしか触ってこなかった状態だと、「えっ、今いじってるファイルってどこにあるの? Windows側? WSL側? それともコンテナの中?」 と頭の中が迷子になりやすいです。
慣れてしまえば大したことはないのですが最初は構造がかなりややこしく感じます。
「画像処理のコードの書き方」を必死に覚えようとしている時期に、Linuxの知識やDockerの仕組みまで同時に詰め込む必要はないかな、ましてや研究初心者には入れる必要ないかなと個人的には思います。
Dockerの強みは、最初の頃はあまり活きない
Dockerの最大のメリットは「環境を完全に再現できること」です。
自分のPCで動いた環境を、他の人のPCやサーバーでも全く同じように動かせる。研究室でのチーム開発などでは、これが凄く便利です。
ただ画像処理を始めたばかりの頃って、そもそも他人に自分の環境を配る機会がほとんどありません。
自分のPCでYOLOが動けばいい。OpenCVが動けばいい。PyTorchでGPUが回ればそれでいい。 まずはそれで十分なんです。
この初期段階で頑張ってDockerの「再現性」を取りにいっても、正直そこまで恩恵を感じられないと思います。
だったら最初は直感的に使えるAnacondaでいい。 Dockerは必要に迫られた時に覚えればいいのです。
Dockerを使い始めるのは仮想環境に慣れてからで遅くない
では、いつDockerに乗り換えるべきか? 私が「ここはDockerを使った方がいいな」と思うのは、例えばこんな場面です。
研究室で、複数人が同じプログラム・環境を共有する
最新の論文のコード(特殊な環境)を再現して動かす
手元のPCで作った環境を、そのまま大学の強いサーバーに持っていく
ここまで来るとDockerがめちゃくちゃ便利になります。 特に研究をしていると「自分のPCでは動いたのに、研究室のPCではエラーが出る」という怪奇現象が普通に起きます。
Pythonのバージョン違い、PyTorchの互換性、CUDAのバージョンのズレ……。こういう壁にぶつかった時に初めて、Dockerのありがたみが身に染みて分かります。
逆に言えばこの壁にぶつかってからDockerを勉強し始めても、決して遅くはありません。
GPUを回すだけなら、Anacondaでも普通にできる
「でも、AIでGPUをガッツリ使うなら最初からDockerの方がいいのでは?」 と思う方もいるかもしれません。
結論から言う、自分のPCで普通にGPUを使うだけなら、Anacondaでも全く問題ありません。
私はこれまで、GTX 1650、RTX 3060、RTX 4060、そしてRTX 5060と、様々なグラボで環境を作ってきました。
基本的にはAnacondaで環境を作り、そのGPUに対応するバージョンのPyTorchをインストールすれば普通に使えます。
GTX 1650〜RTX 4060あたりなら、今ならそこまで苦労せずに構築できるはずです。
⚠️ 少し注意が必要なのが、最新の「RTX 50シリーズ」です。
新しいGPUなので、古いPyTorchやCUDAだとうまく認識されず、エラー沼にハマる場合があります。ただ、私もRTX 5060で環境を作りましたが対応しているバージョンを正しく選べばAnacondaでも問題なく使えました。
RTX 50シリーズを使っている方向けの具体的な手順(そのままコピペで動くコマンド)は別の記事にまとめるので、該当する方はぜひ参考にしてみてください!
まとめ:最初から「完璧な環境」を作らなくていい
画像処理やAIの勉強を始めたばかりの頃は、
「Dockerを使った方がいいのか?」
「WSL2は必須なのか?」
「仮想環境は何がベストなのか?」
「CUDAのバージョンはどれにするべきか?」
と、色々なことが気になって調べまくってしまうと思います。
私も昔はそうでした。 でも今振り返って思うのは、「最初から完璧な環境を作る必要なんて全くない」ということです。
まずは、とりあえず動かす。 YOLOを動かしてみる。画像を読み込んでみる。手元のGPUで学習が回る感動を味わう。
まずはそこまで、最速で辿り着いてみてください。
環境構築だけで1日、2日と潰れてしまうと、普通にAIをやる気がなくなります。
環境構築は目的ではなく、あくまで「画像処理を始めるための準備体操」です。だからこそ最初はできるだけラクな方法を選んでいいんです。
Dockerは、研究が進んで「必要になった時」に覚えれば大丈夫。
まずはAnacondaでサクッと環境を作って、AI開発の楽しい部分に飛び込んでいきましょう!
#高専 #研究 #AI #Python #Anaconda #Docker #環境構築 #初心者向け