LeapfrogAI ist eine selbst gehostete KI-Plattform, die für den Einsatz in Air-Gap-Umgebungen konzipiert ist. Dieses Projekt zielt darauf ab, anspruchsvolle KI-Lösungen in ressourcenbeschränkte Umgebungen mit Luftspalt zu bringen, indem das Hosten aller erforderlichen Komponenten eines KI-Stacks ermöglicht wird.
Unsere Dienstleistungen umfassen Vektordatenbanken, Modell-Backends, API und UI. Auf diese Funktionen können Sie problemlos zugreifen und sie in Ihre bestehende Infrastruktur integrieren. So stellen Sie sicher, dass die Leistungsfähigkeit der KI unabhängig von den Einschränkungen Ihrer Umgebung genutzt werden kann.
Large Language Models (LLMs) sind eine leistungsstarke Ressource für KI-gesteuerte Entscheidungsfindung, Inhaltsgenerierung und mehr. Wie kann LeapfrogAI KI in Ihre Mission integrieren?
Datenunabhängigkeit : Das Senden sensibler Informationen an einen Drittanbieterdienst ist möglicherweise nicht für alle Arten von Daten oder Organisationen geeignet oder zulässig. Durch das Hosten Ihres eigenen LLM behalten Sie die volle Kontrolle über Ihre Daten.
Skalierbarkeit : Pay-as-you-go-KI-Dienste können teuer werden, insbesondere wenn große Datenmengen betroffen sind und eine ständige Konnektivität erforderlich ist. Der Betrieb eines eigenen LLM kann für Missionen jeder Größe oft eine kostengünstigere Lösung sein.
Missionsintegration : Durch das Hosten Ihres eigenen LLM haben Sie die Möglichkeit, die Parameter des Modells, Trainingsdaten und mehr anzupassen und so die KI an Ihre spezifischen Bedürfnisse anzupassen.
LeapfrogAI basiert auf dem Unicorn Delivery Service (UDS), der sicheren Laufzeitumgebung von Defense Unicorns, und umfasst mehrere Funktionen wie:
Das LeapfrogAI-Repository folgt einer Monorepo-Struktur, die auf einer API basiert, wobei jede der Komponenten in einem speziellen packages
enthalten ist. Die UDS-Bundles, die die Entwicklung und die neuesten Bereitstellungen von LeapfrogAI übernehmen, befinden sich im bundles
-Verzeichnis. Der Aufbau sieht wie folgt aus:
leapfrogai/
├── src/
│ ├── leapfrogai_api/ # source code for the API
│ ├── leapfrogai_evals/ # source code for the LeapfrogAI evaluation framework
│ ├── leapfrogai_sdk/ # source code for the SDK
│ └── leapfrogai_ui/ # source code for the UI
├── packages/
│ ├── api/ # deployment infrastructure for the API
│ ├── llama-cpp-python/ # source code & deployment infrastructure for the llama-cpp-python backend
│ ├── repeater/ # source code & deployment infrastructure for the repeater model backend
│ ├── supabase/ # deployment infrastructure for the Supabase backend and postgres database
│ ├── text-embeddings/ # source code & deployment infrastructure for the text-embeddings backend
│ ├── ui/ # deployment infrastructure for the UI
│ ├── vllm/ # source code & deployment infrastructure for the vllm backend
│ └── whisper/ # source code & deployment infrastructure for the whisper backend
├── bundles/
│ ├── dev/ # uds bundles for local uds dev deployments
│ └── latest/ # uds bundles for the most current uds deployments
├── Makefile
├── pyproject.toml
├── README.md
└── ...
Die bevorzugte Methode zum Ausführen von LeapfrogAI ist eine lokale Kubernetes-Bereitstellung mit UDS.
Die Systemanforderungen und Anweisungen finden Sie im Abschnitt „Schnellstart“ der LeapfrogAI-Dokumentationswebsite.
LeapfrogAI bietet eine API, die der von OpenAI sehr ähnlich ist. Mit dieser Funktion können Tools, die mit OpenAI/ChatGPT erstellt wurden, nahtlos mit einem LeapfrogAI-Backend funktionieren.
Das LeapfrogAI SDK bietet einen Standardsatz an Protobufs und Python-Dienstprogrammen für die Implementierung von Backends mit gRPC.
LeapfrogAI bietet eine Benutzeroberfläche mit Unterstützung für gängige Anwendungsfälle wie allgemeinen Chat und „Fragen und Antworten zu Ihren Dokumenten“.
LeapfrogAI bietet mehrere Backends für verschiedene Anwendungsfälle. Nachfolgend finden Sie die Backend-Unterstützungs- und Kompatibilitätsmatrix:
Backend | AMD64 | ARM64 | CUDA | Docker | Kubernetes | UDS |
---|---|---|---|---|---|---|
Lama-CPP-Python | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
flüstern | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Texteinbettungen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
vllm | ✅ | ❌ 1 | ✅ | ✅ | ✅ | ✅ |
Das Repeater-„Modell“ ist ein grundlegendes „Backend“, das alle empfangenen Eingaben an den Benutzer zurückleitet. Es ist genauso aufgebaut wie alle eigentlichen Backends und wird hauptsächlich zum Testen der API verwendet.
LeapfrogAI verfügt über ein Bewertungsframework, das in DeepEval integriert ist. Weitere Informationen zum Ausführen und Verwenden von Auswertungen in LeapfrogAI finden Sie in der Evals README.
Jede Komponente verfügt über unterschiedliche Images und Werte, die auf eine bestimmte Image-Registrierung und/oder Härtungsquelle verweisen. Diese Bilder werden mit Zarf Flavors verpackt:
upstream
: Verwendet Bilder von Upstream-Anbietern aus Open-Source-Container-Registrierungen und -Repositorysregistry1
: Verwendet IronBank-gehärtete Images aus der Repo1-HafenregistrierungNachfolgend finden Sie die aktuelle Liste der Komponentenvarianten:
Komponente | upstream | registry1 |
---|---|---|
API | ✅ | ✅ |
ui | ✅ | ? |
Supabase | ✅ | ? |
Migrationen | ✅ | ? |
Lama-CPP-Python | ✅ | ? |
flüstern | ✅ | ? |
Texteinbettungen | ✅ | ? |
vllm | ✅ | ? |
vllm | ✅ | ? |
Aromen mit Bestandteilen mit der Kennzeichnung ? sind noch nicht als Schnellstart-Bundle-Bereitstellung verfügbar. Anweisungen zum Erstellen des Zarf-Pakets einer Komponente für lokale Tests finden Sie in DEVELOPMENT.md.
Informationen zum Erstellen und Bereitstellen eines LeapfrogAI-UDS-Bundles finden Sie auf der LeapfrogAI-Dokumentationswebsite. Auf der Dokumentationswebsite finden Sie Systemanforderungen und Anweisungen für alles, was mit LeapfrogAI zu tun hat und nicht mit der lokalen Entwicklung und Mitarbeit in Zusammenhang steht.
Für Beiträge und lokale Bereitstellung und Entwicklung für jede Komponente in einer lokalen Python- oder Node.js-Umgebung fahren Sie bitte mit dem nächsten Abschnitt fort.
Notiz
Bitte beginnen Sie mit der LeapfrogAI-Dokumentationswebsite, bevor Sie mit der lokalen Entwicklung beginnen
Jede der LeapfrogAI-Komponenten kann auch einzeln außerhalb einer Kubernetes- oder Container-Umgebung ausgeführt werden. Dies ist nützlich, wenn Sie Änderungen an einer bestimmten Komponente testen, hilft aber nicht bei einer vollständigen Bereitstellung von LeapfrogAI. Anweisungen zur Bereitstellung finden Sie im obigen Abschnitt. Die Regeln für Beiträge zu LeapfrogAI finden Sie im nächsten Abschnitt.
Allgemeine Entwicklungsdetails finden Sie zunächst im Dokument DEVELOPMENT.md.
Sehen Sie sich dann die verknüpften README-Dateien für die lokalen Entwicklungsanweisungen für jedes einzelne Unterverzeichnis an.
Alle potenziellen und aktuellen Mitwirkenden müssen sicherstellen, dass sie die beitragende Dokumentation, die Sicherheitsrichtlinien und den Verhaltenskodex gelesen haben, bevor sie ein Problem oder eine Pull-Anfrage für dieses Repository öffnen.
Wenn Sie ein Problem einreichen oder eine PR eröffnen, stellen Sie bitte zunächst sicher, dass Sie Ihr potenzielles Problem oder Ihre potenzielle PR mit den vorhandenen oder geschlossenen Problemen und PRs abgeglichen haben. Vermeintliche Duplikate werden geschlossen. Bitte verweisen Sie daher auf Ihre Beiträge und unterscheiden Sie diese von tangentialen oder ähnlichen Themen und PRs.
LeapfrogAI wird von einer Community aus Benutzern und Mitwirkenden unterstützt, darunter:
Möchten Sie Ihre Organisation oder Ihr Logo zu dieser Liste hinzufügen? Eröffnen Sie eine PR!
vLLM erfordert einen CUDA-fähigen PyTorch für ARM64, der nicht über pip oder conda ↩ verfügbar ist
Das SDK ist keine funktional unabhängige Einheit und wird nur dann zu einer funktionalen Einheit, wenn es mit der API und den Backends als Abhängigkeit kombiniert und verpackt wird. ↩
Bitte beachten Sie, dass die API und die Benutzeroberfläche Artefakte in zwei Unterverzeichnissen enthalten. Die Unterverzeichnisse im Zusammenhang mit packages/
konzentrieren sich auf die Zarf-Verpackung und Helm-Charts, während die Unterverzeichnisse im Zusammenhang mit src/
den eigentlichen Quellcode und Entwicklungsanweisungen enthalten. ↩ ↩ 2