Bossie Awards

Die besten Open-Source-Produkte 2023

31.10.2023
Von 
Heinrich Vaske ist Editorial Director a.D. von COMPUTERWOCHE, CIO und CSO.

Language Model Evaluation Harness

Momentan entstehen viele neue LLMs, deren Eigenarten und Leistungsfähigkeit in Rahmen von Benchmarks objektiv verglichen werden müssen. In der Regel werden die Modelle anhand mehrerer Benchmark-Datensätze evaluiert und mit Punktzahlen versehen, die einen Vergleich der Modelle ermöglichen sollen. Dabei hängt die Leistung eines Modells oft von kleinen Implementierungsdetails ab.

Um diese Probleme zu lösen, hat das KI-Forschungsinstitut EleutherAI das LM Evaluation Harness eingeführt, ein vereinheitlichendes Rahmenwerk, das es ermöglicht, jedes kausale Sprachmodell mit genau denselben Eingaben und derselben Codebasis zu testen. Es bietet eine solide Grundlage für die Evaluierung neuer LLMs, spart ihnen Zeit und unterstützt die Vergleichbarkeit ihrer Ergebnisse mit früheren Arbeiten.

Das LM Eval Harness unterstützt mehrere verschiedene NLP-Aufgaben und Modell-Frameworks - mit einer einheitlichen Schnittstelle und Task-Versionierung für die Reproduzierbarkeit. Es bietet über 200 Benchmarks und ist leicht erweiterbar. Es wurde sogar verwendet, um Schwachstellen in den vorhandenen Benchmarks zu entdecken und auch, um das Open LLM Leaderboard von Hugging Face zu betreiben. (Ian Zeiger)

Llama 2

Llama 2 ist die jüngste Generation des LLM von Meta. Es wurde auf zwei Billionen Token aus öffentlich zugänglichen Quellen trainiert, was ein Plus von 40 Prozent gegenüber Llama 1 bedeutet. Die Kontextlänge wurde in der Default-Einstellung auf 4096 verdoppelt. Bei Llama 2 aus den KI-Laboren von Meta handelt es sich um ein autoregressives Sprachmodell, das eine optimierte Transformer-Architektur verwendet.

Die getunten Versionen nutzen Supervised Fine Tuning (SFT) und Reinforcement Learning mit menschlichem Feedback (RLHF). Code Llama kann Code aus anderem Code oder über natürliche Spracheingabe generieren. Es wurde durch das Fine-Tuning von Llama 2 anhand von codespezifischen Datensätzen trainiert. (Martin Heller)

Ollama

Ollama ist ein Tool, mit dem Anwender KI-Modelle wie Llama 2, Code Llama und andere Sprach-, Bilderkennungs- und Übersetzungsmodelle lokal auf ihren Rechnern ausführen können. Dabei wird die Utility auf dem Rechner installiert und die KI-Modelle werden aus der Cloud heruntergeladen. Ollama stellt eine Reihe von Befehlen bereit, mit denen Nutzer die Ausführung des jeweiligen Modells auf ihrem Endgerät steuern können. Zu den Vorteilen gehört, dass Anwender die volle Kontrolle über die Daten haben, die Leistung optimieren und KI-Modelle unzensiert ausführen können. Nachteile sind der hohe Speicherbedarf und die schlechte Performance.

Ollama unterstützt derzeit knapp zwei Dutzend Familien von Sprachmodellen, für die jeweils zahlreiche "Tags" verfügbar sind. Dabei handelt es sich um Varianten der Modelle, die in verschiedenen Größen mit unterschiedlicher Feinabstimmung trainiert wurden, damit sie lokal gut funktionieren. Dass Ollama auch unzensierte Modellvarianten unterstützt, heißt, dass diese LLMs ohne die üblichen Leitplanken trainiert werden. In der Ollama-Variante wird Llama 2 auf die Frage, wie man Schießpulver herstellt, einfach ein Ergebnis liefern und nicht davor warnen, dass die Herstellung von Sprengstoff illegal und gefährlich ist. (Martin Heller)

Polars

Man könnte sich fragen, warum Python eine weitere Library zum Verarbeiten von Daten-Frames braucht, wo sich doch das altehrwürdige Pandas gut bewährt hat. Und tatsächlich kann Polars nicht alles, was Pandas kann, aber es hat einen entscheidenden Vorteil: Es skaliert viel besser als Pandas und ist fünf bis zehn Mal so schnell - bei halb so großem Speicherbedarf.

Polars ist eine Dataframe-Bibliothek für Python, die auf Apache Arrows basiert und in Rust geschrieben wurde. Auch Entwickler, die mit PySpark zu tun hatten, werden sich mit der Polars-API wohler fühlen als mit den etwas esoterischen Operations in Pandas. Vor allem, wenn Sie mit großen Datenmengen arbeiten, kommen Sie mit Polars schneller voran. (Ian Pointer)

PostgreSQL

Dazu muss man eigentlich nicht viel sagen: PostgreSQL wird seit über 35 Jahren entwickelt, die Zahl der Kontributoren liegt inzwischen bei über 700 Personen. Der geschätzte Marktanteil unter den relationalen Datenbankmanagement-Systemen liegt bei 16,4 Prozent. Eine Umfrage zeigte kürzlich, dass PostgreSQL sogar für 45 Prozent der befragten 90.000 Entwickler die erste Wahl ist. Das deutet darauf hin, dass die Dynamik immer noch zunimmt.

Im September 2023 wurde PostgreSQL 16 veröffentlicht. Die Leistung von Aggregat- und Select-Discrete-Abfragen wurde verbessert, ebenso parallele Abfragen. Das System erhielt neue I/O-Monitoring-Funktionen und detaillierte Zugriffskontrollen hinzu. Ebenfalls im Jahr 2023 fügte Amazon seiner Variante "Aurora PostgreSQL" die Funktion "pgvector" hinzu, um GenAI-Embeddings zu unterstützen. Google Cloud veröffentlichte eine ähnliche Funktion für AlloyDB PostgreSQL. (Ian Pointer)

QLoRA

Tim Dettmers und sein Team legen es offenbar darauf an, LLMs auf allen Geräten bis hinunter zum Toaster laufen zu lassen. Letztes Jahr portierten sie mit ihrer Library bitsandbytes die Inferenz größerer Modelle auf Consumer-Hardware. In diesem Jahr haben sie sich dem Training zugewandt, indem sie die LoRA-Techniken auf quantisierte (speicheroptimierte) Modelle verkleinert haben.

Mit QLoRA können massive Modelle mit mehr als 30 Milliarden Parametern für Desktop-Rechner feinabgestimmt werden - mit einem vergleichsweise geringen Genauigkeitsverlust im Vergleich zum vollständigen Tuning für mehrere GPUs. Es gibt sogar Fälle, in denen QLoRA besser abschneidet. Low-Bit-Inferenz und -Training bedeuten, dass LLMs für noch mehr Menschen zugänglich sein werden. (Ian Pointer)

Mit QLoRA lassen sich umfangreiche LLMs auf Desktops portieren.
Mit QLoRA lassen sich umfangreiche LLMs auf Desktops portieren.
Foto: sdecoret - shutterstock.com

RAPIDS

RAPIDS ist eine Sammlung von GPU-beschleunigten Libraries für gängige Data Science- und Analytics-Aufgaben. Jede Programmbibliothek behandelt eine bestimmte Aufgabe, wie cuDF für die Verarbeitung von Daten-Frames, cuGraph für die Graphanalyse oder cuML für maschinelles Lernen. Andere Bibliotheken decken Image Processing, Signalverarbeitung und Spatial Analytics ab, während Integrationen RAPIDS mit Apache Spark, SQL und anderen Workloads verbinden.

Für den Fall, dass keine der verfügbaren Bibliotheken den Anforderungen entspricht, enthält RAPIDS mit RAFT eine Sammlung von GPU-beschleunigten Primitiven für diverse Machine-Learning- und Information-Retrieval-Aufgaben bereit. RAPIDS arbeitet bei Bedarf auch Hand in Hand mit Dask, damit über mehrere Knoten skaliert werden kann, und mit Slurm, um in High-Performance-Computing-Umgebungen zu laufen. (Serdar Yegulalp)

Spark NLP

Spark NLP ist eine Bibliothek für Natural Language Processing (NLP). Sie wird auf Apache Spark mit Unterstützung für Python, Scala und Java ausgeführt. Spark NLP hilft Entwicklern und Data Scientists im Umgang mit LLMs, einschließlich Transformer-Modellen von Google, Meta, OpenAI und anderen.

Der Modell-Hub von Spark NLP bietet mehr als 20.000 Modelle und Pipelines zum Herunterladen. Sie sind einsetzbar für Sprachübersetzung, Eigennamen-Erkennung (Named-Entity-Recognition), Textklassifizierung, das Beantworten von Fragen, Sentiment-Analyse und vieles mehr. Im Jahr 2023 veröffentlichte Spark NLP zahlreiche LLM-Integrationen, einen neuen Bild-zu-Text-Annotator für die Beschriftung von Bildern, die Unterstützung für alle wichtigen öffentlichen Cloud-Speichersysteme und ONNX-Unterstützung (Open Neural Network Exchange). (Isaac Sacolick)

StarRocks

Die Anforderungen an Analytics haben sich verändert, Unternehmen wollen heute komplexe Daten für Millionen von gleichzeitigen Benutzern in Echtzeit bereitstellen. Sogar Petabyte-Abfragen sollen in Sekundengeschwindigkeit bereitgestellt werden. Dabei hilft die Query-Engine StarRocks. Sie kombiniert nativen Code (C++), einen effizienten kostenbasierten Optimierer, Vektorverarbeitung (mit Verwendung des SIMD-Befehlssatzes), Caching und materialisierte Ansichten, um Joins in großem Umfang effizient zu verarbeiten.

StarRocks bietet sogar eine nahezu native Performance bei der direkten Abfrage von Data Lakes und Data Lakehouses wie Apache Hudi oder Apache Iceberg. Ganz gleich, ob Nutzer Realtime- oder kundenorientierte Analysen durchführen oder einfach nur Ihren Data Lake abfragen möchten, ohne dabei Daten zu verschieben: StarRocks wird ihnen dabei helfen. (Ian Zeiger)

TensorFlow.js

TensorFlow.js packt die Power von Googles TensorFlow-Framework für maschinelles Lernen in ein JavaScript-Paket und bietet Entwicklern außergewöhnliche Fähigkeiten, wobei keine große Lernkurve nötig ist. Entwickler können TensorFlow.js im Browser, auf einem reinen JavaScript-Stack mit WebGL-Beschleunigung oder mit der tfjs-node-Bibliothek auf dem Server ausführen. Die Node-Bibliothek bietet Ihnen die gleiche JavaScript-API, läuft aber auf dem C-Binary für maximale Geschwindigkeit und CPU/GPU-Nutzung. Wenn Sie also ein JavaScript-Entwickler mit Interesse an maschinellem Lernen sind, ist TensorFlow.js Ihre Anlaufstelle! Es hilft, KI der breiten Gemeinschaft von JavaScript-Entwicklern zugänglich zu machen. (Matthew Tyson)

vLLM

Unternehmen haben derzeit große Eile, um LLMs produktiv einzusetzen. Deshalb ist eine ganze Reihe von Frameworks entstanden, die alle darauf abzielen, der Inferenz Beine zu machen. vLLM ist eines der vielversprechendsten Rahmenwerke, da es das Hugging-Face-Modell einschließlich PagedAttention unterstützt. Bei ersterem handelt es sich um eine OpenAI-kompatible API, bei zweiterem um einen Algorithmus, der einen bis zu 20-fachen Durchsatz der Transformer-Bibliothek von Hugging Face erreicht. vLLM ist für viele Modell in Produktion heute die erste Wahl. Neue Funktionen wie die Unterstützung von FlashAttention 2 sorgen dafür, dass das so bleiben wird. (Ian Zeiger)

Weaviate

Mit dem Aufkommen von Generative AI ist der Bedarf an einer neuen Art von Datenbank geweckt worden, die große Mengen komplexer, unstrukturierter Daten verarbeiten kann. Hier kommen Vektordatenbanken ins Spiel. Weaviate bietet Entwicklern jede Menge Flexibilität in Bezug auf Deployment-Modell, Ökosystemintegration und Datenschutz.

Weaviate kombiniert Keyword- und Vektorsuche für eine schnelle, skalierbare Recherche in multimodalen Daten (Text, Bilder, Audio, Video). Die Open-Source-Vektordatenbank bietet außerdem unmittelbar einsetzbare Module für Retrieval-Augmented Generation (RAG). So lassen sich Chatbots und andere GenAI-Anwendungen mit domänenspezifischen Daten versorgen, was sie oft nützlicher werden lässt. (Andrew C. Oliver)

Zig

Von allen Open-Source-Projekten, die derzeit laufen, ist Zig vielleicht das ambitionierteste. Hier geht es um den seit 2016 laufenden Versuch, eine neue universelle Programmiersprache mit objektorientierten, imperativen sowie deklarativen Sprachelementen zu entwickeln. Sie soll letztendlich die allgegenwärtige Programmiersprache C übertreffen und dabei eine besonders leistungsfähige und wenig fehleranfällige Syntax bieten. Bei Zig handelt es sich um ein gutes, altmodisches Graswurzelprojekt mit großen Ambitionen und einem extremen Open-Source-Ethos dahinter. (Matthew Tyson)

Der Beitrag basiert auf dieser Übersicht der US-Kollegen von Inforworld, wurde aber in einigen Details angepasst.