Das Engineering ist heute eines der relevantesten Themen im maschinellen Lernen. Deshalb schreibe ich meinen dritten Artikel zum Thema. Mein Ziel ist es, mein Verständnis von technischen Kontexten für LLMs zu erweitern und dieses Wissen durch meine Artikel zu teilen.
In dem heutigen Artikel werde ich die Verbesserung des Kontexts, den Sie in Ihre LLMs einfügen, für die Beantwortung von Fragen diskutieren. Normalerweise basiert dieser Kontext auf der Abrufvergrößerung der Technology (RAG). In der heutigen sich ständig verändernden Umgebung sollte dieser Ansatz aktualisiert werden.
Sie können auch meine vorherigen Artikel von Context Engineering lesen:
Inhaltsverzeichnis
Warum sollten Sie sich um Context Engineering kümmern
Lassen Sie mich zunächst drei wichtige Punkte hervorheben, warum Sie sich um Kontextetechnik kümmern sollten:
- Bessere Ausgabe Qualität durch Vermeiden Kontextfäule. Weniger unnötiger Token erhöhen die Produktionsqualität. Sie können weitere Particulars darüber lesen in diesem Artikel
- Billiger (Senden Sie keine unnötigen Token, sie kosten Geld)
- Geschwindigkeit (weniger Token = schnellere Antwortzeiten)
Dies sind drei Kernkennzahlen für die meisten Fragen Antwortsysteme. Die Ausgangsqualität hat natürlich die größte Priorität, wenn man bedenkt, dass Benutzer kein System mit niedriger Leistung verwenden möchten.
Darüber hinaus sollte der Preis immer eine Überlegung sein, und wenn Sie ihn senken können (ohne zu viel technische Kosten), ist es eine einfache Entscheidung, dies zu tun. Schließlich bietet ein schnelleres Fragenbeantwortungssystem eine bessere Benutzererfahrung. Sie möchten nicht, dass Benutzer zahlreiche Sekunden darauf warten, eine Antwort zu erhalten, wenn ChatGPT viel schneller reagiert.
Der traditionelle Fragen-Beantwortungsansatz
Traditionell bedeutet in diesem Sinne den häufigsten Ansatz zur Beantwortung von Fragen in Systemen, die danach gebaut wurden Die Veröffentlichung von Chatgpt. Dieses System ist traditioneller Lappen, der wie folgt funktioniert:
- Holen Sie sich die relevantesten Dokumente für die Frage des Benutzers unter Verwendung des Abrufs der Vektorähnlichkeit
- Füttern Sie relevante Dokumente zusammen mit einer Frage in ein LLM und erhalten Sie eine Antwort
In Anbetracht seiner Einfachheit funktioniert dieser Ansatz unglaublich intestine. Interessanterweise sehen wir dies auch mit einem anderen traditionellen Ansatz. BM25 gibt es seit 1994 und wurde zum Beispiel kürzlich von Anthropic bei ihrer Einführung genutzt Kontextabrufbeweisen, wie effektiv auch einfache Informationsabruftechniken sind.
Sie können Ihr Fragenbeantwortersystem jedoch immer noch erheblich verbessern, indem Sie Ihren Lappen mit einigen Techniken aktualisieren, die ich im nächsten Abschnitt beschreiben werde.
Verbesserung des Abholens von Lappenkontext
Obwohl Rag relativ intestine funktioniert, können Sie wahrscheinlich eine bessere Leistung erzielen, indem Sie die Techniken einführen, die ich in diesem Abschnitt diskutieren kann. Die Techniken, die ich hier beschreibe, konzentrieren sich alle auf die Verbesserung des Kontextes, den Sie dem LLM füttern. Sie können diesen Kontext mit zwei Hauptansätzen verbessern:
- Verwenden Sie weniger Token im irrelevanten Kontext (z. B. weniger Materials aus relevanten Dokumenten entfernen oder verwenden).
- Fügen Sie relevante Dokumente hinzu
Daher sollten Sie sich darauf konzentrieren, einen der obigen Punkte zu erreichen. Wenn Sie in Bezug auf denken Präzision und Rückruf:
- Erhöht die Präzision (auf Kosten des Rückrufs)
- Erhöhen Sie den Rückruf (auf Kosten der Präzision)
Dies ist ein Kompromiss, den Sie während der Arbeit an Kontext -Engineering Ihr Fragen Antwortsystem einlassen müssen.
Reduzierung der Anzahl irrelevanter Token
In diesem Abschnitt hebe ich drei Hauptansätze hervor, um die Anzahl der irrelevanten Token zu verringern, die Sie in den LLMS -Kontext einspeisen:
- Wiederbelebung
- Zusammenfassung
- Aufforderung an GPT
Beim Abholen von Dokumenten aus der Vektor -Ähnlichkeitssuche werden sie angesichts der Vektor -Ähnlichkeitsbewertung in der Reihenfolge der am Relevantesten bis am wenigsten relevanten Vektor -Ähnlichkeit zurückgegeben. Diese Ähnlichkeitsbewertung zeigt jedoch möglicherweise nicht genau, welche Dokumente am relevantesten sind.
Wiederbelebung
Sie können somit zum Beispiel ein erneutes Modell verwenden, Qwen Rerankerum die Dokumentbrocken neu zu ordnen. Sie können dann nur die obersten X -Relevanzbrocken (gemäß dem Reranker) beibehalten, um einige irrelevante Dokumente aus Ihrem Kontext zu entfernen.
Zusammenfassung
Sie können auch die Dokumente zusammenfassen und die Anzahl der professional Dokument verwendeten Token reduzieren. Sie können beispielsweise das vollständige Dokument aus den 10 besten Dokumenten abgerufen, Dokumente von 11 bis 20 zusammenfassen und den Relaxation verwerfen.
Dieser Ansatz erhöht die Wahrscheinlichkeit, dass Sie den vollständigen Kontext von relevanten Dokumenten durchführen, während Sie zumindest einen Kontext (die Zusammenfassung) von Dokumenten beibehalten, die weniger wahrscheinlich related sind.
Aufforderung an GPT
Zuletzt können Sie auch die GPT auffordern, ob die abgerufenen Dokumente für die Benutzerabfrage related sind. Wenn Sie beispielsweise 15 Dokumente abrufen, können Sie 15 einzelne LLM -Anrufe an die Relevanz tätigen, ob jedes Dokument related ist. Sie verwerfen dann Dokumente, die als irrelevant angesehen werden. Beachten Sie, dass diese LLM -Aufrufe parallelisiert werden müssen, um die Reaktionszeit innerhalb einer akzeptablen Grenze zu halten.
Hinzufügen relevanter Dokumente
Vor oder nach dem Entfernen irrelevanter Dokumente stellen Sie auch sicher, dass Sie relevante Dokumente einfügen. Ich füge zwei Hauptansätze in diesen Unterabschnitt hinzu:
- Bessermodelle einbetten
- Suche nach weiteren Dokumenten (auf Kosten einer niedrigeren Präzision)
Bessermodelle einbetten
Um die besten Einbettungsmodelle zu finden, können Sie zur Einbettungsmodell -Rangliste der Umarmung.wo Gemini und Qwen zum Schreiben dieses Artikels in den High 3 sind. Die Aktualisierung Ihres Einbettungsmodells ist normalerweise ein billiger Ansatz, um relevantere Dokumente abzurufen. Dies liegt daran Gemini APIund speichern Vektoren in Tannenzapfen.
Suchen Sie nach weiteren Dokumenten
Ein weiterer (relativ einfacher) Ansatz, um relevantere Dokumente zu holen, besteht darin, mehr Dokumente im Allgemeinen zu holen. Wenn Sie mehr Dokumente abrufen, erhöht sich natürlich die Wahrscheinlichkeit, dass Sie relevante hinzufügen. Sie müssen dies jedoch mit der Vermeidung von Kontextfäulnis und der Verringerung der Anzahl irrelevanter Dokumente auf ein Minimal ausgleichen. Jeder unnötige Token in einem LLM -Anruf ist wie früher wahrscheinlich:
- Reduzieren Sie die Ausgangsqualität
- Kosten erhöhen
- Niedrigere Geschwindigkeit
Dies sind alles entscheidende Aspekte eines Fragen-Antwortensystems.
Agentensuchansatz
Ich habe in früheren Artikeln beispielsweise über die Ansätze der Agentensuche besprochen, als ich besprochen habe Skalierung Ihrer KI -Suche. In diesem Abschnitt werde ich jedoch tiefer in die Einrichtung einer Agentensuche eingehen, die einige oder den gesamten Vektor -Abrufschritt in Ihrem Lappen ersetzt.
Der erste Schritt ist, dass der Benutzer seine Frage zu einem bestimmten Satz von Datenpunkten stellt, z. B. eine Reihe von Dokumenten. Anschließend richten Sie ein Agentensystem ein, das aus einem Orchesteragenten und einer Liste von Subagenten besteht.

Dies ist ein Beispiel für die Pipeline, die die Agenten folgen würden (obwohl es viele Möglichkeiten gibt, sie einzurichten).
- Der Orchestra -Vertreter fordert zwei Subagenten an
- Relevante Dokumente werden an den Orchesteragenten zurückgegeben, der erneut eine Unterabgänge zu den relevanten Dokumenten freigibt, um Unterabschnitte (Brocken) des Dokuments abzuholen, die für die Frage des Benutzers related sind. Diese Brocken werden dann an den Orchesteragenten zurückgegeben
- Der Orchesteragent beantwortet die Frage des Benutzers angesichts der bereitgestellten Stücke
Ein weiterer Fluss, den Sie implementieren könnten, könnte darin bestehen, Dokumenteinbettungen zu speichern und Schritt eins durch die Vektorähnlichkeit zwischen der Benutzerfrage und jedem Dokument zu ersetzen.
Dieser Agentenansatz hat Anklang und Nachteile.
Upses:
- Bessere Probability, relevante Stücke zu holen als mit traditionellem Lappen
- Mehr Kontrolle über das Lappensystem. Sie können Systemaufforderungen usw. aktualisieren, während Rag mit seinen Einbettungsähnlichkeiten relativ statisch ist
Nachteil:
Meiner Meinung nach ist der Aufbau eines solchen agentenbasierten Abrufsystems ein sehr leistungsfähiger Ansatz, der zu erstaunlichen Ergebnissen führen kann. Die Überlegung, die Sie beim Aufbau eines solchen Programs machen müssen, ist, ob die erhöhte Qualität, die Sie (wahrscheinlich) sehen, die Kosten erhöht.
Andere Aspekte des Kontext -Engineering
In diesem Artikel habe ich hauptsächlich den Kontext -Engineering für die Dokumente abgedeckt, die wir in einem Frage -Antwortsystem abrufen. Es gibt jedoch auch andere Aspekte, die Sie sich bewusst sein sollten, hauptsächlich:
- Die Eingabeaufforderung des Programs/der Benutzer, die Sie verwenden
- Andere Informationen, die in die Eingabeaufforderung eingesperrt sind
Die Eingabeaufforderung, die Sie für Ihr Frage -Antwortsystem schreiben, sollte präzise und strukturiert sein und irrelevante Informationen vermeiden. Sie können viele andere Artikel zum Thema Strukturierungsaufforderungen lesen und in der Regel einen LLM bitten, diese Aspekte Ihrer Eingabeaufforderung zu verbessern.
Manchmal füttern Sie auch andere Informationen in Ihre Eingabeaufforderung. Ein häufiges Beispiel ist die Fütterung von Metadaten, beispielsweise Daten, die Informationen über den Benutzer abdecken, z. B.:
- Title
- Jobrolle
- Was sie normalerweise suchen
- usw
Wenn Sie solche Informationen hinzufügen, sollten Sie sich immer fragen:
Hilft die Änderung dieser Informationen zu meiner Frage, die das Beantwortungssystem für die Frage beantwortet, die Frage?
Manchmal lautet die Antwort ja, manchmal ist es Nein. Der wichtigste Teil ist, dass Sie eine rationale Entscheidung darüber getroffen haben, ob die Informationen in der Eingabeaufforderung benötigt werden. Wenn Sie nicht rechtfertigen können, diese Informationen in der Eingabeaufforderung zu haben, sollte sie normalerweise entfernt werden.
Abschluss
In diesem Artikel habe ich Context Engineering für Ihr Fragenbeantwortersystem diskutiert und warum es wichtig ist. Fragen Antwortsysteme bestehen normalerweise aus einem ersten Schritt, um relevante Informationen abzurufen. Der Fokus auf diese Informationen sollte darin bestehen, die Anzahl irrelevanter Token auf ein Minimal zu reduzieren und gleichzeitig so viele relevante Informationen wie möglich aufzunehmen.
👉 Finden Sie mich in Socials:
✍️ Medium
Sie können auch meinen ausführlichen Artikel über lesen Anthropics Kontextabruf unten:
