Microsoft stellt das Semantic Kernel SDK vor, das die Integration von Large Language Models (LLMs) wie GPT-4 in Code erheblich vereinfacht. Die Komplexität der Verwaltung von Eingabeaufforderungen, Eingaben und fokussierten Ausgaben wird mit diesem SDK vereinfacht und schließt die Lücke zwischen Sprachmodellen und Entwicklern.
Der Prozess der Integration eines KI-Modells in Ihren Code kann ziemlich herausfordernd sein, da dabei die Grenze zwischen zwei verschiedenen Rechenarten überschritten wird. Herkömmliche Programmiermethoden reichen für die Interaktion mit LLMs nicht aus. Was benötigt wird, ist eine Abstraktion auf höherer Ebene, die zwischen den verschiedenen Domänen übersetzt und eine Möglichkeit bietet, den Kontext zu verwalten und die Ausgaben in den Quelldaten verankert zu halten.
Vor einigen Wochen hat Microsoft seinen ersten LLM-Wrapper namens Prompt Engine veröffentlicht. Darauf aufbauend hat der Softwareriese nun sein leistungsfähigeres C#-Tool Semantic Kernel für die Arbeit mit Azure OpenAI und den APIs von OpenAI vorgestellt. Dieses Open-Source-Tool ist zusammen mit mehreren Beispielanwendungen auf GitHub verfügbar.
Die Wahl des Namens bedeutet ein Verständnis des Hauptzwecks eines LLM. Der semantische Kernel konzentriert sich auf Ein- und Ausgaben in natürlicher Sprache, indem er das Modell mithilfe der anfänglichen Benutzeranforderung (das Ask) anweist, Durchläufe durch die zugehörigen Ressourcen zu orchestrieren, die Anforderung zu erfüllen und eine Antwort (das Get) zurückzugeben.
Semantic Kernel funktioniert wie ein Betriebssystem für LLM-APIs, nimmt Eingaben entgegen, verarbeitet sie durch Arbeiten mit dem Sprachmodell und gibt Ausgaben zurück. Die Orchestrierungsrolle des Kernels ist nicht nur für die Verwaltung von Eingabeaufforderungen und den zugehörigen Token, sondern auch für Speicher, Konnektoren zu anderen Informationsdiensten und vordefinierten Fähigkeiten, die Eingabeaufforderungen und konventionellen Code mischen, von wesentlicher Bedeutung.
Der semantische Kernel verwaltet den Kontext durch das Konzept der Erinnerungen, die Arbeit mit Dateien und die Speicherung von Schlüsselwerten. Eine dritte Option, das semantische Gedächtnis , behandelt Inhalte als Vektoren oder Einbettungen, die Zahlenfelder sind, die das LLM verwendet, um die Bedeutung von Texten darzustellen. Diese eingebetteten Vektoren helfen dem zugrunde liegenden Modell, Relevanz und Kohärenz aufrechtzuerhalten und die Wahrscheinlichkeit zu verringern, dass Zufallsausgaben generiert werden.
Durch die Verwendung von Einbettungen können Entwickler große Eingabeaufforderungen in Textblöcke aufteilen, um gezieltere Eingabeaufforderungen zu erstellen, ohne die verfügbaren Tokens für eine Anfrage zu erschöpfen (z. B. hat GPT-4 eine Begrenzung von 8.192 Tokens pro Eingabe).
Konnektoren spielen eine wichtige Rolle im Semantic Kernel und ermöglichen die Integration bestehender APIs mit LLMs. Beispielsweise kann ein Microsoft Graph-Konnektor die Ausgabe einer Anfrage in einer E-Mail senden oder eine Beschreibung von Beziehungen im Organigramm erstellen. Konnektoren bieten auch eine Form der rollenbasierten Zugriffskontrolle, um sicherzustellen, dass die Ausgaben basierend auf ihren Daten auf den Benutzer zugeschnitten sind.
Die dritte Hauptkomponente von Semantic Kernel sind skills , bei denen es sich um Funktionscontainer handelt, die LLM-Eingabeaufforderungen und konventionellen Code mischen, ähnlich wie bei Azure Functions. Sie können verwendet werden, um spezialisierte Eingabeaufforderungen zu verketten und LLM-gestützte Anwendungen zu erstellen.
Die Ausgaben einer Funktion können mit einer anderen verkettet werden, was den Aufbau einer Pipeline von Funktionen ermöglicht, die native Verarbeitung und LLM-Operationen mischen. Auf diese Weise können Entwickler flexible Fähigkeiten aufbauen, die nach Bedarf ausgewählt und genutzt werden können.
Obwohl Semantic Kernel ein leistungsstarkes Werkzeug ist, erfordert es sorgfältige Überlegung und Planung, um effektive Anwendungen zu erstellen. Durch die strategische Verwendung des SDK neben nativem Code können Entwickler das Potenzial von LLMs nutzen und den Entwicklungsprozess effizienter und produktiver gestalten. Um Ihnen den Einstieg zu erleichtern, stellt Microsoft eine Liste mit Best-Practice-Richtlinien zur Verfügung, die beim Erstellen von LLM-Anwendungen im eigenen Unternehmen gelernt wurden.
Im Kontext der modernen Softwareentwicklung positioniert sich das Semantic Kernel SDK von Microsoft als Schlüsselfaktor für die Integration großer Sprachmodelle in verschiedene Anwendungen. Seine Implementierung kann Tools wie no-code Plattform und Website-Buildern von AppMaster erheblich zugute kommen und flexiblere und effizientere Lösungen für ein breites Spektrum von Benutzern bieten.