Falcon2
Bild vom Autor

Das Know-how Innovation Institute (TII) in Abu Dhabi hat am 14. Mai seine nächste Serie von Falcon-Sprachmodellen veröffentlicht. Die neuen Modelle entsprechen der TII-Mission als Technologie-Enabler und sind als Open-Supply-Modelle auf HuggingFace verfügbar. Sie haben zwei Varianten der Falcon 2-Modelle veröffentlicht: Falcon-2-11B Und Falcon-2-11B-VLM. Das neue VLM-Modell verspricht außergewöhnliche Multimodell-Kompatibilitäten, die denen anderer Open-Supply- und Closed-Supply-Modelle ebenbürtig sind.

Modellmerkmale und Leistung

Das aktuelle Falcon-2-Sprachmodell hat 11 Milliarden Parameter und wird mit 5,5 Billionen Token aus dem Falke-veredeltes Internet Datensatz. Die neueren, effizienteren Modelle können intestine mit dem aktuellen Llama3-Modell von Meta mit 8 Milliarden Parametern mithalten. Die Ergebnisse sind in der folgenden von TII bereitgestellten Tabelle zusammengefasst:

Falcon 2 ErgebnisseFalcon 2 Ergebnisse
Bild von TII

Darüber hinaus schneidet das Falcon-2-Modell im Vergleich zu Googles Gemma mit 7 Milliarden Parametern intestine ab. Gemma-7B übertrifft die durchschnittliche Leistung von Falcon-2 nur um 0,01. Darüber hinaus ist das Modell mehrsprachig und wurde auf häufig verwendeten Sprachen trainiert, darunter Englisch, Französisch, Spanisch und Deutsch.

Die bahnbrechende Leistung ist jedoch die Veröffentlichung des Falcon-2-11B Imaginative and prescient Language Mannequin, das demselben Sprachmodell Bildverständnis und Multimodularität hinzufügt. Die Bild-zu-Textual content-Konversationsfunktion mit vergleichbaren Fähigkeiten mit aktuellen Modellen wie Llama3 und Gemma ist ein bedeutender Fortschritt.

So verwenden Sie die Modelle für Inferenzen

Kommen wir zum Codierungsteil, damit wir das Modell auf unserem lokalen System ausführen und Antworten generieren können. Lassen Sie uns zunächst wie bei jedem anderen Projekt eine neue Umgebung einrichten, um Abhängigkeitskonflikte zu vermeiden. Da das Modell erst kürzlich veröffentlicht wurde, benötigen wir die neuesten Versionen aller Bibliotheken, um fehlenden Assist und fehlende Pipelines zu vermeiden.

Erstellen Sie eine neue virtuelle Python-Umgebung und aktivieren Sie sie mit den folgenden Befehlen:

python -m venv venv
supply venv/bin/activate

Jetzt haben wir eine saubere Umgebung und können unsere erforderlichen Bibliotheken und Abhängigkeiten mit dem Python-Paketmanager installieren. Für dieses Projekt verwenden wir im Web verfügbare Bilder und laden sie in Python. Die Bibliotheken Requests und Pillow sind für diesen Zweck geeignet. Darüber hinaus verwenden wir zum Laden des Modells die Transformers-Bibliothek, die interne Unterstützung für das Laden und die Inferenz des HuggingFace-Modells bietet. Wir verwenden Bitsandbytes, PyTorch und Speed up als Dienstprogramm zum Laden und Quantisieren von Modellen.

Um den Einrichtungsprozess zu vereinfachen, können wir wie folgt eine einfache Textdatei mit den Anforderungen erstellen:

# necessities.txt
speed up  # For distributed loading
bitsandbytes	# For Quantization
torch   # Utilized by HuggingFace
transformers	# To load pipelines and fashions
Pillow  # Primary Loading and Picture Processing
requests	# Downloading picture from URL

Wir können jetzt alle Abhängigkeiten in einer einzigen Zeile installieren, indem wir Folgendes verwenden:

pip set up -r necessities.txt

Wir können jetzt mit der Arbeit an unserem Code beginnen, um das Modell für Inferenzen zu verwenden. Beginnen wir damit, das Modell in unser lokales System zu laden. Das Modell ist verfügbar unter Umarmendes Gesicht und die Gesamtgröße übersteigt 20 GB Speicher. Wir können das Modell nicht in GPUs der Verbraucherklasse laden, die normalerweise etwa 8-16 GB RAM haben. Daher müssen wir das Modell quantisieren, d. h. wir laden das Modell in 4-Bit-Gleitkommazahlen statt der üblichen 32-Bit-Präzision, um den Speicherbedarf zu verringern.

Die Bitsandbytes-Bibliothek bietet eine einfache Schnittstelle zur Quantisierung großer Sprachmodelle in HuggingFace. Wir können eine Quantisierungskonfiguration initialisieren, die an das Modell übergeben werden kann. HuggingFace verarbeitet intern alle erforderlichen Vorgänge und stellt die richtige Präzision und Anpassungen für uns ein. Die Konfiguration kann wie folgt festgelegt werden:

from transformers import BitsAndBytesConfig
quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
  	# Unique mannequin help BFloat16
    bnb_4bit_compute_dtype=torch.bfloat16,
)

Dadurch passt das Modell in weniger als 16 GB GPU-RAM, was das Laden des Modells ohne Offloading und Verteilung erleichtert. Wir können jetzt den Falcon-2B-VLM laden. Da es sich um ein multimodales Modell handelt, werden wir Bilder neben Textaufforderungen verarbeiten. Das LLava-Modell und die Pipelines sind für diesen Zweck konzipiert, da sie die Projektion von CLIP-basierten Bildeinbettungen auf Sprachmodelleingaben ermöglichen. Die Transformers-Bibliothek verfügt über integrierte Llava-Modellprozessoren und Pipelines. Wir können das Modell dann wie folgt laden:

from transformers import LlavaNextForConditionalGeneration, LlavaNextProcessor
processor = LlavaNextProcessor.from_pretrained(
	"tiiuae/falcon-11B-vlm",
	tokenizer_class="PreTrainedTokenizerFast"
)
mannequin = LlavaNextForConditionalGeneration.from_pretrained(
	"tiiuae/falcon-11B-vlm",
	quantization_config=quantization_config,
	device_map="auto"
)

Wir übergeben die Modell-URL von der HuggingFace-Modellkarte an den Prozessor und Generator. Wir übergeben auch die Bitsandbytes-Quantisierungskonfiguration an das generative Modell, sodass sie automatisch mit 4-Bit-Präzision geladen wird.

Wir können nun mit dem Modell beginnen, um Antworten zu generieren! Um die multimodale Natur von Falcon-11B zu untersuchen, müssen wir ein Bild in Python laden. Lassen Sie uns als Testbeispiel dieses verfügbare Standardbild laden Hier. Um ein Bild von einer Internet-URL zu laden, können wir die Pillow- und Requests-Bibliothek wie folgt verwenden:

from Pillow import Picture
import requests

url = "https://static.theprint.in/wp-content/uploads/2020/07/soccer.jpg"
img = Picture.open(requests.get(url, stream=True).uncooked)

Die Anforderungsbibliothek lädt das Bild von der URL herunter und die Pillow-Bibliothek kann das Bild von Bytes in ein Standardbildformat lesen. Da wir nun unser Testbild haben, können wir nun eine Beispielantwort aus unserem Modell generieren.

Lassen Sie uns eine Beispiel-Eingabeaufforderungsvorlage einrichten, auf die das Modell reagiert.

instruction = "Write an extended paragraph about this image."
immediate = f"""Consumer:<picture>n{instruction} Falcon:"""

Die Eingabeaufforderungsvorlage selbst ist selbsterklärend und wir müssen sie befolgen, um die besten Antworten vom VLM zu erhalten. Wir übergeben die Eingabeaufforderung und das Bild an den Llava-Bildprozessor. Dieser verwendet intern CLIP, um eine kombinierte Einbettung des Bilds und der Eingabeaufforderung zu erstellen.

inputs = processor(
	immediate,
	photographs=img,
	return_tensors="pt",
	padding=True
).to('cuda:0')

Die zurückgegebene Tensoreinbettung dient als Eingabe für das generative Modell. Wir übergeben die Einbettungen und das transformerbasierte Falcon-11B-Modell generiert eine Textantwort basierend auf dem ursprünglich bereitgestellten Bild und den Anweisungen.

Wir können die Antwort mit dem folgenden Code generieren:

output = mannequin.generate(**inputs, max_new_tokens=256)
generated_captions = processor.decode(output(0), skip_special_tokens=True).strip()

Da haben wir es! Die Variable generated_captions ist eine Zeichenfolge, die die generierte Antwort vom Modell enthält.

Ergebnisse

Wir haben verschiedene Bilder mit dem obigen Code getestet und die Antworten für einige davon sind im folgenden Bild zusammengefasst. Wir sehen, dass das Falcon-2-Modell das Bild intestine versteht und lesbare Antworten generiert, um sein Verständnis der Szenarien in den Bildern zu zeigen. Es kann Textual content lesen und hebt auch die globalen Informationen als Ganzes hervor. Zusammenfassend lässt sich sagen, dass das Modell hervorragende Fähigkeiten für visuelle Aufgaben hat und für bildbasierte Gespräche verwendet werden kann.

Falcon 2-InferenzergebnisseFalcon 2-Inferenzergebnisse
Bild vom Autor | Inferenzbilder aus dem Web. Quellen: Katzen Bild, Kartenbild, Fußballbild

Lizenz und Compliance

Die Modelle sind nicht nur Open Supply, sondern werden auch mit der Apache2.0-Lizenz veröffentlicht, wodurch sie für den Open Entry verfügbar sind. Dies ermöglicht die Änderung und Verteilung des Modells für den persönlichen und kommerziellen Gebrauch. Das bedeutet, dass Sie jetzt Falcon-2-Modelle verwenden können, um Ihre LLM-basierten Anwendungen zu optimieren, und Open-Supply-Modelle, um Ihren Benutzern multimodale Funktionen bereitzustellen.

Einpacken

Insgesamt zeigen die neuen Falcon-2-Modelle vielversprechende Ergebnisse. Aber das ist noch nicht alles! TII arbeitet bereits an der nächsten Iteration, um die Leistung weiter zu steigern. Sie wollen Combination-of-Consultants (MoE) und andere maschinelle Lernfunktionen in ihre Modelle integrieren, um Genauigkeit und Intelligenz zu verbessern. Wenn Falcon-2 eine Verbesserung zu sein scheint, seien Sie auf die nächste Ankündigung gefasst.

Kanwal Mehreen Kanwal ist Ingenieurin für maschinelles Lernen und technische Autorin mit einer tiefen Leidenschaft für Datenwissenschaft und die Schnittstelle zwischen KI und Medizin. Sie ist Mitautorin des E-Books „Maximizing Productiveness with ChatGPT“. Als Google Technology Scholar 2022 für APAC setzt sie sich für Vielfalt und akademische Exzellenz ein. Sie ist außerdem als Teradata Range in Tech Scholar, Mitacs Globalink Analysis Scholar und Harvard WeCode Scholar anerkannt. Kanwal ist eine leidenschaftliche Verfechterin des Wandels und hat FEMCodes gegründet, um Frauen in MINT-Fächern zu stärken.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert