Ferret: Multimodales großes Sprachmodell
(github.com/apple)- Ferret ist ein End-to-End-MLLM, das frei formulierte Referenzanweisungen als Eingabe entgegennimmt und Positionen in der Antwort verankert; Ziel sind feingranulare und ortsunabhängige Referenzierung und Verankerung
- Die Kernbestandteile sind Hybrid Region Representation und Spatial-aware Visual Sampler, die in MLLMs feingranulare Open-Vocabulary-Referenzierung und Verankerung unterstützen
- Das Projekt stellt rund 1,1 Millionen GRIT-Datensätze, Ferret-Bench, 7B- und 13B-Checkpoint-Deltas sowie Verfahren für Training, Evaluation und Demo-Ausführung bereit
- Das Training basiert auf einer Umgebung mit 8×A100 80GB; bei weniger GPUs müssen die Kombinationen aus
per_device_train_batch_size,gradient_accumulation_stepsundnum_gpusso angepasst werden, dass die globale Batch-Größe erhalten bleibt - Daten und Code sind ausschließlich für Forschungszwecke bestimmt; der Datensatz steht unter CC BY NC 4.0 und erlaubt nur nichtkommerzielle Nutzung, außerdem müssen die Lizenzbedingungen von LLaMA, Vicuna und GPT-4 eingehalten werden
Ziel und Aufbau von Ferret
- Ferret ist ein End-to-End-MLLM mit dem Leitgedanken „Refer and Ground Anything Anywhere at Any Granularity“
- Es soll Referenzeingaben in beliebigem Format verarbeiten und das Ziel in der Antwort verankern
- Die wichtigsten Beiträge lassen sich in drei Punkte gliedern
- Ferret Model: Nutzt Hybrid Region Representation und Spatial-aware Visual Sampler, um feingranulare Open-Vocabulary-Referenzierung und Verankerung zu ermöglichen
- GRIT Dataset: Ein groß angelegter, hierarchischer und robuster Instruction-Tuning-Datensatz für Ground-and-Refer mit rund 1,1 Millionen Einträgen
- Ferret-Bench: Ein multimodaler Evaluierungs-Benchmark, der zugleich Referenzierung und Verankerung, Semantik, Wissen und Schlussfolgern verlangt
Release- und Modellstatus
- Am 8. Oktober 2024 wurde Ferret-UI veröffentlicht
- Vorgestellt als UI-zentriertes MLLM, das Aufgaben zu Referenzierung, Verankerung und Schlussfolgern effektiv ausführen kann
- Am 10. Juli 2024 wurde Ferret-v2 für die COLM 2024 angenommen
- Am 15. Februar 2024 wurde Ferret als ICLR 2024 Spotlight angenommen
- Am 14. Dezember 2023 wurden Ferret-Checkpoints 7B und 13B veröffentlicht
- Am 30. Oktober 2023 wurden der FERRET-Modellcode und Ferret-Bench veröffentlicht
Installation und Trainingsbedingungen
- Die Installation erfolgt, indem das Repository geklont und Pakete in einer Conda-Umgebung mit
python=3.10installiert werdenpip install -e .pycocotoolsprotobuf==3.20.0
- Für das Training müssen zusätzlich ninja und
flash-attn --no-build-isolationinstalliert werden - Die Referenzumgebung für das FERRET-Training besteht aus 8 A100-GPUs mit jeweils 80GB Speicher
- Beim Training mit weniger GPUs muss die globale Batch-Größe erhalten bleiben
- Globale Batch-Größe =
per_device_train_batch_size×gradient_accumulation_steps×num_gpus
- Globale Batch-Größe =
- Die Hyperparameter für Finetuning entsprechen einer ähnlichen Konfiguration wie bei LLaVA (Vicuna)
- FERRET-7B: Global Batch Size 128, Learning rate
2e-5, Epochs 3, Max length 2048, Weight decay 0 - FERRET-13B: Global Batch Size 128, Learning rate
2e-5, Epochs 3, Max length 2048, Weight decay 0
- FERRET-7B: Global Batch Size 128, Learning rate
Basismodell und Verwendung der Checkpoints
- Vor dem Training müssen die Basisgewichte des Modells Vicuna v1.3 vorbereitet werden
- Zusätzlich werden die Projector-Gewichte aus dem Stage-1-Pretraining von LLaVA benötigt
- 7B-Projector
- 13B-Projector
- Die veröffentlichten Checkpoints werden nicht als vollständiges vortrainiertes Modell, sondern als Delta gegenüber Vicuna bereitgestellt
- Nutzer müssen zuerst die Vicuna-Gewichte beziehen, dann das 7B- oder 13B-Delta von Ferret herunterladen und mit dem Skript
ferret.model.apply_deltaden Offset auf die Vicuna-Gewichte anwenden - Auf die von Apple bereitgestellten Weight Differentials findet die CC-BY-NC-Lizenz Anwendung; für LLaMA oder andere Software Dritter gelten deren jeweilige Bedingungen
Evaluation und Demo-Ausführung
- Die Evaluation wird im separaten Dokument
EVAL.mdim Detail beschrieben - Die lokale Demo verwendet eine Gradio-Web-UI und erfordert die lokale Nutzung von FERRET-Training und Checkpoints
- Der Demo-Ablauf besteht aus drei Schritten
- Controller starten:
ferret.serve.controller - Gradio-Webserver starten:
ferret.serve.gradio_web_server - Model Worker starten, der die Inferenz auf der GPU ausführt:
ferret.serve.model_worker
- Controller starten:
- Der Model Worker ist jeweils für ein einzelnes über
--model-pathangegebenes Modell zuständig - Wenn das Laden des Modells abgeschlossen ist und „Uvicorn running on ...“ erscheint, kann die Gradio-Web-UI aktualisiert werden, um das gestartete Modell in der Liste zu sehen
Nutzungsbeschränkungen und Herkunft
- Daten und Code sind nur für Forschungszwecke vorgesehen und entsprechend lizenziert
- Die Nutzung ist auf Anwendungen beschränkt, die die Lizenzvereinbarungen von LLaMA, Vicuna und GPT-4 einhalten
- Der Datensatz steht unter CC BY NC 4.0 und erlaubt ausschließlich nichtkommerzielle Nutzung
- Mit dem Datensatz trainierte Modelle dürfen nicht außerhalb von Forschungszwecken verwendet werden
- Das Projekt basiert auf der Codebasis von LLaVA und der LLM-Codebasis von Vicuna
1 Kommentare
Hacker-News-Kommentare
Geht es jetzt schon in Richtung multimodal? Wenn Google die Bildbeschreibungen in diesem Accessibility-Bereich nicht besser hinbekommt als auf dem Niveau von „Firmenlogo“, denke ich darüber nach, zu Apple zurückzugehen.
Apple muss zwar auch Bugs reduzieren und das Gefühl loswerden, dass VoiceOver schon bei der kleinsten Berührung auseinanderfällt, aber auch ohne LLM sind die Bildbeschreibungen bereits sauber und klar.
Zum Beispiel eher „grünes Logo auf schwarzem Hintergrund“, während Google, wie gesagt, eher bei „Firmenlogo“ liegt. Das wirkt wie das Ergebnis, wenn KI per Crowdsourcing entsteht, statt mit guten, hochwertigen Daten trainiert zu werden.
Sie nutzt die Flamingo-Modellfamilie: https://deepmind.google/discover/blog/tackling-multiple-task...
Es gibt auch Gerüchte, dass die macOS-/iOS-Releases im nächsten Jahr LLM-Funktionen enthalten werden.
In dem Zusammenhang sehenswert: „LLM in a flash: Efficient Large Language Model Inference with Limited Memory“
Apple scheint sich darauf vorzubereiten, mit solchen LLMs große Fortschritte bei On-Device-Inferenz zu machen.
https://arxiv.org/abs/2312.11514
Das Paper ist älter (Oktober 2023), aber die Gewichte sind neu erschienen (Dezember 2023).
https://lifearchitect.ai/models-table/
Apple wirkte bei LLMs zwar still, hat aber ohne große Werbekampagnen seinen Hardware+Software-KI-Stack kontinuierlich weiterentwickelt.
Wenn ein neues iOS-Release plötzlich OpenAI-/Bard-Chatfenster lächerlich altmodisch aussehen lässt, könnten sie Microsoft/OpenAI und Google übertrumpfen.
Wenn ein erheblicher Teil der KI-Nutzung auf Apple-Hardware wandert, wäre das auch eine Bedrohung für Nvidia; Arm und TSMC dürften dagegen profitieren.
Wahrscheinlicher ist, dass sie dieselbe Technologie „einfach“ für schrittweise Verbesserungen von Produkten wie Siri oder der Autovervollständigung der Tastatur nutzen, und das halte ich für den richtigen Weg.
Sie versuchen auch nicht, Venture Capital einzuwerben, und ihr Kerngeschäft wird nicht durch KI als „Weiterentwicklung der Suche“ bedroht.
Produktseitig hört man bislang im Grunde nur die Botschaft, dass der M3 Max gut zum Ausführen von Machine-Learning-Modellen geeignet sei.
Bis ein echtes Verbraucherprodukt bereitsteht, reicht es, das in Finanzmeetings pro forma zu erwähnen und damit die Analysten zufriedenzustellen.
Es würde auch lange dauern, das Vertrauen der Entwickler zurückzugewinnen, und ich glaube nicht, dass das passieren wird.
Kann jemand definieren, wofür „MLLM“ steht?
Ich hoffe, Apple bringt vielleicht schon nächstes Jahr ein iPhone mit einem guten privaten On-Device-LLM-Assistenten heraus.
Die Hardware scheint dafür gut geeignet zu sein.
Wenn das kommt, könnte ich meinen üblichen Austauschzyklus von etwa vier Jahren brechen und mir ein neues Telefon kaufen. Siri ist für mich nahezu unbrauchbar.
Interessant wird, ob je nach Online-/Offline-Situation unterschiedliche Funktionen angeboten werden oder ob alles vollständig offline läuft.
Ein Artikel mit Hintergrund dazu: https://archive.is/en3VL
Es kommt dem sehr nahe, was man sich von einem Sprachtool erwartet. Man muss nicht wie bei Siri bestimmte Befehle laut sagen, sondern kann sprechen wie mit einem normalen Menschen.
https://jackcook.com/2023/09/08/predictive-text.html
Ich nutze ein aktuelles iPhone, sehe aber nur sehr selten, dass es tatsächlich funktioniert.
Im Moment ist es wohl entweder zu langsam, um mit meiner Tippgeschwindigkeit mitzuhalten, oder das Modell ist zu klein, um viele nützliche Vorschläge zu machen.
Auch heute kann man ChatGPT dazu bringen, sehr schreckliche Dinge zu sagen, und wenn Apple etwas On-Device herausbringt, wird man auch daraus einen bösen Roboter machen können.
Persönlich halte ich LLMs noch nicht für sicher genug für den produktiven Masseneinsatz.
„FERRET wurde mit 8 A100-GPUs mit 80 GB Speicher trainiert“ – offenbar ist auch Apple der CUDA-Falle nicht entkommen.
Interessant, dass man zu Nvidia in einer Art moralischer Gegnerschaft stand und nun teilweise von ihnen abhängig ist.
Wenn sie aber tief genug einsteigen, könnten sie auch Geld in eigene Recheninfrastruktur stecken.
Nvidia ist derzeit der König der GPU-Rechenleistung, und vergleichbare Hardware zu entwickeln ist weder klein noch billig. Aber Apple ist in einer sehr guten Position, das zu schaffen, wenn sie sich zu einer Investition entschließen.
Selbst wenn es Konflikte zwischen Unternehmen gibt: Wenn ein bestimmter Weg billiger oder einfacher wird, nehmen Firmen das meiner Meinung nach gern in Kauf.
Selbst Studio und Mac Pro sind eher so etwas wie zusammengeklebte Laptop-Chips; für schwere Workloads braucht man schwere Ausrüstung.
Ich weiß, dass die Beziehung zu Nvidia schlecht geworden ist, aber ich würde mir wünschen, dass sie das AMD/ROCm-Ökosystem stärken.
Natürlich ist es sehr wahrscheinlich, dass Apple in diesem Bereich auch an etwas Eigenem arbeitet. Bei mehreren zehn Milliarden Dollar an liquiden Mitteln werden sie wohl einiges in Forschung und Entwicklung stecken.
Letztlich laufen solche Deep-Learning-Modelle auf jeder Hardware, und wenn man einen kleinen Performance-Verlust hinnimmt, kann man eine Art Hardware leicht durch eine andere ersetzen.
Im Grunde ist das ziemlich nah an einer Commodity.
Weiß jemand, welches das beste Open-Source-Modell ist, das man kommerziell nutzen und lokal auf dem iPhone ausführen kann?
Es ist Open Source und läuft nativ auf den wichtigsten Plattformen. Ich habe auch Videos geteilt, in denen es auf iPad Mini, Pixel 7, iPhone 12, Surface Pro (Windows 10 & Ubuntu Jellyfish) und Mac (Intel- & M-Architektur) läuft.
Es ist keineswegs eine fertige App. Ich wollte On-Device-KI in Flutter nutzen und habe mit einer Portierung von llama.cpp angefangen; später möchte ich auch aktuelle Implementierungen wie whisper.cpp und bark.cpp portieren.
Repository: https://github.com/BrutalCoding/aub.ai
Auf Apple-Geräten kann man das hier verwenden: https://testflight.apple.com/join/XuTpIgyY
Die App ist mit jeder GGUF-Datei kompatibel, aber sie sollte das ChatML-Prompt-Format verwenden, damit die Chat-UI/Sprechblasen nicht merkwürdig aussehen. Anpassbar habe ich das noch nicht gemacht, weil es eben nur die Beispiel-App für das Plugin ist. Trotzdem arbeite ich aktiv daran, sie in die gewünschte Form zu bringen.
Allerdings ist die Nutzbarkeit der ChatGPT4-App deutlich besser. Das Modell ist ebenfalls besser, und auch die multimodalen Funktionen einschließlich Text/Vision/Sprache sowie die UI sind besser.
„Daten und Code sind ausschließlich für Forschungszwecke vorgesehen und lizenziert. Außerdem ist die Nutzung auf Anwendungen beschränkt, die den Lizenzvereinbarungen von LLaMA, Vicuna und GPT-4 entsprechen. Der Datensatz steht unter CC BY NC 4.0 und erlaubt nur nicht-kommerzielle Nutzung; Modelle, die mit diesem Datensatz trainiert wurden, dürfen nicht außerhalb von Forschungszwecken verwendet werden.“
Moment, wie kommt hier GPT-4 ins Spiel?