Antirez, der Vater von Redis, verwendet persönlich ein großes Modell zum Codieren: Er kann in Zukunft 99 % der Programmierer ersetzen

Antirez, der Gründer von Redis, schrieb seinen ersten Blogbeitrag im Jahr 2024. Er sprach über seine Gefühle gegenüber großen Sprachmodellen aus der Perspektive eines gewöhnlichen Programmierers, obwohl seine Erfolge nicht gewöhnlich sind. In dem Artikel kommentierte er scharf, dass die Google-Engine zu einem Meer von Müll geworden sei, und bewertete die aktuellen AIGC-Fähigkeiten objektiv: dumm, aber kenntnisreich über alte und moderne Zeiten.

Er ist davon überzeugt, dass das aktuelle Stadium der generativen KI durch den langfristigen Einsatz bereits starke Programmierer nur noch stärker machen wird. Gegenwärtig handelt es sich bei den meisten Programmieraufgaben um sich wiederholende Arbeiten, und große Modelle müssen nicht über ein hohes Maß an Argumentation verfügen. Große Modelle eignen sich sehr gut für Programme, die nach Gebrauch „weggeworfen“ werden. Wir haben den Blogbeitrag von antirez übersetzt und einige Streichungen vorgenommen, ohne die ursprüngliche Absicht des Autors zu ändern.

Seit der Geburt von ChatGPT ist generative KI weit verbreitet, einschließlich verschiedener großer Modelle, die später lokal ausgeführt werden. Einerseits besteht mein persönliches Ziel darin, meine Programmierfähigkeiten zu verbessern, indem ich mich auf große Modelle verlasse, und andererseits hoffe ich auch, wertvolle Energie von mühsamer und geringwertiger Arbeit freizusetzen. Ich glaube, dass viele Freunde wie ich unzählige Stunden damit verbringen, nach langweiligen technischen Dokumenten zu suchen, gezwungen sind, verschiedene übermäßig komplexe APIs zu erlernen, und Programme schreiben, die in kurzer Zeit zu Müll werden. So sollte es bei der Arbeit nicht sein, und so sollte es bei der Entwicklung auch nicht sein. Heutzutage ist die Google-Engine zu einem Meer aus Müll geworden und wir müssen hart arbeiten, um darin nützliche Inhalte zu finden.

Außerdem bin ich selbst kein Neuling im Programmieren. Auch ohne externe Ressourcen kann ich Code schreiben und kann sogar sagen, dass ich einen gewissen Entwicklungsstand habe. Es ist nur so, dass ich im Laufe der Zeit immer mehr große Modelle verwendet habe, um beim Schreiben von High-Level-Code zu helfen: Python-Code am häufigsten, aber weniger in C.

Was mich an großen Sprachmodellen am meisten beeindruckt, ist, dass ich genau erkennen kann, wann sie verwendet werden können, und dass die blinde Verwendung den Fortschritt nur verlangsamt. Ich habe auch herausgefunden, dass große Modelle tatsächlich verschiedenen Videokursen auf Wikipedia und YouTube sehr ähnlich sind: Sie sind sehr effektiv für Benutzer, die willens, fähig und selbstdisziplinierter sind, aber marginal für Freunde, denen es bereits an geschäftlichen Fähigkeiten mangelt. Sinkende Erträge. Deshalb mache ich mir Sorgen, dass die generative KI zumindest zum jetzigen Zeitpunkt bereits starke Programmierer noch stärker machen wird.

Beginnen wir die Diskussion Schritt für Schritt.

Großes Sprachmodell: Allwissend und allmächtig
oder Papagei?

Eines der besorgniserregendsten Phänomene der neuen Welle des maschinellen Lernens ist, dass KI-Experten immer noch nur begrenzte Kenntnisse über große Modelle haben. Obwohl wir das neuronale Netzwerk erfunden haben, haben wir eigentlich nur einen Algorithmus zur automatischen Optimierung der Parameter des neuronalen Netzwerks erfunden. Hardware war in der Lage, immer größere Modelle zu trainieren, indem sie statistisches Wissen nutzte, das aus den zu verarbeitenden Daten (A-priori-Material) extrahiert wurde, und dann eine große Anzahl iterativer Experimente durchführte, um Fehler zu beseitigen und die richtige Antwort anzunähern. Man muss zugeben, dass große Modelle in der Vergangenheit tatsächlich eine bessere Leistung erbrachten als andere Architekturen. Aber insgesamt bleiben neuronale Netze selbst äußerst undurchsichtig.

Da Wissenschaftler nicht in der Lage sind, einige der neuen Fähigkeiten großer Modelle zu erklären, wird von ihnen erwartet, dass sie vorsichtiger sind. Aber im anderen Extrem gibt es auch viele Leute, die große Sprachmodelle ernsthaft unterschätzen, weil sie glauben, dass es sich nur um eine Art fortgeschrittenere Markov-Ketten handelt, die bestenfalls die begrenzten Änderungen im Trainingssatz reproduzieren können. Aber eine große Menge an Fakten zeigt, dass die Theorie, dass dieses große Modell nur „nachplappert“, einfach unhaltbar ist.

Es gibt auch viele begeisterte Menschen, die das Gefühl haben, dass das große Sprachmodell eine übernatürliche Kraft erlangt hat, die eigentlich nicht existiert. Das ist nicht so mysteriös. Große Modelle können bestenfalls nur den Datendarstellungsraum interpolieren, dem sie während des Trainings ausgesetzt waren, und das ist nichts Neues. Und selbst wenn es nur um die Interpolation geht, sind seine Fähigkeiten ziemlich begrenzt (aber genug, um die menschlichen Erwartungen zu übertreffen und sogar Überraschungen zu bringen). Wenn Sie noch einen Schritt weiter gehen und eine kontinuierliche Interpolation in dem Raum durchführen können, der von dem gesamten Code umgeben ist, den Sie berührt haben, dann wird das große Modell ausreichen, um 99 % der Programmierer zu ersetzen, auch wenn es keine wirklich neuen Dinge schaffen kann.

Glücklicherweise ist die Realität nicht so übertrieben und wir Entwickler haben immer noch Raum zum Überleben. Das große Sprachmodell kann in der Tat Programmformen schreiben, denen es in seiner jetzigen Form noch nicht ausgesetzt war, und es zeigt auch seine vorläufige Fähigkeit, die Entwicklungsrichtung durch die Integration von Ideen mit unterschiedlichen Häufigkeiten in den Trainingssatz zu steuern. Allerdings unterliegt diese Fähigkeit derzeit großen Einschränkungen, und verschiedene subtile Argumentationsaufgaben führen immer dazu, dass große Sprachmodelle katastrophale Ausfälle erleiden. Es muss jedoch zugegeben werden, dass große Sprachmodelle seit ihrer Geburt die größte Errungenschaft der KI-Technologie darstellen, und dies sollte die Prämisse aller Diskussionen sein.

Dumm, aber dennoch kenntnisreich über Vergangenheit und Gegenwart

Diese Aussage ist wahr: Große Sprachmodelle können bestenfalls die grundlegendsten Überlegungen durchführen, die nicht genau genug sind und oft voller sachlicher Illusionen und Erfindungen sind. Sie verfügen aber auch über profundes Wissen.

Im Bereich der Programmierung und anderen Szenarien, in denen beispielsweise qualitativ hochwertige Daten gewonnen werden können, sind große Modelle wie dumme Gelehrte, die alles von der Antike bis zur Neuzeit wissen. Es ist nicht klug, ein Programm mit einem solchen Partner zu paaren (meiner Meinung nach ist es auch nicht klug, ein Programm mit jemandem zu paaren): Sie neigen dazu, lächerliche Ideen zu verwerfen, und wir müssen ständig danach streben, uns in Entwicklungsideen hervorzuheben.

Aber umgekehrt, wenn wir diesen gelehrten Narren als ein uns zur Verfügung stehendes Werkzeug betrachten und ihm als Inspirationsquelle Fragen stellen, wird die Wirkung völlig anders sein. Die aktuellen großen Modelle können den Menschen noch nicht dazu bringen, die Wissenslücke zu schließen, aber wenn wir ein Problem lösen wollen, mit dem wir nicht vertraut sind, können sie uns oft dabei helfen, schnell vom Nichtwissen zu der Fähigkeit zu gelangen, vollständig selbst zu lernen.

Im Bereich der Programmierung haben Programmierer der letzten zwei oder drei Jahrzehnte möglicherweise keine hohe Meinung von der Leistungsfähigkeit großer Modelle. Schließlich mussten wir damals nur ein paar Programmiersprachen, bestimmte klassische Algorithmen und etwa ein Dutzend Basisbibliotheken beherrschen. Der Rest drehte sich ausschließlich um die Selbstentfaltung, den Einsatz von Talenten sowie die Anwendung von Fachwissen und Designfähigkeiten. Solange wir über diese Fähigkeit verfügen, sind wir verdiente professionelle Programmierer mit dem Potenzial, alle Probleme zu lösen.

Im Laufe der Zeit begannen sich jedoch verschiedene Frameworks, Programmiersprachen und Bibliotheken abzuwechseln. Das explosive Wachstum hat die Entwicklung erschwert und auch viele unnötige und unangemessene Probleme in die tägliche Arbeit der Programmierer gebracht. Vor diesem Hintergrund ist ein idiotischer Teamkollege wie Da Mo, der sowohl alte als auch moderne Zeiten kennt, zum wertvollsten Wegweiser für den Fortschritt geworden.

Zum Beispiel: Meine eigenen Experimente zum maschinellen Lernen wurden ein ganzes Jahr lang mit Keras durchgeführt. Später bin ich aus verschiedenen Gründen auf PyTorch umgestiegen. Zu diesem Zeitpunkt hatte ich bereits gelernt, was Einbettungen und Restnetzwerke sind, aber ich wollte die PyTorch-Dokumentation wirklich nicht Wort für Wort studieren (ich habe sie so studiert, als ich Keras lernte. Wenn ich ChatGPT hätte, würde ich es auf jeden Fall tun hilf mir, viele schmerzhafte Erinnerungen zu vermeiden). Da ich jetzt über große Sprachmodelle verfüge, kann ich mit Torch sehr einfach Python-Code schreiben. Die einzige Voraussetzung ist, eine klare Vorstellung von dem Modell zu haben, das ich kombinieren möchte, und in der Lage zu sein, die richtigen Fragen zu stellen.

Sprechen Sie mit Fällen

Bitte beachten Sie, dass ich hier nicht von diesen einfachen Anforderungen spreche, wie zum Beispiel „Wie funktioniert der Unterricht? Es gibt keinen großen Unterschied.“ Im Gegensatz dazu sind komplexe Modelle zu viel mehr fähig, darunter auch zu Fähigkeiten, die wir uns noch vor wenigen Jahren nicht hätten vorstellen können.

Jetzt kann ich GPT-4 sagen: „Sehen Sie, das ist das neuronale Netzwerkmodell, das ich in PyTorch implementiert habe. Das sind die Batch-Aufgaben, die ich eingerichtet habe. Ich möchte die Tensorgröße anpassen, damit die Batch-Funktion mit der Eingabe von kompatibel ist.“ neuronales Netzwerk und möchten es gleichzeitig auf diese bestimmte Weise ausdrücken. Können Sie mir sagen, welcher Code neu geschrieben werden muss? Testen Sie das Tensorergebnis in der Python-CLI. Ob die Dimensionen den Anforderungen entsprechen und ob das Datenlayout korrekt ist.

Schauen wir uns ein anderes Beispiel an. Vor einiger Zeit musste ich einen BLE-Client für einige ESP32-basierte Geräte entwickeln. Nach einigen Recherchen stellte ich fest, dass die meisten plattformübergreifenden Bluetooth-Programmierbindungen nicht direkt verwendet werden können und die Lösung sehr einfach ist: Schreiben Sie einfach den Code in Objective C mithilfe der nativen API von macOS. Dies erfordert, dass ich mich gleichzeitig mit zwei Problemen befassen muss: das Erlernen der umständlichen BLE-API von Objective C und die Anpassung an verschiedene bedeutungslose Muster (ich bin ein Minimalist und die BLE-API von Objective C ist definitiv ein Modell für „gutes Design“). Gegenbeispiel); und Lernen Sie, wie man in Objective C programmiert. Das letzte Mal habe ich damit vor zehn Jahren programmiert und die technischen Details wie Event-Loops und intrinsisches Management habe ich längst vergessen.

Das Endergebnis ist der folgende Code, der zwar nicht elegant und prägnant ist, aber zumindest funktioniert. Mit Hilfe großer Modelle habe ich die Entwicklung in einer sehr kurzen Zeit abgeschlossen, die vorher einfach undenkbar war:

https://github.com/antirez/freakwan/blob/main/osx-bte-cli/SerialBTE.m

Der Code wird hauptsächlich von ChatGPT generiert und meine Aufgabe besteht darin, die Anforderungen einzufügen, die ich erfüllen möchte, aber nicht sicher bin, wie ich sie umsetzen soll. So kann mir das große Modell erklären, wo das Problem liegt und wie es gelöst werden soll.

Zugegeben, das große Modell erforderte eigentlich nicht viel Codierung, aber es hat mir geholfen, die Entwicklung erheblich zu beschleunigen. Kann ich das Projekt ohne ChatGPT abschließen? Natürlich funktioniert es, aber das Wichtigste ist nicht, wie viel zusätzliche Zeit ich investieren muss, sondern dass ich vielleicht einfach aufgeben kann: Schließlich ist so eine lästige Sache meine Energieverschwendung nicht mehr wert.

Meiner Meinung nach ist das der eigentlich entscheidende Faktor. Ohne das große Vorbild hätte ich nach Abwägung von Aufwand und Nutzen überhaupt kein solches Programm geschrieben. Das große Modell hat mir sogar dabei geholfen, eine Optimierung vorzunehmen, die wichtiger war als das Programm selbst: Im Projekt habe ich Linenoise (die Zeilenbearbeitungsbibliothek, die ich verwende) so geändert, dass sie in Multiplexern funktioniert.

Einwegprogramm

Fälle wie die oben genannten gibt es noch viel mehr, daher möchte ich sie hier nicht zu oft wiederholen, schließlich haben ähnliche Geschichten grundsätzlich die gleichen Abläufe und Wirkungen. Bei meiner täglichen Arbeit stehe ich häufig vor einem Problem anderer Art: schnell zu überprüfbaren Ergebnissen zu gelangen. In diesem Fall können auch große Modelle zur Verbesserung der Explorationseffizienz eingesetzt werden.

In solchen Szenarien überlasse ich in der Regel das große Modell den gesamten Code. Wenn ich zum Beispiel ein Wegwerfprogramm wie dieses schreiben muss:

https://github.com/antirez/simple-Language-Model/blob/main/plot.py

Ich wollte die Verlustkurve während des Lernprozesses eines kleinen neuronalen Netzwerks visualisieren, also habe ich GPT-4 das vom PyTorch-Programm generierte CSV-Dateiformat gezeigt und dann vorgeschlagen, dass ich hoffe, wenn ich mehrere CSV-Dateien in der Befehlszeile angebe um die Ergebnisse verschiedener Experimente analysieren zu können. Verifizierungsverlustkurven werden verglichen. Der obige Link ist das von GPT-4 generierte Ergebnis und hat nur 30 Sekunden gedauert.

Ebenso benötige ich ein Programm, um den AirBnB-CSV-Bericht zu lesen und die Wohnungen nach Monat und Jahr zu gruppieren. Anschließend wird die Reinigungsgebühr mit der Anzahl der gebuchten Nächte kombiniert, um den durchschnittlichen Mietpreis für verschiedene Monate im Jahr zu berechnen. Das Programm funktionierte für mich, aber es war äußerst langweilig zu schreiben: Es gab nichts Neues oder Interessantes daran. Also wählte ich einen Teil der CSV-Datei aus, fügte ihn in GPT-4 ein und beschrieb dann das Problem, das das große Modell lösen sollte. Das Ausgabeprogramm wird einmal erfolgreich ausgeführt. Aber wir müssen die spezifische Datengruppierungsmethode richtig verstehen, sonst wirken die Daten verstreut und ungeordnet.

Aus einfachen Gründen glaube ich, dass das große Modell definitiv keine Lösung ist, die einfach aus den bereitgestellten Schulungsmaterialien kopiert wird. Ja, GPT-4 muss während des Trainings ähnliche Programme beobachtet haben, aber die spezifischen Gruppierungsanforderungen für diese Programme unterscheiden sich von meinen Eingabeaufforderungen, insbesondere die Anforderungen für die Gruppierung in CSV-Dateien in einem bestimmten Format. Meiner Meinung nach sollte ein großes Modell also in der Lage sein, den von verschiedenen Programmen im Trainingssatz beschriebenen Raum bis zu einem gewissen Grad zu interpolieren.

Es wäre nicht klug von mir, meine Zeit mit dem Schreiben eines so einfachen Programms zu verschwenden. Es stellt sich heraus, dass große Modelle solche Aufgaben übernehmen können und mir helfen, mich auf die wirklich wichtige Arbeit zu konzentrieren, was zweifellos meine Codeproduktivität im Verborgenen verbessert.

Typische Aufgaben , die mit großen Modellen nicht gelöst werden können
: Systemprogrammierung

Obwohl meine Versuche, große Modelle zu programmieren, beachtliche Erfolge erzielten, stellte ich beim Schreiben von Programmen in C fest, dass große Modelle eher als tragbare Dokumentationsassistenten dienten. Ich selbst bin Experte für Systemprogrammierung und das ist die Art von Anwendungsfall, bei dem große Modelle aufgrund fehlender ausgefeilter Argumentationsfähigkeiten wenig hilfreich sind. Ich glaube, dass alle meine Freunde ähnliche Gefühle haben.

Werfen wir einen Blick auf diese experimentelle Eingabeaufforderung:

„Generieren Sie eine elegante, kurze und effiziente C-Implementierung eines Bloom-Filters. Konzentrieren Sie sich auf die Hash-Funktionsverarbeitung und schreiben Sie sie in hochwertigem C. Bedenken Sie auch, dass die Implementierung so dimensioniert sein sollte, dass sie 100.000 Elemente speichert, da die Wahrscheinlichkeit falsch positiver Ergebnisse nicht besteht.“ 5 % überschreiten. Das hinzugefügte Element ist eine nullterminierte Zeichenfolge.“

Die Antwort von GPT-4 ist nicht gut. Bloom-Filter sind tatsächlich weit verbreitet und die beteiligten Datenstrukturen sind nichts Besonderes. Aber es ist klar, dass das Schreiben eines anständigen Bloom-Filters leistungsfähigere Abstraktionsfähigkeiten erfordert: zum Beispiel die Suche nach einer effizienten Möglichkeit, den gleichen String N-mal zu hashen und sicherzustellen, dass jeder Hash-Wert vollständig dekorreliert ist. Wenn Sie Ihre Meinung ändern und GPT-4 explizit bitten, die Hash-Funktion zu ändern, um N dekorrelierte Ausgaben zu erzeugen, wird die Lösung viel zuverlässiger sein. Wenn es diese Idee selbst entdecken könnte, würde es Bloom-Filter anders schreiben und eine einzige Hash-Funktion verwenden, um K Bits gleichzeitig zu setzen.

Tatsache ist, dass GPT-4 unabhängig voneinander angemessene und allgemeinere Hash-Funktionen schreiben kann, aber beim Schreiben größerer Projekte wie Bloom-Filter zeigt es keine guten Argumentationsfähigkeiten, sondern liefert zwei unterschiedliche, aber sehr ähnliche Hash-Funktionen.

Insgesamt sind die Argumentationsfähigkeiten aktueller großer Sprachmodelle immer noch schwach. Darüber hinaus sind die Ressourcen zu diesem Thema möglicherweise relativ knapp und es kann sogar eine große Anzahl minderwertiger Ressourcen geben, was zu unbefriedigenden Ergebnissen führt. Und dies ist keineswegs ein Einzelfall. Ich habe viele Male versucht, große Modelle in der Algorithmen- oder Systemprogrammierung zu verwenden, und die Ergebnisse waren ebenfalls sehr schlecht. Auch wenn dadurch die Erwartungen an die Argumentationsfähigkeiten gesenkt werden, kann das Niveau der Codegenerierung in der Python-Programmierumgebung nicht reproduziert werden.

Gleichzeitig kann GPT-4 jedoch die von ihm ausgegebenen Funktionen dekompilieren (was eine separate Sitzung erfordert) und die Bedeutung dieser Vorgehensweise genau verstehen. Daher spielen große Modelle in Systemprogrammierszenarien immer noch eine gewisse Rolle, sind es aber sehr begrenzt.

Ein weiterer interessanter und vielversprechender Punkt ist der erhebliche Leistungsunterschied zwischen den kleineren und größeren Modellen in der oben genannten Situation.

Obwohl Mixtral ein hervorragendes Modell ist, das für eine Vielzahl von Zwecken geeignet ist, kann angesichts der inhärent schwachen Argumentationsfähigkeiten großer Modelle die aktuelle Regel gefolgert werden, dass der Effekt umso besser ist, je größer die Größe ist. Darüber hinaus ist der Deepseek-Codierer des lokalen Modells auf eine Quantisierungsgenauigkeit von 4 Bit eingestellt, da der Speicher des lokalen Geräts nicht ausreicht, um das Modell mit höherer Präzision auszuführen. Dennoch ist seine Argumentationsfähigkeit bei demselben Problem mit 34 Milliarden Parametern noch stärker.

Bei meinen Versuchen habe ich Hinweise auf das Problem gegeben, und das Modell hat die richtige Antwort gegeben, die wahre Ursache des Problems identifiziert und schließlich eine funktionierende Alternative gefunden. Auf diese Art der Anwendung gibt es in keinem Dokument, Buch oder bei der Google-Suche eine direkte Antwort.

Ob aus der Perspektive der ursprünglichen Interpolation oder anderer Ideen, das Modell beherrscht irgendeine Form der Argumentationsfähigkeit. Nur mit dieser Denkfähigkeit kann KI die Grundursache des Problems finden und mögliche Lösungen finden. Deshalb denke ich, dass es keinen Grund mehr gibt, darüber zu streiten. Große Sprachmodelle haben durchaus eine positive Hilfsbedeutung für Programmierer.

Gleichzeitig haben die Erfahrungen der letzten Monate gezeigt, dass im Bereich der Systemprogrammierung, insbesondere für erfahrene Programmierer, große Modelle selten fertige Lösungen bieten.

Das ggufflib-Projekt, für das ich derzeit verantwortlich bin, erfordert das Schreiben einer Bibliothek, die Dateien im GGUF-Format liest und schreibt. Dabei handelt es sich um das Format, das von llama.cpp zum Laden quantisierter Modelle verwendet wird. Anfangs habe ich versucht, ChatGPT zu verwenden, um zu verstehen, wie quantisierte Codierung funktioniert, habe mich aber letztendlich für ein Reverse Engineering des llama.cpp-Codes entschieden – was schneller war.

Das ideale große Sprachmodell sollte in der Lage sein, die Dokumentation über das Datenformat basierend auf der Deklaration der „Struktur“ der Datenkodierung und der Dekodierungsfunktion, mit der es in Kontakt kommt, wiederherzustellen und so Systemprogrammierern dabei zu helfen, die Entwurfsideen zu verstehen. Aber obwohl die Funktion von llama.cpp nicht groß ist und in das Kontextfenster von GPT-4 gequetscht werden kann, ist die Schlussfolgerung der Ausgabe bedeutungslos.

In einer solchen Situation können wir nur das tun, was die meisten herkömmlichen Programmierer tun: Papier und Stift herausnehmen, den Code Zeile für Zeile lesen und sehen, wo die vom Decoder extrahierten Bits registriert werden.

Eine korrekte Sicht auf große Sprachmodelle

Mit großem Bedauern muss ich zugeben: Die meisten aktuellen Programmieraufgaben wiederholen die gleiche Arbeit in leicht unterschiedlicher Form und erfordern überhaupt kein hohes Maß an Argumentation. Große Sprachmodelle schneiden in dieser Hinsicht gut ab, unterliegen jedoch immer noch den harten Einschränkungen der Kontextskala.

Und das sollte auch uns Programmierer zum Nachdenken anregen: Lohnt es sich wirklich, ein solches Programm zu schreiben? Ja, dieser Job kann uns recht großzügige Belohnungen einbringen, aber wenn große Sprachmodelle nach und nach diesen Teil der Aufgabe übernehmen, werden in fünf oder höchstens zehn Jahren viele Programmierkollegen ihren Job verlieren.

Verfügen große Sprachmodelle außerdem über ein gewisses Maß an Denkfähigkeit oder ahmen sie immer noch Papageien nach, lernen aber nur anschaulicher? Ich denke, dass sie in manchen Fällen durchaus über die Fähigkeit verfügen, zu argumentieren, das heißt zu begreifen, was Semiotiker das Konzept der „Signifikanten“ nennen, also Bedeutungen, die in Wirklichkeit nicht existieren.

Ich glaube, dass jeder Freund, der oft mit großen Modellen zu tun hat, deren Grenzen verstehen und die in ihnen verkörperte Argumentationskraft spüren kann: Ihre Fähigkeit, Inhalte zu integrieren, denen sie in der Vergangenheit ausgesetzt waren, übertrifft die zufällige Ausgabe von Wörtern bei weitem. Obwohl sein Lernprozess hauptsächlich in der Vortrainingsphase abgeschlossen ist, erstellt das große Modell bei der Vorhersage des nächsten Tokens immer noch eine Art abstraktes Modell basierend auf dem Ziel. Obwohl dieses Modell immer noch fragil, unvollständig und perfekt ist, werden wir durch tatsächliche Beobachtung die objektive Existenz dieser Fähigkeit erkennen. Wie das Sprichwort sagt: Hören ist Glauben und Sehen ist Glauben. Auch wenn es das deterministische Prinzip der Mathematik in Frage stellt und den Ansichten der größten technischen Experten widerspricht, habe ich dennoch Vertrauen in das kognitive Niveau, das das große Modell zeigt.

Abschließend hoffe ich, dass jeder große Modelle aktiv annehmen und versuchen kann, sie zur Lösung verschiedener Probleme in der Programmierung zu nutzen. Das Stellen der richtigen Fragen an große Modelle wird zu einer grundlegenden Entwicklungskompetenz, und je mehr Sie es üben, desto besser kann die KI ihre Arbeit verbessern. Auch wenn KI-Faktoren nicht berücksichtigt werden, kann diese Fähigkeit, Probleme klar und deutlich zu beschreiben, uns helfen, besser mit anderen zu kommunizieren. Schließlich sind große Sprachmodelle nicht die einzigen Gesprächsobjekte, die mit unseren Denkprozessen nicht mithalten können. Ich glaube, jeder hat erkannt, dass viele Programmierer zwar in ihrem Fachgebiet hervorragend sind, ihre Kommunikationsfähigkeiten jedoch schlecht sind, was ebenfalls zu einem Engpass geworden ist, der ihre berufliche Entwicklung einschränkt.

Die heutige Google-Engine ist bereits kaputt, daher müssen große Modelle selbst im Hinblick auf die Verdichtung und Verfeinerung von Textinhalten eine enorme praktische Bedeutung haben. Ich persönlich werde weiterhin große Modelle nutzen und verstehen. Es hat mir nie Spaß gemacht, die Details obskurer Kommunikationsprotokolle zu lernen, und ich wollte mich auch nie mit komplizierten und auffälligen Schreibmethoden aus Bibliotheken befassen. Für mich ist das einfach Zeit- und Energieverschwendung. Dank des großen Sprachmodells wurde ich aus diesem Sumpf gerettet.

Ursprünglicher Link:

http://antirez.com/news/140

Supongo que te gusta

Origin blog.csdn.net/richerg85/article/details/135436934
Recomendado
Clasificación