AI Techniques

Künstliche Intelligenz smarter und kleiner machen: Ein Leitfaden für effizientes Modelltraining

Illustration of AI model training process with smaller and larger models

Die KI intelligenter und kleiner machen: Ein praktischer Leitfaden für effizientes Modelltraining

Hallo, ich bin Sanchay Thalnerkar, ein KI-Ingenieur. Ich habe nach Möglichkeiten gesucht, KI effizienter zu machen, und ich freue mich, einen interessanten Ansatz zu teilen, an dem ich gearbeitet habe. In der Welt der künstlichen Intelligenz stehlen größere Modelle oft das Rampenlicht, aber was, wenn Sie ähnliche Ergebnisse ohne die hohen Kosten und die massive Rechenleistung erzielen könnten? Dieser Leitfaden führt Sie durch einen klugen Ansatz: die Verwendung eines großen KI-Modells zur Erstellung von hochwertigen Trainingsdaten und die Verwendung dieser Daten zur Schulung eines kleineren, handlicheren Modells.

Meine Methode: Effiziente KI in drei Schritten

Zuerst nutzen wir ein großes Modell wie Meta-Llama-3.1-405B, das über die AI/ML-API zugänglich gemacht wird, um einen Datensatz von Marketing-Szenarien zu generieren. Die Plattform für AI/ML-APIs ermöglicht es uns, die umfangreichen Fähigkeiten dieses leistungsstarken Modells zu nutzen, um den perfekten Studienleitfaden für unser kleineres Modell zu erstellen. Diese Daten werden dann mithilfe der Alpaka-Prompt-Struktur formatiert, was es einem kleineren Modell erleichtert, effektiv zu lernen. Schließlich verwenden wir ein Tool namens Unsloth, um unser kleineres Modell effizient zu schulen, beginnend mit Meta-Llama-3.1-8B, auf diesen Daten.

Das Ergebnis? Ein Modell, das kleiner, schneller und in der Lage ist, qualitativ hochwertige Ausgaben für spezifische Marketingaufgaben zu erzeugen, vergleichbar mit dem, was Sie von einem viel größeren Modell erwarten würden. Beispielsweise können die Ergebnisse überraschend gut sein, wenn man aufgefordert wird, „Erstellen Sie eine Marketingkampagne zur Förderung eines Schokoriegels für Cadbury, die sich an Erwachsene und Boomers richtet“.

Diese Methode bietet mehrere Vorteile. Sie ermöglicht die Erstellung von KI-Modellen, die auf spezifische Aufgaben spezialisiert sind, und macht sie auch für kleine Unternehmen oder einzelne Entwickler zugänglich, ohne dass teure Hardware oder massive Budgets erforderlich sind. Indem Sie sich auf die Erzeugung vielfältiger, hochwertiger Trainingsdaten konzentrieren und Ihr kleineres Modell sorgfältig optimieren, können Sie leistungsstarke und effiziente KI-Tools schaffen, die auf Ihre Bedürfnisse zugeschnitten sind.

Schritt 1: Einrichten der Umgebung

Bevor wir beginnen, lassen Sie uns unsere Entwicklungsumgebung einrichten:

  • Python installieren: Wenn Sie es noch nicht getan haben, laden Sie Python von Python Download herunter und installieren Sie es.
  • Erstellen Sie eine virtuelle Umgebung:
  1. Öffnen Sie die Eingabeaufforderung
  2. Gehen Sie zu Ihrem Projektverzeichnis
  3. Führen Sie die folgenden Befehle aus:
python -m venv .venv
source .venv/bin/activate
  • Installieren Sie die benötigten Pakete: Führen Sie die folgenden Befehle in Ihrer aktivierten virtuellen Umgebung aus:
pip install notwendiger-paket-name

Zusätzliche Abhängigkeiten: Basierend auf dem Code im Tutorial müssen Sie auch installieren:

pip install unsloth alpaca-prompt

Beginnen Sie damit, Bibliotheken zu importieren.

Schritt 1: Einrichten des AI/ML-API-Clients und Handhabung von API-Aufrufen

Bevor wir mit der Erstellung der Daten-Generierungsfunktion beginnen, ist es wichtig, zuerst den AI/ML-API-Client einzurichten. Diese API bietet eine Reihe leistungsstarker KI-Funktionen, einschließlich Textvervollständigung, Bilderkennung und mehr. Lassen Sie uns die notwendigen Schritte durchgehen, um alles zu konfigurieren und bereit für die Verwendung zu machen.

1.1: Erstellen Sie ein Konto und erhalten Sie einen API-Schlüssel

Um die AI/ML-API zu verwenden, müssen Sie ein Konto erstellen und einen API-Schlüssel generieren. Befolgen Sie diese Schritte:

  1. Konto erstellen: Besuchen Sie die Website der AI/ML-API und melden Sie sich für ein Konto an.
  2. API-Schlüssel generieren: Nach dem Einloggen navigieren Sie zu Ihrem Kontodashboard und generieren hier Ihren API-Schlüssel.

Sie müssen diesen API-Schlüssel verwenden, um Ihre Anfragen zu authentifizieren und auf die verschiedenen über die API verfügbaren KI-Modelle zuzugreifen.

1.2: Initialisieren des AI/ML-API-Clients

Sobald Sie Ihren API-Schlüssel haben, können Sie den Client in Ihrer Umgebung einrichten. Dieser Client wird verwendet, um mit der AI/ML-API zu interagieren, um verschiedene KI-bezogene Anfragen zu stellen.

import requests
API_KEY = "your_api_key_here"

Ersetzen Sie your_api_key_here durch den API-Schlüssel, den Sie zuvor generiert haben. Dieser Client wird die primäre Schnittstelle für das Senden von Anfragen an die AI/ML-API sein.

1.3: Implementierung von Ratenbegrenzten API-Aufrufen

Um die API-Interaktionen effektiver zu gestalten, insbesondere unter Ratenbeschränkungen oder anderen vorübergehenden Problemen, definieren wir eine Funktion namens rate_limited_api_call. Diese Funktion stellt sicher, dass unsere Anfragen resilient gegen potenzielle Probleme wie Ratenbegrenzung durch die API sind:

def rate_limited_api_call(model, messages):  # Funktion definieren
    response = requests.post(API_ENDPOINT, headers=headers, json=data)
    return response.json()

1.4: Fehlerbehandlung und Wiederholungen

Um die Zuverlässigkeit unserer API-Aufrufe weiter zu verbessern, definieren wir eine Funktion namens get_model_responses. Diese Funktion ist dafür verantwortlich, Fehler zu handhaben und den API-Aufruf eine bestimmte Anzahl von Malen (max_retries) zu wiederholen, bevor sie aufgibt:

def get_model_responses(num_retries=3):  # Funktionsdefinition
    for i in range(num_retries):
        try:
            response = rate_limited_api_call()
            return response
        except Exception as e:
            print(f"Fehler: {e}")

Schritt 2: Erstellen der Daten-Generierungsfunktion

Lassen Sie uns den gesamten Prozess durchgehen, wie die Daten-Generierungsfunktion funktioniert, Schritt für Schritt.

Als erstes definieren wir eine Funktion namens generate_multiple_marketing_samples. Diese Funktion hat die Aufgabe, mehrere Marketing-Szenarien zu erstellen, die wir später verwenden können, um ein kleineres, effizienteres KI-Modell zu trainieren. So beginnt es:

Anweisungen einrichten

In diesem ersten Teil erstellen wir zwei Nachrichten. Die system_message setzt die Bühne, indem sie der KI mitteilt, dass sie wie ein Top-Marketing-Experte handeln soll. Die user_message gibt spezifische Anweisungen: Sie sagt der KI, wie viele Szenarien sie generieren soll (basierend auf der Anzahl der Proben, die wir eingeben) und wie sie jedes Szenario formatieren soll. Das Format umfasst drei Teile: eine Anweisung, einige Hintergrundinformationen und eine Antwort, die die Lösung für die Marketingaufgabe sein wird.

Beispielinhalt generiert

Im Folgenden finden Sie einige Beispiele für den generierten Marketinginhalt. Die Ausgaben umfassen Facebook-Anzeigen, Verkaufsseiten und Twitter-Threads, die auf bestimmte Zielgruppen und Ziele zugeschnitten sind.

Beispiel 1: Facebook-Anzeige für ein Fitnessprogramm

Hook: "Werde fit, nicht frustriert: Entfessle deinen Traumkörper in nur 15 Minuten am Tag!"
Narrativ: "Als berufstätige Person wissen Sie, wie schwierig es ist, Zeit für das Fitnessstudio zu finden..."
Höhepunkt: "Schließen Sie sich unserer Gemeinschaft Gleichgesinnter an..."
Auflösung: "Melden Sie sich jetzt an und machen Sie den ersten Schritt zu einem gesünderen, glücklicheren Ich!"

Beispiel 2: Verkaufsseite für ein E-Book über Unternehmertum

Hook: "Entfesseln Sie die Geheimnisse zum Aufbau eines 6-stelligen Unternehmens von Grund auf"
Narrativ: "Sind Sie es leid, von Gehaltsscheck zu Gehaltsscheck zu leben?..."
Höhepunkt: "Erhalten Sie sofortigen Zugang zu unserem umfassenden Leitfaden..."
Auflösung: "Kaufen Sie jetzt und beginnen Sie mit dem Aufbau des Unternehmens Ihrer Träume!"

Beispiel 3: Twitter-Thread für eine nachhaltige Modemarke

1/6 "Die Modeindustrie ist einer der größten Umweltverschmutzer der Welt..."
2/6 "Unsere Mission ist es, nachhaltige Mode zugänglich zu machen..."
6/6 "Gemeinsam können wir einen Unterschied machen..."

Warum diese Methode funktioniert

Diese Funktion ist einfach, aber leistungsstark. Sie ermöglicht es uns, die Fähigkeiten eines großen KI-Modells zu nutzen, um hochwertige, vielfältige Trainingsdaten zu generieren. Diese Daten sind dann perfekt formatiert, um ein kleineres Modell auszubilden, das spezifische Marketingaufgaben durchführen kann.

Schritt 3: Qualitätskontrolle

Nach der Generierung unserer Proben ist es entscheidend sicherzustellen, dass sie einen bestimmten Qualitätsstandard erfüllen. Hier kommt unsere Qualitätskontrollfunktion ins Spiel. Das Ziel besteht darin, alle Proben herauszufiltern, die möglicherweise nicht gut genug sind, um unser KI-Modell zu trainieren.

def quality_control_function(sample):
    if len(sample) < 50:  # Beispielprüfung
        return False
    if is_repetitive(sample):
        return False
    return True

Schritt 4: Sicherstellung der Vielfalt

Um ein gut abgerundetes und effektives KI-Modell zu erstellen, ist es unerlässlich, dass unsere Trainingsdaten eine breite Palette von Marketing-Szenarien abdecken. Hier kommt unsere Funktion zur Verfolgung der Vielfalt ins Spiel.

def diversity_tracking(dataset):
    industry_counter = Counter()
    // Zähl-Logik hier einfügen
    report_results(industry_counter)

Schritt 5: Verfeinerung der Erstellung des Datensatzes

In diesem Schritt zielen wir darauf ab, einen Datensatz zu erstellen, der speziell für die Feinabstimmung eines Sprachmodells zur Generierung von Marketing- und Social-Media-Inhalten konzipiert ist.

def create_finetuning_dataset():
    while samples_created < target_samples:
        generate_samples()  # Neue Proben generieren
        save_progress()  # Fortschritt speichern

Schritt 6: Modellvorbereitung und Quantifizierung

Mit dem bereitgestellten Datensatz ist der nächste wichtige Schritt die Vorbereitung des Sprachmodells zur Feinabstimmung.

model = FastLanguageModel.from_pretrained("model_path")

Schritt 7: Anwendung von LoRA-Adaptern auf das Modell

Dieser Schritt verbessert das Basis-Modell, indem LoRA (Low-Rank Adaptation) Adapter angewendet werden.

lora_config = LoRAConfig(rank=16, alpha=32, dropout=0)

Schritt 8: Formatierung des Datensatzes für das Training

In diesem Schritt bereiten wir den Datensatz für das Training vor, indem wir ihn in ein Format bringen, das das Modell problemlos verarbeiten kann.

def formatting_prompts_func(example):
    formatted_example = f"{example['instruction']}: {example['input']}\n\n{example['response']}"
    return formatted_example

Schritt 9: Training des Modells

In diesem Schritt gehen wir zur entscheidenden Phase über, in der das Modell mithilfe des SFTTrainer aus der Hugging Face TRL-Bibliothek trainiert wird.

trainer.train(dataset)

Schritt 10: Generierung und Analyse der Ausgabe

Nachdem das Modell trainiert wurde, konzentrieren wir uns auf die Generierung von Text basierend auf einem gegebenen Prompt.

output = model.generate(prompt)
parsed_output = parse_output(output)

Schritt 11: Speichern und Nachladen des Modells

Im letzten Schritt konzentrieren wir uns darauf, das feinabgestimmte Modell und den Tokenizer zu speichern.

save_model(model, "lora_model")

Vergleich zwischen 405B und 8B für denselben Prompt

Beim Vergleich der Ausgaben des ursprünglichen 405B-Modells mit denen des feinabgestimmten 8B-Modells sind die Unterschiede klar und signifikant. Das feinabgestimmte Modell zeigt einen verfeinerten und praktischen Ansatz, der es zu einem herausragenden Werkzeug für die Anwendungen in der realen Welt macht.

Analyse der Stärken des feinabgestimmten Modells

Das feinabgestimmte Modell ist stärker auf praktische Anwendungen ausgerichtet. Hier sind seine Stärken:

  • Fokussiert und präzise: Das feinabgestimmte Modell liefert genau das, was Sie benötigen.
  • Klar und prägnant: Das feinabgestimmte Modell überzeugt durch klare Kommunikation.
  • Auf die Aufgabe zugeschnitten: Bietet Antworten, die speziell auf die Aufgabe zugeschnitten sind.
  • Zeitsparend: Die Effizienz des feinabgestimmten Modells bedeutet, dass Sie weniger Zeit mit Bearbeitungen verbringen.

Dieses Modell erweist sich als leistungsstarkes und praktisches Werkzeug zur Inhaltserstellung, insbesondere für Vermarkter und beschäftigte Fachleute.

Der gesamte Prozess der Feinabstimmung und der Inhaltserstellung unter Verwendung des 8B-Modells wurde zu einem Preis von etwa 3-5 US-Dollar realisiert, was es zu einer kostengünstigen und effizienten Lösung für die Erstellung hochwertiger Inhalte macht.

Weiterlesen

A visual guide to using IBM Watsonx.ai for generative AI applications.
An infographic comparing LLaMA 3.1 and Mistral 2 Large in synthetic data tasks.

Hinterlasse einen Kommentar

Alle Kommentare werden vor der Veröffentlichung geprüft.

Diese Website ist durch hCaptcha geschützt und es gelten die allgemeinen Geschäftsbedingungen und Datenschutzbestimmungen von hCaptcha.