Den Rechner besitzen oder je Aufruf zahlen
Ein Modell selbst zu hosten heißt, es auf Maschinen zu betreiben, um die Sie sich kümmern. Mieten heißt, einem anderen für jeden Aufruf zu zahlen. Beide haben Kosten, die auf verschiedene Weise steigen.
Das ist wichtig, weil sich die günstigere Wahl mit der Zahl der Aufrufe ändert. Eine Rechnung zeigt, wo die Grenze liegt, und eine Liste zeigt, was die Rechnung vergessen hat.
Am Ende dieser Lektion
Notiz
Ich kann entscheiden, ob ich ein Modell selbst betreibe.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Selbst hosten | das Modell auf eigenen Maschinen betreiben |
| Mieten | einem anderen für jeden Aufruf zahlen |
| Break-even | die Menge, bei der zwei Kosten gleich sind |
| Kapazität | die Aufrufe, die eine Maschine im Monat schafft |
| Ausfall | eine Zeit, in der der Dienst nicht läuft |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Zwei Kosten, die verschieden steigen
Mieten kostet für jeden Aufruf gleich viel, steigt also in einer Geraden. Hosting ist eine Stufenkostenart: Jede Maschine trägt eine feste Zahl von Aufrufen, und Sie zahlen immer eine ganze Maschine. Dazu kommen die Menschen, die sie betreuen.
Das Break-even ist die Menge, bei der beide gleich sind. Darüber ist Hosting günstiger.
Erfundene Preise, Euro im Monat
| Aufrufe im Monat | Miete | Hosting |
|---|---|---|
| 300.000 | 900 | 2400 |
| 1.000.000 | 3000 | 3300 |
| 1.200.000 | 3600 | 3300 |
| 2.000.000 | 6000 | 5100 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Was die Rechnung auslässt
Eine Preisrechnung ist noch keine Entscheidung. Sie lässt den Ausfall aus, wenn die Maschine nachts versagt. Sie lässt die Zeit für Software-Updates aus und die Maschine, die ungenutzt herumsteht. Auch die Kosten eines Fehlers mit privaten Daten fehlen.
Es fehlt auch die andere Seite: Manche Daten dürfen das Haus nicht verlassen, und dann ist Mieten zu keinem Preis erlaubt.
Ein häufiger Fehler
Warnung
Viele glauben, mit eigener Maschine sei jeder Aufruf gratis. Die Maschine, das Personal und die Ausfälle werden aber jeden Monat bezahlt. Rechnen Sie das Break-even mit den Stufen und dem Personal aus, und listen Sie dann auf, was noch fehlt.
Modell-Helfer schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const basis = process.env.AI_URL || \"http://ai:4000\";' '// Die Token einer Antwort oder null, wenn sie keine nennt.' 'function zaehlen(daten, name) {' ' return daten.usage && typeof daten.usage[name] === \"number\" ? daten.usage[name] : null;' '}' > model.js"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Modell-Helfer schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function fragen(nachrichten, probe, max) {' ' try {' ' const res = await fetch(basis + \"/v1/chat/completions\", {' ' method: \"POST\",' ' headers: { \"content-type\": \"application/json\", authorization: \"Bearer lab\" },' ' body: JSON.stringify({ model: \"lab\", messages: nachrichten, max_tokens: max || 100 }),' ' signal: AbortSignal.timeout(30000),' ' });' ' if (res.ok === false) throw new Error(\"Status \" + res.status);' ' const d = await res.json();' ' return { text: d.choices[0].message.content, eingabe: zaehlen(d, \"prompt_tokens\"), ausgabe: zaehlen(d, \"completion_tokens\"), aufgezeichnet: false };' ' } catch (fehler) {' ' console.log(\"Aufgezeichnete Probe: Kein Modell hat geantwortet (\" + fehler.message + \").\");' ' return { text: probe, eingabe: null, ausgabe: null, aufgezeichnet: true };' ' }' '}' 'module.exports = { fragen };' >> model.js"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Kostenrechnung schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const preis = 3;' 'const maschine = 900;' 'const kapazitaet = 600000;' 'const personal = 1500;' 'function mieten(aufrufe) {' ' return Math.floor(aufrufe * preis / 1000);' '}' 'function hosten(aufrufe) {' ' return Math.ceil(aufrufe / kapazitaet) * maschine + personal;' '}' > hosten.js"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Kostenrechnung schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' ' console.log(\"Aufrufe im Monat | Miete | Hosting | günstiger\");' ' for (const aufrufe of [300000, 600000, 1000000, 1200000, 2000000]) {' ' const wahl = hosten(aufrufe) < mieten(aufrufe) ? \"hosten\" : \"mieten\";' ' console.log(aufrufe + \" | \" + mieten(aufrufe) + \" | \" + hosten(aufrufe) + \" | \" + wahl);' ' }' ' console.log(\"einfache Schwelle: \" + Math.ceil((maschine + personal) * 1000 / preis) + \" Aufrufe\");' >> hosten.js"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Kostenrechnung schreiben, Teil 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' ' const q = \"In einem kurzen Satz: Nennen Sie eine Last des Selbstbetriebs, die ein Preis je Aufruf auslässt.\";' ' const probe = \"Jemand muss bei einem Ausfall in Bereitschaft sein, und seine Zeit steckt nicht im Preis je Aufruf.\";' ' const r = await fragen([{ role: \"user\", content: q }], probe, 60);' ' console.log(\"Das Modell sagte: \" + r.text);' '}' 'main();' >> hosten.js"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Kostenrechnung ausführen
docker exec -w /home/node/project agent node hosten.jsHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Was der Run druckt
| Zeile | Was sie zeigt |
|---|---|
| 300000 | 900 | 2400 | mieten | Kleine Menge: Mieten gewinnt |
| 1000000 | 3000 | 3300 | mieten | Die zweite Maschine wird gekauft, Hosting springt |
| 1200000 | 3600 | 3300 | hosten | Jetzt gewinnt Hosting |
| einfache Schwelle: 800000 Aufrufe | Zu früh: Sie ignoriert die Stufen |
| Das Modell sagte: ... | Ein Satz. Die Worte ändern sich bei jedem Lauf |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.