War das ein Mensch oder ein Programm?
KI-Transparenz heißt, Menschen zu sagen, dass sie es mit einem KI-System zu tun haben, und zu zeigen, was es erzeugt hat. Das ist wichtig, weil man einer Antwort anders vertraut, wenn man weiß, dass ein Programm sie schrieb.
Die Protokollierung ist die andere Hälfte. Geht etwas schief, muss eine Prüfung wissen, was gefragt wurde, welches Modell antwortete und wer freigab.
Am Ende dieser Lektion
Notiz
Ich kann KI offenlegen, ihre Ergebnisse kennzeichnen und die Einträge führen, die eine Prüfung braucht.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Offenlegung | einem Menschen sagen, dass er es mit KI zu tun hat | |
| Kennzeichnung | ein sichtbarer Hinweis, dass KI etwas erzeugt hat | |
| Eintrag | die gespeicherte Notiz zu einer KI-Antwort | |
| Modellversion | das genaue Modell, das geantwortet hat | v3 |
| Aufbewahrungsfrist | wie lange ein Eintrag bleibt | |
| Systemkarte | eine kurze Seite, die eine KI-Funktion beschreibt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Sagen Sie, dass KI antwortet
Sagen Sie es, bevor sich jemand auf die Antwort verlässt, und zwar dort, wo man es sieht. Das kann am Anfang eines Chats sein, neben einer Antwort oder in den ersten Worten eines Anrufs.
Ergänzen Sie in einer Zeile, was das System kann und was nicht, und wie man einen Menschen erreicht. Erwartungen genauer zu setzen lehrt die Lektion Erwartungen an eine KI-Funktion setzen.
Kennzeichnen Sie, was KI erzeugt hat
Ein Text, ein Bild oder eine Zusammenfassung von einem Modell trägt einen kurzen, sichtbaren Hinweis. Die Kennzeichnung sagt, wer es erzeugt hat, nicht ob es gut ist.
Verlässt eine Datei Ihr Produkt, schreiben Sie den Hinweis auch in ihre Eigenschaften. Dann bleibt er erhalten, wenn jemand die Datei kopiert.
Durchgerechnetes Beispiel: wo Sie es sagen
| Ort | Was die Person sieht |
|---|---|
| Anfang eines Chats | Sie chatten mit einem KI-Assistenten. Ein Mensch kann übernehmen. |
| Unter einem Bild | Mit KI erstellt |
| Fuß eines E-Mail-Entwurfs | Von KI entworfen, geprüft von Lena Vogel |
| Erste Worte eines Anrufs | Hier spricht ein automatischer Assistent. |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Was ein Eintrag enthalten muss
Ein Eintrag hält fest, was gefragt wurde, welche Modellversion antwortete und welche Person eine Aktion freigab. Ohne die Version kann niemand sagen, welches Modell sich geirrt hat.
Bewahren Sie einen Eintrag nur so lange auf, wie eine Prüfung ihn braucht, und lassen Sie unnötige personenbezogene Daten weg. Mehr dazu in Sicher protokollieren in einer KI-App und im Modul Datenschutz für KI-Anwendungen.
Ein häufiger Fehler
Warnung
Viele glauben, mehr Einträge seien immer sicherer, und behalten alles für immer. Ein Eintrag voller personenbezogener Daten, über Jahre aufbewahrt, ist selbst ein Risiko. Behalten Sie nur die Felder, die eine Prüfung braucht, und nur so lange wie nötig.
Eine kurze Systemkarte beschreibt die Funktion
Eine Systemkarte, auch Modellkarte genannt, ist eine kurze Seite über eine KI-Funktion oder ein Modell. Sie nennt den Zweck, die Grenzen, wie bewertet wurde, wer verantwortlich ist und wie man diese Person erreicht.
Schreiben Sie sie für jemanden, der die Funktion nie gesehen hat. Ein leeres Feld ist eine Lücke, genau wie eine Lücke in einer Prüfung.
Regeln verlangen das immer öfter
In der EU und im Vereinigten Königreich verlangen Regeln immer öfter, dass Entwickler KI offenlegen, ihre Ergebnisse kennzeichnen und Einträge führen. Was eine Regel verlangt und ab wann, unterscheidet sich je nach Ort und ändert sich.
Dies ist allgemeine Information und keine Rechtsberatung: Lesen Sie den aktuellen amtlichen Text oder fragen Sie eine qualifizierte Person. Diese Dinge zu tun, erfüllt für sich allein noch keine Regel.
Durchgerechnetes Beispiel: eine kurze Systemkarte
| Feld | Bestellhilfe |
|---|---|
| Zweck | Beantwortet Fragen zu Bestellungen |
| Grenzen | Kann weder Zahlungen noch Adressen ändern |
| Bewertungen | 40 aufgezeichnete Fälle, 37 bestanden |
| Verantwortlich | Mia Braun |
| Kontakt | [email protected] |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
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.
Eintragskontrolle schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' '' 'const AUFBEWAHREN_TAGE = 90; // ältere Einträge werden gelöscht' '// Erfundene Einträge eines Kundenassistenten. Das Alter ist eine Zahl von Tagen, keine Uhr.' 'const eintraege = [' ' { id: 1, frage: \"Wo ist meine Bestellung?\", version: \"v3\", aktion: false, freigegebenVon: \"\", alter: 12, persoenlich: false },' ' { id: 2, frage: \"Bestellung 88 erstatten\", version: \"v3\", aktion: true, freigegebenVon: \"\", alter: 30, persoenlich: false },' ' { id: 3, frage: \"Meine Adresse ändern\", version: \"\", aktion: true, freigegebenVon: \"Lena Vogel\", alter: 120, persoenlich: false },' ' { id: 4, frage: \"Warum wurde zweimal abgebucht?\", version: \"v2\", aktion: false, freigegebenVon: \"\", alter: 5, persoenlich: true },' '];' > eintraege.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.
Eintragskontrolle schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function probleme(e) {' ' const gefunden = [];' ' if (e.frage.trim() === \"\") gefunden.push(\"keine Frage\");' ' if (e.version.trim() === \"\") gefunden.push(\"keine Modellversion\");' ' if (e.aktion && e.freigegebenVon.trim() === \"\") gefunden.push(\"keine Freigabe\");' ' if (e.alter > AUFBEWAHREN_TAGE) gefunden.push(\"Aufbewahrungsfrist überschritten\");' ' if (e.persoenlich) gefunden.push(\"unnötige personenbezogene Daten\");' ' return gefunden;' '}' >> eintraege.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.
Eintragskontrolle schreiben, Teil 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// Eine kurze Karte für die Funktion. Jedes Feld sollte Text enthalten.' 'const karte = { zweck: \"Fragen zu Bestellungen beantworten\", grenzen: \"Ändert keine Zahlungen\", bewertungen: \"\", verantwortlich: \"Mia Braun\", kontakt: \"[email protected]\" };' >> eintraege.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.
Eintragskontrolle schreiben, Teil 4
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' ' eintraege.forEach(function (e) {' ' const p = probleme(e);' ' console.log(\"Eintrag \" + e.id + \": \" + (p.length === 0 ? \"in Ordnung\" : p.join(\", \")));' ' });' ' const leer = Object.keys(karte).filter(function (k) { return karte[k].trim() === \"\"; });' ' console.log(\"Der Karte fehlt: \" + (leer.length === 0 ? \"nichts\" : leer.join(\", \")));' ' const q = \"Schreiben Sie einen kurzen Satz, mit dem ein Chatfenster sagt, dass man mit einem KI-System spricht.\";' ' const r = await fragen([{ role: \"user\", content: q }], \"Sie chatten mit einem KI-Assistenten. Er kann sich irren, und ein Mensch kann übernehmen.\", 60);' ' console.log(\"Ein möglicher Hinweis: \" + r.text);' '}' 'main();' >> eintraege.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.
Eintragskontrolle ausführen
docker exec -w /home/node/project agent node eintraege.jsHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Eine mögliche Ausgabe
| Zeile | Was sie zeigt |
|---|---|
| Eintrag 1: in Ordnung | Nichts fehlt |
| Eintrag 2: keine Freigabe | Eine Erstattung, ohne dass ein Mensch genannt ist |
| Eintrag 3: keine Modellversion, Aufbewahrungsfrist überschritten | Niemand weiß, welches Modell antwortete, und er ist zu alt |
| Eintrag 4: unnötige personenbezogene Daten | Er enthält mehr, als eine Prüfung braucht |
| Der Karte fehlt: bewertungen | Die Karte sagt nichts über Tests |
| Ein möglicher Hinweis: ... | Ihr eigener Aufruf. Er ändert sich bei jedem Lauf oder zeigt Aufgezeichnete Probe |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.