【Gradient】無料のGPUクラウドサービス

## 背景
Google Colaboratoryを使っていて「Colabでの使用量上限に達したため、現在GPUに接続できません。」と表示されて制限がかかってしまったため、他に良いGPUクラウドサービスがないか探していた。そのときに「[Gradient](https://gradient.run/)」というサービスをみつけたのでここで紹介する。

すぐに使う場合は「[実際に使ってみる](https://qiita.com/probabilityhill/items/e855d26f40c6bac97f16#%E5%AE%9F%E9%9A%9B%E3%81%AB%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B)」にジャンプ。


### ちなみに
以下のようなコードで GitHub 上の `ipynb` ファイルを Gradient で実行するボタンを作ることができる。
```markdown:markdown
[![Gradient](https://assets.paperspace.io/img/gradient-badge.svg)](https://console.paperspace.com/github/username/reponame/filename.ipynb)
```
[![Gradient](https://assets.paperspace.io/img/gradient-badge.svg)](https://console.paperspace.com/github/probabilityhill/try-gpt2/try_gpt2.ipynb)

## Gradientについて
[Gradient Docs](https://docs.paperspace.com/gradient/)より一部引用・翻訳する。
### Welcome to Gradient!
> Gradientは、機械学習モデルの開発、トレーニング、デプロイを簡素化する[Paperspace](https://www.paperspace.com/)製品です。あなたが**学生**、**研究者**、または**専門家**であるかどうかにかかわらず、Gradientはあなたの仕事をより簡単にすることができます。[Welcome to Gradient](https://www.youtube.com/watch?v=b9pnSHP0eIs)を視聴して詳細を確認するか、[アカウントを作成](https://console.paperspace.com/signup?gradient=true)して開始してください。

### What's in Gradient?
> **Notebooks**：Notebookを作成してコーディングを始めれば、すぐに解析が始められます。ノートブックは全てのユーザーに適しており、GradientのGPUハードウェア、データサイエンスに対応した様々なソフトウェアが入ったコンテナ（または自分のソフトウェアを持ち込む）、JupyterやColabに似た人気のあるノートブックインターフェースを使用して問題を探求し解決する柔軟性に簡単にアクセスすることができます。
**Workflows (advanced)**：ワークフローは、大規模なプロジェクトを適切に整理し、MLOpsを実行し、生産に移行したいユーザーのために、データフローのすべてのステップの厳密な記述を提供します。Gradient ActionsとYAMLマークアップ言語の組み合わせにより、再現性の高いエンタープライズクラスのデータサイエンスがすべての人に提供されます。
**Deployments (advanced)**：モデルは、使えなければ意味がありません。Gradient Deploymentsは、モデルを本番環境に導入するために必要なステップを完了させ、あなたとあなたの会社のためにビジネス価値を生み出すことができるようにします。TensorFlowのような一般的なMLフレームワークをサポートし、ONNXやカスタム記述による汎用モデルもサポートします。

### How does it Work?
> すべての作業は、Projectの一部として行われます。Projectを作成し、その中でNotebook、Workflow、Deploymentを開始します。解決したい問題ごとに新しいProjectを作成してください。
Projectは単体で作成することも、GitHubのリポジトリにリンクさせることもできます。シンプルさが必要な場合は、Notebookを含むstandalone projectが効果的です。もっと整理したいときは、Gradient Workflowsを使ったリポジトリにリンクされたProjectで、変更時に再実行をトリガーして、すべてを一貫した状態に保つことができます。これはDeploymentにも有効です。
Notebook、Workflow、Deploymentはすべて[Gradient machine instances](https://docs.paperspace.com/gradient/more/instance-types)にアクセスでき、CPUとGPUハードウェア（分散を含む）、そしてオーケストレーションされたコンテナ化ソフトウェアの利点を、ユーザーが設定することなく提供することができるのです。
ユーザーは、グラフィカル・ユーザー・インターフェース、ターミナルのコマンドライン、またはAPI/SDKを介したコードからのプログラムによってGradientにアクセスすることができます。
その他の機能としては、チームでのコラボレーション機能、Gradientが管理するストレージ、Amazon S3などの外部データへのアクセスなどがあります。すべてがバージョン管理され、再現可能です。
Gradientの詳細とその動作については、[Core Concepts](https://docs.paperspace.com/gradient/get-started/core-concepts)を参照してください。

## プラン
現時点でのプランはこのようになっている（最新情報は[こちら](https://gradient.run/pricing)）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/bbe1769a-4c31-3665-60c4-c4cdc65ea8ee.png)

## 無料プランの特徴
+ 複数人で使えない
+ Projectは公開される
+ Project数：5
+ ストレージ：5GB
+ Free-CPU：C4 CPU machine
+ Free-GPU：NVIDIA M4000 GPU
+ 6時間で自動シャットダウン
+ 1時間非アクティブで自動シャットダウン
+ 同時実行可能job数：1
+ 無料のマシンが利用可能になるまでの間、保留になる可能性がある

## 実際に使ってみる
### アカウント登録
[料金ページ](https://gradient.run/pricing)にアクセスし、FREEの「Get Started」をクリック。
Googleアカウント、GitHubアカウント、またはE-mailアドレスで登録する。
### Projectの作成
「CREATE A PROJECT」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/07cbc0fe-23fb-171f-3b63-7642e67c5445.png)
適当に名前をつけて「CREATE」に進む
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/977bb465-78ca-d56c-1e49-17d99f683f60.png)
### Notebookの作成
「CREATE」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/0c1e8c05-59a1-74e0-e5de-58d0ed7f7e35.png)
用途に合わせてテンプレートを選択する。ここでは「PyTorch」を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/43712bd8-ee82-9495-5ffc-67b0080cd4d2.png)
テンプレートを選択したらスクロールして「START NOTEBOOK」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/e2d72ce7-64db-2115-bb9d-b09255438b35.png)
`quick_start_pytorch.ipynb`に詳しい説明が書かれている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/04820e53-a98c-78d9-5790-10c55f06b3fb.png)
画面下部のアイコンは、左から「削除」「ファイルのアップロード」「新規Notebookの作成」「新規ファイルの作成」「新規フォルダの作成」となっている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/b280da9f-12f8-8789-7e5f-7c4bbb934603.png)
新規Notebookを作成し、名前を適当に設定する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/052211ee-035c-ddb2-16df-fb5e58ad9f86.png)
### コードの実行
「Add code」をクリックして`print("ok")`と入力する。「Run」を押して実行し「ok」と出力されることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/7b2020c2-eb47-bec2-3d8a-987bcd0d55aa.png)