2 Punkte von GN⁺ 2023-12-24 | 1 Kommentare | Auf WhatsApp teilen
  • 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_steps und num_gpus so 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.10 installiert werden
    • pip install -e .
    • pycocotools
    • protobuf==3.20.0
  • Für das Training müssen zusätzlich ninja und flash-attn --no-build-isolation installiert 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
  • 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

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_delta den 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.md im 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
  • Der Model Worker ist jeweils für ein einzelnes über --model-path angegebenes 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

 
GN⁺ 2023-12-24
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.

    • Googles Lookout-App ist eine Accessibility-App für blinde und sehbehinderte Menschen und wurde schon vor etwa sechs Monaten mit einem multimodalen LLM aktualisiert.
      Sie nutzt die Flamingo-Modellfamilie: https://deepmind.google/discover/blog/tackling-multiple-task...
    • Wenn die Arbeit jetzt veröffentlicht wurde, ist es sehr wahrscheinlich, dass Apple schon seit mindestens ein bis zwei Jahren daran arbeitet.
      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.

    • Ich glaube nicht, dass Apple einen großen Chatbot im Stil von ChatGPT bauen wird.
      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.
    • Apple verkauft weder Rechenzeit, damit andere Unternehmen KI betreiben können, noch groß angepasste Hardware für KI-Training.
      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.
    • Wenn man sich Apples bisherige Bilanz bei KI und den Zustand ansieht, in dem CoreML vernachlässigt wurde, wirkt dieses Szenario sehr unwahrscheinlich.
      Es würde auch lange dauern, das Vertrauen der Entwickler zurückzugewinnen, und ich glaube nicht, dass das passieren wird.
    • Kannst du Beispiele nennen? Ich bin zu Android gewechselt, weil ich beim Fahren viel einen persönlichen Assistenten nutze, und Siri war wirklich miserabel.
    • Kann man da so sicher sein? Selbst dieser Link baut auf der Arbeit anderer auf; ich weiß nicht, ob Apple wirklich so viel beigetragen hat, wie man denkt.
  • Kann jemand definieren, wofür „MLLM“ steht?

    • Multimodal Large Language Model, also ein multimodales großes Sprachmodell.
    • Es funktioniert, indem das Sprachmodell Aufgaben an kleinere Sprachmodelle delegiert und dann überhöhte Kosten für GPU-Zeit berechnet.
    • Und ist FERRET ein Akronym?
  • 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.

    • Gerüchten zufolge bereitet Apple iOS 18 als KI-zentriertes Release vor.
      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
    • GPT-4 Voice ist wirklich hervorragend.
      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.
    • Zur Einordnung: Autokorrektur wird bereits von einem kleinen LLM gestützt.
      https://jackcook.com/2023/09/08/predictive-text.html
    • In iOS 17 wurde ein sehr kleines LLM in die Texteingabe-Vorhersage eingebaut.
      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.
    • Noch hat niemand LLM-Modelle gezähmt, und Apple ist da keine Ausnahme.
      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.

    • Ich habe das Gefühl, dass Apple bei KI gerade erst das Wasser testet.
      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.
    • Apple Silicon ist gut, aber es sind Chips, die für mobile Geräte konzipiert wurden.
      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.
    • „Abhängig“ ist zu stark formuliert.
      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?

    • Ich habe ein Flutter-Plugin gebaut, das genau das kann, und auch eine Beispiel-App dafür erstellt.
      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.
    • Mistral 7B ist ziemlich gut, und instruct v0.2 läuft über MLC Chat auf meinem iPhone.
      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?

    • Vermutlich, weil in irgendeiner Phase von GPT-4 erzeugte Trainingsdaten verwendet wurden. Es könnte auch auf der Vicuna-Seite gewesen sein.
    • Im Evaluation-Stack werden Antworten mit GPT-4 bewertet, daher könnte es auch deshalb enthalten sein.
    • Interessant. Apple hat damit wohl einfach öffentlich gesagt, dass sie GPT-4 fürs Training verwendet haben.