KI-Tools 101
Kompletter AnfÃĪnger-Leitfaden fÞr Hugging Face LLM-Tools

Hugging Face ist ein AI-Forschungslabor und ein Hub, der eine Gemeinschaft von Wissenschaftlern, Forschern und Enthusiasten aufgebaut hat. In kurzer Zeit hat Hugging Face eine erhebliche PrÃĪsenz im AI-Bereich erlangt. Tech-Giganten wie Google (GOOGL ), Amazon (AMZN ) und Nvidia (NVDA ) haben den AI-Startup Hugging Face mit erheblichen Investitionen unterstÞtzt, was seine Bewertung auf $4,5 Milliarden bringt.
In diesem Leitfaden werden wir Transformator-Modelle, LLMs und die Rolle der Hugging Face-Bibliothek bei der FÃķrderung einer Open-Source-AI-Gemeinschaft vorstellen. Wir werden auch die wesentlichen Funktionen von Hugging Face erlÃĪutern, einschlieÃlich Pipelines, DatensÃĪtzen, Modellen und mehr, mit praktischen Python-Beispielen.
Transformator-Modelle in der NLP
Im Jahr 2017 verÃķffentlichte die Cornell University eine einflussreiche Arbeit, die Transformator-Modelle vorstellte. Diese sind tiefere Lernmodelle, die in der NLP verwendet werden. Diese Entdeckung fÃķrderte die Entwicklung von groÃen Sprachmodellen wie ChatGPT.
GroÃe Sprachmodelle oder LLMs sind KI-Systeme, die Transformator-Modelle verwenden, um menschliche Texte zu verstehen und zu erstellen. Die Erstellung dieser Modelle ist jedoch teuer und erfordert oft Millionen von Dollar, was ihre ZugÃĪnglichkeit auf groÃe Unternehmen beschrÃĪnkt.
Hugging Face, gegrÞndet im Jahr 2016, zielt darauf ab, NLP-Modelle fÞr jeden zugÃĪnglich zu machen. Trotzdem es sich um ein kommerzielles Unternehmen handelt, bietet es eine Reihe von Open-Source-Ressourcen an, um Menschen und Organisationen dabei zu helfen, Transformer-Modelle kostengÞnstig zu erstellen und zu verwenden. Maschinelles Lernen besteht darin, Computern beizubringen, Aufgaben durch Mustererkennung auszufÞhren, wÃĪhrend tiefes Lernen, ein Teilbereich des maschinellen Lernens, ein Netzwerk erstellt, das unabhÃĪngig lernt. Transformator-Modelle sind eine Art tiefes Lernarchitektur, die die Eingabedaten effektiv und flexibel nutzt, was sie zu einer beliebten Wahl fÞr die Erstellung groÃer Sprachmodelle macht, da sie weniger Trainingszeit erfordern.
Wie Hugging NLP- und LLM-Projekte erleichtert
Hugging Face hat die Arbeit mit LLMs vereinfacht, indem es Folgendes anbietet:
- Eine Reihe von vorgefertigten Modellen zur Auswahl.
- Werkzeuge und Beispiele, um diese Modelle an Ihre spezifischen BedÞrfnisse anzupassen.
- Leichte Bereitstellungsoptionen fÞr verschiedene Umgebungen.
Eine groÃartige Ressource, die Þber Hugging Face verfÞgbar ist, ist die Open LLM Leaderboard. Als umfassende Plattform Þberwacht, bewertet und analysiert sie systematisch die Effizienz einer Reihe von Large Language Models (LLMs) und Chatbots, wodurch eine differenzierte Analyse der Fortschritte im Open-Source-Bereich mÃķglich ist.
LLM-Benchmarks misst Modelle anhand von vier Metriken:
- AI2 Reasoning Challenge (25-Shot) â eine Reihe von Fragen zu Grundlagen der Naturwissenschaft.
- HellaSwag (10-Shot) â ein Test fÞr AlltagsverstÃĪndnis, der fÞr Menschen einfach, aber fÞr fortschrittliche Modelle eine Herausforderung darstellt.
- MMLU (5-Shot) â eine umfassende Bewertung, die die FÃĪhigkeiten eines Textmodells in 57 verschiedenen Bereichen, einschlieÃlich Grundlagen der Mathematik, Recht und Informatik, berÞcksichtigt.
- TruthfulQA (0-Shot) â ein Werkzeug, um die Neigung eines Modells zu ÞberprÞfen, hÃĪufig im Internet vorkommende Fehlinformationen zu verbreiten.
Die Benchmarks, die mit Begriffen wie â25-Shotâ, â10-Shotâ, â5-Shotâ und â0-Shotâ bezeichnet werden, geben die Anzahl der Prompt-Beispiele an, die einem Modell wÃĪhrend des Bewertungsprozesses gegeben werden, um seine Leistung und seine FÃĪhigkeit zur Argumentation in verschiedenen Bereichen zu bewerten. Im âFew-Shotâ-Paradigma werden Modelle mit einer kleinen Anzahl von Beispielen versehen, um ihre Antworten zu leiten, wÃĪhrend im â0-Shotâ-Szenario Modelle keine Beispiele erhalten und sich ausschlieÃlich auf ihr vorheriges Wissen verlassen mÞssen, um angemessen zu antworten.
Komponenten von Hugging
Pipelines
âPipelinesâ sind Teil der Hugging Face-Transformator-Bibliothek â eine Funktion, die die einfache Verwendung von vorgefertigten Modellen im Hugging Face-Repository ermÃķglicht. Sie bietet eine intuitive API fÞr eine Reihe von Aufgaben, einschlieÃlich Sentiment-Analyse, Fragebeantwortung, Masked Language Modeling, Named Entity Recognition und Zusammenfassung.
Pipelines integrieren drei zentrale Hugging Face-Komponenten:
- Tokenizer: Bereitet Ihren Text fÞr das Modell vor, indem es ihn in ein Format umwandelt, das das Modell verstehen kann.
- Modell: Dies ist das HerzstÞck der Pipeline, in dem die tatsÃĪchlichen Vorhersagen auf der Grundlage der vorverarbeiteten Eingabe gemacht werden.
- Post-Processor: Wandelt die rohen Vorhersagen des Modells in eine fÞr Menschen lesbare Form um.
Diese Pipelines reduzieren nicht nur umfangreiches Codieren, sondern bieten auch eine benutzerfreundliche Schnittstelle, um verschiedene NLP-Aufgaben auszufÞhren.
Transformator-Anwendungen mit der Hugging Face-Bibliothek
Ein Highlight der Hugging Face-Bibliothek ist die Transformator-Bibliothek, die NLP-Aufgaben vereinfacht, indem sie ein Modell mit notwendigen Vor- und Nachverarbeitungsstufen verbindet, wodurch der Analyseprozess gestreamt wird. Um die Bibliothek zu installieren und zu importieren, verwenden Sie die folgenden Befehle:
pip install -q transformers from transformers import pipeline
Nachdem Sie dies getan haben, kÃķnnen Sie NLP-Aufgaben starten, beginnend mit der Sentiment-Analyse, die Text in positive oder negative Sentiments einordnet. Die leistungsstarke pipeline()-Funktion dient als zentrale Schnittstelle, die andere Pipelines umfasst und task-spezifische Anwendungen in Audio-, Bild- und multimodalen Bereichen ermÃķglicht.
Praktische Anwendungen
Text-Klassifizierung
Text-Klassifizierung wird mit der pipeline()-Funktion von Hugging Face zum Kinderspiel. Hier erfahren Sie, wie Sie eine Text-Klassifizierungs-Pipeline initiieren:
classifier = pipeline("text-classification")
Um eine praktische Erfahrung zu sammeln, fÞttern Sie eine Zeichenfolge oder eine Liste von Zeichenfolgen in Ihre Pipeline, um Vorhersagen zu erhalten, die mit Pythonâs Pandas-Bibliothek elegant visualisiert werden kÃķnnen. Hier ist ein Python-Snippet, das dies demonstriert:
sentences = ["Ich bin begeistert, Ihnen die wunderbare Welt der KI vorzustellen.",
"Hoffentlich wird es Sie nicht enttÃĪuschen."]
<p># Klassifizierungsergebnisse fÞr jeden Satz in der Liste abrufen
results = classifier(sentences)</p>
<p># Durchlaufen Sie jedes Ergebnis und drucken Sie das Label und den Score
for i, result in enumerate(results):
print(f&amp;amp;quot;Ergebnis {i + 1}:&amp;amp;quot;)
print(f&amp;amp;quot; Label: {result[&amp;#039;label&amp;#039;]}&amp;amp;quot;)
print(f&amp;amp;quot; Score: {round(result[&amp;#039;score&amp;#039;], 3)}\n&amp;amp;quot;)
Ausgabe
Ergebnis 1: Label: POSITIV Score: 1.0 <p>Ergebnis 2: Label: POSITIV Score: 0.996
Named Entity Recognition (NER)
NER ist entscheidend fÞr die Extraktion von realen Objekten, sogenannten âNamed Entitiesâ, aus dem Text. Verwenden Sie die NER-Pipeline, um diese EntitÃĪten effektiv zu identifizieren:
ner_tagger = pipeline(&amp;amp;quot;ner&amp;amp;quot;, aggregation_strategy=&amp;amp;quot;simple&amp;amp;quot;) text = &amp;amp;quot;Elon Musk ist der CEO von SpaceX.&amp;amp;quot; outputs = ner_tagger(text) print(outputs)
Ausgabe
Elon Musk: PER, SpaceX: ORG
Fragebeantwortung
Fragebeantwortung beinhaltet die Extraktion prÃĪziser Antworten auf spezifische Fragen aus einem gegebenen Kontext. Initialisieren Sie eine Fragebeantwortungs-Pipeline und geben Sie Ihre Frage und den Kontext ein, um die gewÞnschte Antwort zu erhalten:
reader = pipeline(&amp;amp;quot;question-answering&amp;amp;quot;) text = &amp;amp;quot;Hugging Face ist ein Unternehmen, das Tools fÞr die NLP erstellt. Es hat seinen Sitz in New York und wurde 2016 gegrÞndet.&amp;amp;quot; question = &amp;amp;quot;Wo hat Hugging Face seinen Sitz?&amp;amp;quot; outputs = reader(question=question, context=text) print(outputs)
Ausgabe
{&amp;#039;score&amp;#039;: 0.998, &amp;#039;start&amp;#039;: 51, &amp;#039;end&amp;#039;: 60, &amp;#039;answer&amp;#039;: &amp;#039;New York&amp;#039;} Die pipeline()-Funktion von Hugging Face bietet eine Reihe von vorgefertigten Pipelines fÞr verschiedene Aufgaben, neben Text-Klassifizierung, NER und Fragebeantwortung. Hier sind Details zu einem Teil der verfÞgbaren Aufgaben:
Tabelle: Hugging Face-Pipeline-Aufgaben
| Aufgabe | Beschreibung | Pipeline-Bezeichner |
| Texterstellung | Erstellt Text basierend auf einem gegebenen Prompt | pipeline(task=âtext-generationâ) |
| Zusammenfassung | Zusammenfasst einen langen Text oder ein Dokument | pipeline(task=âsummarizationâ) |
| Bildklassifizierung | Klassifiziert ein Eingabebild | pipeline(task=âimage-classificationâ) |
| Audio-Klassifizierung | Kategorisiert Audio-Daten | pipeline(task=âaudio-classificationâ) |
| Visuelle Fragebeantwortung | Beantwortet eine Frage mithilfe eines Bildes und einer Frage | pipeline(task=âvqaâ) |
Â
FÞr detaillierte Beschreibungen und weitere Aufgaben siehe die Pipeline-Dokumentation auf der Hugging Face-Website.
Warum Hugging den Fokus auf Rust legt
Das Hugging Face-Ãkosystem (HF) hat begonnen, Rust in seinen Bibliotheken wie Safetensors und Tokenizern zu verwenden.
Hugging Face hat vor Kurzem auch ein neues maschinelles Lern-Framework namens Candle verÃķffentlicht. Im Gegensatz zu herkÃķmmlichen Frameworks, die Python verwenden, ist Candle in Rust aufgebaut. Das Ziel hinter der Verwendung von Rust ist es, die Leistung zu verbessern und die BenutzeroberflÃĪche zu vereinfachen, wÃĪhrend die UnterstÞtzung von GPU-Operationen erhalten bleibt.
Das Hauptziel von Candle ist es, serverlose Inferenz zu ermÃķglichen, wodurch die Bereitstellung von leichten BinÃĪrdateien mÃķglich wird und Python aus den Produktionsworkloads entfernt wird, was manchmal die Prozesse aufgrund seiner Overhead verlangsamen kann. Dieses Framework ist als LÃķsung fÞr die Probleme konzipiert, die mit vollstÃĪndigen maschinellen Lern-Frameworks wie PyTorch auftreten, die groà und langsam sind, wenn Instanzen in einem Cluster erstellt werden.
Lassen Sie uns erkunden, warum Rust immer mehr die bevorzugte Wahl ist, viel mehr als Python.
- Geschwindigkeit und Leistung â Rust ist fÞr seine unglaubliche Geschwindigkeit bekannt, wobei es Python, das traditionell in maschinellen Lern-Frameworks verwendet wird, Þbertrifft. Pythons Leistung kann manchmal aufgrund seines Global Interpreter Lock (GIL) verlangsamt werden, aber Rust hat dieses Problem nicht, was eine schnellere AusfÞhrung von Aufgaben und damit eine verbesserte Leistung in Projekten, in denen es implementiert wird, verspricht.
- Sicherheit â Rust bietet Garantien fÞr die Speichersicherheit ohne einen Garbage Collector, was in Bereichen wie Safetensors, in denen die Sicherheit bei der Handhabung von Datenstrukturen von entscheidender Bedeutung ist, von entscheidender Bedeutung ist.
Safetensors
Safetensors profitieren von Rusts Geschwindigkeits- und Sicherheitsfunktionen. Safetensors beinhaltet die Manipulation von Tensoren, einer komplexen mathematischen EntitÃĪt, und die Verwendung von Rust stellt sicher, dass die Operationen nicht nur schnell, sondern auch sicher sind, wodurch hÃĪufige Fehler und Sicherheitsprobleme, die durch eine falsche Handhabung von Speicher entstehen kÃķnnen, vermieden werden.
Tokenizer
Tokenizers sind fÞr die Aufteilung von SÃĪtzen oder Phrasen in kleinere Einheiten wie WÃķrter oder Terme verantwortlich. Rust beschleunigt diesen Prozess, indem es die AusfÞhrungszeit verkÞrzt, wodurch die Tokenisierung nicht nur genau, sondern auch schnell ist, was die Effizienz von NLP-Aufgaben verbessert.
Im Kern von Hugging Faces Tokenizer steht das Konzept der Subword-Tokenisierung, das ein feines Gleichgewicht zwischen Wort- und Zeichenebene-Tokenisierung schafft, um die Informationsretention zu optimieren und die VokabulargrÃķÃe zu minimieren. Es funktioniert durch die Erstellung von Subtokens wie â##ingâ und â##edâ, wodurch semantische Reichhaltigkeit erhalten bleibt, wÃĪhrend ein aufgeblÃĪhtes Vokabular vermieden wird.
Die Subword-Tokenisierung umfasst eine Trainingsphase, um die effektivste Balance zwischen Zeichen- und Worteinheit-Tokenisierung zu ermitteln. Sie geht Þber einfache PrÃĪfix- und Suffixregeln hinaus und erfordert eine umfassende Analyse von Sprachmustern in umfangreichen Textkorpora, um einen effizienten Subword-Tokenizer zu entwerfen. Der generierte Tokenizer ist in der Lage, neue WÃķrter zu handhaben, indem er sie in bekannte SubwÃķrter aufteilt, wodurch ein hohes Maà an semantischer VerstÃĪndlichkeit erhalten bleibt.
Tokenisierungskomponenten
Die Tokenizers-Bibliothek teilt den Tokenisierungsprozess in mehrere Schritte auf, von denen jeder einen unterschiedlichen Aspekt der Tokenisierung anspricht. Lassen Sie uns diese Komponenten erkunden:
- Normalizer: FÞhrt anfÃĪngliche Transformationen auf der Eingabezeichenfolge aus, wobei notwendige Anpassungen wie Umwandlung in Kleinbuchstaben, Unicode-Normalisierung und Entfernen von Leerzeichen vorgenommen werden.
- Pre-Tokenizer: Verantwortlich fÞr die Aufteilung der Eingabezeichenfolge in Vorsegmente, wobei die Trennungen auf der Grundlage vordefinierter Regeln wie Leerzeichen bestimmt werden.
- Modell: Ãberwacht die Entdeckung und Erstellung von Subtokens, wobei es sich an die spezifischen Details Ihrer Eingabedaten anpasst und TrainingsfÃĪhigkeiten bietet.
- Post-Processor: Verbessert Konstruktionsfunktionen, um die KompatibilitÃĪt mit vielen transformer-basierten Modellen wie BERT zu erleichtern, indem Token wie [CLS] und [SEP] hinzugefÞgt werden.
Um mit Hugging Face-Tokenizern zu beginnen, installieren Sie die Bibliothek mit dem Befehl pip install tokenizers und importieren Sie sie in Ihre Python-Umgebung. Die Bibliothek kann groÃe Mengen an Text in sehr kurzer Zeit tokenisieren, wodurch wertvolle Rechenressourcen fÞr intensivere Aufgaben wie Modelltraining gespart werden.
DatensÃĪtze
DatensÃĪtze sind die Grundlage von KI-Projekten. Hugging Face bietet eine breite Palette von DatensÃĪtzen, die fÞr eine Vielzahl von NLP-Aufgaben geeignet sind. Um sie effizient zu nutzen, ist es wichtig, den Prozess des Ladens und Analysierens zu verstehen. Hier ist ein gut kommentierter Python-Code, der zeigt, wie man DatensÃĪtze von Hugging Face erkundet:
from datasets import load_dataset # Laden Sie einen Datensatz dataset = load_dataset(&amp;#039;squad&amp;#039;) # Anzeigen des ersten Eintrags print(dataset[0])
Dieser Code verwendet die load_dataset-Funktion, um den SQuAD-Datensatz zu laden, der eine beliebte Wahl fÞr Fragebeantwortungsaufgaben ist.
Nutzen von vorgefertigten Modellen und ZusammenfÞhrung
Vorgefertigte Modelle bilden das RÞckgrat vieler Deep-Learning-Projekte, wodurch Forscher und Entwickler ihre Initiativen ohne Neuanfang starten kÃķnnen. Hugging Face ermÃķglicht die Erkundung einer Vielzahl von vorgefertigten Modellen, wie im folgenden Code gezeigt:
from transformers import AutoModelForQuestionAnswering, AutoTokenizer <p># Laden Sie das vorgefertigte Modell und den Tokenizer model = AutoModelForQuestionAnswering.from_pretrained(&amp;#039;bert-large-uncased-whole-word-masking-finetuned-squad&amp;#039;) tokenizer = AutoTokenizer.from_pretrained(&amp;#039;bert-large-uncased-whole-word-masking-finetuned-squad&amp;#039;)</p> <p># Anzeigen der Modellarchitektur print(model)</p>
Mit dem Modell und dem Tokenizer geladen, kÃķnnen wir nun eine Funktion erstellen, die einen Text und eine Frage als Eingabe annimmt und die Antwort aus dem Text extrahiert. Wir werden den Tokenizer verwenden, um den Eingabetext und die Frage in ein Format umzuwandeln, das mit dem Modell kompatibel ist, und dann diesen verarbeiteten Eingabe in das Modell einfÞgen, um die Antwort zu erhalten:
<p>def get_answer(text, question): # Tokenisieren Sie den Eingabetext und die Frage inputs = tokenizer(question, text, return_tensors=&amp;#039;pt&amp;#039;, max_length=512, truncation=True) outputs = model(**inputs)</p> <p># Abrufen der Start- und Endpunkte fÞr die Antwort answer_start = torch.argmax(outputs.start_logits) answer_end = torch.argmax(outputs.end_logits) + 1</p> <p>answer = tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(inputs[&amp;#039;input_ids&amp;#039;][0][answer_start:answer_end])) return answer</p>
In diesem Codebeispiel importieren wir die notwendigen Module aus dem transformers-Paket, laden dann ein vorgefertigtes Modell und seinen entsprechenden Tokenizer mithilfe der from_pretrained-Methode. Wir wÃĪhlen ein BERT-Modell, das auf dem SQuAD-Datensatz fein abgestimmt wurde.
Lassen Sie uns ein Beispiel fÞr die Verwendung dieser Funktion betrachten, in dem wir einen Textabschnitt und eine Frage haben und die spezifische Antwort auf die Frage aus dem Text extrahieren mÃķchten:
<p>text = &amp;amp;quot;&amp;amp;quot;&amp;amp;quot;
Der Eiffelturm, der sich in Paris, Frankreich, befindet, ist eines der ikonischsten Wahrzeichen der Welt. Er wurde von Gustave Eiffel entworfen und 1889 fertiggestellt. Der Turm ist 324 Meter hoch und war zum Zeitpunkt seiner Fertigstellung das hÃķchste von Menschen erstellte Bauwerk der Welt.
&amp;amp;quot;&amp;amp;quot;&amp;amp;quot;</p>
<p>question = &amp;amp;quot;Wer hat den Eiffelturm entworfen?&amp;amp;quot;</p>
<p># Abrufen der Antwort auf die Frage
answer = get_answer(text, question)
print(f&amp;amp;quot;Die Antwort auf die Frage ist: {answer}&amp;amp;quot;)
# Ausgabe: Die Antwort auf die Frage ist: Gustave Eiffel</p>
In diesem Skript erstellen wir eine get_answer-Funktion, die einen Text und eine Frage annimmt, den Tokenizer verwendet, um den Eingabetext und die Frage zu verarbeiten, und dann das vorgefertigte BERT-Modell nutzt, um die Antwort aus dem Text zu extrahieren. Es zeigt eine praktische Anwendung der Hugging Face-Transformator-Bibliothek, um ein einfaches, aber leistungsfÃĪhiges Fragebeantwortungssystem zu erstellen. Um die Konzepte gut zu verstehen, wird empfohlen, praktische Experimente mit einem Google Colab-Notebook durchzufÞhren.
Schlussfolgerung
Durch sein umfangreiches Angebot an Open-Source-Tools, vorgefertigten Modellen und benutzerfreundlichen Pipelines ermÃķglicht Hugging Face sowohl erfahrenen Fachleuten als auch Neulingen, sich mÞhelos in die weite Welt der KI zu begeben. DarÞber hinaus unterstreicht die Initiative, Rust aufgrund seiner Geschwindigkeits- und Sicherheitsmerkmale zu integrieren, Hugging Faces Engagement fÞr die FÃķrderung von Innovation bei gleichzeitiger GewÃĪhrleistung von Effizienz und Sicherheit in KI-Anwendungen. Die bahnbrechende Arbeit von Hugging Face demokratisiert nicht nur den Zugang zu hochentwickelten KI-Tools, sondern schafft auch eine kooperative Umgebung fÞr Lernen und Entwicklung im KI-Bereich, wodurch eine Zukunft ermÃķglicht wird, in der KI fÞr alle zugÃĪnglich ist.

















