- Grab's LLM-Kit ist ein Framework, das entwickelt wurde, um die Einrichtung von Generative-AI-Anwendungen auf Produktionsniveau zu beschleunigen
- Bei der Entwicklung von AI-Anwendungen, die mit sensiblen Daten arbeiten, sind Sicherheit und Datensicherheit äußerst wichtig. LLM-Kit löst dabei Themen wie Skalierbarkeit, Integration, Monitoring und Standardisierung
- Dadurch wird langfristig eine effiziente und effektive Entwicklung von LLM-Anwendungen ermöglicht und das Onboarding von Hunderten von GenAI-Anwendungen bei Grab unterstützt
Merkmale von LLM-Kit
- Bietet eine vorkonfigurierte Struktur (API-Server, Konfigurationsverwaltung, Beispiel-LLM-Agenten, Tests usw.)
- Integriert sich mit Poetry, Gunicorn, FastAPI, LangChain, LangSmith, Hashicorp Vault, Amazon EKS, Gitlab CI usw.
- Observability-Funktionen mit Echtzeit-Monitoring durch Integration mit Datadog und LangSmith
- Konfigurations- und Secret-Management mit
configparser von Python und Vault
- OpenID Connect (OIDC)-Authentifizierungshelfer
- API-Dokumentation mit Swagger und Redoc
- Integration mit Redis und Vector DB
- Deployment-Pipelines für Staging- und Produktionsumgebungen
- Integration mit dem leistungsstarken Evaluierungs-Framework von LangSmith
- Cookbook: Sammlung häufig verwendeter Beispiele bei Grab als Ressource für Entwickler
- Enthält verschiedene Anwendungsfälle wie Agenten mit persistentem Speicher, Slackbot-LLM-Agenten, Bildanalysatoren und Full-Stack-Chatbots mit Benutzeroberfläche
Der Wert von LLM-Kit
- Höhere Entwicklungsgeschwindigkeit für LLM-Anwendungen durch einen vorkonfigurierten und integrierten Technologie-Stack
- Echtzeit-Monitoring sowie Erkennung und Behebung von Problemen durch Integration mit LangSmith und Datadog
- Verbesserte Sicherheit durch OIDC-Authentifizierung und Secret-Management mit Vault
- Höhere Effizienz bei Datenspeicherung und -suche mit Vector DB
- Stellt ein „gepflasterte Straße“-Framework bereit, das Best Practices und Standardisierung fördert
- Teams können etwa 1,5 Wochen Entwicklungszeit sparen, bevor sie mit der Arbeit an der ersten Funktion beginnen
Architekturdesign und technische Umsetzung
- Eine modulare Architektur bietet Skalierbarkeit, Flexibilität und Benutzerfreundlichkeit
Automatisierung
- Wenn ein Engineer relevante Details wie den App-Namen einreicht, wird die Erstellung eines GitLab-Projekts ausgelöst
- Es wird ein speziell für LLM-Apps entwickeltes Code-Scaffold erzeugt
- Im selben Repository wird eine GitLab-CI-Datei für CI/CD erstellt
- Staging-Infrastruktur wie ECR und EKS wird erzeugt
- Ein Terraform-Ordner für das Infrastructure Provisioning wird erstellt und führt zur Bereitstellung der Produktionsinfrastruktur
- Am Ende der Pipeline wird ein GPT-Token in einen sicheren Vault-Pfad geschrieben und eine Abschlussbenachrichtigung an den Engineer gesendet
Struktur des Scaffold-Codes
- Agents: Enthält Code zur Initialisierung von Agenten auf Basis des LangChain-Agent-Frameworks
- Auth: Modul für Authentifizierung und Autorisierung zur Ausführung einiger APIs innerhalb von Grab
- Core: Enthält das Auslesen von Konfigurationen (z. B. GPT-Token) und die Entschlüsselung von Secrets für die Ausführung der LLM-App
- Models: Definiert Strukturen für die zentralen LLM-APIs innerhalb von Grab
- Routes: Definiert REST-API-Endpunkte für LLM-Apps (einschließlich Statusprüfung, Authentifizierung, Autorisierung und einfacher Agenten)
- Storage: Enthält Konnektivität zu PGVector, Grabs verwalteter Vector DB, sowie das DB-Schema
- Tools: Funktionen, die als Werkzeuge für LLM-Agenten verwendet werden
- Tracing: Integration mit Tracing- und Monitoring-Tools zur Überwachung verschiedener Metriken von Produktions-Apps
- Utils: Standardordner für Utility-Funktionen
Infrastructure Provisioning und Deployment
- In dieselbe Codebasis ist eine umfassende Pipeline integriert, die automatisch den für Infrastructure Provisioning, Deployment und Build-Prozesse benötigten Code scaffoldet
- Mit Terraform wird die benötigte Infrastruktur nahtlos bereitgestellt
- Die Deployment-Pipeline ist in der Datei
.gitlab-ci.yml definiert und gewährleistet automatisierte Bereitstellungen
- Der Build-Prozess ist im
Dockerfile festgelegt und ermöglicht konsistente Builds
- Durch automatisiertes Scaffolding können sich Entwickler auf das Schreiben der Business-Logik konzentrieren, statt auf die Komplexität von Basisinfrastruktur und Deployment
RAG-Scaffolding
- Mit LLM-Kit werden die Einrichtung von Vector DB (PGVector) und das Hinzufügen zur Service-Allowlist vereinfacht
- Nach dem Absenden des Formulars ist der Zugriff auf Zugangsdaten und den DB-Host-Pfad möglich
- Secrets werden automatisch zu einem Vault-Pfad hinzugefügt
- Engineers müssen im Konfigurationsfile der gescaffoldeten LLM-Kit-App nur noch den DB-Host-Pfad eintragen
Fazit
- LLM-Kit ist ein wichtiges Werkzeug zur Unterstützung von Grabs AI- und ML-Innovationen sowie dessen Wachstum
- Indem es die Herausforderungen der Teams adressiert und ein umfassendes, skalierbares und flexibles Framework für die Entwicklung von LLM-Apps bereitstellt, treibt es bei Grab die Entwicklung der nächsten Generation von AI-Apps voran
Wachstum und zukünftige Pläne
- Geplant sind eine stabile und einfach zu nutzende SDK sowie eine deutliche Verbesserung von Parallelität und Skalierbarkeit des Webservers
- Vorgesehen ist eine wiederverwendbare und kombinierbare LLM-SDK mit Evaluierungs- und Guardrail-Frameworks
- Entwicklung eines CLI für Versionsupdates und Entwickler-Tools
- Entwicklung einer Funktion zur Bereitstellung polling-basierter Agenten
- Mit diesen Weiterentwicklungen soll Engineers eine noch reibungslosere und effizientere Entwicklungserfahrung geboten werden
Noch keine Kommentare.