GunSpec

Wie Redback seine Modelle und Werkzeuge wählt

Redback ist nicht ein Modell. Jede Teilaufgabe innerhalb einer Aufgabe (Ausschnitte lesen, eine Lesart prüfen, bei Zweifel erneut lesen, einen Widerspruch beurteilen, eine Schreibweise einordnen) ist eine eigene Anfrage mit einer eigenen Kette von Modellen, gewählt nach dem, was diese Teilaufgabe braucht. Code sucht und lädt Seiten und behält, wofür er bezahlt hat. Diese Seite beschreibt, wie eine Teilaufgabe ihr Modell erhält, wie ein Aufruf einen funktionierenden Schlüssel findet, wie die Suche arbeitet und was wie lange behalten wird.

Redback bearbeitet vier Arten von Aufgaben: eine Lücke (ein Wert ist zu finden), einen Widerspruch (ein Konflikt ist zu beurteilen), eine Verifizierung (ein Wert ist auf der Seite des Herstellers zu bestätigen) und eine Vokabular-Schreibweise (ein Wert ist einem bekannten Begriff zuzuordnen). Jede Art wird in Teilaufgaben zerlegt, und jede Teilaufgabe ist eine Anfrage an ein Modell mit einer Frage. Ein Modell plant nie eine Aufgabe: Code entscheidet, was in welcher Reihenfolge gelesen wird, und fragt ein Modell nur nach dem Teil, der Lesen oder Urteil verlangt.

TeilaufgabeWas gefragt wirdWas sie von einem Modell brauchtIhre Standardkette beginnt mit
Eine Lücke lesenWelcher Ausschnitt nennt den Wert, mit welchen WortenZitiert wörtlich und antwortet keiner, statt zu ratenEinem großen offenen Modell bei einem schnellen Anbieter
Eine Lesart prüfenNennt dieser Ausschnitt diesen Wert: ja, nein oder unsicherEin Wort, von einem anderen Anbieter als dem lesendenEinem mittelgroßen Modell bei einem anderen Anbieter
Einen Zweifel eskalierenDieselben Ausschnitte, erneut beantwortetDas stärkste verfügbare Modell, da es nur bei schwierigen Fällen läuftDem größten Modell der Kette
Auf der Herstellerseite verifizierenWas die Seite für jeden geprüften Wert angibt, mit dem SatzSieht unseren Wert nie und kann ihm daher nicht einfach zustimmenEinem großen offenen Modell bei einem schnellen Anbieter
Einen Widerspruch beurteilenHat die Prüfung recht, dass etwas nicht stimmtSchlussfolgern aus dem Datensatz, und die Bereitschaft, kann nicht entscheiden zu antwortenEinem Reasoning-Modell
Eine Schreibweise einordnenZweite Schreibweise, neuer Wert oder falsche FrageEines von drei Wörtern, aus einer vollständig gegebenen ListeEinem schnellen Anbieter

Werkzeuge sind Funktionen, die ein Modell aufrufen darf, jede mit einer Beschreibung, nach der es wählt (die Staff-Konsole zeigt sie wörtlich), und jede gibt an, was sie erreicht: das Netz, unseren eigenen Katalog oder nichts außerhalb der Plattform. Werkzeuge erhalten nur ein Widerspruch und eine Lücke ohne Lesestoff. Ein Werkzeug lässt nie einen Lauf scheitern: Ein Fehler kommt als Satz zurück, mit dem das Modell arbeiten kann, sonst würde eine einzige tote Website einen Lauf beenden.

Die Werkzeuge: eine Websuche und die Suche auf einer Website; ein Seitenleser, ein PDF-Leser, eine Enzyklopädie-Suche und ein Artikelleser; eine Abfrage strukturierter Daten; drei Katalogleser (ein Datensatz, eine Suche, die Beziehungen eines Datensatzes); ein Einheitenumrechner; der Rang einer Quelle; und ein Notizblock.

Jede Teilaufgabe bestimmt ihre Kette in fester Reihenfolge, und die Staff-Konsole zeigt, welcher Schritt entschieden hat. Zuerst eine Kette, die ein Betreiber dieser Teilaufgabe zugewiesen hat. Sonst jedes Modell im Pool, das mit der Fähigkeit markiert ist, die die Teilaufgabe angibt (Extraktion, Klassifikation, Schlussfolgern und so weiter), in der Pool-Reihenfolge des Betreibers. Sonst die eigene Standardkette der Teilaufgabe, und erst dann das eine Standardmodell der Plattform.

Die Reihenfolge ist immer die des Betreibers, nie abgeleitet. Anbieter melden ihre Grenzen unterschiedlich oder gar nicht, und eine Rangfolge nach scheinbarer Verfügbarkeit würde nach einer Zahl leiten, die wir erfunden haben. Ein Modell einmal für eine Fähigkeit zu markieren, konfiguriert jede Teilaufgabe, die sie angibt, auch später hinzugefügte.

Die Standardketten folgen drei Regeln. Kein Router, der je Aufruf ein Modell wählt, denn dann ist das Modell hinter einer Antwort nicht feststellbar. Kein kleines Modell, denn der Fehler, der zählt, ist eine plausible erfundene Zahl. Und die Glieder wechseln zwischen Anbietern und den Hosts dahinter, denn aufeinanderfolgende Glieder auf einem überlasteten Host scheitern gemeinsam.

Die Prüfung einer Lesart meidet den Anbieter, der sie erzeugt hat: Ihre Kette wird auf andere Anbieter gefiltert, und nur wenn keiner übrig bleibt, nutzt sie denselben. Ein Modell erkennt die Fehllesung eines anderen Modells besser als seine eigene.

DiagrammWie eine Teilaufgabe ihr Modell und ein Aufruf seinen Schlüssel erhält
100%
Wie eine Teilaufgabe ihr Modell und ein Aufruf seinen Schlüssel erhältEine Teilaufgabe nutzt die Kette, die ein Betreiber ihr zugewiesen hat; sonst jedes Modell, das für ihren Bedarf markiert ist; sonst ihre eigene Standardkette. Die Kette wird der Reihe nach versucht. Ein Modell ohne verfügbaren Schlüssel bei seinem Anbieter wird übersprungen. Ein ausgelasteter Host oder ein zurückgezogenes Modell führt zum nächsten Modell. Eine Zeitüberschreitung oder eine unlesbare Antwort beendet die Kette, denn das nächste Modell bekäme dasselbe geschickt. Eine Antwort wird mit ihrer erfassten Nutzung zurückgegeben.

Ein Modell wird zusammen mit seinem Anbieter genannt, denn dasselbe offene Modell wird von mehreren Anbietern mit verschiedenen Grenzen und verschiedenen Rechnungen angeboten. Jeder Anbieter hat einen Schlüsselring, versiegelt in der Staff-Konsole und nur von der Plattform geöffnet; kein Aufrufer hält je einen Schlüssel.

  1. Schlüssel werden in der Reihenfolge ihrer letzten Nutzung versucht, der am längsten ungenutzte zuerst, damit sich fünf Schlüssel die Last teilen, statt dass einer arbeitet und vier warten.
  2. Nur ein eigener Fehler des Schlüssels führt zum nächsten Schlüssel. Ein Ratenlimit lässt den Schlüssel ruhen, ein leeres Guthaben markiert ihn als verbraucht, und ein abgewiesener Schlüssel wird abgeschaltet. Eine Zeitüberschreitung oder eine unlesbare Antwort würde mit jedem Schlüssel gleich scheitern, sie ist also eine Antwort und kein Grund, vier weitere Anfragen auszugeben, um bei ihr anzukommen.
  3. Ein Ratenlimit, das ein Modell nennt, sperrt nur dieses Modell auf diesem Schlüssel, bis zu dem Zeitpunkt, den der Anbieter nennt; ein Tageslimit lässt den ganzen Schlüssel ruhen. Sind alle Schlüssel gesperrt, meldet der Aufruf die Wartezeit, und die Aufgabe wird bis dahin zurückgestellt statt fehlzuschlagen.
  4. Ein Anbieter ohne nutzbaren Schlüssel wird für den nächsten in der Kette übersprungen. Ein ausgelasteter Host oder ein zurückgezogenes Modell führt zum nächsten Glied. Eine Zeitüberschreitung oder eine unlesbare Antwort beendet die Kette, denn das nächste Modell bekäme dasselbe geschickt.
  5. Die Nutzung wird je Anbieter gezählt und einmal je Antwort reserviert, nicht je Versuch: Ein abgewiesener Schlüssel hat nichts verbraucht, und ein Anbieter, der seine Grenze erreicht, sperrt nie die Anbieter hinter ihm in der Kette.

Jeder Aufruf wird mit Anbieter, Schlüssel, Modell, Tokens, Kosten, Dauer und Ergebnis protokolliert, und jeder Schritt in der Spur einer Aufgabe nennt Anbieter und Modell, die ihn beantwortet haben, sodass sich ein Wert immer bis zu dem Modell zurückverfolgen lässt, das ihn gelesen hat.

Die Suche läuft über eine eigene Kette von Anbietern, in einer Reihenfolge, die der Betreiber festlegt, mit Schlüsselringen nach denselben Regeln wie bei den Modellen.

Das Kontingent jedes Anbieters wird so gelesen, wie der Anbieter es veröffentlicht. Gehört das Kontingent zu jedem Schlüssel, werden die Schlüssel nacheinander verbraucht. Gehört es zum Konto, wird nur der erste Schlüssel gesendet, denn ein zweiter Schlüssel desselben Kontos kauft nichts dazu. Ein Schlüssel, der auf ein Ratenlimit trifft oder kein Guthaben mehr hat, ruht, und der nächste wird versucht; ein abgewiesener Schlüssel wird abgeschaltet.

Ein Anbieter ohne nutzbaren Schlüssel gibt die Anfrage weiter. Eine Antwort über etwas anderes (Ergebnisse, die die prägenden Worte der Anfrage nie nennen) gibt sie ebenfalls weiter und wird aufbewahrt, falls nichts Besseres kommt. Keine Suche wird verweigert, um Kontingent zu sparen.

DiagrammWie eine Suche einen Schlüssel und einen Anbieter findet
100%
Wie eine Suche einen Schlüssel und einen Anbieter findetEine Anfrage, die an diesem Tag schon gestellt wurde, wird ohne neue Anfrage aus der gespeicherten Antwort beantwortet. Sonst wird der nächste Anbieter der Kette versucht, mit einem Schlüssel, der noch Kontingent hat und nicht ruht. Ein eigener Fehler des Schlüssels, ein Ratenlimit oder kein Guthaben, lässt diesen Schlüssel ruhen, und der Ring geht weiter; ein Anbieter ohne nutzbaren Schlüssel gibt die Anfrage an den nächsten weiter. Eine Antwort über etwas anderes führt ebenfalls weiter. Eine passende Antwort wird zurückgegeben und ihr Verbrauch festgehalten.

Jede Suche und jede Seite, die Redback lädt, wird so lange behalten, dass sie wiederverwendet werden kann, und nicht länger. Eine behaltene Kopie erspart nur eine Wiederholung: Sie wird nie allein zum Beleg, und was fehlschlug, wird nie behalten.

WasBehalten fürGeteilt mitWarum
Eine SuchantwortEinen TagJedem AufruferDieselbe Frage kostet in beliebiger Wortfolge beim zweiten Mal nichts. Ein Fehlschlag oder eine Antwort über etwas anderes wird nicht behalten und daher erneut gefragt.
Eine Seite, als extrahierter TextEinen TagJedem AufruferEin Stapel zu einem Hersteller liest dieselbe Seite oft. Nur eine gelesene Seite wird behalten, nie ein Fehler und nie das rohe Markup.
Die Robots-Regeln einer WebsiteGeprüft, bevor eine behaltene Seite genutzt wirdJedem AufruferEin Herausgeber, der nein sagt, wird nicht aus unserer eigenen Kopie bedient.
Die Seiten und Suchen eines LaufsDen LaufJeder Aufgabe des DatensatzesEine für eine Länge gelesene Herstellerseite wird für ein Gewicht nicht erneut geladen.
Website-Gedächtnis und angenommene HerstellerangabenEinige MinutenJedem LaufEin Lauf liest sie dutzende Male; eine vor einer Minute angenommene Angabe erreicht den nächsten Lauf.
Das Ratenlimit eines Modells auf einem SchlüsselBis zum genannten ZeitpunktJeder TeilaufgabeDer Ring überspringt dieses Modell auf diesem Schlüssel, und sonst nichts.

Eine behaltene Seite kann kein Zitat erzeugen, das nie da war: Das Zitat wird gegen den Text geprüft, den dieser Lauf erhalten hat, eine behaltene Seite wird also gegen sich selbst geprüft, und der Vorschlag trägt die Adresse, von der sie gelesen wurde, damit eine Person sie öffnen kann.

Eine Seite wird höflich geladen: Die Robots-Regeln ihrer Website werden beachtet, Anfragen an eine Website werden verteilt, und was extrahiert wurde, bleibt einen Tag erhalten. Der Leser trennt, was eine Seite in ihren eigenen Tabellen und strukturierten Daten angibt, von ihrem Fließtext, und nennt die Angaben zuerst. Eine Tabelle mit Kopfzeile wird Zeile für Zeile mit den Beschriftungen dieser Zeile gelesen, sodass der Lauf aus einer Datentabelle das Kaliber behält, zu dem er gehört; eine Tabelle ohne Kopfzeile bleibt unberührt, denn einen Vergleich zu verflachen erfindet Beziehungen.

PDFs werden als PDFs gelesen, bis zwölf Megabyte; ein gescanntes PDF ohne Text wird gemeldet, nie erraten. Seiten, die nur im Browser aufgebaut werden, und Prüfwände kann Redback nicht lesen: Eine Prüfwand wird erkannt und nie umgangen, und solche Websites werden im Gedächtnis markiert (Was Redback lernt), damit die Recherche stattdessen nach einem PDF des Herstellers oder einer archivierten Kopie sucht.

Makers publish their specifications as PDFs more often than as pages: spec sheets, owner's manuals, datasheets and product catalogues. Redback reads them as documents, in our own Worker, rather than as a page, because a PDF read as a page comes back as noise that a model would treat as read.

The hard part is the tables. A PDF has no table in it, only words placed at points on a page, so reading it in the order the file stores them runs a table's labels into one line and its figures into another, and which figure belongs to which label is lost. Redback rebuilds the table from where each word sits instead.

  1. Words on one baseline become a line, and a wide gap within a line starts a new column.
  2. A run of label lines above a line of figures is read as the table's header.
  3. Each figure is placed under the label whose column it sits in, and the row is written out as a fact: "Barrel length: 4.7 in, Weight: 710 g", the same shape a table on a web page gives.
  4. This is done on every page of the document, not only the first few, because a catalogue's specification table is often forty pages in. The document's prose is read separately, in order, so a two-column paragraph still reads the way it was written.
What the document isWhat Redback does
A spec sheet or manual with tablesIts tables come first as facts, row by row with their labels, followed by the prose
A long catalogue or manualThe tables are gathered from every page; the prose follows from the start, as far as the reading budget for one document allows
A scanned PDF with no text in itSaid plainly: the document has pages but no text to read. Nothing is guessed from it, and Redback looks for another source
A file over twelve megabytes, or one that will not openRefused with the reason, so the task does not treat it as read
A site whose robots rules forbid the pathNot fetched, and the refusal is said

A figure Redback takes from a PDF is held to the same rule as one from a page: it must be quoted, and before it can reach a record the quote is checked again against the document, read the same way. A quote taken from a rebuilt table is checked against that table, so the figure and its label have to agree a second time.

Ein Enzyklopädie-Artikel ist ein Hinweis, nie ein Zitat. Seine Infobox wird als Felder gelesen, gruppiert wie im Artikel, und seine Quellenangaben werden nach der Quellenhierarchie geordnet und bis zu den zitierten Seiten verfolgt. Eine Abfrage strukturierter Daten liefert eine zweite Meinung auf dieselbe Weise: einen Hinweis auf eine Seite, keinen Wert.

Ein Widerspruch ist ein Konflikt zwischen zwei Datensätzen, und eine Aufgabe trägt einen davon; um zu beurteilen, ob eine Waffe älter ist als ihr Hersteller, braucht man den Hersteller. Die Katalogwerkzeuge lesen einen Datensatz, durchsuchen den Katalog und folgen den Beziehungen eines Datensatzes, jeweils gegen eine Positivliste, denn ein Tabellenname kann kein gebundener Parameter sein. Der Rang einer Quelle nennt einem Modell Art, Rang und Zitierhäufigkeit einer Website sowie, wie sie sich für ein Skript lesen lässt, bevor es sie zitiert.

Ein Modell im Werkzeugweg hat einen Notizblock mit zwölf Notizen zu je 240 Zeichen, der in jeder Runde von außerhalb des Gesprächs erneut gezeigt wird, sodass das Kürzen des Verlaufs keine Schlussfolgerung entfernen kann. Er ist für das Ausgeschlossene gedacht: Der gemessene Fehler waren drei fast gleiche Suchen, weil nichts festhielt, dass die ersten beiden nichts gefunden hatten. Eine Notiz ist kein Beleg; ein Wert in einer Notiz hat keine Quelle.