2
3

More than 1 year has passed since last update.

データサイエンスを始める環境構築方法

Posted at

はじめに

昨今の人工知能ブームに影響を受けて、様々な場面で機械学習を利用する動きが活発です。
自分で高性能なGPU搭載コンピュータを準備したり、Amazon EC2のようなクラウドサービスを利用したりと、方法は人それぞれだと思いますが、いずれにせよ必要なソフトを動かしたり、プログラムを動作させるための環境構築をするのが地味に手間だったりします。
先日、データサイエンスに必要な基本ツールなどをまとめて再セットアップする機会があったので、ついでに次回以降は自動化できるようシェルスクリプトを走り書きしたので、この場を借りて紹介しておこうと思います。
具体的にインストールするソフトは下に挙げています。
一つ一つは何番煎じか分からないようなメジャーなソフトなので、調べればそこら中にインストール方法の説明サイトが転がってると思いますが、個別にインストール方法を調べる手間を省くという点で需要があればいいなと思ってます。
あるいは「インストールしたいのにエラーが出て引っかかった!」なんていう方の参考にもなれば幸いです。
とくにバイオ系の研究室で、次世代シーケンス解析や機械学習、一般化線形モデルのような応用的な統計手法の利用などを始めるための、最初の環境構築に使えるんじゃないかと思います(なぜか異様に具体的でニッチ...)。
※なお、このスクリプトはOSがUbuntu18.04で、NVIDIA製のGPUのGPUの使用を前提にしています

テスト環境

インストールしたマシンは以下のようなシステムになっています。

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.6 LTS"

NVIDIA製GPUの型番は以下のものです。

$ lspci | grep -i nvidia
03:00.0 VGA compatible controller: NVIDIA Corporation GK110GL [Quadro K5200] (rev a1)

インストールされるソフトウェア

以下のソフトと、そのインストール・実行に必要な解凍・圧縮ソフト、画像・動画ファイル用のライブラリなど(*1)がインストールされます。

ソフト名 webサイト 説明・主な用途
NVIDIA GPUドライバ link NVIDIA製GPUを活用するのに必要
git link コマンドからGithubリポジトリを利用
Clang link C系で書かれたソフトのコンパイル *2
CMake link C系で書かれたソフトのコンパイル・インストール手順を簡略化
Perl link perlスクリプトの実行用
GNU Fortran link Fortranが必要なプログラムの実行用
CUDA+CuDNN link NVIDIA製GPUを利用した機械学習用 *3
Python3(+pip)(+モジュール *4) link Ubuntu 18にプリインストールされているPythonが少し古いので更新 *5
OpenJDK link JAVAのプログラム・ソフトを動かすのに必要
Docker(+NVIDIA Docker) link Docker *6 上で動くソフトを利用するため
MySQL+SQLite link,link SQLデータベースの構築
Node+npm link npmでインストールするタイプのソフトを利用(+Expressで簡易webサーバー運用)
R link 統計処理、グラフ作成などに利用
Graphviz link グラフ(グラフ理論の方)作成に利用
OpenCV link 画像や動画の処理に利用
FFmpeg link 作成した動画の編集や別フォーマットへのエンコードに利用
cURL link コマンドラインでFTPやHTTPのアクセス
cifs link NASをマウントして利用したい場合に必要
clamAV link セキュリティ用 *7
doxygen link 自分の書いたコードのドキュメント作成
mozc link 日本語入力用 (英語版Ubuntuデスクトップインストール時)
OpenSSH(server)+ufw link SSHサーバのインストールと起動、ファイアウォールの設定と稼働 *8

*1 具体的にインストールされるものは後述のスクリプトの54-62行目を直接確認してください。
*2 UbuntuにはGCCが入っていると思うので必須ではないですが、経験上clangの方が高速なバイナリが出来たことがあったので入れるようにしています。
*3 CUDAのパッケージとCuDNNのソースコードは事前にダウンロードしておく必要があります。詳細は下の方法で説明しています。
*4 インストールされるPython モジュールは下表に示しています。
*5 Python 3.7が入るようになっています。
*6 Dockerの詳細については本家のトップページにあります。日本語の解説はudemyなどにあります。
*7 別のセキュリティソフトを入れていればインストールしなくて大丈夫です。
*8 リモート操作を想定しているので、SSH serverを動かすようにしています。コンピュータ本体を直接操作して使用する場合は不要です。

インストールするPythonモジュール一覧

名称 説明・主な用途
numpy 様々な数値計算、ベクトル、行列処理
pandas データ処理
matplotlib グラフ、プロット図の作成と描画
scikit-learn 機械学習
hmmlearn 隠れマルコフモデルの利用
umap-learn UMAP埋め込み図の作成
tensorflow 機械学習用ライブラリの利用、kerasの利用
torch 機械学習フレームワークPyTorchの利用
openpyxl PythonでExcelファイル操作
python-docx PythonでWordファイル操作
python-pptx PythonでPowerPointファイル操作
reportlab PythonでPDFファイル作成
graphviz Pythonでグラフ図作成
selenium Webアクセス
beautifulsoup4 htmlデータ解析

方法

Linuxの使用経験が少ない人向けに基本から書いておきます。

基本システム導入

コンピュータにUbuntu18.04をインストールしていることが前提です。
Ubuntuの導入方法はウブンログさんの記事が分かりやすいと思います。
少し古い18を入れているのは、Google Colabというサービスと環境を近づけたかったからです。

コマンド操作

【ターミナル】を起動して、コマンドを入力しENTERを押します。
起動方法が分からない場合はこちらの記事などを参照すると分かりやすいと思います。
コマンドの入力ですが、例えば以下のような書き方をしてあった場合、"$"は無視して、それ以降の文字(Command...)をターミナルにコピペしてENTERを押します。

$ Command...

本題:各ソフトのインストール手順

1. インストール用スクリプトのダウンロード

以下のコマンドで、私のGitHubのリポジトリから、"multiple_installer.sh"をダウンロードできます。

$ wget https://raw.githubusercontent.com/YujiSue/GeneralScripts/main/multiple_installer.sh

1.5 ダウンロードしたスクリプトの改変 (オプション)

上でダウンロードした"multiple_installer.sh"の中身を必要に応じて改変してください。

インストールするソフトの選別

初期の環境構築を念頭に置いているのでGPUドライバなどは強制インストールになっていますが、他のソフトは13行から33行目まで並んでいる、inst_XXX=trueという文のtruefalseに書き換えればインストールされなくなります。
自分には必要ないと思うソフトがあれば、あらかじめ書き換えてください。

バージョンの指定

CMakeとOpenCVはバージョンに依存して動かないソフトもあるので、必要に応じて自分でバージョンを指定できるようになっています。
デフォルトでは、CMakeがv3.22.5, OpenCVはv4.5.5がインストールされるようになっています。
変更したい場合は、"multiple_installer.sh"の36-37行目の数値を書き換えてください。

ダウンロード先の指定

"multiple_installer.sh"の44行目で、インストールのためにダウンロードしたファイルの保存先を【ダウンロード/Downloads】フォルダに指定しています。
ストレージの空き容量の関係などで、ダウンロード先を変更したい場合は、この行の**TEMPORARY=**以降を、適宜別のフォルダのパスに置き換えてください。

2. CUDAのパッケージとCuDNNのソースコードをダウンロード

NVIDIのGPUを演算に利用する上で必須のCUDAとCuDNNですが、搭載しているGPUによってインストール可能なバージョンが異なります。詳しくはこちらを参照してください。

この制約上、あらかじめ (1)使用するCUDAのバージョンを指定し、(2)自分の環境にあったCUDAパッケージと、(3)CuDNNソースコードをダウンロードしておく仕様にしてあります。

(1) バージョンの指定は、"multiple_installer.sh"の38, 39行目を書き換えて行います。デフォルトではCUDA v11.5と、それに合わせたCuDNN v8.3.1.22をインストールする想定になっています。

(2) CUDAのUbuntu用パッケージは、ここからダウンロードできます。OSを選んでいくとダウンロードできる ~.deb というファイルが目的のファイルです。
デフォルト設定のままCUDA11.5を利用する場合は、下記のコマンドでダウンロードできます。

$ wget https://developer.download.nvidia.com/compute/cuda/11.5.1/local_installers/cuda-repo-ubuntu1804-11-5-local_11.5.1-495.29.05-1_amd64.deb

(3) CuDNNのソースコードをダウンロードするには、ここからダウンロードサイトに進む必要がありますが、NVIDIAのアカウントが必要です。
アカウント作成は無料なので、持っていない方はアカウントを作ってダウンロードをしてください。
ログインしたら、CUDAのバージョンに合わせたCuDNNのソースコードをダウンロードしてください。
デフォルトの設定を利用する場合は "cudnn-linux-x86_64-8.3.1.22_cuda11.5-archive.tar.xz"というファイルをダウンロードすることになります。

最後に、取得した両ファイルは、"multiple_installer.sh"の44行目で指定しているフォルダに保存してください。
デフォルトでは、【ダウンロード/Downloads】フォルダが指定されています。
※バージョンや保存先が食い違うと、上手くスクリプトが働かないのでご注意ください。

3. "multiple_installer.sh"をbashで実行

以下のコマンドで実行します。

$ bash multiple_installer.sh

最初に一度だけパスワードを聞かれるので(内部でsudoを実行するため)、ログイン用に設定したパスワードを入力して、ENTERキーを押してください。
以後は、ひたすら待ちです。

4. [オプション]ダウンロードしたファイルの削除

$ rm multiple_installer.sh

参考にしたサイト

2
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3