Kapitel 4. Zusätzliche Cloud- und KI-Fähigkeiten
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Generative KI-Anwendungen sind weit mehr als "nur ein großes Modell". Wie du bereits gesehen hast, spielen LLMs eine zentrale Rolle, aber es gibt noch andere relevante Teile, die die Fähigkeiten des Azure OpenAI Service ergänzen: Feinabstimmung über Azure OpenAI APIs oder Playgrounds, Erdung mit Azure Cognitive Search und/oder Azure OpenAI Embeddings, Live-Suchfunktionen mit Bing Search API usw.
Außerdem gibt es neue Arten von Tools, mit denen wir die Kapazitäten von LLMs noch weiter ausbauen können. Eine kuratierte Auswahl für jeden generativen KI- und Azure OpenAI-Anwender könnte Plug-ins, LMM-Integration, Datenbanken und mehr umfassen. Wir wollen uns diese genauer ansehen.
Plug-ins
Einer der wichtigsten neuen Begriffe bei KI-Anwendungen ist der Begriff "Plug-ins". Wir können sie als direkte Schnittstellen zu fortgeschrittenen Funktionalitäten definieren, die Microsofts Azure OpenAI (oder OpenAIs ChatGPT) mit anderen Systemen verbinden. Es gibt zum Beispiel Plug-ins von Unternehmen wie Expedia, FiscalNote, Instacart, KAYAK, Klarna, Milo, OpenTable, Shopify, Slack, Speak, Wolfram und Zapier. Sie sind außerhalb von Azure OpenAI und ihre Art und Geschäftsmodelle hängen von den Entwicklerunternehmen ab.
Darüber hinaus kündigte Microsoft im Mai 2023 eine eigene Sammlung von Plug-ins an und definierte sie als "standardisierte Schnittstellen, die es Entwicklern ermöglichen, APIs zu erstellen und zu nutzen, um die Fähigkeiten von großen Sprachmodellen (LLMs) zu erweitern und eine tiefe Integration von GPT in Azure und dem Microsoft-Ökosystem zu ermöglichen. Zu diesen Plug-ins gehören direkte Schnittstellen zu Bing Search, Azure Cognitive Search, Azure SQL, Azure Cosmos DB und Microsoft Translator. Das bedeutet, dass du als Entwickler Azure OpenAI mit minimalem Entwicklungs- und Integrationsaufwand mit anderen Microsoft- und Azure-bezogenen Komponenten verbinden kannst.
LLM-Entwicklung, Orchestrierung und Integration
Es gibt auch entwicklerorientierte Teile, die die Kombination von bestehenden LLMs mit anderen Diensten ermöglichen, unabhängig von der Programmiersprache. Sehen wir uns jetzt einige dieser Optionen an.
LangChain
LangChain ist ein Open-Source-Framework , mit dem du Anwendungen entwickeln kannst, die auf Sprachmodellen basieren. Es bietet verschiedene sprachenbezogene Dienstprogramme und Werkzeuge (z. B. Einbettungen, Pipelines, Agenten, Plug-ins) und ist eine der Schlüsselkomponenten für einige der Beschleuniger, die du in Kapitel 3 kennengelernt hast. In der offiziellen Dokumentation ist von sechs Schlüsselbereichen die Rede, die in aufsteigender Reihenfolge ihrer Komplexität aufgeführt sind:
- LLMs und Eingabeaufforderungen
-
Dazu gehören Eingabeaufforderungen, die Optimierung von Eingabeaufforderungen, eine generische Schnittstelle für alle LLMs und gemeinsame Dienstprogramme für die Arbeit mit LLMs.
- Ketten
-
Ketten gehen über einen einzelnen LLM-Aufruf hinaus und umfassen eine Reihe von Aufrufen (entweder zu einem LLM oder einem anderen Dienstprogramm). LangChain bietet eine Standardschnittstelle für Ketten, viele Integrationen mit anderen Tools und End-to-End-Ketten für gängige Anwendungen.
- Datengestützte Erzeugung
-
Die datenerweiterte Generierung umfasst bestimmte Arten von Ketten, die zunächst mit einer externen Datenquelle interagieren, um Daten für die Verwendung im Generierungsschritt zu beschaffen. Beispiele dafür sind die Zusammenfassung langer Textstücke und Fragen/Antworten über bestimmte Datenquellen.
- Agenten
-
Agenten beinhalten, dass ein LLM Entscheidungen darüber trifft, welche Handlungen zu ergreifen sind, diese Handlungen ausführt, eine Beobachtung sieht und dies so lange wiederholt, bis es erledigt ist. LangChain bietet eine Standardschnittstelle für Agenten, eine Auswahl an Agenten und Beispiele für End-to-End-Agenten.
- Speicher
-
Speicher bezieht sich auf die Aufrechterhaltung des Zustands zwischen den Aufrufen einer Kette/eines Agenten. LangChain bietet eine Standardschnittstelle für Speicher, eine Sammlung von Speicherimplementierungen und Beispiele für Ketten/Agenten, die Speicher verwenden.
- Bewertung
-
Generative Modelle sind bekanntermaßen schwer mit traditionellen Metriken zu bewerten. Ein neuer Weg, sie zu bewerten, besteht darin, die Sprachmodelle selbst für die Bewertung zu verwenden. LangChain bietet einige Eingabeaufforderungen/Ketten, die dabei helfen sollen.
Der Artikel "Introducing LangChain Agents" von Valentina Alto, einer Microsoft KI-Spezialistin und Autorin von Modern Generative AI with ChatGPT and OpenAI Models (Packt), erklärt ein Implementierungsbeispiel für Azure OpenAI Service mit LangChain. Du kannst auch das offizielle Integrationsdokument für LangChain und den Azure OpenAI Service einsehen: .
Semantischer Kernel
Semantic Kernel ist ein Open-Source-SDK das dabei hilft, Azure OpenAI Service und andere LLMs mit regulären Programmiersprachen wie C#, Java und Python zu kombinieren. Das SDK umfasst Funktionen wie Eingabeaufforderungen, rekursive Schlussfolgerungen, Zusammenfassungen, Zero-Shot-/Few-Shot-Lernen, kontextuelles Gedächtnis, Langzeitgedächtnis, Einbettungen, semantische Indizierung, Planung, Retrieval-Augmented-Generierung, externe Wissensspeicher und die Option "Verwende deine eigenen Daten".
Das End-to-End-Konzept des Kernels umfasst die Bausteine, die du in Abbildung 4-1 sehen kannst.
Schauen wir uns die einzelnen Teile der Abbildung genauer an:
- ASK
-
Bezieht sich auf die Eingabe, die du dem Semantic Kernel übergibst. Das kann eine Frage oder eine Anweisung in natürlicher Sprache sein. Beispiele sind Anfragen wie "Kannst du mir den höchsten Berg der Welt nennen?" oder Befehle wie "Fasse diesen Text zusammen". Der Semantic Kernel versucht, deine ASK zu interpretieren und sie mit seinen vielfältigen Fähigkeiten zu beantworten.
- Kernel
-
Das ist der Kernprozessor, der deine ASK verwaltet und eine Mischung aus KI-Diensten, Speichern, Modellen und Add-Ons choreografiert, um eine Antwort zu erstellen. Du hast die Flexibilität, die Einstellungen und Parameter des Kerns nach deinen Wünschen anzupassen.
- Planer
-
Als fester Bestandteil des Kerns fügt der Planer auf raffinierte Weise Funktionen zusammen und formuliert eine Strategie, um deine Frage zu beantworten. Wenn du z. B. gefragt wirst: "Schreibe ein Haiku über den Mond", kann der Planer Funktionen zur Themenfindung, zum Reimen und zur Strukturierung von Gedichten miteinander verbinden.
- Sammle
-
An diesem Punkt des Plans fängt der Kernel an, Daten aus einer Reihe von Quellen zu sammeln, darunter KI-Modelle, Speicher, Konnektoren oder sogar riesige externe Wissensspeicher. Wenn du dich für "das größte Säugetier der Erde" interessierst, könnte der Kernel auf Ressourcen wie Bing oder Wikipedia zurückgreifen.
- Fertigkeiten
-
Nutze die Fähigkeiten des Semantic Kernel, um deine ASKs zu lösen, indem du dir seine umfangreichen Komponenten zunutze machst. Je nach Komplexität der Schritte und der verwendeten Quellen können die Fähigkeiten ein Spektrum von einfach bis kompliziert umfassen. Beispiele für Fähigkeiten sind Bereiche wie Erklärung, Interpretation, Erstellung, Kategorisierung und sogar die Beantwortung von Anfragen. Betrachte die Fähigkeiten als die funktionale "Anatomie" deiner KI-Anwendung.
- Erinnerungen
-
Die Fähigkeit des Systems, Informationen zu speichern, abzurufen und zu verarbeiten, die aus früheren Interaktionen, Aufgaben oder extern erworbenen Daten stammen. Es ist vergleichbar mit dem menschlichen Gedächtnis, allerdings in einem digitalen Format.
- Steckverbinder
-
Konnektoren dienen als Brücken, die es dem Semantic Kernel ermöglichen, sich mit einem Spektrum von KI-Plattformen, Modellen, Speichern oder externen Datenbeständen zu verbinden. Mithilfe von Konnektoren kann man Plattformen wie OpenAI, Azure OpenAI oder sogar Modelle wie ChatGPT sowie Speichersysteme oder Informationsquellen wie die Encyclopaedia Britannica anzapfen.
- Informiere
-
In dieser Phase teilt dir der Kernel das Ergebnis deiner Anfrage mit, das in Form von Text, Bildern, Audio oder einer bestimmten Aktivität dargestellt werden kann. Angenommen, du gibst eine Eingabeaufforderung ein: "Zeige einen ruhigen Wald". Der Kernel könnte daraufhin eine bildbasierte Abfrage erstellen und das resultierende Bild projizieren.
- Steps
-
Jeder Schritt kann als Eingabeaufforderung oder als angeborene Funktion bezeichnet werden und bildet den Grundstein für den Plan, deine ASK zu lösen. Eingabeaufforderungen sind sprachbasierte Direktiven, die an Azure OpenAI-Modelle gesendet werden. Im Gegensatz dazu beziehen sich angeborene Funktionen auf standardisierte Codiervorgänge, die oft in Sprachen wie C# oder Python geschrieben werden. Bei der Antwort auf die Frage "Beschreibe den Prozess der Photosynthese" könnte ein Schritt eine Eingabeaufforderung sein, die die wichtigsten Mechanismen aufzeigt, während ein anderer Schritt eine systemeigene Funktion nutzt, um sie in einem Aufzählungsformat zusammenzufassen.
- Pipeline
-
Im Wesentlichen eine Reihe von Aktionen, die eingeleitet werden, um deine ASK zu erfüllen. Pipelines können entweder voreingestellt sein oder vom Planer dynamisch erstellt werden. Bei einer Anfrage wie "Schreibe eine Erzählung über die Entwicklung der Technologie" könnte die Pipeline Phasen wie Gliederung, Einleitung, Hauptinhalt, Schluss und abschließende Bearbeitung umfassen.
- GET
-
Bezeichnet eine Operation, die du im Semantic Kernel durchführen kannst, um Details oder Daten aus seinen Bestandteilen zu erhalten. Du könntest z.B. mit GET einen Blick in den Speicher des Kernels werfen, um dessen Reservoir an vergangenen Erkenntnissen zu erforschen.
Nicht zuletzt ist Semantic Kernel eines der Microsoft-internen Projekte für generative KI, das von Dr. John Maeda geleitet wird, und Informationen sind auf dem offiziellen GitHub-Repository verfügbar. Hier sind einige weitere Ressourcen, wenn du Semantic Kernel weiter erforschen möchtest:
-
Einige Worte von den Machern(Interview und Video)
LlamaIndex
LlamaIndex ist ein Daten-Framework für LLM-Anwendungen. Dies ist eine weitere Alternative für deine generativen KI-Anwendungen mit Azure OpenAI und umfasst sowohl Unternehmens- als auch Open-Source-Optionen. Es bietet Einfachheit durch eine Reihe von RAG-Szenarien und Orchestrierungsfunktionen, die LLM und interne Datenquellen kombinieren, und ist in der Entwicklergemeinschaft gut eingeführt . Je nachdem, wie du es einsetzt, kann es ein Äquivalent, eine Alternative oder eine Ergänzung zu Semantic Kernel und LangChain sein.
Bot Framework
Das Microsoft Bot Framework ist ein Klassiker aus der Vor-ChatGPT-Bot-Ära. Es stützt sich nicht auf den Azure OpenAI Service, wird aber von einigen Anwendern für bestimmte Szenario-Integrationen genutzt (z. B. um GPT-fähige Projekte innerhalb von Microsoft Teams oder anderen Kommunikationskanälen einzusetzen) und umfasst eine Reihe von Tools und Diensten, die bei der Entwicklung, dem Test, der Bereitstellung und der Verwaltung intelligenter Chatbots helfen sollen:
- Bot Framework SDK
-
Eine modulare und erweiterbare Softwareentwicklung Kit, mit dem du Bots in C#, JavaScript, Python oder Java erstellen kannst. Das SDK bietet Bibliotheken und Templates für gängige Botszenarien wie Dialoge, Zustandsverwaltung, Authentifizierung usw.
- Bot Framework Composer
-
Ein visuelles Open-Source-Authoring-Tool, mit dem du Bots mithilfe einer grafischen Oberfläche und Eingabeaufforderungen in natürlicher Sprache erstellen kannst. Mit dem Composer kannst du Dialoge, Fähigkeiten und Antworten für deinen Bot entwerfen, ohne Code zu schreiben.
- Azure Bot Service
-
Ein Cloud-Dienst, der es dir ermöglicht, deinen Bot auf Azure zu hosten und ihn mit verschiedenen Kanälen und Geräten zu verbinden, z. B. Facebook Messenger, Microsoft Teams, Skype, Webchat usw. Der Azure Bot Service bietet außerdem Funktionen wie Analysen, Debugging, Sicherheit usw.
- Bot Framework Emulator
-
Eine Desktop-Anwendung, mit der du deinen Bot lokal oder aus der Ferne testen und debuggen kannst. Mit dem Emulator kannst du Nachrichten von deinem Bot senden und empfangen, den Status und die Aktivitäten deines Bots überprüfen und auf die Bot-Protokolle zugreifen.
- Bot Framework Connector
-
Ein Dienst, der die Kommunikation zwischen deinem Bot und den Kanälen oder Nutzern abwickelt. Der Connector definiert eine REST-API und ein Aktivitätsprotokoll dafür, wie dein Bot Nachrichten und Ereignisse senden und empfangen kann.
Wie du siehst, ist das Microsoft Bot Framework eine Komplettlösung für klassische Bot-Szenarien (nicht LLM), wobei der Azure Bot Service Teil einiger der offiziellen Azure OpenAI Accelerators ist. Die vollständige Spezifikation ist über das offizielle GitHub-Repository verfügbar.
Power Platform, Microsoft Copilot und AI Builder
Neben den SDKs und Entwicklungsframeworks gibt es weitere Komponenten für No-Code- und Low-Code-Implementierungen. Die Power Platform Suite mit Tools und Diensten hilft dabei, Low-Code-Anwendungen zu erstellen und zu verwalten, Arbeitsabläufe zu automatisieren, Daten zu analysieren und Chatbots zu erstellen und diese mit jeder KI-fähigen Azure-Funktion zu verbinden, einschließlich Azure OpenAI . Microsoft Copilot/Power Virtual Agents (PVAs) ist eine der Komponenten der Power Platform, mit der du intelligente Chatbots über eine grafische Low-Code-Oberfläche erstellen kannst. Mit PVAs kannst du Bots erstellen, die Antworten geben, Aktionen ausführen und mit Nutzern in natürlicher Sprache interagieren können.
Es gibt drei verschiedene Möglichkeiten, wie diese Komponenten mit Azure OpenAI für generative KI-Anwendungen ohne oder mit wenig Code interagieren können:
-
Durch die Verwendung eines Azure OpenAI Connectors von Microsoft Copilot/PVAs über Azure OpenAI APIs. Ein Implementierungsbeispiel für dieses Szenario ist online verfügbar. Dies ist eine sehr manuelle Option, aber dennoch einfach zu implementieren.
-
Durch die Nutzung von der Boost Conversations (auch generative Antworten genannt) Funktion von PVA. Diese Funktion ermöglicht es dem Bot, Informationen aus mehreren Quellen zu finden und zu präsentieren. Generative Antworten können als primäre Lösung im Chatbot verwendet werden oder als Ausweichlösung, wenn andere erstellte Themen nicht in der Lage sind, die Anfrage eines Nutzers zu beantworten.
-
Neben diesen beiden Bot-Anwendungen kannst du auch die AI-Builder-Komponente der Power Platform und ihre Integration mit Azure OpenAI für Automatisierungen und Apps nutzen. Eine Video-Demo auf YouTube veranschaulicht den Implementierungsprozess.
Diese Entwicklungsbausteine sind deine Werkzeuge, um deine generativen KI-Projekte mit Azure OpenAI weiterzuentwickeln. Die Liste wird wahrscheinlich im Laufe der Zeit wachsen, aber diese Auswahl stellt einige der wichtigsten Bausteine für alle generativen KI-Anwender dar. Schauen wir uns nun die verfügbaren Vektordatenbanken für Azure-First-Implementierungen an, die deine einbettungsbasierten Projekte mit Azure OpenAI ermöglichen und mit denen du die generierten Vektoren speichern kannst.
Datenbanken und Vektorspeicher
Wie bereits erwähnt, sind Einbettungen eine Technik, die mathematische Darstellungen von Distanzen zwischen Themen erzeugt, und diese Informationen nennen wir einen "Vektor". Sie sind für den Bereich der generativen KI relevant geworden, weil sie Informationen miteinander verbinden können, die sprachlich verwandt sind. Das ist wichtig für Suchmaschinen, für die Suche nach Dokumenten in Chats usw. Zu diesem Zweck verwenden wir eine spezielle Art von Datenbank, die wir als Vektordatenbank bezeichnen, da sie besser geeignet ist, diese Art von Informationen zu speichern und zu verwalten.
Der Hauptvorteil einer Vektordatenbank besteht darin, dass sie eine schnelle und genaue Ähnlichkeitssuche und den Abruf von Daten auf der Grundlage ihrer Vektordistanz oder Ähnlichkeit ermöglicht. Das bedeutet, dass du statt herkömmlicher Methoden zur Abfrage von Datenbanken auf der Grundlage von exakten Übereinstimmungen oder vordefinierten Kriterien eine Vektordatenbank verwenden kannst, um die ähnlichsten oder relevantesten Daten auf der Grundlage ihrer semantischen oder kontextuellen Bedeutung zu finden. Vektordatenbanken werden zum Speichern, Suchen und Abrufen von Vektoren (die zuvor mit Hilfe von Einbettungstechniken erstellt wurden) verwendet, die Dokumente, Bilder und andere Datentypen darstellen, die in Anwendungen des maschinellen Lernens verwendet werden.
Aus Sicht des Azure OpenAI Service gibt es verschiedene native Azure-Dienste oder Open-Source-Teile, die über Azure bereitgestellt werden können und als Vektordatenbanken dienen. Schauen wir uns diese jetzt an.
Vektorsuche von Azure AI Search
Die Vektorsuche ist eine neue Funktion von einem der bestehenden Microsoft Azure AI Dienste, nämlich Azure AI Search. Diese Funktion ist Teil der Implementierung sowohl für einbettungs- als auch für abrufbasierte Ansätze.
DieVektorsuche ist eine neue Funktion zum Indizieren, Speichern und Abrufen von Vektoreinbettungen in einem Suchindex. Du kannst sie für typische Fälle wie Ähnlichkeitssuche, multimodale Suche, Empfehlungsmaschinen oder Grounding/RAG-Implementierungen nutzen. Das Hauptunterscheidungsmerkmal (nach den Worten seines Erfinders) ist die Fähigkeit, nicht nur die klassische Vektorsuche zu ermöglichen, sondern auch "einen hybriden Suchansatz, der sowohl Vektor- als auch traditionelle Keyword-Scores nutzt [und] eine noch bessere Qualität der Suchergebnisse liefert als eine einzelne Suchmethode allein", wie in Abbildung 4-2 dargestellt.
Du kannst die offizielle Dokumentation zu dieser sich ständig weiterentwickelnden Technologie nutzen, ebenso wie die technischen Anleitungen zum Speichern deiner zuvor erstellten Vektoren und zur Durchführung von Vektorabfragen über die Vektorsuchfunktion von Azure AI Search.
Vektorsuche von Cosmos DB
Die Vektorsuche ist eine ähnliche Vektorfunktion von einem anderen nativen Azure-Dienst, in diesem Fall Azure Cosmos DB, einer verwalteten Multitype-NoSQL-Datenbank, die verschiedene Arten von Schlüsselwert-, Spalten-, Graphen- und Dokumentenformaten unterstützt. Sie umfasst Open-Source-Optionen wie PostgreSQL, MongoDB und Apache Cassandra.
Die Vektorsuchfunktion stammt aus dem Produkt Azure Cosmos DB for MongoDB vCore, das einen vollständig verwalteten MongoDB-kompatiblen Datenbankdienst in Azure bietet. Die neue Funktion wurde im Mai 2023 angekündigt und ist eine Alternative zur Azure Cognitive Search Option. Dies ist eine Option für Umgebungen, in denen MongoDB bereits Teil des Technologie-Stacks ist. Du kannst dir ein zusätzliches Repo mit Implementierungsbeispielen und Implementierungen mit Semantic Kernel als Orchestrator ansehen.
Azure Databricks Vektorsuche
Wie bei Azure AI Search und Cosmos DB gibt es mit Azure Databricks eine weitere hervorragende native Option. Sie bietet die Funktion Databricks Vector Search, die direkt in die serverlose Engine und in den Unity Catalog für Daten und KI-Governance integriert ist. Dies ist eine gute Option, wenn du eine native End-to-End-Plattform in Azure nutzen und Azure OpenAI mit dem Vektorspeicher verbinden möchtest, indem du verschiedene Orchestrierungs-Engines (z. B. LlamaIndex, LangChain) nutzt.
Redis-Datenbanken auf Azure
Eine Alternative ist Azure Cache for Redis, eine Lösung zur Beschleunigung der Datenschicht von Anwendungen durch In-Memory-Caching auf Basis der Open-Source-Datenbank Redis. Sie enthält RediSearch, ein Redis-Modul, das eine Volltextsuche ermöglicht. Die Azure-Version baut auf der Redis-Engine auf und ist für die Verwendung mit Redis Enterprise konzipiert.
Ähnlich wie die beiden vorangegangenen Optionen hat sich Azure Cache for Redis weiterentwickelt und enthält eine neue Vektorsuchfunktion, die die Leistung einer leistungsstarken Caching-Lösung mit der Vielseitigkeit einer Vektordatenbank kombiniert und Entwicklern und Unternehmen neue Möglichkeiten eröffnet. Wie bei Cosmos DB ist diese Option ideal für Unternehmen, die bereits Redis oder Azure Cache for Redis als Teil ihres Technologie-Stacks nutzen.
Andere relevante Datenbanken (einschließlich Open Source)
Es gibt noch andere Optionen, darunter native und Open-Source-Lösungen, die du über Azure nutzen kannst:
- pgvector
-
Für Vektor Ähnlichkeitssuche in Cosmos DB for PostgreSQL und Azure Database for PostgreSQL, den nativen Optionen für PostgreSQL in Azure.
- Elasticsearch Vektor-Datenbank
-
Verfügbar in Azure OpenAI Playground, direkt integriert in die Funktion "On Your Data".
- Neo4j
-
Ermöglicht die Implementierung von RAG-Mustern mit Graphdaten. Eine gute Option, um die Leistungsfähigkeit von Wissensgraphen zu nutzen, die in Azure verfügbar sind, einschließlich Beschleunigern, um sie auszuprobieren.
- Tannenzapfen auf Azurblau
-
Seit Juli 2023 in der privaten Vorschau verfügbar, ermöglicht dies den Einsatz einer Pinecone-Vektor-Datenbank (kommerziell, vollständig verwaltet) direkt über Azure. Hier ist ein Beispiel für eine Implementierung mit dem Azure OpenAI Service und der Pinecone-Datenbank.
- Milvus
-
Ein Open-Source-Projekt für Vektordatenbanken, das auf Azure verfügbar ist. Es ist einer der wichtigsten Open-Source-Anwärter und ein graduiertes Projekt der Linux Foundation.
- Azure Data Explorer
-
Für die Vektorähnlichkeitssuche , eine weitere Option zur Speicherung von Einbettungen über einen nativen Azure-Dienst. Hier ist eine schrittweise Erklärung.
- Andere Vektordatenbanken, für den Einsatz über Container (nicht PaaS)
Auch wenn es sich nicht um einen Vektorspeicher handelt (sondern nur um eine Bibliothek, die einen In-Memory-Vektorspeicher erstellt), kannst du auch Faiss erkunden, die Bibliothek von Meta für eine effiziente Ähnlichkeitssuche und das Clustering von dichten Vektoren. Das Index-Lookup-Tool von Azure ML Prompt Flow ermöglicht die Abfrage in einem vom Nutzer bereitgestellten Faiss-basierten Vektorspeicher.
Du kannst all diese Vektorspeicher- und Datenbankoptionen sowie weitere Optionen aus der OpenAI Cookbook-Liste ausprobieren. Am einfachsten ist es, native Dienste wie Azure Cognitive Search oder Azure Cosmos DB zu nutzen, aber die Wahl hängt von deinem Implementierungsansatz ab. Werfen wir nun einen Blick auf einige weitere Technologiebausteine, die du für deine generativen KI-Projekte benötigen könntest.
Zusätzliche Microsoft-Bausteine für generative KI
Zusätzlich zu dem, was wir in diesem Kapitel bereits behandelt haben, gibt es einige konsolidierte Dienste und laufende Forschungsprojekte, die wir für unsere Azure OpenAI-Projekte nutzen können. Schauen wir uns ein paar davon an.
Azure AI Document Intelligence (ehemals Azure Form Recognizer) für OCR
Einige der Szenarien, die wir zuvor analysiert haben, stützen sich zusätzlich zum LLM auf Bilder und PDF-Dokumente als wichtigste Wissensquelle. Wenn wir das Wissen der LLM mit den Informationen aus diesen Bildern und PDFs kombinieren wollen, müssen wir die Informationen aus diesen Dokumenten im Voraus extrahieren und sie von der Quelle in relevante Formate wie JSON oder JSONL umwandeln lassen.
Bei PDFs ist die klassische Technik, die Text aus dem Dokument extrahiert, die OCR (optische Zeichenerkennung). Dabei handelt es sich um eine ausgereifte Technik, die jedes Zeichen eines Dokuments erkennt, um es zu lesen und die Informationen für die spätere Verwendung zu extrahieren.
Wenn wir native Azure-Dienste nutzen wollen, um OCR-Aufgaben zu erledigen, gibt es einen Azure-KI-Dienst namens AI Document Intelligence (früher Form Recognizer genannt). Auf der offiziellen Website heißt es: "Ein KI-Dienst, der fortschrittliches maschinelles Lernen anwendet, um Text, Schlüssel-Wert-Paare, Tabellen und Strukturen aus Dokumenten automatisch und genau zu extrahieren." Dies ist ein erster Schritt, bevor die Feinabstimmung, Einbettung usw. erfolgt. Dieser offizielle Artikel erklärt den End-to-End-Prozess, der AI Document Intelligence und den Azure OpenAI Service kombiniert, um Abfragen direkt gegen das Dokument zu starten.
Alternativ dazu bietet der bereits erwähnte Azure AI Search Service eine ähnliche kognitive OCR-Fähigkeit, die sowohl mit Bildern (die Text enthalten) als auch mit Dokumenten funktioniert.
Microsoft Fabric's Lakehouse
Diese Option ist ein Muss für jedes Unternehmen, das seine Microsoft Azure-fähige Datenstrategie für eine Lakehouse Architektur umsetzen will: Microsoft Fabric. Diese Ressource könnte ein Thema für ein ganzes Buch sein, aber du solltest wissen, dass es sich um eine Plattform handelt, die dabei hilft, Dateneinblicke in einem Unternehmen zu erstellen, zu nutzen und zu verwalten. Wie du in Abbildung 4-3 sehen kannst, umfasst sie Datenintegrations- und Wissenschaftstools, Data Lakes, Governance- und Visualisierungselemente. Die Beziehung zwischen Fabric und Azure OpenAI ist bidirektional. Daten aus Microsoft Fabric können als Quelle für RAG-Patterns dienen, aber du kannst auch Azure OpenAI-Modelle innerhalb der Microsoft Fabric-Datenwerkzeuge nutzen. Es enthält auch einen GPT-fähigen Copiloten für die Datenanalyse mit natürlicher Sprache. Wenn du mehr erfahren möchtest, kannst du die offizielle Dokumentation, konkrete Beispiele und die REST-API-Spezifikation lesen.
Microsoft Azure AI Speech
Ein weiterer ergänzender Dienst ist Azure AI Speech, der die Funktionen Sprache-zu-Text, Text-zu-Sprache, Sprachübersetzung und Sprechererkennung für sprachgesteuerte Funktionen umfasst, die du für deine Azure OpenAI-fähigen Anwendungen nutzen kannst. Dies ist sehr nützlich für barrierefreie Schnittstellen, bei denen die Nutzer/innen mit der generativen KI-Engine per Sprache kommunizieren können. Außerdem gibt es unter visuelle Avatar-Funktionen, mit denen du deinen Implementierungen virtuelle Gesichter hinzufügen kannst.
Microsoft Azure API Management
Azure API Management ist ein übergreifendes Element, das alle deine Azure OpenAI-Implementierungen auf Unternehmensebene unterstützt und es dir ermöglicht, deine verschiedenen Abonnements, Modelle und API-Schlüssel zu verwalten, abzurechnen und zu überwachen. Es ist ideal für das Kostenmanagement und die abteilungsübergreifende Abrechnung.
Laufende Microsoft Open Source- und Forschungsprojekte
Im Folgenden werden wir eine Auswahl laufender Microsoft-Forschungsprojekte vorstellen, die alle mit der Entwicklung von LLM zu tun haben. Die meisten von ihnen sind keine produktionsreifen Bausteine, aber auch wenn sie nicht regelmäßig von generativen KI-Praktikern genutzt werden, solltest du einen Blick auf die neuesten Entwicklungen im Bereich der generativen KI werfen:
- DeepSpeed
-
Eine von Microsoft entwickelte Deep-Learning Optimierungsbibliothek, die Forschern dabei helfen soll, große Modelle schneller und effizienter zu trainieren, die 10 bis 100 Mal größer sind als bisher möglich. Darüber hinaus ist DeepSpeed Chat ein offenes System-Framework, das ein durchgängiges RLHF-Training ermöglicht, um generative KI-Modelle in allen Größenordnungen zu erzeugen.
- ONNX Laufzeit
-
Ein plattformübergreifender Inferenz- und Trainingsbeschleuniger für maschinelles Lernen, der das Kundenerlebnis verbessern (durch schnellere Modellinferenz) und die Trainingskosten senken soll. Er wurde 2019 von Microsoft als Open Source zur Verfügung gestellt und basiert auf dem offenen Format ONNX (das von Microsoft gemeinsam mit Meta und AWS entwickelt wurde). Es enthält den DirectML Execution Provider, eine Komponente von ONNX Runtime, die die Inferenz von ONNX-Modellen beschleunigt.
- JARVIS/HuggingGPT
-
Ein Projekt, das LLMs als Schnittstellen nutzt, um verschiedene KI-Modelle von Hugging Face und anderen zu verbinden, um komplizierte KI-Aufgaben zu lösen.
- ToxiGen
-
Ein großer maschinell erstellter Datensatz zur Erkennung von Hassreden, von Microsoft.
- LLM-Augmenter
-
Ein Projekt, das darauf abzielt, Halluzinationen (d.h. LLMs, die falsche Antworten geben) zu reduzieren, indem externes Wissen für LLMs und automatisches Feedback genutzt wird.
- AdaTest
-
Ein Projekt von Microsoft, um Fehler in Modellen für natürliche Sprache und maschinelles Lernen mithilfe von adaptiven Tests zu finden und zu beheben.
- LoRA (Low-Rank Adaptation)
-
Reduziert die Anzahl der Trainingsparameter für LLMs und macht diesen Prozess weniger speicher- und rechenintensiv.
- Beratung
-
Ein Microsoft-Projekt, das die Steuerung moderner Sprachmodelle effektiver und effizienter als herkömmliche Eingabeaufforderungen oder Verkettungen ermöglicht.
- PromptCraft-Robotik
-
Ein Forschungsprojekt, das darauf abzielt, ChatGPT mit Robotersystemen wie Drohnen, kamerafähigen Robotern usw. zu kombinieren.
- Gorilla LLM
-
Eine Zusammenarbeit zwischen Microsoft Research und der University of Berkeley, die einen LLM entwickelt haben, der mit APIs verbunden ist. Das bedeutet, dass er entsprechende API-Aufrufe für verschiedene Themen wie PyTorch Hub, TensorFlow Hub, HuggingFace, Kubernetes, OpenAPI und andere bereitstellen kann. Ein großer Schritt in Richtung einer allgemeineren Art von Intelligenz.
- PowerProxy AI
-
Ein Projekt, das bei der Überwachung und Verarbeitung des Datenverkehrs zu und von Azure OpenAI Service Endpunkten hilft.
- AutoGen
-
Ein Framework, das die Entwicklung von LLM-Anwendungen mit mehreren Agenten ermöglicht, die miteinander kommunizieren können, um Aufgaben zu lösen.
- UniLM
-
Ein Microsoft-Repositorium, das eine Reihe von Forschungspapieren und Links zu anderen LLM-bezogenen GitHub-Repositorien enthält.
- LIDA
-
Eine Microsoft-Bibliothek für die automatische Erstellung von Visualisierungen und Infografiken mit LLMs.
- "Algorithmus der Gedanken"
-
Ein Forschungspapier, das mögliche Verbesserungen des LLM mit menschenähnlichen Argumentationstechniken erforscht.
- PromptBench
- Promptbase
-
Eine Sammlung bewährter Methoden um die beste Leistung von LLMs zu erzielen.
- AICI
-
Ein Artificial Intelligence Controller Interface das die Leistung der LLMs in Echtzeit begrenzt und steuert.
- Olive
-
Ein hardwarebasiertes Modelloptimierungswerkzeug zur Komprimierung, Optimierung und Kompilierung.
- Phi-3
-
Ein revolutionäres Open Source Small Language Model (SLM), das über Azure AI Studio und Hugging Face verfügbar ist.
- Orca/Orca-2
-
Ein Microsoft-Forschungsprojekt zur Spezialisierung von SLMs mit domänenspezifischen Daten.
- PyRIT (Python Risk Identification Tool für generative KI)
-
Ein leistungsstarkes Framework, das Red-Team-Aktivitäten für deine generativen KI-Anwendungen mit Azure OpenAI und anderen LLMs ermöglicht.
- LLMLingua
-
Eine Eingabeaufforderung zur Komprimierung beschleunigt die LLM-Inferenz mit minimalen Leistungseinbußen und macht die Modelle aus Sicht des Tokenverbrauchs und der Latenz effizienter.
Da generative KI ein sich stark entwickelnder Bereich ist, wollte ich dir einen kurzen Überblick darüber geben, was die Industrie zusätzlich zu den Kernfunktionen von Azure OpenAI LLM, die du bereits kennst, zu erreichen versucht.
Fazit
Dieses Kapitel ist eine Fortsetzung dessen, was wir in Kapitel 3 behandelt haben, und es umfasst ein Ökosystem von Projekten und Technologien, die du nutzen kannst, um sehr fortschrittliche Cloud Native-Architekturen zu erstellen. Die meisten von ihnen ergänzen Azure OpenAI und sind erforderlich, um einige der technischen Ansätze aus Kapitel 3 umzusetzen.
Dieser Bereich entwickelt sich ständig weiter, daher solltest du dieses Kapitel als ersten Werkzeugkasten für deine Reise als generativer KI-Praktiker betrachten. Im nächsten Kapitel geht es um LLMOps (LLM Operations, eine Weiterentwicklung der DevOps- und MLOps-Konzepte) und darum, wie man Themen wie Leistung, Sicherheit und Datenschutz auf Produktionsebene behandelt. Lass uns das gemeinsam erkunden.
Get Azure OpenAI Service für Cloud Native Anwendungen now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.