Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Wie ein Bild zu Zahlen wird

Nach dieser Lektion: Ich kann sagen, wie ein Bild zu Zahlen wird, die ein Modell liest, und was Größe und Kacheln für die Kosten bedeuten.

Lektion, 70 Min.6 BefehleLab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Ein Foto ist für den Rechner nur Zahlen

Ein Rechner kann ein Foto nicht ansehen. Er speichert ein Raster aus Zahlen, eine für jeden Punkt. Ein Modell, das Bilder annimmt, liest diese Zahlen.

Das ist wichtig, denn je größer das Raster, desto teurer der Versand. Diese Lektion zeigt Ihnen das Raster und seinen Preis.

Am Ende dieser Lektion

Notiz

Ich kann sagen, wie ein Bild zu Zahlen wird, die ein Modell liest, und was Größe und Kacheln für die Kosten bedeuten.

Schlüsselwörter

BegriffWas er bedeutet
Pixelein Punkt eines Bildes, als Zahl gespeichert
Kanalein Farbanteil eines Pixels: Rot, Grün oder Blau
SkalierenBreite und Höhe eines Bildes ändern
Kachelein kleines quadratisches Stück eines Bildes
Multimodalmehr als eine Art von Eingabe annehmen, etwa Text und Bilder

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Bild ist ein Raster aus Zahlen

Ein Bild besteht aus Zeilen winziger Punkte, den Pixeln. Bei einem Graubild ist jedes Pixel eine Zahl von 0 (schwarz) bis 255 (weiß).

Ein Farbbild speichert je Pixel drei Zahlen, eine für jeden Kanal: Rot, Grün und Blau. Es hat also dreimal so viele Zahlen wie ein gleich großes Graubild.

Ein Graubild und ein Farbpixel

ZeilePixel 1Pixel 2Pixel 3
10128255
264128192
32551280
Ein FarbpixelRot 200Grün 30Blau 30

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Große Bilder werden zuerst verkleinert

Ein Modell nimmt Bilder nur bis zu einer Größe an. Ein größeres wird vor dem Lesen skaliert oder abgelehnt.

Am einfachsten verkleinern Sie ein Raster, indem Sie jeden Block aus Pixeln zu einer Zahl mitteln. Ein Block aus 2 mal 2 Pixeln wird ein Pixel, und das Bild ist halb so breit und halb so hoch.

Ein häufiger Fehler

Warnung

Viele glauben, eine kleinere Datei sei immer ein billigeres Bild. Die Kosten folgen aber Breite und Höhe in Pixeln und nicht der Dateigröße auf der Platte. Eine winzige Datei kann ein riesiges Raster sein. Zählen Sie darum immer die Pixel.

Kacheln bestimmen die Kosten

Nach dem Skalieren wird das Bild in quadratische Kacheln geschnitten. Eine Kachel am Rand kann nur teilweise gefüllt sein und zählt trotzdem ganz.

In diesem Labor gilt: 20 Grundgebühr und 10 je Kachel von 16 mal 16 Pixeln. Die Regel ist für die Lektion erfunden. Ein echter Dienst hat seine eigene, lesen Sie also immer seine Preisliste.

Kacheln von 16 mal 16 zählen

BildKacheln querKacheln hochKachelnKosten
16 mal 1611130
17 mal 1621240
40 mal 3032680
64 mal 644416180

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Modell-Helfer schreiben, Teil 1

Befehl
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

Befehl
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.

Bild-Skript schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'let zahl = 7;' 'function weiter() { zahl = (zahl * 37 + 11) % 256; return zahl; }' 'const bild = [];' 'for (let y = 0; y < 6; y++) {' '  const zeile = [];' '  for (let x = 0; x < 6; x++) zeile.push(weiter());' '  bild.push(zeile);' '}' > sehen1.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.

Bild-Skript schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function verkleinern(b, f) {' '  const aus = [];' '  for (let y = 0; y < b.length; y += f) {' '    const zeile = [];' '    for (let x = 0; x < b[0].length; x += f) {' '      let summe = 0;' '      for (let j = 0; j < f; j++) for (let i = 0; i < f; i++) summe += b[y + j][x + i];' '      zeile.push(Math.floor(summe / (f * f)));' '    }' '    aus.push(zeile);' '  }' '  return aus;' '}' 'function kacheln(breite, hoehe, k) { return Math.ceil(breite / k) * Math.ceil(hoehe / k); }' >> sehen1.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.

Bild-Skript schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  const klein = verkleinern(bild, 2);' '  console.log(\"groß \" + bild[0].length + \"x\" + bild.length + \" Zeile 1: \" + bild[0].join(\" \"));' '  console.log(\"klein \" + klein[0].length + \"x\" + klein.length + \" Zeile 1: \" + klein[0].join(\" \"));' '  console.log(\"Kacheln zu 2: groß \" + kacheln(6, 6, 2) + \", klein \" + kacheln(3, 3, 2));' '  const frage = \"Warum kostet ein kleineres Bild weniger, wenn es an ein Modell geht? Antworten Sie in einem kurzen Satz.\";' '  const antwort = await fragen([{ role: \"user\", content: frage }], \"Ein kleineres Bild hat weniger Kacheln, und der Preis richtet sich nach den Kacheln.\", 40);' '  console.log(\"Antwort: \" + antwort.text);' '}' 'main();' >> sehen1.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.

Ein Bild verkleinern und kacheln

Befehl
docker exec -w /home/node/project agent node sehen1.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.

Die Zeilen, die der Run druckt

ZeileWas sie zeigt
groß 6x6 Zeile 1: 14 17 128 139 34 245Die erste Zeile des erfundenen Bildes
klein 3x3 Zeile 1: 88 166 132Jeder Block aus 2 mal 2 zu einem Pixel gemittelt
Kacheln zu 2: groß 9, klein 4Nach dem Verkleinern weniger Kacheln, also ein niedrigerer Preis
Antwort: ...Ein Satz vom Modell, davor evtl. eine Zeile Aufgezeichnete Probe

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Über dieses Lab und seinen Quellcode: Lab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.