Ihr Unternehmen benötigt einen Multi-Channel-Smart-Chatbot und eine Suchmaschine, die in der Lage ist, verschiedene Arten von Daten zu erfassen, die über verschiedene Standorte verteilt sind. Darüber hinaus sollte der Konversations-Chatbot in der Lage sein, Antworten auf Anfragen bereitzustellen, zusammen mit der Quelle und einer Erklärung, wie und wo die Antwort erhalten wurde. Mit anderen Worten: Sie wünschen sich für Ihr Unternehmen ein privates und sicheres ChatGPT, das Ihre Geschäftsdaten interpretieren, verstehen und Fragen dazu beantworten kann .
Das Ziel des POC besteht darin, den Wert eines mit Azure Services erstellten virtuellen GPT-Assistenten mit Ihren eigenen Daten in Ihrer eigenen Umgebung zu zeigen/zu beweisen. Die Leistungen sind:
Mit Bot Framework erstellte Backend-Bot-API, die mehreren Kanälen zugänglich gemacht wird (Web-Chat, MS Teams, SMS, E-Mail, Slack usw.)
Frontend-Webanwendung mit einer Such- und einer Bot-Benutzeroberfläche.
Das Repo soll Ihnen Schritt für Schritt beibringen, wie Sie eine OpenAI-basierte intelligente Suchmaschine erstellen. Jedes Notebook baut aufeinander auf und endet mit der Erstellung der beiden Anwendungen.
Für Microsoft-Vollzeitkräfte: Dies ist ein vom Kunden finanziertes VBD, unterhalb der Vermögenswerte für die Lieferung.
Artikel | Beschreibung | Link |
---|---|---|
VBD-SKU-Info und Datenblatt | CSAM muss es als „vom Kunden investiert“ gegen Credits/Stunden des Unified Support-Vertrags versenden. Der Kunde entscheidet, ob 3 oder 5 Tage. | ESXP-SKU-Seite |
VBD-Akkreditierung für CSAs | Links für CSAs, um die für die Durchführung des Workshops erforderliche Akkreditierung zu erhalten | Link 1, Link 2 |
VBD 3-5 Tage POC Asset (IP) | Das zu liefernde MVP (dieses GitHub-Repo) | Azure-Cognitive-Search-Azure-OpenAI-Accelerator |
VBD-Workshop-Deck | Das Deck stellt den Workshop vor und erklärt ihn | Einführung in AOAI GPT Azure Smart Search Engine Accelerator.pptx |
CSA-Schulungsvideo | 2-stündige Schulung für Microsoft CSAs | POC VBD-Schulungsaufzeichnung (Neues Video folgt bald!) |
Voraussetzungen Kunde 3-5 Tage POC
Azure-Abonnement
Akzeptierte Bewerbung für Azure Open AI, einschließlich GPT-4o. Wenn der Kunde nicht über ein genehmigtes GPT-4o verfügt, können Microsoft-CSAs dieses während des Workshops ausleihen
Microsoft-Mitglieder sollten vorzugsweise als Gäste in Azure AD-Clients hinzugefügt werden. Wenn dies nicht möglich ist, können Kunden Microsoft-Mitgliedern Unternehmens-IDs ausstellen
Für diesen Workshop-POC muss im Azure-Mandanten des Kunden eine Ressourcengruppe (RG) festgelegt werden
Das Kundenteam und das Microsoft-Team müssen über die Berechtigung „Mitwirkender“ für diese Ressourcengruppe verfügen, damit sie zwei Wochen vor dem Workshop alles einrichten können
Im RG muss ein Speicherkonto eingerichtet sein.
Kundendaten/Dokumente müssen mindestens zwei Wochen vor dem Workshop-Termin auf das Blob-Storage-Konto hochgeladen werden
Der Kunde muss eine Multi-Tenant-App-Registrierung (Dienstprinzipal) erstellen (speichern Sie die Client-ID und den geheimen Wert).
Der Kunde muss dem Microsoft-Team 10–20 Fragen (leicht bis schwer) stellen, auf die der Bot korrekt antworten soll.
Für die IDE-Zusammenarbeit und Standardisierung während des Workshops werden AML-Compute-Instanzen mit Jupyper Lab verwendet, hierfür muss Azure Machine Learning Workspace in der RG bereitgestellt werden
Hinweis: Stellen Sie sicher, dass in Ihrem Azure Machine Learning-Arbeitsbereich genügend Kernrechenkontingent vorhanden ist
Der Benutzer stellt eine Frage.
In der App verwendet ein OpenAI LLM eine clevere Eingabeaufforderung, um anhand der Benutzereingaben zu bestimmen, welche Quelle verwendet werden soll
Es stehen fünf Arten von Quellen zur Verfügung:
Transkripte der Dialoge aller Episoden der TV-Show: FRIENDS
90.000 Zusammenfassungen von Covid-Publikationen
4 lange PDF-Bücher
3a. Azure SQL-Datenbank – enthält COVID-bezogene Statistiken in den USA.
3b. API-Endpunkte – RESTful OpenAPI 3.0 API mit aktuellen Statistiken über Covid.
3c. Azure Bing Search API – bietet Zugriff auf das Internet und ermöglicht Szenarien wie: QnA auf öffentlichen Websites.
3d. Azure AI Search – enthält KI-angereicherte Dokumente aus Blob Storage:
3f. CSV-Tabellendatei – enthält COVID-bezogene Statistiken in den USA.
Die App ruft das Ergebnis von der Quelle ab und erstellt die Antwort.
Das Tupel (Frage und Antwort) wird als persistenter Speicher und zur weiteren Analyse in CosmosDB gespeichert.
Die Antwort wird dem Benutzer zugestellt.
https://gptsmartsearchapp.azurewebsites.net/
100 % Python.
Verwendet Azure Cognitive Services, um unstrukturierte Dokumente zu indizieren und anzureichern: OCR über Bilder, Chunking und automatisierte Vektorisierung.
Nutzt die Hybridsuchfunktionen von Azure AI Search, um die beste semantische Antwort bereitzustellen (Text- und Vektorsuche kombiniert).
Verwendet LangChain als Wrapper für die Interaktion mit Azure OpenAI, Vektorspeichern, das Erstellen von Eingabeaufforderungen und das Erstellen von Agenten.
Mehrsprachig (erfasst, indiziert und versteht jede Sprache)
Multi-Index -> mehrere Suchindizes
Fragen und Antworten zu tabellarischen Daten mit CSV-Dateien und SQL-Datenbanken
Verwendet Azure AI Document Intelligence SDK (ehemals Form Recognizer), um komplexe/große PDF-Dokumente zu analysieren
Verwendet die Bing-Such-API, um Internetsuchen und Fragen und Antworten auf öffentlichen Websites zu ermöglichen.
Stellt eine Verbindung zu API-Datenquellen her, indem Fragen in natürlicher Sprache in API-Aufrufe umgewandelt werden.
Verwendet CosmosDB als dauerhaften Speicher, um Benutzerkonversationen zu speichern.
Verwendet Streamlit, um die Frontend-Webanwendung in Python zu erstellen.
Verwendet Bot Framework und Bot Service, um das Bot-API-Backend zu hosten und es mehreren Kanälen, einschließlich MS Teams, zur Verfügung zu stellen.
Verwendet auch LangServe/FastAPI, um eine alternative Backend-API mit Streaming-Funktionen bereitzustellen
Hinweis: (Voraussetzung) Sie müssen bereits einen Azure OpenAI-Dienst erstellt haben
Forken Sie dieses Repo auf Ihr Github-Konto.
Stellen Sie in Azure OpenAI Studio diese Modelle bereit (ältere Modelle als die unten aufgeführten funktionieren nicht):
„gpt-4o“
„gpt-4o-mini“
„text-embedding-ada-002 (oder neuer)“
Erstellen Sie eine Ressourcengruppe, in der sich alle Assets dieses Beschleunigers befinden sollen. Azure OpenAI kann sich in einer anderen RG oder einem anderen Abonnement befinden.
Klicken Sie UNTEN, um die gesamte Azure-Infrastruktur zu erstellen, die zum Ausführen der Notebooks erforderlich ist (Azure AI Search, Cognitive Services usw.):
Hinweis : Wenn Sie noch nie zuvor ein Azure AI Services Multi-Service account
erstellt haben, erstellen Sie bitte eines manuell im Azure-Portal, um die Responsible AI-Bedingungen zu lesen und zu akzeptieren. Sobald dies bereitgestellt ist, löschen Sie es und verwenden Sie dann die obige Bereitstellungsschaltfläche.
Klonen Sie Ihr Forked-Repository auf Ihre AML-Compute-Instanz. Wenn Ihr Repo privat ist, lesen Sie weiter unten im Abschnitt „Fehlerbehebung“, wie Sie ein privates Repo klonen.
Stellen Sie sicher, dass Sie die Notebooks in einer Python 3.10-Conda-Umgebung oder neuer ausführen
Installieren Sie die Abhängigkeiten auf Ihrem Computer (stellen Sie sicher, dass Sie den folgenden pip-Befehl in derselben Conda-Umgebung ausführen, in der Sie die Notebooks ausführen möchten. Führen Sie beispielsweise in der AZML-Recheninstanz Folgendes aus:
conda activate azureml_py310_sdkv2 pip install -r ./common/requirements.txt
Möglicherweise erhalten Sie einige Pip-Abhängigkeitsfehler, aber das ist in Ordnung, die Bibliotheken wurden unabhängig vom Fehler korrekt installiert.
Bearbeiten Sie die Datei credentials.env
mit Ihren eigenen Werten aus den in Schritt 4 erstellten Diensten.
Für BLOB_SAS_TOKEN und BLOB_CONNECTION_STRING. Gehen Sie zu Speicherkonto > Sicherheit + Netzwerk > Shared Access Signature > SAS generieren
Führen Sie die Notebooks der Reihe nach aus . Sie bauen sich übereinander auf.
Warum sollte man die Azure AI-Suchmaschine verwenden, um den Kontext für das LLM bereitzustellen, und nicht stattdessen die Feinabstimmung des LLM vornehmen?
A: Zitat aus der OpenAI-Dokumentation: „GPT-3 wurde anhand einer großen Textmenge aus dem offenen Internet vorab trainiert. Wenn Sie eine Eingabeaufforderung mit nur wenigen Beispielen erhalten, können Sie oft erkennen, welche Aufgabe Sie ausführen und generieren möchten.“ eine plausible Vervollständigung. Dies wird oft als „Few-Shot-Learning“ bezeichnet. Die Feinabstimmung verbessert das Lernen mit wenigen Schüssen, indem sie an viel mehr Beispielen trainiert, als in die Eingabeaufforderung passen, sodass Sie bei einer Vielzahl von Aufgaben bessere Ergebnisse erzielen können. Sobald ein Modell verfeinert wurde, müssen Sie in der Eingabeaufforderung keine Beispiele mehr angeben. Das spart Kosten und ermöglicht Anfragen mit geringerer Latenz .
Die Feinabstimmung des Modells erfordert jedoch die Bereitstellung von Hunderten oder Tausenden von Eingabeaufforderungs- und Abschluss-Tupeln, bei denen es sich im Wesentlichen um Abfrage-Antwort-Beispiele handelt. Der Zweck der Feinabstimmung besteht nicht darin, dem LLM Wissen über die Daten des Unternehmens zu vermitteln, sondern ihm Beispiele zu liefern, damit er Aufgaben wirklich gut ausführen kann, ohne dass bei jeder Eingabeaufforderung Beispiele erforderlich sind.
Es gibt Fälle, in denen eine Feinabstimmung erforderlich ist, beispielsweise wenn die Beispiele proprietäre Daten enthalten, die nicht in Eingabeaufforderungen offengelegt werden sollten, oder wenn die verwendete Sprache hochspezialisiert ist, wie im Gesundheitswesen, in der Pharmazie oder in anderen Branchen oder Anwendungsfällen, in denen die verwendete Sprache verwendet wird ist im Internet nicht häufig zu finden.
Schritte zum Klonen eines privaten Repos:
Fügen Sie auf Ihrem Terminal den folgenden Text ein und ersetzen Sie ihn durch Ihre GitHub-E-Mail-Adresse. Generieren Sie einen neuen SSH-Schlüssel.
ssh-keygen -t ed25519 -C „[email protected]“
Kopieren Sie den öffentlichen SSH-Schlüssel in Ihre Zwischenablage. Fügen Sie einen neuen SSH-Schlüssel hinzu.
cat ~/.ssh/id_ed25519.pub# Wählen Sie dann den Inhalt der im Terminal angezeigten Datei id_ed25519.pub aus und kopieren Sie ihn in Ihre Zwischenablage
Gehen Sie auf GitHub zu Einstellungen -> SSH- und GPG-Schlüssel -> Neuer SSH-Schlüssel
Fügen Sie im Feld „Titel“ eine beschreibende Bezeichnung für den neuen Schlüssel hinzu. „AML-Computing“. Fügen Sie im Feld „Schlüssel“ Ihren öffentlichen Schlüssel ein.
Klonen Sie Ihr privates Repo
git clone [email protected]:YOUR-USERNAME/YOUR-REPOSITORY.git
Dieses Projekt freut sich über Beiträge und Vorschläge. Für die meisten Beiträge müssen Sie einem Contributor License Agreement (CLA) zustimmen, in dem Sie erklären, dass Sie das Recht haben, uns die Rechte zur Nutzung Ihres Beitrags zu gewähren, und dies auch tatsächlich tun. Weitere Informationen finden Sie unter https://cla.opensource.microsoft.com.
Wenn Sie eine Pull-Anfrage einreichen, ermittelt ein CLA-Bot automatisch, ob Sie eine CLA bereitstellen müssen, und schmückt die PR entsprechend (z. B. Statusprüfung, Kommentar). Folgen Sie einfach den Anweisungen des Bots. Sie müssen dies nur einmal für alle Repos tun, die unsere CLA verwenden.
Dieses Projekt hat den Microsoft Open Source Verhaltenskodex übernommen. Weitere Informationen finden Sie in den FAQ zum Verhaltenskodex oder wenden Sie sich bei weiteren Fragen oder Kommentaren an [email protected].
Dieses Projekt kann Marken oder Logos für Projekte, Produkte oder Dienstleistungen enthalten. Die autorisierte Nutzung von Microsoft-Marken oder -Logos unterliegt den Marken- und Markenrichtlinien von Microsoft und muss diesen entsprechen. Die Verwendung von Microsoft-Marken oder -Logos in geänderten Versionen dieses Projekts darf keine Verwirrung stiften oder eine Sponsorschaft durch Microsoft implizieren. Jegliche Verwendung von Marken oder Logos Dritter unterliegt den Richtlinien dieser Drittanbieter.