>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Python

So integrieren Sie KI in Smartglasses, ohne am Lag wahnsinnig zu werden

Stellen Sie sich vor, Sie entwickeln Software für Smartglasses oder eine Smartwatch. Sie brauchen, dass das Gerät Sprachbefehle versteht: „Licht ausmachen", „Wie wird das Wetter morgen in St. Petersburg?" oder „Reserviere einen Tisch." Normalerweise würden Sie APIs von großen Sprachmodellen wie Gemini oder GPT-4 aufrufen. Aber dann beginnen die Probleme: Ein paar Sekunden Latenz zerstören das gesamte Benutzererlebnis, und die Rechnungen für Tokens wachsen schneller als Ihre Nutzerzahl.

Das Team von Cactus Compute hat sich für einen anderen Ansatz entschieden. Sie haben das Wissen aus dem riesigen Gemini 1.5 „transferiert" und in ein winziges Modell namens Needle gesteckt, das nur 26 Millionen Parameter groß ist. Zum Vergleich: Das ist hunderte Male kleiner als beliebte „kleine" Modelle wie Llama-3-8B oder sogar Qwen-0.5B.

Logo

Was dieses winzige Modell kann

Needle ist kein Chatbot, der mit Ihnen über den Sinn des Lebens diskutiert. Es ist ein schmalbandiges Werkzeug für Function Calling. Es nimmt eine Benutzeranfrage in natürlicher Sprache und wandelt sie in strukturiertes JSON um, das Ihr Code verstehen kann.

Das Hauptmerkmal ist die Geschwindigkeit. Auf ihrer eigenen Infrastruktur liefert das Modell atemberaubende 6.000 Tokens pro Sekunde beim Prefill und 1.200 bei der Generierung. Aber selbst wenn Sie es lokal auf einem normalen MacBook ausführen, funktioniert es praktisch sofort.

Hier sind einige Dinge, die Needle zu einem interessanten Projekt machen:

  • Das Modell wurde mit 200 Milliarden Tokens trainiert. Das ist eine ernsthafte Menge für seine Größe.
  • Es ist für Edge Computing optimiert — Handys, Wearables und IoT-Geräte.
  • Es kommt mit einem praktischen Playground, in dem Sie das Modell für Ihre spezifischen Werkzeuge in nur ein paar Klicks feintunen können.

Wie es innen funktioniert

Die Architektur heißt Simple Attention Network. Wenn Sie sich das Diagramm ansehen, das die Autoren im Repository hinterlassen haben, können Sie eine ziemlich elegante Lösung erkennen.

Das Modell besteht aus einem 12-Schicht-Encoder und einem 8-Schicht-Decoder. Interessanterweise hat der Encoder keine traditionellen Feed-Forward-Netzwerke (FFN) — er hat nur Self-Attention und Gated Residual Connections. Das spart viel Speicher und Rechenressourcen. Die Embedding-Gewichte und die Gewichte der Ausgabe-Linear-Schicht sind geteilt, was auch ein Standard-Trick ist, um die Modellgröße zu reduzieren, ohne Qualität zu verlieren.

Die Autoren sagen ehrlich: Needle ist ein Experiment. Es übertrifft FunctionGemma-270m und Qwen-0.6B bei Funktionsaufruf-Aufgaben, bleibt aber bei normalen Gesprächen zurück. Kleine Modelle haben wenig „Gedächtnis" von der Welt, daher ist es leicht, sie mit einer komplexen, abweichenden Frage zu verwirren.

Schnellstart und Feintuning

Das Deployment des Projekts ist denkbar einfach. Nach dem Klonen des Repositories und dem Ausführen des Setup-Skripts öffnet Befehl needle playground die Weboberfläche. Dort können Sie das Modell sofort mit Ihren eigenen Beispielen testen.

Wenn Sie Needle in ein Python-Projekt einbetten müssen, sieht der Code vertraut aus:

from needle import SimpleAttentionNetwork, load_checkpoint, generate, get_tokenizer

# Загружаем веса и конфиг
params, config = load_checkpoint("checkpoints/needle.pkl")
model = SimpleAttentionNetwork(config)
tokenizer = get_tokenizer()

# Просим модель вызвать функцию
result = generate(
    model, params, tokenizer,
    query="Сколько градусов сейчас в Сочи?",
    tools='[{"name":"get_weather","description":"Узнать погоду в городе.","parameters":{"location":{"type":"string","description":"Название города."}}}]'
)
print(result)
# [{"name":"get_weather","arguments":{"location":"Сочи"}}]

Das Wertvollste ist die Einfachheit des Feintunings. Wenn Sie spezifische APIs haben, können Sie Needle darauf „trainieren". Die Autoren empfehlen, mindestens 120 Beispiele pro Werkzeug vorzubereiten, um Overfitting zu vermeiden. Das Repository hat sogar ein Skript zum Generieren solcher Daten mit dem „älteren" Gemini.

Für wen es sich lohnt, es auszuprobieren

Ich sehe Needle in Projekten, in denen Datenschutz und Offline-Betrieb kritisch sind. Zum Beispiel in einem Smart-Home-System, das Ihre Gespräche nicht in die Cloud senden sollte, oder in einer mobilen App zur Steuerung einer komplexen Oberfläche per Stimme.

Natürlich haben 26 Millionen Parameter Einschränkungen zur Folge. Sie werden es nicht bitten können, einen Aufsatz zu schreiben oder komplexen technischen Text zu übersetzen. Aber wenn Ihre Aufgabe darin besteht zu verstehen, was der Benutzer will — „Licht dimmen" oder „Termin für Donnerstag planen" — wird Needle es schneller und günstiger erledigen als jedes andere Modell.

Das Projekt ist Open Source, die Gewichte sind auf Hugging Face, und die MIT-Lizenz erlaubt die Verwendung in kommerziellen Produkten. Wenn Sie nach einem Weg gesucht haben, KI zu einem Mikrocontroller oder einem alten Smartphone hinzuzufügen — das ist ein großartiger Kandidat zum Testen.

Ähnliche Projekte