Published on

vastai CLI

Authors

    vastai

    stable diffusion 環境を構築するため、vast ai を使おうと思った。しかし、誤ってホストアカウントを作成し$10 入金した。
    client アカウントを作成し直し、host から送金したいが、CUI 限定で可能な処理とのこと。

    目次

    Linux(wsl)で vast ai cli を使える環境を 1 から作る

    • pyenv 環境構築
    • vast ai cli 環境構築と操作

    1.pyenv 環境構築

    sudo apt update
    sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev \
    libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
    xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git
    
    curl https://pyenv.run | bash
    
    
    code ~/.bashrc
    

    下記を設定ファイルに追記しパスを通す

    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init --path)"
    eval "$(pyenv virtualenv-init -)"
    
    
    source ~/.bashrc
    
    

    python をインストール

    pyenv install --list
    
    pyenv install 3.11.5
    python --version
    
    

    2.vast cli 環境構築

    pip install --upgrade vastai;
    

    API key set

    usage: ./vast set api-key APIKEY
    

    他アカウントに送金 以下は、Vast AI の CLI を使用して他のユーザーにクレジットを送金する方法のステップバイステップのガイドです。

    クレジットの送金方法

    1. コマンドの概要:

      usage: ./vast transfer credit RECIPIENT AMOUNT
      
      • RECIPIENT: 受信者のメールアドレス
      • AMOUNT: 送金するクレジットの金額(ドル)
    2. オプション:

      • -h, --help: ヘルプメッセージを表示して終了します。
      • --url URL: サーバーの REST API の URL。
      • --raw: 機械可読の JSON を出力します。
      • --explain: CLI の呼び出しと HTTPS API エンドポイントのマッピングの詳細な説明を出力します。
      • --api-key API_KEY: API キー。デフォルトでは~/.vast_api_keyに保存されているものを使用します。
    3. 実行例: 例えば、john.doe@example.comに$50 を送金したい場合、以下のコマンドを実行します。

      ./vast transfer credit john.doe@example.com 50
      

    このコマンドを実行すると、指定した金額のクレジットが受信者のアカウントに送金されます。

    注意: この操作を行う前に、適切な API キーを設定していることを確認してください。また、送金する前に十分なクレジットがあることを確認してください。

    送金しようとすると下記聞かれるので Y を入力

    Transfer $10.05 credit to account RECIPIENT?  This is irreversible.
    Continue? [y/n]
    You lack the credit balance to perform that operation
    

    実行された。

    Sent 10.04 to RECIPIENT
    

    失敗すると下記になる

    You lack the credit balance to perform that operation
    

    送金コスト$0.05 かかるのでそれを踏まえた額を送金すること

    vast cli コマンド集

    以下は、Vast AI の CLI コマンドのリファレンスから読み取った情報のまとめです。

    1. 一般的な CLI コマンド

    コマンド概要実行例
    vast.pyCLI の基本的な操作vast.py --help
    change bidスポット/中断可能インスタンスの入札価格を変更-
    copyインスタンス間やローカル間でディレクトリをコピーvast copy 6003036:/workspace/ 6003038:/workspace/
    cancel copy進行中のリモートコピーをキャンセルvast cancel copy 12371
    create instance新しいインスタンスを作成vast create instance 384827 --image bobsrepo/pytorch:latest
    create subaccountサブアカウントを作成./vast create subaccount --email EMAIL --username USERNAME
    destroy instanceインスタンスを破壊(データも削除)./vast destroy instance id
    executeマシン上でリモートコマンドを実行./vast execute 99999 'ls -l -o -r'
    label instanceインスタンスに文字列ラベルを割り当てる./vast label instance <id> <label>
    logsインスタンスのログを取得./vast logs INSTANCE_ID
    prepay instance予約されたインスタンスにクレジットを入金./vast prepay instance <id> <amount>
    reboot instanceインスタンスを再起動(停止/開始)./vast reboot instance <id>
    reset api-keyAPI キーをリセット(新しいキーをウェブサイトから取得)./vast reset api-key
    set api-keyAPI キーを設定./vast set api-key APIKEY
    show earningsマシンの収益履歴レポートを取得./vast show earnings
    show instancesユーザーの現在のインスタンスを表示./vast show instances
    show invoices請求履歴レポートを取得./vast show invoices
    show ipaddrsユーザーの IP アドレス履歴を表示./vast show ipaddrs
    show subaccounts現在のサブアカウントを取得./vast show subaccounts
    show user現在のユーザーデータを取得./vast show user
    ssh-urlSSH URL ヘルパー./vast ssh-url
    start instance停止したインスタンスを開始./vast start instance <id>
    stop instance実行中のインスタンスを停止./vast stop instance <id>
    transfer creditクレジットを別のアカウントに転送./vast transfer credit RECIPIENT AMOUNT

    2. ホストコマンド

    以下は、Vast AI CLI のホストコマンドに関する情報です:

    ホストコマンド

    1. list machine

      • 概要: マシンをレンタル用にリストします。
      • 使用方法:
        ./vast list machine id [--price_gpu PRICE_GPU] [--price_inetu PRICE_INETU] [--price_inetd PRICE_INETD] [--api-key API_KEY]
        
      • オプション:
        • -g PRICE_GPU, --price_gpu PRICE_GPU: GPU ごとのレンタル価格($/時間)
        • -s PRICE_DISK, --price_disk PRICE_DISK: ストレージ価格($/GB/月)
        • -u PRICE_INETU, --price_inetu PRICE_INETU: インターネットアップロード帯域幅の価格($/GB)
        • -d PRICE_INETD, --price_inetd PRICE_INETD: インターネットダウンロード帯域幅の価格($/GB)
        • -r DISCOUNT_RATE, --discount_rate DISCOUNT_RATE: 長期前払いの最大割引率
        • -m MIN_CHUNK, --min_chunk MIN_CHUNK: GPU の最小量
        • -e END_DATE, --end_date END_DATE: 利用可能な日付の UNIX タイムスタンプ
    2. remove defjob

      • 概要: このコマンドの詳細は切り取られているため、完全な情報は提供できません。

    使える pyenv 関係のコマンド

    pyenv は Python のバージョンを管理するツールであり、多くの便利なコマンドが提供されています。以下は pyenv の主要なコマンドとその説明をリスト化したものです。

    1. commands: 利用可能な pyenv コマンドを一覧表示します。

      pyenv commands
      
    2. install: 指定したバージョンの Python をインストールします。

      pyenv install 3.8.5
      
    3. uninstall: 指定したバージョンの Python をアンインストールします。

      pyenv uninstall 3.8.5
      
    4. global: グローバルレベルでの Python バージョンを設定または表示します。

      pyenv global 3.8.5
      
    5. local: ディレクトリごとの Python バージョンを設定または表示します。このコマンドは .python-version ファイルを作成または読み取ります。

      pyenv local 3.7.7
      
    6. shell: シェルセッションごとの Python バージョンを設定または表示します。

      pyenv shell 3.9.0
      
    7. versions: インストールされているすべての Python バージョンを一覧表示します。現在選択されているバージョンにはアスタリスク (*) が表示されます。

      pyenv versions
      
    8. version: 現在の Python バージョンを表示します。

      pyenv version
      
    9. rehash: shim に新しい実行可能ファイルをインストールまたは再インストールします。Python パッケージをインストールまたはアンインストールした後に実行することが多いです。

      pyenv rehash
      
    10. which: 指定されたコマンドの実際の実行可能ファイルへのパスを表示します。

      pyenv which python
      
    11. whence: 指定されたコマンドを提供するバージョンを一覧表示します。

      pyenv whence pip
      

    このリストは、pyenv の主要なコマンドをカバーしていますが、全ての機能やサブコマンドを網羅しているわけではありません。詳細や最新の情報については、公式ドキュメントや pyenv help コマンドを参照してください。