Colab + GitHubでコードをバージョン管理する方法

こんにちは、GMOアドマーケティングのS.Rです。
Colab はGoogle より提供されている人気の無料データ分析クラウドサービスです。Colab を使ってTensorFlow,Keras などよく使われている機械学習のツールを利用できるので機械学習エンジニアにとってとても便利なツールです。ただ Colab のinstance が8時間しか動けないのでコードのバージョン管理が混乱する可能性が高いです。
今回はGitHub でColab のコードをバージョン管理する方法を皆さんへ紹介させて頂きます。  

全体の流れ

Colab+GitHubコードのバージョン管理の流れは下記になります。

GitHubのrepoを作成

GitHubのaccountにログインして新しいprivate repoを作成します。今回は例としてcolab_testのrepoを作成しました。  

Colabでssh keyを作成

下記のコマンドでkeyfileを作成します。
今回は例としてfilenameをcolab_test, passhraseをemptyのままkeyfileを作成しました。
作成されたkeyfileの実行権限の設定も忘れないようにしてください。
作成されたkeyfileを~/へコピーしてdownloadしましょう。
colabのinstanceがresetされたらこのkeyfileをuploadして利用してください。 uploadしたkeywordを/root/.ssh/へコピーし実行権限の設定も必要です。

GitHubでkeyを登録 

先に作成されたkeyのpublic keyをprint outしてGitHubへ登録してください。

GitHubへsource コードを追加

hellocolab.pyを追加し、下記のコードを入れましょう。

ColabでGitHubからコードを読み込む

下記のコマンドでコードを読み込みます。 実行の結果は下記です。

source codeを変更してGitHubへ提出

hellocolab.pyにコードを変更してcommit/pushしましょう。

Colabで変更されたコードを実行

git pullでコードを更新できます。下記のコマンドで最新のコードを実行できます。 実行した結果は下記です。

まとめ

今回の例でcloneするプライベートリポジトリのソースコードにAPIキーなどのシークレット情報が含まれ内容に気をつけてください。 機械学習エンジニアとしてColabとGitHubは日々の業務によく使われているものです。もし今回のブログが皆さんの分析業務のお役に立てれば幸いです。

注意点:cloneするプライベートリポジトリのソースコードにAPIキーなどのシークレット情報が含まれないように気をつけてください。