更新履歴#
2024-05-22#
- 「Dockerコマンドを実行するユーザーをdockerグループに追加」を追記しました。
mdxは大学・研究機関で共創する産学官連携のためのデータプラットフォームです。
https://mdx.jp/
今回は、mdxの仮想マシンを使用して、NDL古典籍OCRを実行してみます。
https://github.com/ndl-lab/ndlkotenocr_cli
プロジェクトの申請#
今回、プロジェクトタイプは「お試し/Trial」を選択しました。

「お試し/Trial」では、1つのGPUパックが割り当てられました。

仮想マシンの作成#
デプロイ#
今回は、「01_Ubuntu-2204-server-gpu (Recommended)」を選択しました。

デプロイ前の画面では、以下のように設定しました。パックタイプを「GPUパック」、パック数を1としました。

公開鍵については、ローカルPCで以下のように作成しました。
その後に作成されたid_rsa.pubの内容を貼り付けました。
その後、仮想マシンのデプロイが完了するまで少し待ちます。
SSH接続のためのネットワーク設定#
以下の動画を参考に進めることができました。
https://youtu.be/p7OqcnXBQt8?si=E5JtC-xnrc5ZQYo_
まず起動した仮想マシンのサービスネットワーク1のIPv4アドレスを控えておきます。

次に、ネットワークタグから「DNAT」を追加しました。「転送元グローバルIPv4アドレス」は自動入力され、「転送先プライベートIPアドレス」に先ほど控えておいたサービスネットワークのIPv4アドレスを入力しました。

次に「ACL」を追加しました。動画にならって、以下のように設定しました。
特定のIPアドレスからのみアクセスする場合、以下のように設定しました。

一方、セキュリティの観点から、無制限に任意のアドレスからのアクセスを許可するのはリスクが伴いますが、以下のように設定することで、任意のアドレスからssh接続できるようです。

接続を試す#
DATで追加した転送元グローバルIPv4アドレスを使用します。初期ログイン後、パスワードの変更が求められるので、変更します。
VS Codeで接続する#
その後の操作は、必須ではありませんが、VS Codeの拡張機能である「Remote Explorer」を使いました。
仮想マシン内での作業#
GPUの確認#
Dockerのインストール#
以下のページの手順に沿って、Dockerをインストールしました。
https://docs.docker.com/engine/install/ubuntu/
Hello from Docker!と表示されれば成功です。
NVIDIA Docker Runtime#
(他にもよい方法があるかもしれませんが、)NVIDIA Docker Runtimeをインストールします。以下を実行しました。
Dockerコマンドを実行するユーザーをdockerグループに追加#
ユーザーをDockerグループに追加
システム再起動
NDL古典籍OCRのインストール#
ここから、NDL古典籍OCRのセットアップを進めます。
以下は少し時間がかかります。
次に、コンテナの起動を行いますが、ホストマシンのディレクトリをマウントするように変更しておきます。
そして、以下を実行します。
コンテナに入ります。
0
推論の実行#
画像のダウンロード#
ディレクトリを作成して、「源氏物語」(国立国会図書館所蔵)をダウンロードします。
1
OCRの実行#
ダウンロードした画像に対して、OCRを実行します。
まず、出力フォルダを作成しておきます。
2
実行します。
3
結果、ホストマシンの/home/mdxuser/tmpdir/outputフォルダに認識結果が格納されます。
その他#
コンテナの停止#
4
仮想マシンのシャットダウン#
5
まとめ#
mdxやNDLラボのおかげで、機械学習を用いた研究に取り組みやすい環境が整っていると感じました。関係者の方々に感謝申し上げます。