\n\n\n\n Mein Werdegang: KI im Open Source vorantreiben - ClawDev Mein Werdegang: KI im Open Source vorantreiben - ClawDev \n

Mein Werdegang: KI im Open Source vorantreiben

📖 11 min read2,138 wordsUpdated Mar 29, 2026

Hallo zusammen, hier ist Kai Nakamura von clawdev.net, und heute erkunden wir ein Thema, das in meinen Entwicklerkreisen in letzter Zeit viel diskutiert wird: zur Open Source beitragen, nicht nur durch das Beheben von Bugs oder das Aktualisieren von Dokumentationen, sondern als jemand, der wirklich Projekte im Bereich KI voranbringt. Wir sind im Jahr 2026, und die Open Source KI-Szene ist lebendiger und komplexer als je zuvor. Wir haben die anfänglichen Hype-Zyklen hinter uns gelassen, und es geht jetzt darum, echte und greifbare Beiträge zu leisten, die zählen.

Lange Zeit war meine Beziehung zur Open Source ziemlich standardmäßig. Ich nutzte eine Bibliothek, fand einen Bug, eröffnete ein Issue und reichte vielleicht sogar einen Pull Request für einen Schreibfehler ein. Es war befriedigend, als ob ich etwas zurückgab. Aber ich hatte immer dieses nagende Gefühl, dass ich nicht wirklich zur grundlegenden Innovation beitrug, besonders im Bereich KI. Es fühlte sich an, als würde ich lediglich die Kanten der brillanten Idee eines anderen polieren. Und ganz ehrlich, mit dem Tempo, in dem sich die KI entwickelt, reicht es einfach nicht mehr, nur zu polieren.

Deshalb habe ich im letzten Jahr einen bewussten Versuch unternommen, meine Herangehensweise zu ändern. Ich wollte über das „gute erste Issue“ hinausgehen und mich echten Herausforderungen stellen, Problemen, die, wenn sie gelöst werden, einen nennenswerten Unterschied in der Entwicklung eines Projekts machen würden. Lassen Sie mich Ihnen sagen, das ist ein ganz anderes Spiel. Es ist befriedigender, frustrierender und letztendlich viel wirkungsvoller.

Über das Bugfixing hinaus: Finden Sie Ihre KI-Nische in der Open Source

Das erste Hindernis für mich war zu bestimmen, wo ich bedeutend beitragen könnte. Das enorme Volumen an Open Source KI-Projekten kann überwältigend sein. Es gibt alles von Basismodellen bis hin zu Nischen-Fine-Tuning-Tools, Datenpipelines und Visualisierungsbibliotheken. Es ist leicht, sich darin zu verlieren.

Meine Strategie ist zu einer zweigleisigen Vorgehensweise geworden: Tiefgehende Erkundung der Projekte, die ich bereits nutzte, und Erkundung der aufkommenden Projekte, die mit meinen eigenen Interessen im Bereich erklärbare KI und föderiertes Lernen übereinstimmten. Ich begann damit, die Bibliotheken zu betrachten, von denen ich täglich abhängt für meine eigenen KI-Experimentierungen und Nebenprojekte. Denken Sie darüber nach: Sie kennen ihre Besonderheiten, ihre Stärken und vor allem ihre Schmerzpunkte. Dieses intime Wissen ist Ihre Superkraft.

Identifizieren von wirkungsvollen Bereichen

Statt einfach die als „Bug“ gekennzeichneten Issues durchzugehen, begann ich, die Roadmap des Projekts, den Abschnitt „Ideen“ in ihren GitHub-Diskussionen und sogar die alten Issues von „Funktionsanfragen“ zu lesen, die niemand angefasst hatte. Oft sind dies die Bereiche, in denen die Projektpfleger wirklich Hilfe benötigen, aber möglicherweise nicht die Bandbreite oder das spezifische Fachwissen selbst haben. Oft handelt es sich um komplexe und facettenreiche Probleme, aber deren Lösung bietet erheblichen Wert.

Zum Beispiel nutzte ich eine beliebte Open Source-Bibliothek zur Modellkompression und bemerkte, dass, obwohl sie hervorragende Pruning-Fähigkeiten hatte, ihre Quantifizierungsmethoden ein wenig… rudimentär waren. Es funktionierte, aber es war nicht auf dem neuesten Stand der Technik, und es gab mehrere offene Diskussionen über deren Verbesserung. Es war kein Bug; es war eine bedeutende Funktionalitätslücke. Und es war ein Bereich, mit dem ich persönliche Erfahrungen aus einem früheren Job hatte.

Hier kommt Ihre persönliche Expertise ins Spiel. Unterschätzen Sie nicht den Wert Ihres spezifischen Werdegangs. Vielleicht haben Sie mit einem bestimmten Datentyp gearbeitet, oder einer spezifischen neuronalen Netzwerkarchitektur, oder einer Nischen-Optimierungstechnik. Die Chancen stehen gut, dass es ein Open Source KI-Projekt gibt, das von diesem Wissen profitieren könnte.

Die Kunst des „ambitionierten“ Pull Requests

Sobald Sie einen bedeutenden Bereich identifiziert haben, ist der nächste Schritt oft der beängstigende: einen substanziellen Änderungsvorschlag zu machen. Es ist nicht einfach eine Korrektur von 5 Zeilen. Es könnte ein neues Modul, eine größere Umgestaltung oder eine neue Implementierung eines Algorithmus sein. Zu diesem Zeitpunkt begann meine Angst zu steigen. „Wer bin ich, um so etwas Großes vorzuschlagen?“ dachte ich. „Was, wenn ich mich irre?“

Was ich gelernt habe, ist, dass der Schlüssel Kommunikation und Inkrementalität ist, selbst bei großen Änderungen. Stellen Sie sich nicht einfach mit einem riesigen Pull Request aus dem Nichts vor. Beginnen Sie ein Gespräch.

Schritt 1: Der ursprüngliche Vorschlag (Der „Pre-PR“)

Bevor ich auch nur eine Zeile Code schrieb, verfasste ich einen detaillierten Vorschlag. Es ist keine formale Spezifikation, aber es ist mehr als ein einfaches schnelles Kommentar. Es umfasst normalerweise:

  • Das Problem, das ich zu lösen versuche, und seine Auswirkungen auf das Projekt.
  • Meine vorgeschlagene Lösung (Architektur auf hoher Ebene, gewählte Algorithmen usw.).
  • Warum diese Lösung eine gute Wahl ist (Leistungsverbesserungen, bessere Genauigkeit usw.).
  • Die Herausforderungen oder potenziellen Kompromisse.
  • Ein grober Zeitplan, falls zutreffend.

Ich würde dies in ein bestehendes Issue posten, einen Diskussionsstrang oder sogar ein neues Issue von „RFC“ (Request For Comments) eröffnen. Das Ziel ist es, frühzeitig Feedback zu bekommen, bevor ich Wochen investiere, um etwas zu codieren, das möglicherweise nicht mit der aktuellen Vision oder Richtung des Projekts übereinstimmt.

Hier ist ein vereinfachtes Beispiel, wie ein solcher Vorschlag in einem Diskussionsstrang aussehen könnte:


Betreff: Vorschlag: Integration von dynamischer Post-Training Quantifizierung für Modell X

Hallo Maintainer,

Ich verwende Modell X intensiv und finde seine Leistung beeindruckend. Allerdings habe ich festgestellt, dass beim Deployment auf Edge-Geräten die aktuellen statischen Quantifizierungsmethoden, obwohl sie funktional sind, oft zu einem deutlichen Genauigkeitsverlust im Vergleich zum Gleitkommamodell führen, selbst nach der Kalibrierung.

Ich möchte vorschlagen, die Unterstützung für *dynamische Post-Training Quantifizierung* unter Verwendung der Bibliothek FooBar hinzuzufügen. Dieser Ansatz ermöglicht es, ein anpassungsfähigeres Quantifizierungsschema während der Inferenz zu verwenden, was potenziell die Genauigkeit für bestimmte Modelle, insbesondere solche mit variablen Aktivierungsdistributio, wesentlich besser bewahrt.

Mein Plan sieht vor:
1. Hinzufügen einer Methode `quantize_dynamic` zum Tool `ModelX.deploy`.
2. Internes Integrieren von `FooBar.quantize_model`, einschließlich der Umwandlung des Modells und der Zuordnung der Datentypen.
3. Anbieten von konfigurierbaren Optionen für die Quantifizierungsrichtlinien auf Schichtebene.

Ich glaube, dass dies die Flexibilität des Deployments von Modell X erheblich verbessern würde, ohne dass eine erneute Schulung erforderlich ist, was es wettbewerbsfähiger für ressourcenschwache Umgebungen macht. Ich habe einige vorläufige Tests an einer kleineren Variante von Modell X mit FooBar durchgeführt, und die Ergebnisse sind vielversprechend (Präzisionsverlust < 1 % gegenüber > 5 % für die statische Methode).

Gibt es bereits bestehende Pläne für eine dynamische Quantifizierung, von denen ich möglicherweise nichts weiß? Gibt es Gedanken oder Bedenken zu diesem Ansatz, bevor ich anfange, Code zu schreiben?

Danke,
Kai

Dieser Ansatz hat mir unzählige Stunden gespart. Manchmal sagen die Maintainer: „Das ist eine großartige Idee, aber wir planen tatsächlich, dieses Modul im nächsten Quartal abzulehnen.“ Oder sie weisen auf eine kritische Einschränkung hin, an die Sie nicht gedacht hatten. All das gehört zum kollaborativen Prozess.

Schritt 2: Inkrementelle Implementierung und PRs

Sobald Sie ein allgemeines Zeichen der Zustimmung oder zumindest eine konstruktive Diskussion haben, können Sie mit dem Codieren beginnen. Aber selbst an diesem Punkt sollten Sie nicht alles in einem riesigen Pull Request abladen. Zerlegen Sie es. Wenn Sie eine neue Funktion hinzufügen, die mehrere Komponenten umfasst, ziehen Sie in Betracht, kleinere und logischere PRs einzureichen:

  • PR 1: Basis-Utility-Funktionen oder Datenstrukturen, die für die Funktionalität erforderlich sind.
  • PR 2: Die Implementierung des Hauptalgorithmus.
  • PR 3: Integration in die bestehende API und Beispielverwendung.
  • PR 4: Dokumentation und Tests.

Das erleichtert die Codeüberprüfung für die Maintainer erheblich und vermindert die kognitive Last. Das bedeutet auch, dass Sie Feedback zu kleineren Teilen erhalten, sodass Sie schneller Anpassungen vornehmen können, wenn etwas nicht ganz stimmt.

Zum Beispiel, als ich einen neuen föderierten Durchschnittsalgorithmus für einen verteilten Lernframework implementierte, war mein erster PR nur die Klasse `WeightedAverageAggregator` und ihre Unit-Tests. Der zweite PR integrierte sie in die Schnittstellen `FederatedClient` und `FederatedServer`. Dies ermöglichte es den Maintainer, die grundlegende Logik getrennt von den Integrationsdetails zu überprüfen.


// Beispiel eines kleineren und zielgerichteten PR für einen neuen Aggregator
// Datei: src/aggregators/weighted_average.py

import torch

class WeightedAverageAggregator:
 def __init__(self):
 pass

 def aggregate(self, client_models: list[torch.nn.Module], client_weights: list[float]) -> torch.nn.Module:
 """
 Aggregiert die Client-Modelle mithilfe eines gewichteten Durchschnitts.

 Args:
 client_models: Eine Liste von Client-Modellen (state_dicts).
 client_weights: Eine Liste von Skalargewichten für jedes Client-Modell.

 Returns:
 Das aggregierte Modell (state_dict).
 """
 if not client_models:
 raise ValueError("Kein Client-Modell für die Aggregation bereitgestellt.")
 if len(client_models) != len(client_weights):
 raise ValueError("Die Anzahl der Client-Modelle und der Gewichte muss übereinstimmen.")

 # Sicherstellen, dass die Gewichte sich auf 1 summieren
 total_weight = sum(client_weights)
 if total_weight == 0:
 raise ValueError("Die Summe der Client-Gewichte ist null.")
 normalized_weights = [w / total_weight for w in client_weights]

 aggregated_state_dict = {}
 for key in client_models[0].keys():
 aggregated_state_dict[key] = sum(
 model[key] * normalized_weights[i]
 for i, model in enumerate(client_models)
 )
 return aggregated_state_dict

Dieser Codeauszug wäre Teil eines PR, der sich allein auf die Aggregationslogik konzentriert und nicht auf die gesamte Pipeline des verteilten Trainings. Er ist gut verdaulich und überprüfbar.

Mit Feedback umgehen (Das Gute, das Schlechte und das „Warum habe ich es überhaupt versucht?“)

Sie werden Feedback erhalten. Viel. Einige werden unglaublich hilfreich sein, andere werden kleinlich sein, und gelegentlich erhalten Sie möglicherweise Feedback, das Sie Ihre Lebensentscheidungen in Frage stellen lässt. Das ist normal. Die Maintainer sind oft beschäftigt, und ihr Feedback-Stil kann stark variieren. Mein Rat:

  • Seien Sie offen, nicht defensiv: Auch wenn Sie nicht einverstanden sind, versuchen Sie, ihre Perspektive zu verstehen. Sie haben oft ein tieferes Verständnis für die langfristige Vision oder die Einschränkungen des Projekts.
  • Stellen Sie klärende Fragen: Wenn ein Kommentar vage ist, raten Sie nicht. „Könnten Sie bitte erklären, warum Sie denken, dass `Method A` in diesem Kontext besser ist als `Method B`?“
  • Nehmen Sie es nicht persönlich: Es geht um den Code, nicht um Sie. Jeder möchte, dass das Projekt besser wird.
  • Seien Sie geduldig: Open-Source-Projekte funktionieren auf der Zeit von Freiwilligen. Es kann einige Tage oder sogar eine Woche dauern, um eine Antwort zu erhalten. Erinnern Sie behutsam daran, wenn es eine Weile dauert, aber belästigen Sie nicht.

Einmal habe ich zwei Wochen damit verbracht, eine benutzerdefinierte Verlustfunktion zu implementieren, nur damit ein Maintainer auf eine subtile numerische Instabilität hinweist, die ich nicht bedacht hatte, und eine komplett andere Herangehensweise vorschlug. Meine anfängliche Reaktion? Frustration. Aber nach einem Tag des Nachdenkens wurde mir klar, dass sie völlig recht hatten. Ihr Vorschlag führte zu einer viel solideren Lösung, auch wenn das bedeutete, einen bedeutenden Teil meines Codes neu zu schreiben.

Umsetzbare Schlussfolgerungen für bedeutende Beiträge in der KI

Wenn Sie also einen bedeutenderen Fußabdruck in der Entwicklung von Open-Source-KI hinterlassen möchten, hier sind meine wesentlichen Ratschläge:

  1. Gehen Sie in die Tiefe, nicht nur in die Breite: Wählen Sie ein oder zwei Projekte, die Ihnen wirklich am Herzen liegen und die Sie regelmäßig verwenden. Ihr intimes Wissen über deren Stärken und Schwächen ist Ihr wertvollstes Gut.
  2. Suchen Sie nach funktionalen Lücken, nicht nur nach Fehlern: Lesen Sie die Fahrpläne, Diskussionen und alte Feature-Anfragen. Hier finden sich die Bereiche für bedeutende Beiträge.
  3. Schlagen Sie vor, bevor Sie programmieren: Schreiben Sie eine detaillierte RFC (Request For Comments) oder einen ersten Vorschlag in einem Diskussionsforum oder einem Issue. Holen Sie sich frühzeitig Feedback, um unnötigen Aufwand zu vermeiden.
  4. Unterteilen Sie große Änderungen: Reichen Sie kleinere, logische Pull-Requests ein. Das erleichtert die Überprüfung und ermöglicht schrittweises Feedback.
  5. Akzeptieren Sie konstruktive Kritik: Feedback ist ein Geschenk. Lernen Sie daraus, iterieren Sie und nehmen Sie es nicht persönlich.
  6. Teilen Sie Ihr Wissen: Unterschätzen Sie nicht das einzigartige Wissen, das Sie aus Ihren Projekten oder Ihrem speziellen Werdegang mitbringen. Jemand braucht es.

Auf diese Weise zu contribuieren, ist nicht immer einfach. Es erfordert mehr Zeit, mehr Kommunikation und eine dickere Haut. Aber die Zufriedenheit, zu sehen, wie Ihr Code ein integraler Bestandteil eines weit verbreiteten KI-Tools wird, in dem Wissen, dass Sie tatsächlich die Grenzen verschoben haben, ist unerreicht. Es hebt Ihre eigenen Fähigkeiten, erweitert Ihr Netzwerk und hilft letztlich, die gesamte Open-Source-KI-Gemeinschaft voranzubringen.

Lassen Sie mich in den Kommentaren wissen, für welche Open-Source-KI-Projekte Sie sich für einen tieferen Einblick interessieren, oder ob Sie ähnliche Erfahrungen gemacht haben, indem Sie über grundlegende Beiträge hinausgegangen sind. Viel Spaß beim Programmieren!

Verwandte Artikel

🕒 Published:

👨‍💻
Written by Jake Chen

Developer advocate for the OpenClaw ecosystem. Writes tutorials, maintains SDKs, and helps developers ship AI agents faster.

Learn more →
Browse Topics: Architecture | Community | Contributing | Core Development | Customization
Scroll to Top