Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Erstellen Sie eine LLM-Anwendung: Nutzen Sie die Vektorsuchfunktionen von Azure Cognitive Services

Erstellen Sie eine LLM-Anwendung: Nutzen Sie die Vektorsuchfunktionen von Azure Cognitive Services

王林
王林nach vorne
2023-08-23 22:49:06761Durchsuche

Autor |. Simon Bisson

Kuratiert |. Die kognitive Such-API von Microsoft bietet jetzt eine Vektorsuche als Dienst für die Verwendung mit großen Sprachmodellen in Azure OpenAI und mehr.

Tools wie Semantic Core, TypeChat und LangChain ermöglichen die Erstellung von Anwendungen rund um generative KI-Technologien wie Azure OpenAI. Dies liegt daran, dass sie die Auferlegung von Einschränkungen für das zugrunde liegende große Sprachmodell (LLM) ermöglichen, das als Werkzeug zum Erstellen und Ausführen von Schnittstellen in natürlicher Sprache verwendet werden kann

Im Wesentlichen ist ein LLM ein Werkzeug zum Navigieren in semantischen Räumen, in denen tiefe neuronale The Das Netzwerk kann ausgehend vom ersten Hinweis die nächste Silbe in einer Kette von Token vorhersagen. Wenn die Eingabeaufforderung offen ist, überschreitet das LLM möglicherweise seinen Eingabeumfang und produziert etwas, das vernünftig erscheint, in Wirklichkeit aber völliger Unsinn ist.

So wie wir alle dazu neigen, den Ergebnissen von Suchmaschinen zu vertrauen, neigen wir auch dazu, den Ergebnissen von LLM zu vertrauen, weil wir sie als einen weiteren Aspekt vertrauter Technologie betrachten. Das Training großer Sprachmodelle mithilfe vertrauenswürdiger Daten von Websites wie Wikipedia, Stack Overflow und Reddit vermittelt jedoch kein Verständnis des Inhalts, sondern ermöglicht lediglich die Generierung von Text, der denselben Mustern wie der Text in diesen Quellen folgt. Manchmal ist die Ausgabe korrekt, manchmal jedoch auch falsch.

Wie vermeiden wir Fehler und bedeutungslose Ausgaben großer Sprachmodelle und stellen sicher, dass unsere Benutzer genaue und vernünftige Antworten auf ihre Fragen erhalten?

1. Begrenzen Sie große Modelle mit semantischen Speicherbeschränkungen

Was wir tun müssen, ist LLM zu begrenzen, um sicherzustellen, dass es nur Text aus kleineren Datensätzen generiert. Hier kommt der neue LLM-basierte Entwicklungsstack von Microsoft ins Spiel. Es bietet die notwendigen Tools, um Ihr Modell zu steuern und zu verhindern, dass es Fehler generiert.

Sie können ein bestimmtes Ausgabeformat erzwingen, indem Sie Tools wie TypeChat verwenden, oder Orchestrierungspipelines wie Semantic Kernel verwenden, um andere vertrauenswürdige Informationsquellen zu verarbeiten. Dadurch wird das Modell effektiv „verwurzelt“. das Modell in einem bekannten semantischen Raum, wodurch das LLM eingeschränkt wird. Hier kann LLM das tun, was es gut kann: die konstruierte Eingabeaufforderung zusammenfassen und auf der Grundlage dieser Eingabeaufforderung Text generieren, ohne dass es zu Überschreitungen kommt (oder zumindest die Wahrscheinlichkeit einer Überschreitung erheblich verringert wird).

Was Microsoft „semantisches Gedächtnis“ nennt, ist die Grundlage der letzten Methode. Das semantische Gedächtnis verwendet die Vektorsuche, um Hinweise bereitzustellen, die zur Bereitstellung der sachlichen Ausgabe des LLM verwendet werden können. Die Vektordatenbank verwaltet den Kontext der anfänglichen Eingabeaufforderung, die Vektorsuche sucht nach gespeicherten Daten, die mit der anfänglichen Benutzerabfrage übereinstimmen, und das LLM generiert den Text basierend auf diesen Daten. Sehen Sie sich diesen Ansatz in Bing Chat in Aktion an, der die nativen Vektorsuchtools von Bing verwendet, um Antworten zu erstellen, die aus seiner Suchdatenbank abgeleitet werden.

Semantisches Gedächtnis ermöglicht Vektordatenbanken und Vektorsuchen, um LLM-basierte Anwendungen bereitzustellen. Sie können eine der wachsenden Zahl von Open-Source-Vektordatenbanken verwenden oder Vektorindizes zu Ihren vertrauten SQL- und NoSQL-Datenbanken hinzufügen. Ein neues Produkt, das besonders nützlich erscheint, erweitert Azure Cognitive Search, indem es Ihren Daten einen Vektorindex hinzufügt und eine neue API zum Abfragen dieses Index bereitstellt

2. Vektorindex zu Azure Cognitive Search hinzufügen

Azure Cognitive Search basiert auf der Microsoft-eigenen Suche Werkzeuge. Es bietet eine Kombination aus bekannten Lucene-Abfragen und eigenen Abfragetools in natürlicher Sprache. Azure Cognitive Search ist eine Software-as-a-Service-Plattform, die mithilfe von Cognitive Services-APIs private Daten hosten und auf Inhalte zugreifen kann. Vor kurzem hat Microsoft auch Unterstützung für die Erstellung und Verwendung von Vektorindizes hinzugefügt, die es Ihnen ermöglicht, mithilfe von Ähnlichkeitssuchen relevante Ergebnisse in Ihren Daten einzuordnen und sie in KI-basierten Anwendungen zu verwenden. Dies macht Azure Cognitive Search zu einem idealen Tool für von Azure gehostete LLM-Anwendungen, die mit Semantic Kernel und Azure OpenAI erstellt wurden, und Semantic Kernel-Plugins für Cognitive Search für C# und Python sind ebenfalls verfügbar

Wie bei anderen Azure-Diensten ist Azure Cognitive Search ein verwalteter Dienst Dienst, der mit anderen Azure-Diensten funktioniert. Es ermöglicht Ihnen die Indizierung und Suche in verschiedenen Azure-Speicherdiensten sowie das Hosten von Text, Bildern, Audio und Video. Daten werden in mehreren Regionen gespeichert, was eine hohe Verfügbarkeit gewährleistet und Latenz- und Reaktionszeiten reduziert. Darüber hinaus können Sie für Unternehmensanwendungen Microsoft Entra ID (den neuen Namen für Azure Active Directory) verwenden, um den Zugriff auf private Daten zu steuern.

3 Einbettungsvektoren für Inhalte generieren und speichern. Es ist zu beachten, dass Azure Cognitive Search dies ist ein „Bring Your Own Embedding Vector“-Service. Cognitive Search generiert nicht die benötigten Vektoreinbettungen, daher müssen Sie Azure OpenAI oder die OpenAI-Einbettungs-API verwenden, um Einbettungen für Ihre Inhalte zu erstellen. Dies erfordert möglicherweise die Aufteilung großer Dateien in Blöcke, um sicherzustellen, dass Sie die Token-Grenzwerte des Dienstes einhalten. Seien Sie bereit, bei Bedarf neue Tabellen zu erstellen, um Vektordaten zu indizieren.

In der kognitiven Azure-Suche verwendet die Vektorsuche ein Modell des nächsten Nachbarn, um eine vom Benutzer ausgewählte Anzahl von Dokumenten zurückzugeben, die der ursprünglichen Abfrage ähneln. Dieser Prozess ruft die Vektorindizierung auf, indem er die Vektoreinbettung der ursprünglichen Abfrage verwendet und ähnliche Vektor- und Indexinhalte aus der Datenbank zurückgibt, die von der LLM-Eingabeaufforderung verwendet werden können

Microsoft verwendet diesen Vektorspeicher als Teil des Retrieval Augmented Generation (RAG)-Entwurfsmusters von Azure Machine Learning und in Verbindung mit seinem Prompt-Flow-Tool. RAG nutzt die Vektorindizierung in der kognitiven Suche, um den Kontext aufzubauen, der die Grundlage für LLM-Eingabeaufforderungen bildet. Dies bietet Ihnen eine einfache Möglichkeit, Vektorindizes zu erstellen und zu verwenden, beispielsweise um die Anzahl ähnlicher Dokumente festzulegen, die von einer einfachen Abfrage zurückgegeben werden. Beginnen Sie mit der Erstellung von Ressourcen für Azure OpenAI und Cognitive Search in derselben Region. Dadurch können Sie den Suchindex mit minimaler Latenz mit Einbettungen laden. Sie müssen die Azure OpenAI-API und die Cognitive Search-API aufrufen, um den Index zu laden. Daher empfiehlt es sich, sicherzustellen, dass Ihr Code auf mögliche Ratenbeschränkungen im Dienst für Sie reagieren kann, indem Sie Code hinzufügen, der Wiederholungsversuche verwaltet. Wenn Sie die Service-API verwenden, sollten Sie asynchrone Aufrufe verwenden, um Einbettungen zu generieren und Indizes zu laden.

Vektoren werden in Suchindizes als Vektorfelder gespeichert, wobei Vektoren Gleitkommazahlen mit Abmessungen sind. Diese Vektoren werden durch einen hierarchisch navigierbaren Small-World-Nachbarschaftsgraphen abgebildet, der Vektoren in Nachbarschaften ähnlicher Vektoren sortiert und so den eigentlichen Prozess der Suche nach Vektorindizes beschleunigt.

Nachdem Sie das Indexschema für die Vektorsuche definiert haben, können Sie Daten in den Index für die kognitive Suche laden. Beachten Sie, dass Daten möglicherweise mehreren Vektoren zugeordnet sind. Wenn Sie beispielsweise die kognitive Suche zum Hosten von Unternehmensdokumenten verwenden, verfügen Sie möglicherweise über einen separaten Vektor für wichtige Dokumentmetadatenbegriffe und Dokumentinhalte. Der Datensatz muss als JSON-Dokument gespeichert werden, was die Verwendung der Ergebnisse zum Zusammenstellen des Eingabeaufforderungskontexts vereinfacht. Der Index muss nicht das Quelldokument enthalten, da er die Verwendung der gängigsten Azure-Speicheroptionen unterstützt

Bevor Sie die Abfrage ausführen, müssen Sie zunächst das Einbettungsmodell Ihrer Wahl mit dem Abfragetext aufrufen. Dadurch wird ein mehrdimensionaler Vektor zurückgegeben, den Sie zum Durchsuchen des Index Ihrer Wahl verwenden können. Geben Sie beim Aufruf der Vektorsuch-API den Zielvektorindex, die gewünschte Anzahl von Übereinstimmungen und die relevanten Textfelder im Index an. Die Auswahl des geeigneten Ähnlichkeitsmaßes kann bei Abfragen sehr hilfreich sein. Am häufigsten wird dabei die Kosinusmetrik verwendet

5 Über einfache Textvektoren hinaus

Die Vektorfunktionen von Azure Cognitive Search gehen über den bloßen Abgleich von Text hinaus. Cognitive Search kann mit mehrsprachigen Einbettungen verwendet werden, um Dokumentsuchen in mehreren Sprachen zu unterstützen. Sie können auch komplexere APIs verwenden. Sie können beispielsweise die semantischen Suchtools von Bing in Hybrid Search kombinieren, um genauere Ergebnisse zu liefern und so die Qualität der Ausgabe von LLM-basierten Anwendungen zu verbessern.

Microsoft produziert schnell die Tools und Technologien, die es zum Aufbau seiner eigenen GPT-4-basierten Bing-Suchmaschine sowie verschiedener Copiloten verwendet hat. Orchestrierungs-Engines wie Semantic Kernel und der Prompt Flow von Azure AI Studio sind der Kern des Microsoft-Ansatzes für die Arbeit mit großen Sprachmodellen. Nachdem diese Grundlagen nun gelegt sind, sehen wir, wie das Unternehmen weitere der notwendigen Basistechnologien einführt. Vektorsuche und Vektorindizierung sind der Schlüssel zur Bereitstellung präziser Antworten. Durch die Entwicklung vertrauter Tools zur Bereitstellung dieser Dienste hilft Microsoft uns, die Kosten und den Lernaufwand zu minimieren

Das obige ist der detaillierte Inhalt vonErstellen Sie eine LLM-Anwendung: Nutzen Sie die Vektorsuchfunktionen von Azure Cognitive Services. 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