vast.aiを使ってDeepSeek-R1-Distill-Llama-8Bをセルフホストしてみる
概要
今回の記事は、vast.aiというGPUレンタルサービスを使ってDeepSeek-R1-Distill-Llama-8Bをセルフホストする手順を説明したものです。GPUを時間単位でレンタルすることができないか探していたら、vast.aiというのがあった。8Bなら1時間あたり0.069ドル(約10円)という低価格でGPUを利用でき、OllamaというLLMモデル管理ツールを使って簡単にデプロイできます。実験の結果、8Bモデルでも中国語が混じるものの、ある程度の応答が得られることがわかりました。
今回の記事を見て使ってみようと思った方がいればリファラルコードからいってもらえるとありがたいです!!!
https://cloud.vast.ai/?ref_id=200495
登録する
On-demand Pricingをクリック
SIGN INを押す
アカウント作成
作成されたらお金をデポジットする。使えるようになったけど、まず何しよう?
これで準備が整った。 実際の使い方がまだイメージしづらいので、ドキュメントを読みながら進めていくことにした。
DeepSeekをホスティングしてみる
DeepSeekを実際にself-hostしてみるのが色々とイメージつきそうだからやってみる。
これがそのドキュメント。
https://docs.vast.ai/ollama-webui
さて、このドキュメントを読みながら様々な疑問が浮かんできます。Ollamaとは一体何なのか?GPUのスペックはどう見るべきか、大容量のメモリは何のために必要なのか。サンプルではRTX4900を2台使用するようですが、これらのインスタンスをどのように並列管理しているのか。そもそも、なぜGPUがこれほど重要なのか。
なので、手を動かす前に少し関連情報を漁ることにした。
Ollamaについて調べてみると以下がわかりやすそうで、実際にわかりやすかったです。
https://zenn.dev/hellorusk/books/e56548029b391f/viewer/intro2
Ollamaは、LLMのモデルを簡単に切り替えて使えるツールだと理解しました。
GPUは大規模なLLMモデルの実行に必要で(行列計算が得意なため)、CUDAなどのツールを使って並列処理を実現しています。
使う分にはこの程度の理解で十分そうです。
もう少し知りたい内容としては、各モデルが必要とするGPUのスペックがどれかです。
これがわからないと、動かしたいモデルでどのインスタンスを選ぶべきかわからない。
ただ、これはその都度Chatgptとかに聞くようにします。慣れたらわかってくるだろう。
8Bで実験してみる
Ollamaのテンプレートを使う
今回は動かすというのを目的としているので、DeepSeek-R1-Distill-Llama-8Bの小さめのモデルでやることにする。(チュートリアルでは、deepseek-r1:70bとなっていた。)
調べたところ、DeepSeek-R1-Distill-Llama-8Bの場合、目安としては以下のスペックがあればいい。
- GPU VRAM: 16GB程度のGPU(例えば、RTX 3060 12GBなどで余裕があれば動作するが、最適なパフォーマンスを得るには16GB以上推奨)
- システムRAM: 少なくとも16GB以上
- ディスク容量: 10GB以上の空き容量(モデルファイル自体は約4.9GB)
RTX 3060でVRAM16G以上とかないか?と調べたけど、どうも組み合わせは固定っぽい。
まあ、遅くてもいいのでこれでやってみる。(結果的にAPIのレスポンスだと全然早かった)
設定としては以下でやるようだ。
ディスクスペースが10G以上なので、こんな感じ。(スライダーうまく10Gに合わせれなかった。)
GPUは以下のように探しました。
RTX3060にして、価格順にソートしました。1時間あたり0.069ドル!(10円くらい)安い!
一番上のをRENTしたら、以下のような画面が出てきた。
Deployする。
INSTANCESで確認できるみたいだ。
LOADINGってなってますな。
ここクリックしたらもう少し情報が出てきた。
OPENとボタンの表記が変わったので繋がったみたいだ。
OPENボタンを押すとダッシュボードが開いた。
This will initiate the Instance Portal with links to all the services running on the instance. Click the “Open WebUI” Link.
とあるので、以下をクリック
こんな画面が開いた。
Get startedでユーザ作成画面が出ました。(スクショ撮るの忘れた。)
内容はこのサーバだけで使うだけだし、適当に入力しました。このインスタンスが消えたら消えるはずなので。
Adminユーザが作成されました。
次はモデルのダウンロードです。
ドキュメントは以下の通り。
Model Download
まず、管理者パネル
モデルタブをクリックとのこと。なくない?
設定からモデルに行ってそこからダウンロードするようだ。
モデルの名前はここでわかるみたい。
https://ollama.com/library/deepseek-r1:8bで確認しました。(なんかうまくいかない瞬間があったので、一旦インスタンス止めて再度1.5Bダウンロードして再開)
ダウンロードボタン押してダウンロードスタートします。
ダウンロードしたら左側のモデルに表示されました。
新しいチャットからも実験できるようです。
1.5Bはえげつないくらい無能
すごい食い気味で面白い。
英語ならいけるみたい
8Bで実験してみる
モデルが表示された。
8Bでも中国語が混じる。
なんか聞いてみると少し考えてから答えてくれた。
なんかそれっぽいけど、最初に一些情報って出たのは笑った。一些资料ちゃうんかいって。
API経由で使う
公式はかなり淡白な説明でどこからその情報が取得できるか、すぐにわからなかった。
When making requests, you must include an Authorization header with the token value of OPEN_BUTTON_TOKEN.
OPEN_BUTTON_TOKENってどこにあるの?と思った。それ以外にも、Portとかもどれ?ってなりました。
結論、以下の部分をクリックして
ipとかいろいろ出てきます。
しかし、どうも上記ではないようだ。
結局、以下となっていた。
まず、Openを押した後に開いたInstance PortalでOllama APIのリンクを右クリックする。
リンクをコピーする
https://58.224.7.136:30841/?token=xxxxxxxx8 この=から右側の値を記録しておく。
以下のようなcurlで投げれた。
curl --location 'https://58.224.7.136:30841/v1/completions'
--header 'Content-Type: application/json'
--header 'Authorization: Bearer xxxxxhogehoge'
--data '{
"model": "deepseek-r1:8b",
"prompt": "ローマは",
"max_tokens": 128,
"temperature": 0.6
}'
CloudFlareでURLを発行する
ここをクリックすると以下ページが開く
このURLで使うこともできます。
使い終わったら停止ではなく破棄をする
停止だとGPUの料金は請求されませんが、ストレージの料金は請求されるようです。
https://docs.vast.ai/quickstart
こちらに書いている以下
8) Destroy
つまり
• インスタンスを停止 (stop) しても GPU の料金は発生しないが、ストレージの料金は引き続き発生する。
• 料金を完全に避けるには、インスタンスを破棄 (destroy) する必要がある。
• 破棄すれば、ストレージ割り当てが解除され、課金も発生しなくなる。
左側がインスタンスの破棄で右側が停止だろう。
インスタンス停止を押すと以下が出た。
この後ちゃんと開始ボタンに変わっており、インスタンスを再開することができた。
再開だと、中身は消えていなかった。
とりあえず今回はここまで。 次回以降、このAPIでCline使えるかやってみる。
ディスカッション
コメント一覧
まだ、コメントがありません