GPU-Jobs aus GitHub Actions ausführen

Mit der Action nodelodge/run führen Sie aus einem Workflow einen Befehl auf einer GPU aus, mit fester Kostengrenze, und die Maschine wird immer gestoppt.

Die Action nodelodge/run führt aus einem GitHub-Actions-Workflow einen Befehl auf einer Secure-GPU-Maschine von Node Lodge aus. Sie startet die Sitzung, führt Ihren Befehl per SSH aus, mit der Ausgabe im Job-Log, lädt ein Ausgabeverzeichnis als Artifact hoch und stoppt die Sitzung immer, auch wenn der Job fehlschlägt oder abgebrochen wird.

Voraussetzungen

  1. Öffnen Sie in der Konsole Keys und erstellen Sie für den Workflow einen Schlüssel mit den Scopes workloads:read und workloads:write.
  2. Legen Sie seine Spending limits fest (pro Sitzung und insgesamt). Node Lodge lehnt jede Sitzung ab, die eines davon überschreiten würde, unabhängig davon, was ein Workflow anfordert.
  3. Hinterlegen Sie den Schlüssel in Ihrem Repository als Secret namens NODELODGE_API_KEY (Settings, Secrets and variables, Actions).

Ein Workflow

name: Fine-tune on a GPU

on:
  workflow_dispatch:

permissions:
  contents: read

jobs:
  train:
    runs-on: ubuntu-latest
    timeout-minutes: 120
    steps:
      - uses: actions/checkout@v4

      - name: Train on Node Lodge
        id: gpu
        uses: nodelodge/run@v1
        with:
          api-key: ${{ secrets.NODELODGE_API_KEY }}
          max-cost-usd: '5'
          min-vram-gb: '48'
          image: pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime
          upload-dir: training
          command: |
            pip install -r requirements.txt
            python train.py --epochs 3 --out output/
          timeout-minutes: '60'
          output-dir: output
          artifact-name: model

Der Ordner training Ihres Repositorys wird auf die Maschine kopiert, der Befehl läuft dort im PyTorch-Container, und der Ordner output kommt als Artifact model des Laufs zurück. Die Outputs des Steps liefern die Sitzungs-ID, den Exit-Code des Befehls und die Kosten der Sitzung.

Eingaben

Eingabe
api-key Erforderlich. Der Schlüssel, aus einem Secret.
max-cost-usd Erforderlich. Der Höchstbetrag des Laufs.
command Erforderlich. Läuft mit sh -c im Arbeitsverzeichnis.
offer, oder gpu und min-vram-gb Welche Maschine: eine Angebots-ID oder die günstigste buchbare Maschine, die passt.
image Führt den Befehl in diesem Container aus, mit dem Arbeitsverzeichnis unter /workspace. Ohne diese Angabe läuft der Befehl direkt auf der Maschine.
timeout-minutes Die maximale Laufzeit des Befehls (Standard 60).
upload-dir Ein Ordner des Repositorys, der vorab auf die Maschine kopiert wird.
output-dir, artifact-name Der Ordner, der nach dem Befehl hochgeladen wird, auch wenn dieser fehlschlägt, und der Name des Artifacts.
allow-cidr Die Adresse, die die Maschine per SSH erreichen darf. Standard: die eigene Adresse des Runners.

So bleiben die Kosten unter Ihrer Grenze

  • max-cost-usd ist das Budget der Sitzung, beim Start auf Ihrem Guthaben reserviert. Node Lodge prüft es gegen Ihr verfügbares Guthaben und die Limits des Schlüssels und lehnt den Lauf ab, bevor etwas startet, wenn es nicht passt.
  • Abgerechnet wird die tatsächliche Laufzeit der Maschine, und Budget Guard stoppt die Sitzung, bevor das Budget aufgebraucht ist.
  • Der Befehl stoppt bei timeout-minutes (Exit-Code 124), die Sitzung direkt danach. Sie zahlen für die tatsächliche Laufzeit, der Rest des Budgets wird freigegeben.
  • Ein Post-Step stoppt die Sitzung, wenn der Job abgebrochen wurde oder der erste Stopp fehlschlug. Schlägt auch das fehl, schlägt der Job fehl, und sein Log nennt die Sitzung, die Sie in der Konsole stoppen müssen.

Sicherheit

  • Der Schlüssel wird im Log maskiert. Bewahren Sie ihn in einem Secret auf und geben Sie jedem Workflow einen eigenen Schlüssel mit engen Limits.
  • Das SSH-Schlüsselpaar wird für den Lauf erzeugt und verlässt den Runner nie. Nur die Adresse des Runners erreicht die Maschine.
  • Das Stoppen löscht die Maschine und ihre Festplatte. Alles, was Sie brauchen, muss in output-dir liegen.

Zu API-Schlüsseln und ihren Limits siehe API-Schnellstart. Um Sitzungen aus einem KI-Agenten zu steuern, siehe Node Lodge aus einem KI-Agenten nutzen (MCP).

Zuletzt aktualisiert

Ergebnisse erscheinen beim Tippen. Mit den Pfeiltasten wechseln Sie zwischen ihnen.