Erste Schritte mit Hugging Face ML-Praktikant: Ihr erster ML-Agent


Erste Schritte mit Hugging Face ML Intern: Ihr erster Agent für maschinelles Lernen

# Erste Schritte mit ML Intern

Sind Sie schon einmal in der bekannten Scenario steckengeblieben, dass Sie eine Modellidee haben, aber die Lücke zwischen „Ich lese die Zeitung“ und „Ich habe einen trainierten Kontrollpunkt am Hub“ immer noch ein ganzes Wochenende verschlingt? ML-Praktikant ist Umarmendes GesichtDer Versuch, diese Lücke zu schließen. Dabei handelt es sich um einen Open-Supply-Befehlszeilenschnittstellen-Agenten (CLI) von Hugging Face, mit dem Sie maschinelle Lernaufgaben in einfachem Englisch beschreiben können.

Anstatt alles manuell zusammenzusetzen, können Sie es mit der Feinabstimmung eines Modells, der Durchsicht einer Forschungsarbeit oder dem Starten eines Trainingslaufs beauftragen. Es übernimmt die Artwork von Arbeit, die ein Junior-Ingenieur für maschinelles Lernen normalerweise erledigen würde: Dokumente lesen, GitHub durchsuchen, Skripte schreiben, Jobs starten, Ergebnisse überprüfen und iterieren.

Es ist durchgehend auf dem Hugging Face-Stapel aufgebaut. Es kann nach Artikeln im Hub suchen und arXivmit Datensätzen arbeiten, GPU-Trainingsjobs mit HF-Jobs starten, Experimente protokollieren mit Trackiound veröffentlichen Sie trainierte Modelle wieder im Hub, wenn alles erledigt ist. Unter der Haube nutzt es das Smolagenzien Framework und leitet Modellaufrufe über Hugging Face Inference Supplier oder lokale Endpunkte weiter, wenn Sie lieber keine API-Credit verbrennen möchten.

Es ist weniger wie „ChatGPT für Code“, sondern eher wie ein Forschungspraktikant, der tatsächlich Shell-Zugriff und ein Hugging Face-Konto hat. Das Repository ist Huggingface/ml-intern. Sie können damit experimentieren, es an Ihre Bedürfnisse anpassen oder es sogar in Ihren Steady Integration (CI)-Workflow integrieren.

# Verstehen, warum ML-Praktikant hilft

Echte maschinelle Lernforschung ist nicht linear. Sie lesen etwas, jagen einem Zitat nach, finden einen Datensatz, der quick passt, schreiben den Datenlader zweimal neu, trainieren, stellen fest, dass Ihre Bewertung falsch battle, korrigieren das Drawback und trainieren erneut. ML Intern wurde entwickelt, um einen Großteil dieser sich wiederholenden Arbeit zu automatisieren, sodass Sie sich auf Forschungsentscheidungen konzentrieren können, anstatt wiederholt Setup-Code zu schreiben.

Im Gegensatz zu herkömmlichen Chatbots hört es nicht auf, nachdem eine Antwort generiert wurde. Stattdessen folgt ein iterativer Arbeitsablauf.

Iterativer ML Intern-Workflow: Recherchieren, Daten, Code, Trainieren, Auswerten, Veröffentlichen
Die ML Intern-Workflow-Schleife

Hugging Face veröffentlichte Ergebnisse, die zeigten, dass sich der Wirkstoff bei GPQA, einem Maßstab für wissenschaftliches Denken, in weniger als 10 Stunden auf einem kleinen Qwen-Modell von etwa 10 % auf etwa 32 % verbesserte. Unabhängig davon, ob Sie sich für diesen spezifischen Benchmark interessieren oder nicht, haben Sie immer noch das gute Gefühl, dass es sich hierbei nicht um ein Spielzeug handelt, das ein Skript schreibt und dann aufhört. Es ist darauf ausgelegt, weiterzumachen.

Das sind genügend Hintergrundinformationen, um zu verstehen, warum das Projekt existiert. Jetzt ist es an der Zeit, es zu verwenden. Stellen Sie jedoch zunächst sicher, dass die erforderliche Einrichtung vorhanden ist.

# Prüfung der Voraussetzungen

Sie benötigen ein Hugging Face-Konto, Python, UVund ein paar Token.

Token Warum wird es benötigt? Empfohlene Erlaubnis
HF_TOKEN Greifen Sie auf den Hugging Face Hub, Inferenzanbieter, GPU-Sandboxes und Schulungsjobs zu. Schreiben (empfohlen) oder Lesen wenn Sie nur erkunden möchten und nichts hochladen möchten
GITHUB_TOKEN Öffentlich suchen GitHub Repositorys, wenn der Agent nach Referenzimplementierungen sucht. Feinkörnig Token mit schreibgeschützt Zugriff auf öffentliche Repositories

Wenn Sie überspringen HF_TOKENfragt die CLI beim ersten Begin nach einem, es sei denn, Sie führen ein vollständig lokales Modell aus. Wenn Sie nicht sicher sind, wie Sie einen der beiden Token erstellen, lesen Sie die offiziellen Anleitungen Umarmungsgesichts-Zugriffstoken Und Persönliche GitHub-Zugriffstoken.

# ML Intern installieren

Kopieren Sie die folgenden Befehle und führen Sie sie aus.

git clone git@github.com:huggingface/ml-intern.git
cd ml-intern
uv sync
uv instrument set up -e .

Sobald das erledigt ist, ml-intern Funktioniert aus jedem Verzeichnis. Ein kurzer Gesundheitscheck:

Fügen Sie Folgendes zu Ihrem hinzu .env Datei oder exportieren Sie äquivalente Variablen in Ihre Shell.

HF_TOKEN=hf_your_token_here
GITHUB_TOKEN=ghp_your_token_here

# Vergleich interaktiver und Headless-Modi

Bevor Sie mit der ersten Ausführung beginnen, ist es hilfreich, die beiden Modi zu verstehen, die der Agent unterstützt.

// Verwenden des interaktiven Modus

Führen Sie den folgenden Befehl aus, um Ihren Agenten für maschinelles Lernen zu starten.

Dadurch wird eine Chat-Sitzung geöffnet. Sie können beschreiben, was Sie wollen, der Agent plant die Schritte, bittet vor riskanten Eingriffen um Genehmigung und hält Sie über den laufenden Betrieb auf dem Laufenden. Sie können sogar mitten im Gespräch Fashions austauschen mit:

Einige gute Anregungen für Anfänger sind:

  • „Suchen Sie einen kleinen Klassifizierungsdatensatz im Hub und zeigen Sie mir, wie ich ihn laden kann Datensätze Bibliothek.“
  • „Fassen Sie dieses Papier zusammen und pay attention Sie auf, welche Datensätze es verwendet: (arXiv-Hyperlink).“
  • „Schreiben Sie ein Feinabstimmungsskript für die minimale Low-Rank-Adaption (LoRA) für Qwen2.5-0.5B auf einem winzigen öffentlichen Datensatz. Beginnen Sie noch nicht mit dem Coaching, sondern schreiben Sie einfach das Skript.“

// Verwenden des Headless-Modus

ml-intern "fine-tune llama on my dataset"

Dieser Modus verwendet eine einzige Eingabeaufforderung und genehmigt Aktionen automatisch. Der Agent wird ausgeführt, bis er fertig ist oder das Iterationslimit erreicht. Dies ist der Modus, den Sie für nächtliche Experimente in eine GitHub-Aktion einfügen würden.

Einige nützliche Flags, sobald Sie sich wohl fühlen:

ml-intern --max-iterations 100 "your immediate"   # cap the funds
ml-intern --no-stream "your immediate"            # cleaner output for CI logs
ml-intern --sandbox-tools "take a look at this in a GPU sandbox"
ml-intern --model moonshotai/Kimi-K2.7-Code:novita "your immediate"

Wenn Sie gerade erst anfangen, probieren Sie zunächst den interaktiven Modus aus. Sobald Sie sich wohl fühlen, wechseln Sie zur Automatisierung in den Headless-Modus.

# Starten Sie Ihren ersten Lauf

Verwenden Sie in beiden Modi dieselbe Eingabeaufforderung, damit Sie die Unterschiede erkennen können. Wir beginnen mit einer kleinen Aufgabe, die keine Schulung erfordert. Das Ziel besteht einfach darin, einen Datensatz auf dem Hugging Face Hub zu finden und ein Ladeskript zu schreiben.

Die Aufforderung:

Discover the rotten_tomatoes dataset on the Hub and write a brief Python script that hundreds it with datasets and prints the primary instance. Put it aside to load_dataset.py. Don't run coaching.

Stellen Sie sicher, dass Sie .env Die Datei enthält beides HF_TOKEN Und GITHUB_TOKEN bevor Sie beginnen.

// Läuft im interaktiven Modus

Sie öffnen eine Chat-Sitzung, geben die Eingabeaufforderung ein, beobachten, wie sie funktioniert, und folgen bei Bedarf nach.

Führen Sie diesen Befehl aus:

Geben Sie dann Ihre Eingabeaufforderung ein > immediate:

Discover the rotten_tomatoes dataset on the Hub and write a brief Python script that hundreds it with datasets and prints the primary instance. Put it aside to /tmp/load_dataset_interactive.py. Don't run coaching.

Ausgabe:

Initializing agent runtime...
 Person: kanwal8008
 Mannequin: zai-org/GLM-5.2:novita
 Instrument runtime: native filesystem
 Instruments: 25 loaded
/assist for instructions · /mannequin to modify · /give up to exit
Prepared. Let's construct one thing spectacular.
> Discover the rotten_tomatoes dataset on the Hub and write a brief Python script that hundreds it with datasets and prints the primary instance. Put it aside to /tmp/load_dataset_interactive.py. Don't run coaching.
The dataset is cornell-movie-review-data/rotten_tomatoes. It has a single default config with practice/validation/take a look at splits, columns are textual content and label. Writing the script now.
▸ write {"content material": """"Load the rotten_tomatoes dataset from the HF Hub and print th..."}
Carried out. The script is saved to /tmp/load_dataset_interactive.py.
What it does:
 - Masses cornell-movie-review-data/rotten_tomatoes through datasets.load_dataset
 - Prints the record of splits (practice, validation, take a look at)
 - Prints the primary coaching instance (a {"textual content": ..., "label": ...} dict)
Dataset particulars:
 - Columns: textual content (film evaluation sentence), label (0 = damaging, 1 = constructive)
 - ~10.6k examples complete (5,331 constructive / 5,331 damaging)
You may run it regionally with:
 python /tmp/load_dataset_interactive.py
> /give up
Bye.

Von ihm erstellte Datei (/tmp/load_dataset_interactive.py):

"""Load the rotten_tomatoes dataset from the HF Hub and print the primary instance."""
from datasets import load_dataset

# Load the total dataset (all splits) from the Hub
ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")

print("Dataset splits:", record(ds.keys()))
first_train = ds("practice")(0)
print("First coaching instance:")
print(first_train)
print("nLabel which means: 0 = damaging, 1 = constructive")

Der interaktive Modus bietet Ihnen während der Arbeit mehr Kontext, einschließlich Datensatzdetails, was das Skript tut und wie es ausgeführt wird. Sie können vor der Eingabe auch weitere Fragen stellen /give up.

// Läuft im Headless-Modus

Mit einem Befehl wird der Agent von Anfang bis Ende ausgeführt und dann beendet.

Führen Sie diesen Befehl aus:

ml-intern --max-iterations 15 --no-stream 
"Discover the rotten_tomatoes dataset on the Hub and write a brief Python script that hundreds it with datasets and prints the primary instance. Put it aside to /tmp/load_dataset.py. Don't run coaching."

Ausgabe:

HF token loaded
Mannequin: zai-org/GLM-5.2:novita
Instrument runtime: native filesystem
Max iterations: 15
Immediate: Discover the rotten_tomatoes dataset on the Hub and write a brief Python script that hundreds it with datasets and prints the primary instance. Put it aside to /tmp/load_dataset.py. Don't run coaching.
---
▸ hf_inspect_dataset {"dataset": "cornell-movie-review-data/rotten_tomatoes", "sample_rows": 1}
▸ write {"content material": "from datasets import load_datasetnndataset = load_dataset("rotte..."}
▸ bash {"command": "cd /tmp && python load_dataset.py", "description": "Run the dataset..."}
Carried out. The script is saved at /tmp/load_dataset.py and verified working. It hundreds the rotten_tomatoes dataset (dataset ID: cornell-movie-review-data/rotten_tomatoes) through datasets.load_dataset and prints the primary coaching instance:
 {'textual content': 'the rock is destined to be the twenty first century's new " conan " ...',
 'label': 1}
The dataset has two columns -- textual content (the evaluation) and label (0 = damaging, 1 = constructive) -- throughout practice (8,530 rows), validation (1,066), and take a look at (1,066) splits.
--- Agent turn_complete (history_size=9) ---

Von ihm erstellte Datei (/tmp/load_dataset.py):

from datasets import load_dataset
dataset = load_dataset("rotten_tomatoes", cut up="practice")
print(dataset(0))

Der Headless-Modus genehmigt alles automatisch. Dies ist nützlich, wenn Sie wissen, was Sie wollen und den Lauf nicht in der Mitte steuern müssen.

# Ausführen eines ML-Praktikanten mit lokalen Modellen

Wenn Sie Hugging Face Inference Suppliers lieber nicht nutzen oder für die API-Nutzung bezahlen möchten, kann ML Intern auch mit lokal gehosteten Modellen arbeiten. Anstatt die Modellgewichte selbst herunterzuladen und zu laden, stellt ML Intern eine Verbindung zu einem OpenAI-kompatiblen Server her, der bereits auf Ihrem Pc ausgeführt wird.

Das bedeutet, dass Sie beliebte lokale Inferenz-Frameworks verwenden können, wie zum Beispiel:

Wenn Sie beispielsweise Ollama verwenden, können Sie Folgendes ausführen:

ml-intern --model ollama/llama3.1:8b "Summarize the README on this repository."

Oder, wenn Sie ein Modell mit vLLM ausführen:

ml-intern --model vllm/meta-llama/Llama-3.1-8B-Instruct "Your immediate"

Wenn Ihr lokaler Modellserver auf einem benutzerdefinierten Endpunkt ausgeführt wird, können Sie ihn mit Umgebungsvariablen konfigurieren:

LOCAL_LLM_BASE_URL=http://localhost:8000
LOCAL_LLM_API_KEY=optional-if-your-server-requires-it

Einige Anbieter unterstützen auch eigene Umgebungsvariablen. Wenn Sie beispielsweise Ollama verwenden, können Sie Folgendes festlegen OLLAMA_BASE_URLdas Vorrang vor dem Generikum hat LOCAL_LLM_BASE_URL. Es ist wichtig zu bedenken, dass ein kleines lokales Modell Probleme mit mehrstufigen Trainingspipelines haben wird. Für Erkundungen und das Verfassen von Skripten eignet es sich intestine, aber für ernsthafte Agentenschleifen benötigen Sie etwas mit mehr Denkspielraum.

# Verstehen, wie ML Intern funktioniert

Sie müssen sich die Architektur nicht merken, aber es hilft zu wissen, warum der Agent manchmal innehält und Sie auffordert, etwas zu genehmigen. Der Agent führt standardmäßig eine iterative Schleife von bis zu 300 Runden aus. Das folgende Flussdiagramm gibt eine ungefähre Vorstellung davon, was bei jedem Anruf passiert.

ML Intern-Loop-Flussdiagramm unter der Haube
Wie ML Intern jeden Anruf verarbeitet

Eine der größten Stärken von ML Intern ist die Anzahl der sofort einsatzbereiten Instruments. Integrierte Instruments decken das HF-Ökosystem ab, einschließlich Dokumente, Datensätze, Repositories, Dokumente und Jobs, außerdem GitHub-Suche, lokale Dateioperationen, Planungshilfen und alles, was Sie anhängen Mannequin Context Protocol (MCP). Es gibt sogar einen Doom-Loop-Detektor, der wiederholte Instrument-Aufrufe mit denselben Argumenten abfängt. Dies ist ein bekanntes Drawback, wenn Sie zuvor Codierungsagenten verwendet haben.

Jede Sitzung kann automatisch in einen privaten Datensatz in Ihrem Hub-Konto hochgeladen werden ({username}/ml-intern-sessions) in einem Format, das Agent Hint Viewer versteht. Diese Ablaufverfolgungen sind besonders nützlich für das Debuggen, da Sie damit jeden Argumentationsschritt des Agenten überprüfen können. Wenn etwas schief geht, können Sie die Sitzung im Agent Hint Viewer öffnen und genau sehen, wo der Agent eine schlechte Entscheidung getroffen hat.

Sie können auch steuern, wie Traces während einer Sitzung geteilt werden:

/share-traces personal
/share-traces public

Alternativ können Sie Hint-Uploads vollständig über die Konfigurationsdatei deaktivieren, wenn Sie den Sitzungsverlauf nicht speichern möchten.

# Häufige Fehler vermeiden

  • Seien Sie bei Ihren Eingabeaufforderungen konkret. „Lama verfeinern“ ist vage. „Feinabstimmung meta-llama/Llama-3.2-1B An imdb mit LoRA, max. 1 Epoche, nicht zum Hub pushen“ ist besser.
  • Achten Sie auf die Genehmigungen. Ausbildungsberufe kosten Geld. Sandkästen kosten Geld. Der Agent wird Sie fragen, additionally genehmigen Sie nicht gleich beim ersten Mal alles blind.
  • Satz --max-iterations wenn Sie experimentieren. Das Standardlimit von 300 Iterationen eignet sich hervorragend für komplexe Aufgaben, kann jedoch beim Testen Rechenleistung verschwenden.
  • Überprüfen Sie Ihre Spuren. Wenn etwas Seltsames passiert, ist Ihr privater Sitzungsdatensatz auf dem Hub der Black-Field-Recorder.

# Die nächsten Schritte unternehmen

ML Intern wird Ihr Urteilsvermögen nicht ersetzen. Sie müssen noch die Trainingsprotokolle lesen, die Bewertung auf Plausibilität überprüfen und entscheiden, ob 32 % bei GPQA tatsächlich Ihren Wünschen entsprechen. Aber wenn Sie jemals auf eine leere Stelle gestarrt haben practice.py Wenn Sie sich fragen, wo Sie anfangen sollen, ist es ein guter erster Schritt, einen Praktikanten zu haben, der den Hub bereits kennt.

Laufen ml-internGeben Sie ihm etwas Kleines und sehen Sie, was es bewirkt. Das ist das Spiel am Anfang. Ein paar praktische nächste Schritte:

  • Entdecken Sie das GitHub-Repository. Durchsuchen Sie den Quellcode, sehen Sie sich Beispiele an und bleiben Sie über neue Funktionen und Verbesserungen auf dem Laufenden.
  • Erstellen Sie Ihre eigenen benutzerdefinierten Instruments. ML Intern ist erweiterbar. Sie können Ihre eigenen Werkzeuge hinzufügen, indem Sie die ändern agent/core/instruments.py Datei und Neuinstallation des Pakets:
uv instrument set up -e . --force
  • Verbinden Sie MCP-Server. Wenn Sie MCP verwenden, können Sie externe Instruments und Dienste anhängen, indem Sie das aktualisieren configs/cli_agent_config.json Datei. Umgebungsvariablen wie z ${YOUR_TOKEN} werden automatisch von Ihrem geladen .env Datei.
  • Aktivieren Sie Slack-Benachrichtigungen. Satz SLACK_BOT_TOKEN Und SLACK_CHANNEL_ID wenn Sie Ping-Benachrichtigungen wünschen, wenn Sie fertig sind.

Kanwal Mehreen ist ein Ingenieur für maschinelles Lernen und ein technischer Redakteur mit einer großen Leidenschaft für Datenwissenschaft und die Schnittstelle zwischen KI und Medizin. Sie ist Mitautorin des E-Books „Maximizing Productiveness with ChatGPT“. Als Google Era Scholar 2022 für APAC setzt sie sich für Vielfalt und akademische Exzellenz ein. Sie ist außerdem als Teradata Variety in Tech Scholar, Mitacs Globalink Analysis Scholar und Harvard WeCode Scholar anerkannt. Kanwal ist ein leidenschaftlicher Verfechter von Veränderungen und hat FEMCodes gegründet, um Frauen in MINT-Bereichen zu stärken.

Von admin

Schreibe einen Kommentar

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