Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Zehn Gedanken zum Design großer Modellanwendungen

Zehn Gedanken zum Design großer Modellanwendungen

王林
王林nach vorne
2023-12-04 17:17:211211Durchsuche

Technologie ist nicht allmächtig, aber ohne Technologie ist sie möglicherweise absolut unmöglich, und das Gleiche gilt möglicherweise auch für große Modelle. Das auf großen Modellen basierende Anwendungsdesign muss sich auf das zu lösende Problem konzentrieren. Im Bereich der Verarbeitung natürlicher Sprache vereint das große Modell selbst verschiedene NLP-Aufgaben nur bis zu einem gewissen Grad in einem Sequenz-zu-Sequenz-Modell. Anhand großer Modelle lösen wir spezifische Produktions- und Lebensprobleme, Produkt- und technisches Design sind nach wie vor unverzichtbar.

Wenn also große Vorbilder die Zukunft der Softwareentwicklung neu erfinden, gibt es dann einige Grundprinzipien, denen wir folgen sollten?

1. Modell zuerst, kontinuierliche Iteration

Wenn das Modell die Aufgabe abschließen kann, muss das Modell nicht weiterentwickelt werden, der Code jedoch nicht Modelle gewinnen immer mehr an Bedeutung. Im Gegensatz zu herkömmlichen Programmiermethoden tendieren aktuelle Entwicklungsideen eher dazu, „zuerst zu modellieren“. Das bedeutet, dass wir, wenn wir vor einem Problem oder einer Aufgabe stehen, zunächst überlegen, ob wir vorhandene Modelle zur Lösung nutzen können, anstatt sofort mit dem Schreiben von Code zu beginnen. Da der Code festgelegt ist, bietet das Modell großen Raum für Entwicklung. Im Laufe der Zeit verfügen Modelle über starke Lern- und Anpassungsfähigkeiten und können sich durch kontinuierliche Iteration selbst optimieren und verbessern. Daher besteht unsere erste Priorität darin, das Potenzial des Modells auszuschöpfen und es zu einem Werkzeug für uns zur Lösung von Problemen zu machen. Das Ziel des gesamten Systems besteht darin, die Fähigkeit von LLM zu nutzen, Absichten zu planen und zu verstehen, um effiziente Projekte aufzubauen. Unterwegs könnten wir versucht sein, in diese zwingende Denkweise zurückzufallen und Code für jedes Detail unseres Programms zu schreiben. Allerdings müssen wir dieser Versuchung widerstehen, denn in dem Maße, in dem wir das Modell jetzt dazu bringen können, etwas zuverlässig zu tun, wird es mit der Weiterentwicklung des Modells besser und robuster werden

2 Kompromisse bei der Genauigkeit eingehen, Interaktionen nutzen. Begriffsklärung

Verwenden Sie Trade- Nutzen Sie Präzision und Interaktion, um Unklarheiten zu beseitigen. Die richtige Einstellung beim Codieren mit LLM ist nicht „Mal sehen, was wir mit dem tanzenden Bären machen können“, sondern so viel Hebelwirkung wie möglich aus dem System herauszuholen. Beispielsweise können sehr allgemeine Muster wie „Bericht aus Datenbank erstellen“ oder „Fächer eines Jahres unterrichten“ erstellt werden, die mit Klartext-Eingabeaufforderungen parametrisiert werden können und so leicht sehr wertvolle und differenzierte Ergebnisse liefern.

Um eine hohe Genauigkeit aufrechtzuerhalten, müssen wir den Zusammenhang mit anderen Faktoren abwägen. Um dieses Gleichgewicht zu erreichen, können wir einen interaktiven Ansatz verfolgen, um mögliche Unklarheiten und Missverständnisse zu beseitigen. Diese Strategie verbessert nicht nur die Genauigkeit, sondern erhöht auch die betriebliche Flexibilität und Effizienz.

Beim Codieren mit LLM sollte die wichtigste Denkweise darin bestehen, darüber nachzudenken, wie das System optimal genutzt werden kann, anstatt „es immer wieder auszuprobieren“. „Was kann getan werden?“ Das bedeutet, dass wir uns nicht nur mit der einfachen Funktionsimplementierung zufrieden geben sollten, sondern das Potenzial des Systems gründlich erkunden und es einen größeren Wert für uns schaffen lassen sollten

In tatsächlichen Anwendungen können wir einige gemeinsame Muster erstellen. Beispielsweise ist ein Modus wie „Bericht aus Datenbank erstellen“ äußerst anpassungsfähig und kann Parameter durch einfache Texteingabeaufforderungen anpassen, um verschiedenen Anforderungen gerecht zu werden. Ein weiteres Beispiel ist das Modell der „Lehre eines einjährigen Vertiefungslehrgangs“, das eine Fülle von Bildungsressourcen integriert und zudem durch interaktive Methoden leicht an individuelle Lehrbedürfnisse angepasst werden kann.

Durch die Anwendung dieser gängigen Muster wird nicht nur die Arbeitseffizienz verbessert, sondern es können auch leicht wertvolle und unverwechselbare Ergebnisse erzielt werden. Diese Strategie der Abwägung von Genauigkeit und Interaktionsdisambiguierung ist zweifellos eine wichtige Denkweise beim Design großer Modellanwendungen.

3 Code ist für Syntax und Prozeduren da, Modelle für Semantik und Absicht

Im Bereich der modernen Programmierung wird die Arbeitsteilung zwischen Code und Modellen immer klarer. Einfach ausgedrückt ist Code hauptsächlich für die Implementierung von Syntax und Verfahren verantwortlich, während sich Modelle auf die Generierung und Interpretation von Semantik und Absicht konzentrieren. In praktischen Anwendungen hat diese Arbeitsteilung viele Ausdrücke, aber die Grundidee ist dieselbe: Code wird verwendet, um bestimmte Anweisungen und Prozesse auszuführen, während Modelle verwendet werden, um die tiefe Bedeutung und Ziele der Sprache zu begründen, zu generieren und zu verstehen

Grundsätzlich sind Modelle jedoch gut darin, über die Bedeutung und den Zweck einer Sprache nachzudenken, sind aber oft schlechter als Code, wenn sie bestimmte Berechnungen und Prozesse durchführen sollen. Beispielsweise lässt sich ein High-Level-Modell möglicherweise leicht zum Lösen von Sudoku programmieren, es kann jedoch relativ schwierig sein, das Sudoku selbst zu lösen.

Jeder Code hat seine einzigartigen Vorteile. Der Schlüssel liegt in der Auswahl des Tools, das am besten für das spezifische Problem geeignet ist. Die Grenze zwischen Syntax und Semantik ist eine große Herausforderung beim Entwurf umfangreicher Modellanwendungen. In diesem Zusammenhang müssen wir die jeweiligen Stärken und Schwächen von Code und Modellen besser verstehen, um sie effektiver zur Lösung von Problemen nutzen zu können Eine Tatsache, die nicht ignoriert werden kann, ist, dass die Gesamtstärke eines Systems oft von seinem anfälligsten Teil bestimmt wird. Diese Ansicht gilt nicht nur für herkömmliche Softwaresysteme, sondern auch für Anwendungen, die auf großen Modellen basieren. Beim Streben nach Systemflexibilität und -effizienz sollte harte Codierung so weit wie möglich vermieden werden. Beim Hardcoding geht es darum, bestimmte Werte oder Logik direkt in den Code zu schreiben, ohne mögliche zukünftige Änderungen oder Erweiterungen zu berücksichtigen. Während dieser Ansatz kurzfristig praktisch sein mag, kann er auf lange Sicht zu starrem und schwer zu wartendem Code führen. Daher sollten wir beim Schreiben von Codes und Algorithmen auf zusätzliche Argumentation und Flexibilität achten.

Beim Entwerfen von Eingabeaufforderungen und Interaktionen sollten wir versuchen, genügend Informationen und Logik einzubeziehen, damit das System Entscheidungen und Überlegungen autonom treffen und nicht einfach ausführen kann vordefinierte Befehle. Auf diese Weise lässt sich nicht nur der Einsatz von Hard-Coding reduzieren, sondern auch die Möglichkeiten von LLM besser nutzen, wodurch das System intelligenter und flexibler wird.

5 Datenqualität steht an erster Stelle, und die Anwendung von LLM ist eng mit qualitativ hochwertigen Daten verbunden.

Großmaßstäbliche Modelle weisen zwar außergewöhnliche Fähigkeiten auf, genau wie „gut ausgebildete“ Personen, aber in praktischen Anwendungen sind sie es immer noch Es fehlen einige Hintergründe und Initiativen

Einfach ausgedrückt: Wenn Sie diesen Modellen eine einfache oder offene Frage stellen, erhalten Sie eine einfache oder allgemeine Antwort. Solchen Antworten mangelt es möglicherweise an Tiefe oder Detailliertheit und sie erfüllen möglicherweise nicht alle Bedürfnisse. Wenn Sie detailliertere und tiefergehende Antworten erhalten möchten, müssen die Art und Weise und die Strategie, Fragen zu stellen, intelligenter sein.

Dies ist tatsächlich eine Manifestation des „Garbage in, Garbage out“-Prinzips im Zeitalter der künstlichen Intelligenz. Egal wie fortschrittlich die Technologie wird, die Qualität der eingehenden Daten bleibt entscheidend. Wenn die Eingabedaten mehrdeutig, ungenau oder unvollständig sind, sind die Antworten, die das Modell ausgibt, wahrscheinlich auch nicht eindeutig.

Um sicherzustellen, dass das LLM-Modell qualitativ hochwertige und detaillierte Antworten liefern kann, muss sichergestellt werden, dass die Eingabedaten genau, detailliert und kontextreich sind. Das bedeutet auch, dass die Datenqualität weiterhin im Vordergrund steht. Nur wenn wir auf die Qualität der Daten achten und diese sicherstellen, können wir erwarten, von diesen fortschrittlichen Modellen wirklich wertvolle und detaillierte Informationen zu erhalten einfach ignoriert oder mit einer vagen Antwort beantwortet werden. Stattdessen sollten wir uns auf Interaktionsabsichten mit Benutzern verlassen, um diese Unsicherheit zu klären.

Wenn beim Programmieren Unsicherheit in einer Reihe verschachtelter Eingabeaufforderungen besteht – das Ergebnis einer Eingabeaufforderung kann beispielsweise mehrere Interpretationen haben – sollten wir eine Strategie anwenden, die der „Ausnahme von Ausnahmen“ ähnelt. Dies bedeutet, dass diese Unsicherheit an höhere Ebenen im Stapel weitergegeben werden sollte, bis Sie eine Ebene erreichen, auf der Sie mit dem Benutzer interagieren oder die Unsicherheit klären können.

Durch solche Entwurfsstrategien können Programme angemessen reagieren, wenn sie mit Unsicherheiten konfrontiert werden, und so genauere und zuverlässigere Ergebnisse liefern.

7 Text als universelles Protokoll.

Text ist zu einem allgegenwärtigen Protokoll geworden, was hauptsächlich auf die hervorragende Qualität von LLM zurückzuführen ist Fähigkeit, natürliche Sprache, Absicht und Semantik zu analysieren. Daher ist Text zum bevorzugten Format für die Weitergabe von Anweisungen zwischen Eingabeaufforderungen, Modulen und LLM-basierten Diensten geworden

Obwohl die natürliche Sprache in einigen Anwendungsszenarien im Vergleich zu anderen strukturierten Sprachen (wie XML) etwas ungenau sein kann, ist dies der Fall Der Vorteil besteht darin, dass es prägnant, intuitiv und für den Menschen leicht verständlich ist. Natürlich kann bei Aufgaben, die ein hohes Maß an Präzision und Struktur erfordern, dennoch in geringem Umfang strukturierte Sprache zur Unterstützung eingesetzt werden. In den meisten Szenarien eignet sich natürliche Sprache jedoch recht gut zur Übermittlung von Anweisungen und Absichten.

Es ist erwähnenswert, dass Text als „zukunftssichere“ natürliche Interaktionsmethode mit der Popularisierung und Weiterentwicklung dieser LLM-basierten Technologien die Interoperabilität und das Verständnis zwischen verschiedenen Systemen und verschiedenen Eingabeaufforderungen weiter fördern wird. Wenn zwei völlig unterschiedliche LLM-Dienste dieselben Textanweisungen verstehen und darauf reagieren können, wird die Zusammenarbeit und Interaktion zwischen ihnen so natürlich und reibungslos wie die Kommunikation zwischen Menschen

Der Zweck des Umschreibens des Inhalts besteht nicht darin, die ursprüngliche Bedeutung zu ändern, sondern die Sprache ins Chinesische umzuschreiben

8 Komplexe Probleme, Zerlegungsoperationen

Wenn man mit einem komplexen Problem konfrontiert wird, ist es nicht nur eine Herausforderung für Menschen, das Gleiche gilt auch für große Modelle. Wenn wir in praktischen Anwendungen die Eingabeaufforderungen komplexer Probleme direkt als Teil des Programms verwenden, können wir auf Probleme stoßen, da alles, was wir wirklich brauchen, das Ergebnis der Schlussfolgerung ist

Um dieses Problem zu lösen, ist die Verwendung einer wirksamen Methode „Element“ „Hinweis. Diese Eingabeaufforderung stellt nicht nur eine Frage, sondern liefert auch eine detaillierte Antwort und fordert das Modell dann auf, daraus wichtige Informationen zu extrahieren. Dieser Ansatz funktioniert gut, weil er tatsächlich eine komplexe kognitive Aufgabe in eine relativ einfache umwandelt. Stellen Sie sich vor, Sie geben einer Person die Aufgabe „Lesen Sie diesen Artikel und finden Sie die Antwort heraus“. Selbst wenn der Benutzer keine Fachkenntnisse auf dem betreffenden Gebiet hat, wird er diese Aufgabe höchstwahrscheinlich erledigen, da die Leistungsfähigkeit der natürlichen Sprache enorm ist.

Beim Entwerfen von Anwendungen, die auf großen Modellen basieren, sind einige Dinge zu beachten. Dinge, die für normale Menschen schwierig sind, können in Modellen genauso schwierig sein. Angesichts dieser Situation besteht die beste Strategie darin, ein komplexes Problem oder eine komplexe Aufgabe in einfachere Schritte zu zerlegen. Dies kann die Verarbeitungsschwierigkeiten verringern und die Stabilität und Genauigkeit der Antworten verbessern Kampf gegen unsere eigenen Fehler. Oft neigen wir dazu, uns die Funktionsweise von LLM (Large Language Model) als den internen Prozess eines „Gehirns“ vorzustellen. Es ist jedoch wichtig zu erkennen, dass es trotz einiger Ähnlichkeiten zwischen Modellen und menschlichem Denken viele bedeutende Unterschiede zwischen beiden gibt.

Eine Besonderheit ist besonders wichtig: Bei kurzfristigen Interaktionen mangelt es Modellen oft an persistentem Gedächtnis. Das bedeutet, dass sich das Modell wahrscheinlich nicht von einer Minute der Interaktion bis zur nächsten an alle Details erinnern kann. Diese Funktion bietet uns die Möglichkeit einer gewissen Kontrolle.

Diese Kontrolle ist nicht auf die Codeüberprüfung beschränkt. Tatsächlich kann das Modell auch als Sicherheitsmonitor für den Code fungieren, um den sicheren Betrieb des Codes zu gewährleisten; es kann auch als Bestandteil der Teststrategie verwendet werden, um uns bei der Formulierung effektiverer Testpläne zu helfen; Ein Inhaltsfilter, der uns dabei hilft, qualitativ hochwertige Inhalte zu generieren

Solange wir das Modell entsprechend steuern und leiten, kann es daher zu einem leistungsstarken „Assistenten“ bei unserer Arbeit werden. Grundlage dieser Kontrolle ist unser tiefes Verständnis und die Beherrschung der internen Mechanismen und Eigenschaften des Modells.

10. Identifizieren Sie Grenzen und denken Sie nicht, dass große Modelle allmächtig sind.

Die Fähigkeiten großer Sprachmodelle sind wirklich erstaunlich. Sie können große Mengen an Textdaten verarbeiten und analysieren, logischen und kohärenten Text generieren und sogar übertreffen menschliche Leistung bei diesen Aufgaben. Das bedeutet jedoch nicht, dass wir diese großen Vorbilder blind verehren und glauben sollten, sie könnten alles.

Große Modelle haben tatsächlich noch viele Einschränkungen und Einschränkungen. Obwohl sie große Mengen an Textdaten verarbeiten können, verstehen sie die Nuancen von Sprache und Kontext nicht so gut wie Menschen. Darüber hinaus wird ihre Leistung auch durch die Auswahl der Trainingsdaten und -algorithmen eingeschränkt, und es können einige Verzerrungen und Fehler auftreten

Daher sollten wir bei der Verwendung großer Modelle eine rationale und vorsichtige Haltung bewahren und gleichzeitig den Komfort, den sie mit sich bringen, und den Fortschritt schätzen. Seien Sie sich aber auch ihrer Grenzen und potenziellen Risiken bewusst. Auf diese Weise können diese Modelle besser genutzt werden, um die gesunde Entwicklung großer modellbasierter Anwendungen zu fördern.

Das obige ist der detaillierte Inhalt vonZehn Gedanken zum Design großer Modellanwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen