Fail – chatgpz.de – KI-Tools & Praxiswissen https://chatgpz.de Unabhängige Tests, Anleitungen und Hintergründe zu KI-Tools. Sun, 28 Jul 2024 07:18:34 +0000 de-DE hourly 1 https://wordpress.org/?v=6.4.2 234900186 Hintergrund zu „Fail Quick“ https://chatgpz.de/data-science/hintergrund-zu-fail-quick/ https://chatgpz.de/data-science/hintergrund-zu-fail-quick/#respond Sun, 28 Jul 2024 07:18:34 +0000 http://chatgpz.de/data-science/hintergrund-zu-fail-fast/ [ad_1]

Neulich diskutierten wir das „Fail Quick“-Prinzip in der statistischen Modellierung und Berechnung.

Laut Wikipedia stammt der Begriff „Fail Quick“ aus ein Artikel von Jim Grey„Warum bleiben Laptop stehen und was kann man dagegen tun?“, veröffentlicht im Juni 1985 als Tandem Technical Report 85.7. Tandem conflict ein Unternehmen, das fehlertolerante Laptop herstellte – ich glaube, der Title „Tandem“ bezog sich auf die Idee, zwei verfügbare Prozessoren zu haben, sodass, wenn einer kaputtging, der andere verfügbar conflict.

Mit den Worten von Grey:

Der prozessorientierte Ansatz zur Fehlerisolierung sieht vor, dass das Prozesssoftwaremodul ausfallsicher ist. Es sollte entweder ordnungsgemäß funktionieren oder den Fehler erkennen, den Ausfall melden und den Betrieb einstellen.

Er führt aus:

Zuverlässigkeit und Verfügbarkeit sind zwei verschiedene Dinge: Verfügbarkeit bedeutet, das Richtige innerhalb der angegebenen Reaktionszeit zu tun. Zuverlässigkeit bedeutet nicht, das Falsche zu tun.

Die erwartete Zuverlässigkeit ist proportional zur mittleren Betriebsdauer zwischen Ausfällen (MBF). Ein Ausfall hat eine gewisse mittlere Reparaturdauer (MTTR). … Modularität und Redundanz ermöglichen den Ausfall eines Moduls des Programs, ohne die Verfügbarkeit des gesamten Programs zu beeinträchtigen, da Redundanz zu einer geringen MTTR führt. Diese Kombination aus Modularität und Redundanz ist der Schlüssel zur Bereitstellung eines kontinuierlichen Dienstes, selbst wenn einige Komponenten ausfallen.

Und etwas amüsante Geschichte:

Von Neumann conflict der erste, der den Einsatz von Redundanz analytisch untersuchte, um verfügbare (hochzuverlässige) Systeme aus unzuverlässigen Komponenten zu konstruieren. In seinem Modell conflict eine Redundanz von 20.000 erforderlich, um eine MTBF des Programs von 100 Jahren zu erreichen. Natürlich waren seine Komponenten weniger zuverlässig als Transistoren; er dachte dabei an menschliche Neuronen oder Vakuumröhren. Dennoch ist nicht klar, warum von Neumanns Maschinen
erforderte einen Redundanzfaktor von 20.000, während aktuelle elektronische Systeme einen Faktor von 2 verwenden, um eine sehr hohe Verfügbarkeit zu erreichen. Der Hauptunterschied besteht darin, dass von Neumanns Modell die Modularität fehlte; ein Ausfall in einem beliebigen Kabelbündel an irgendeiner Stelle bedeutete einen Totalausfall des Programs.

Von Neumanns Modell hatte Redundanz ohne Modularität. Moderne Computersysteme sind dagegen modular aufgebaut – ein Fehler in einem Modul wirkt sich nur auf dieses Modul aus. Darüber hinaus ist jedes Modul so aufgebaut, dass es schnell ausfällt – das Modul funktioniert entweder richtig oder es stoppt. Die Kombination von Redundanz mit Modularität ermöglicht es, eine Redundanz von zwei statt 20.000 zu verwenden. Eine ziemliche Einsparung!

Der ganze Artikel ist lesenswert. Er erfüllt mich mit Nostalgie: die Schreibmaschinenschrift, der sorgfältige Schreibstil, die Argumentation der Größenordnung, die Offenheit in Bezug auf Unsicherheit, die Vertrautheit mit der Physik, der ganze unsinnige Quantität von allem, die Jungs-in-kurzärmeligen-Hemden-mit-Taschenschutz-Stimmung … Hier ist ein Beispiel:

Hier ist ein weiterer Ausschnitt:

Die Behauptung, dass die meisten Produktionssoftwarefehler weich sind – Heisenbugs, die verschwinden, wenn man sie ansieht – ist Systemprogrammierern wohlbekannt. Bohrbugs sind wie das Bohr-Atom fest, mit Standardtechniken leicht zu erkennen und daher langweilig. Heisenbugs können sich jedoch jahrelang einem Bugcatcher entziehen. Tatsächlich kann der Bugcatcher die State of affairs gerade genug stören, um den Heisenbug verschwinden zu lassen.

Dies ist analog zum Heisenbergschen Unschärfeprinzip in der Physik. Ich habe versucht, die Wahrscheinlichkeit zu quantifizieren, dass ein Heisenbug durch erneute Ausführung toleriert wird. Dies ist schwierig. Eine Umfrage ergibt nichts Quantitatives. Das eine Experiment, das ich durchgeführt habe, verlief folgendermaßen: Das Spooler-Fehlerprotokoll mehrerer Dutzend Systeme wurde untersucht. Der Spooler ist als eine Sammlung von Fail-Quick-Prozessen aufgebaut. Wenn einer der Prozesse einen Fehler erkennt, stoppt er und lässt seinen Bruder den Vorgang fortsetzen. Der Bruder führt einen Software program-Neuversuch aus. Wenn auch der Bruder fehlschlägt, handelt es sich bei dem Fehler um einen Bohrbug und nicht um einen Heisenbug. Im gemessenen Zeitraum conflict einer von 132 Softwarefehlern ein Bohrbug, der Relaxation waren Heisenbugs.

Und hier ist ein Hyperlink zum zitierten Artikel von Neumann, „Probabilistic logics and the synthesis of dependable organisms“, ursprünglich aus dem Jahr 1952. Gutes Zeug.

[ad_2]

]]>
https://chatgpz.de/data-science/hintergrund-zu-fail-quick/feed/ 0 2674
Das „Fail Quick“-Prinzip in der statistischen Datenverarbeitung https://chatgpz.de/data-science/das-fail-quick-prinzip-in-der-statistischen-datenverarbeitung/ https://chatgpz.de/data-science/das-fail-quick-prinzip-in-der-statistischen-datenverarbeitung/#respond Wed, 24 Jul 2024 06:49:00 +0000 http://chatgpz.de/data-science/das-fail-fast-prinzip-in-der-statistischen-datenverarbeitung/ [ad_1]

Wenn Sie nicht aufpassen, verbringen Sie die meiste Zeit mit Berechnungen, die nicht funktionieren.

So setzen wir es ein der Artikel zum Bayesschen Workflow:

Ein wichtiges Zwischenziel ist die Fähigkeit, schnell scheitern beim Anpassen schlechter Modelle. Dies kann als Abkürzung betrachtet werden, die es vermeidet, viel Zeit für (nahezu) perfekte Inferenz für ein schlechtes Modell aufzuwenden. Es gibt eine umfangreiche Literatur zu Näherungsalgorithmen, um das gewünschte Modell schnell anzupassen, aber wenig zu Algorithmen, die darauf ausgelegt sind, so wenig Zeit wie möglich mit den Modellen zu verschwenden, die wir letztendlich aufgeben werden. Wir glauben, dass es wichtig ist, Methoden anhand dieses Kriteriums zu bewerten, insbesondere weil ungeeignete und schlecht passende Modelle oft schwieriger anzupassen sein können.

Nehmen wir als einfaches, idealisiertes Beispiel an, Sie sind ein Astronom vor mehreren Jahrhunderten, der Ellipsen an eine Planetenumlaufbahn anpasst, basierend auf 10 fehlerhaft gemessenen Datenpunkten. Abbildung 6a zeigt die Artwork von Daten, die auftreten können, und praktisch jeder Algorithmus wird einigermaßen intestine passen. Sie könnten beispielsweise verschiedene Sätze von fünf Punkten nehmen und die exakte Ellipse an jeden anpassen und dann den Durchschnitt dieser Anpassungen nehmen. Oder Sie könnten eine Ellipse an die ersten fünf Punkte anpassen, sie dann leicht stören, um sie an den sechsten Punkt anzupassen, diese dann leicht stören, um sie an den siebten anzupassen, und so weiter. Oder Sie könnten eine Artwork Algorithmus mit kleinsten Quadraten implementieren.

Nehmen wir nun an, ein Todesstern kommt vorbei und verändert die Umlaufbahn – in diesem Fall wählen wir absichtlich ein unrealistisches Beispiel, um eine große Diskrepanz zwischen Modell und Daten zu erzeugen –, sodass Ihre 10 Datenpunkte wie in Abbildung 6b aussehen. In diesem Fall wird es viel schwieriger sein, Konvergenz zu erreichen. Wenn Sie mit der Ellipsenanpassung an die ersten fünf Punkte beginnen, wird es schwierig sein, eine Reihe kleiner Störungen zu berücksichtigen, mit denen die Kurve an die späteren Punkte in der Reihe angepasst werden kann. Aber mehr noch: Selbst wenn Sie eine Kleinstquadrate-Lösung finden könnten, würde jede Ellipse schlecht zu den Daten passen. Es ist einfach ein ungeeignetes Modell. Wenn Sie eine Ellipse an diese Daten anpassen, sollten Sie wollen, dass die Anpassung schnell fehlschlägt, damit Sie schnell zu etwas Vernünftigerem übergehen können.

Dieses Beispiel weist in extremer Kind ein gemeinsames Muster schwieriger statistischer Berechnungen auf: Die Anpassung an unterschiedliche Datenteilmengen führt zu sehr unterschiedlichen Parameterschätzungen.

Aus dem „Fail Quick“-Prinzip ergeben sich drei Empfehlungen:

1. Erkennen Sie, wenn Ihre Berechnung fehlschlägt. Führen Sie sie nicht einfach blind aus.

2. Wenn die Berechnung fehlschlägt, versuchen Sie nicht, sie mit roher Gewalt zu erzwingen, indem Sie sie über Nacht laufen lassen, die maximale Baumtiefe auf 20 setzen oder was auch immer. Verwenden Sie stattdessen die Anpassung eines einfacheren Modells als Ausgangspunkt und versuchen Sie herauszufinden, was schief läuft. In einigen Einstellungen können Sie auch versuchen, verschiedene Modelle an verschiedene Teilmengen der Daten anzupassen.

3. Wenn Sie dies auf Systemebene betrachten, richten Sie Ihren Workflow so ein, dass Fehler so schnell wie möglich angezeigt werden. Das ist nicht so einfach, wie es klingt! Daran arbeiten wir. Mein Traum ist es, dies alles in einem verallgemeinerter Erwartungsausbreitungsrahmendie die rechnerische Idee von Föderiertes Lernen mit statistischen Ideen der Mehrebenenmodellierung.

[ad_2]

]]>
https://chatgpz.de/data-science/das-fail-quick-prinzip-in-der-statistischen-datenverarbeitung/feed/ 0 2560