{
  "video_id": "vB9pHTZKoGQ",
  "channel_slug": "huggingface",
  "channel_handle": "huggingface",
  "title": "FineWeb Explained: How LLM Training Datasets Are Made",
  "duration_seconds": 1731.0,
  "url": "https://www.youtube.com/watch?v=vB9pHTZKoGQ",
  "upload_date": "",
  "transcript": "Guten Morgen allerseits.  Wie läuft es\nheute?  Heute werden wir\nüber den Fine Web-Datensatz sprechen.  Dies ist\nein Projekt von Hugging Face und ein\nhervorragendes Beispiel dafür, wie man alle\nDaten sammelt, die man zum Trainieren eines großen\nSprachmodells benötigt.  Das ist übrigens auch als\nsehr schöner\nBlogbeitrag verfügbar und sehr lehrreich.  Wenn\nSie nach dem Ansehen dieses Videos mehr darüber lesen möchten\n, können Sie gerne\ndiesen Beitrag lesen.  Es ist sehr, sehr gut gemacht\nund enthält viele nützliche\nInformationen; natürlich ist\nauch ein wissenschaftlicher Beitrag enthalten.  Dieser Beitrag hier stammt zwar\naus der Zeit vor ein paar Jahren, aber die\nInformationen sind immer noch ziemlich relevant und\nvermitteln eine Menge darüber, wie große\nSprachmodelle heutzutage erstellt werden.  Die\nFolien dazu sind ebenfalls in der\nBeschreibung enthalten, falls Sie später einen Vortrag darüber halten möchten\n.  Dann lasst uns ohne\nUmschweife gleich\nzur Sache kommen.  Okay.  Warum\nsollten wir überhaupt über den Fine Web-\nDatensatz sprechen?  Warum ist das relevant?\nDer Grund dafür ist, dass es\nim Internet nur sehr wenige Informationen darüber gibt,\nwie man Datensätze erstellt, um diese\ngroßen Sprachmodelle zu trainieren.  Genau deshalb, weil\nselbst wenn ein Unternehmen, das große\nSprachmodelle erstellt, diese Modelle als\nOpen Source veröffentlicht, es selten\nauch seine Vortrainingsdaten veröffentlicht, da es dafür\neinfach kaum einen Anreiz gibt\n.  Wir haben uns also zum Ziel gesetzt, einen offenen\nDatensatz zu erstellen, der sehr gut ist und mit dem sich\nsehr gute große Sprachmodelle trainieren lassen.\nUnd wir haben so ziemlich jeden\neinzelnen Schritt des Entstehungsprozesses dokumentiert, um\nIhnen zu zeigen, wie Sie das selbst machen können\n.  Wir werden\nhauptsächlich über zwei Varianten dieses\nDatensatzes sprechen. Da ist zunächst der Fine\nWeb-Datensatz, der reguläre Fine Web-\nDatensatz, ein 15 Billionen Token umfassender\nDatensatz, der aus Common Crawl\nDumps abgeleitet wurde.  Und wir werden hier\nüber jeden einzelnen Schritt sprechen, den wir unternommen haben, um\ndiesen Datensatz zu erstellen.  Und äh, danach werden\nwir\nauch ganz kurz über den FineWeb.edu-\nDatensatz sprechen, der eine stärker komprimierte Version des\nFineWeb-Datensatzes ist. Wir haben\neinige offene Modelle verwendet, um nur\ndie wertvollsten und lehrreichsten Daten\naus diesem Datensatz zu extrahieren, und haben am Ende einen\nDatensatz mit 1,3 Billionen Token erhalten, der\nsogar noch besser abschneidet als dieser\nDatensatz mit 15 Billionen Token.  Ja,\nwir werden über beide sprechen\n.  Die Grundidee des feinen Netzes\nähnelt der Kontation.  Wir\nbeginnen also mit einem sehr großen\nTextkorpus, der aus den\nüblichen Crawling-Dumps stammt, also einer Menge\nroher Webdaten. Anschließend\nwenden wir eine Reihe von Transformationen und\nBereinigungsschritten an, um daraus einen\nverfeinerten, feinen Webdatensatz zu erhalten.  Und darüber hinaus werden\nwir das Ganze\nnoch weiter verfeinern, um den feinen web.edu-\nDatensatz zu erhalten.  In Ordnung.  Beginnen wir also\nmit dem ersten Teil, nämlich dem\nAbrufen der Daten aus dem Internet.  Sie\nhaben wahrscheinlich schon gehört, dass große\nSprachmodelle mit einem riesigen Datenkorpus trainiert werden,\nder aus dem gesamten Web stammt.  Weißt du, wie das geht\n?  Es gibt\nnatürlich mehrere Wege, und verschiedene\nUnternehmen gehen dabei unterschiedlich vor.  Einige, wie\nbeispielsweise OpenAI oder Anthropic,\ndurchsuchen und scrapen das Web\nselbst, um ihre eigenen Auszüge aus\ndem Web zu erhalten.  Äh, was wir\nhier gemacht haben, ist, dass wir die\nSnapshots von Common Crawl übernommen haben.  Common\nCrawl ist eine Open-Source-Organisation – äh, Entschuldigung, eine\ngemeinnützige Organisation –, die\nalle ein bis zwei Monate Momentaufnahmen des gesamten Webs veröffentlicht,\nund das tun sie schon\nseit Jahren.  Der Einstiegspunkt, der\nAusgangspunkt für diesen Datensatz, sind also genau\ndiese Momentaufnahmen der Gemeinkrähe.  Wir\nbegannen also mit 96 Snapshots, die seit 2013 veröffentlicht wurden,\nund jeder Snapshot enthält Hunderte\nvon Terabytes an rohen HTML-Daten.  Wie\nSie sich vorstellen können, enthält diese Sammlung sehr viele\nDaten, und viele davon\nsind ziemlich fehlerhaft.  Mit anderen\nWorten,\ndiese Daten werden eine Menge Code bzw. eine Menge Inhalte enthalten\n.  Es wird im Grunde nur\nStandard-Spam-\nNavigationsmenüs, doppelte Seiten oder\nauch nicht-englische Texte geben.  Also,\nwir haben die Daten extrahiert und versucht,\nsie zu bereinigen.  Dafür gibt es im Wesentlichen zwei\nHerangehensweisen.  Was Common\nCrawl tatsächlich macht, ist, dass es\nIhnen ermöglicht, diese Auszüge oder\nMomentaufnahmen des Webs in verschiedenen\nFormaten herunterzuladen.  Eine davon sind WAR-Dateien, was\nfür Webarchivdateien steht und die\nRohdaten von HTML enthält.  Die Verarbeitung ist natürlich\nteurer, weil man\nes selbst reinigen muss.  Oder sie bieten auch\nbereits\nextrahierte Dateien an.  Es soll also angeblich kein\nHTML enthalten sein.  Es handelt sich also nur um Textonex-\nDateien, die von Common Crawl\nselbst extrahiert werden.  Es ist natürlich billiger,\neinfacher und leichter zu verarbeiten.  Ähm, aber\nin unseren Tests haben wir festgestellt, dass das Training von\nwinzigen Modellen auf diesem Datensatz tatsächlich\nschlechter abschnitt als auf diesem Datensatz\nplus unseren eigenen Bereinigungsmethoden.\nWir haben also die Roh-HTML- und\nMetadatendateien heruntergeladen und anschließend mit Traffadura\nden Text daraus extrahiert.  Und nur\num es klarzustellen: Dies ist wahrscheinlich der\nteuerste Teil des gesamten\nProzesses.  Für kleinere Teams, die\netwas Ähnliches versuchen,\nkönnte dieser Abschnitt hier also einer sein, den sie\nauslassen können.  Obwohl wir festgestellt haben, dass – wie\nSie hier sehen können – beim Trainieren eines\nwinzigen Modells auf diesem Datensatz und eines\nweiteren Modells mit der gleichen Architektur\nauf diesem Datensatz hier, haben wir\nmit unserer eigenen bereinigten Version am Ende viel bessere Ergebnisse erzielt\n.  Das war also der\nerste Schritt.  In Ordnung.  Wie gehen wir also bei\nder Bereinigung und Filterung\ndieses riesigen Korpus bereits extrahierter\nDaten vor?  Im Idealfall verfügen wir bereits über diese riesigen\nDatensätze, riesige Momentaufnahmen, die\nnicht in HTML-Zeilenformat, sondern in schönem, ansprechendem\nText vorliegen, aber wir müssen noch Inhalte bereinigen und\nentfernen, mit denen wir\nunsere Modelle nicht trainieren wollen.  Um\ndas zu erreichen, haben wir einige ganz übliche\nBasisfilterungen durchgeführt.  Zunächst haben wir\nmithilfe einer URL-Sperrliste Inhalte für Erwachsene entfernt.  Wir\nhaben außerdem alle Daten aus diesem\nDatensatz entfernt, die nicht in englischer Sprache vorliegen.  Es\ngibt übrigens auch eine zweite Version dieses\nDatensatzes, die mehrsprachig ist.  Ich\nwerde in der Beschreibung auch einen Link dazu einfügen\n.  In diesem\nspeziellen Fall geht es uns jedoch ausschließlich um\nenglischsprachige Daten.  Und dann haben wir noch\neinige zusätzliche Qualitätsfilter für\nWiederholungen hinzugefügt, um sicherzustellen, dass wir nicht zu\nviele wiederholte Daten haben.  Das Endergebnis\nwar, dass wir am Ende\netwa 36 Billionen Token hatten.  Dies\nist nur der erste Schritt des Filterprozesses.\nUnd nun kommen wir zum kniffligeren\nTeil des Prozesses, nämlich der\nDuplizierung.  Nun ja, das Internet ist natürlich\nvoll von sich wiederholenden Inhalten.  Es gibt\nSpiegelungen, es gibt kopierte Inhalte, es\ngibt Vorlagen, es gibt syndizierte\nArtikel, es gibt erneut gerenderte Seiten und\nall das führt einfach zu einer Menge sich\nwiederholender Inhalte in unserem Datensatz.  Äh, also müssen\nwir es duplizieren.  Warum?  Die\nDuplizierung ist ein Prozess, den viele Teams\nsehr oft anwenden, da er die Generalisierung des Modells verbessert\n.  Es reduziert das Auswendiglernen\nIhres Modells und – was sehr\nwichtig ist – Sie vermeiden es,\nTrainingsschritte für wiederholtes Testen von wiederholtem Text zu verschwenden,\nwas bedeutet, dass Sie keine\nzusätzlichen Ressourcen für das erneute Trainieren Ihres\nModells mit Text aufwenden müssen, den es bereits gesehen hat,\nund im Grunde genommen einfach die Datenvielfalt erhöht\n.  Wir haben also minash verwendet, um\ndiesen riesigen Textkorpus mit sich\nselbst zu duplizieren, und der erste Ansatz,\nden wir verfolgten, war tatsächlich ein Fehlschlag,\nweil wir annahmen, dass mehr Duplizierung\nbesser sei.  Also, was wir gemacht haben, war, dass\nwir als erstes den gesamten\nDatensatz mit sich selbst dupliziert haben.  Und dabei\nist zu beachten, dass wir etwa\n96 Momentaufnahmen des Webs haben, die wir durch\nCommon Crawling erhalten haben.  Und was wir getan haben, war, dass\nwir als erstes den ersten oder aktuellsten Snapshot genommen\nund ihn mit sich\nselbst dupliziert haben.  Dann gingen wir zum\nvorherigen Eintrag und haben diesen dupliziert, aber\ngegen den neueren Eintrag, der\nbereits dupliziert war.  Dann haben wir diesen neuen\nduplizierten Crawler benutzt, um ihn\ngegen den älteren zu duplizieren, und\ndann wieder gegen den älteren und wieder gegen den\nälteren, bis wir beim letzten angelangt waren\n.  und äh durch die ältesten Crawls, da\ndiese natürlich mit\ndem gesamten Textbestand aus äh\nden vorherigen gemeinsamen Crawl-Extrakten abgeglichen werden.   Bei\ndiesem Prozess wurden\netwa 90 % der Daten aus den ältesten\nDatensätzen entfernt, was natürlich entweder sehr\ngut oder sehr schlecht sein kann. Am Ende hatten wir jedoch nur noch 4\nBillionen Token anstatt der 36\nBillionen Token, mit denen wir begonnen hatten.\nDas wäre kein allzu großes\nProblem, wenn sich die Qualität verbessert hätte, was aber\nnicht der Fall war.  Als wir also ein kleines\nModell sowohl mit dem duplizierten als auch mit\ndem nicht duplizierten Datensatz trainierten,\nstellten wir fest, dass die Ergebnisse im Grunde genommen\nziemlich gleich waren.\nUnsere\nLeistung hat sich also überhaupt nicht verbessert.  Wir sind\nunserem angestrebten Standard, nämlich einem\nverfeinerten\nWebdatensatz, sicherlich nicht näher gekommen.  Falls Ihnen\nder verfeinerte Web-Datensatz noch nicht bekannt ist: Es handelt sich um einen\noffenen Datensatz, der\nzum Trainieren des Falcon-Modells verwendet wurde.  Was ist\nhier also geschehen?  Äh, warum hat die globale\nDuplizierung eigentlich nicht funktioniert?  Wir\nstellten fest, dass wir am Ende\nsehr wertvolle Daten aus all diesen\nälteren UM-Snapshots entfernt hatten.  Um das\nherauszufinden, haben wir eine der älteren\nMomentaufnahmen dieses Datensatzes genommen und\nein kleines Modell mit dem\nentfernten Teil der Daten trainiert und dann ein weiteres\nmit der gleichen Architektur\nmit dem verbleibenden Teil der Daten.\nUnd wir haben herausgefunden,\ndass das Modell, das mit\nden entfernten Daten trainiert wurde, tatsächlich\nbesser abschnitt als das Modell, das\nmit den Daten trainiert wurde, die in diesem\nsehr alten Snapshot erhalten geblieben waren.  Das\nbedeutete also im Grunde, dass wir durch diese sehr aggressive D-Duplizierung sehr\nwertvolle Daten aus unseren älteren Snapshots entfernten\n.\nUnd bei genauerer Betrachtung stellten wir fest,\ndass die Daten, die\nnach all dem übrig blieben, im Grunde\nnur noch aus Vorlagendaten, Navigationsdaten, Anzeigen\nund ähnlichem bestanden.  Das war also\ndefinitiv nicht der richtige Weg.  Also haben wir\ndie Vorgehensweise geändert. Wir haben\ndie Duplikate verwendet, und zwar\ninnerhalb jedes Dumps, und dann haben wir einfach\nalle diese Dumps zusammengefügt.  Für den\nneuesten Dump haben wir ihn also mit sich\nselbst dupliziert.  Dann haben wir das vorherige Exemplar\nnur mit sich selbst und nicht mit\ndem neueren Exemplar dupliziert.  Und jedes einzelne davon haben\nwir einfach in sich selbst dupliziert.\nWir haben den Text beibehalten und am Ende\nhatten wir diesen schöneren, feinen Webdatensatz mit\netwa 15 Billionen Token, und dieser schnitt\ntatsächlich viel, viel\nbesser ab.  Nun verfügen wir also über diesen hervorragenden\nWebdatensatz mit unabhängigem Minash, der\nschließlich die gleiche Leistung wie\nder verfeinerte Webdatensatz erreicht.  Wie Sie\nhier sehen können, haben wir es bisher schon versucht, und\nwir schneiden jetzt viel besser ab.\nUnd nur um es klarzustellen, falls dies\nnicht deutlich geworden ist: Was diese Diagramme\nmessen, ist die Gesamtpunktzahl winziger\nModelle, die wir mit der gleichen\nArchitektur und dem gleichen Design auf diesen\nverschiedenen Datensätzen trainieren.  Anschließend\nbewerten wir diese Modelle anhand verschiedener\nBenchmarks wie NMLU und u,\naggregieren die Ergebnisse aller\nBenchmarks und stellen sie dann\nhier grafisch dar.  So messen wir die Qualität eines\nDatensatzes.  Und wir sind endlich an dem\nPunkt angelangt, an dem wir einen Datensatz haben, der mit\ndem verfeinerten Web-Datensatz vergleichbar ist.   Also\nziemlich gut.  Anschließend haben wir noch\neinige zusätzliche qualitative\nFilter hinzugefügt.  Wir haben also unseren hochwertigen\nWebdatensatz mit einer sehr aussagekräftigen Basislinie verglichen, nämlich\ndem C4-Datensatz.  Der C4-\nDatensatz ist ein sehr leistungsstarker\nDatensatz, der tatsächlich sehr beeindruckend ist,\nda er unglaubliche\nErgebnisse erzielt, indem er lediglich vier sehr\nstrenge Regeln auf seinen Datensatz anwendet und\njeden Text oder jedes\nDatenelement entfernt, das diese Regeln nicht erfüllt.   Zunächst einmal werden\nDokumente\nmit Badewannenlängenprofilen oder im Wesentlichen\nDokumente, die nicht mit einem\nSatzzeichen enden, entfernt.  Wenn Sie also ein\nDokument in Ihrem Datensatz haben, dessen\nSätze nicht mit einem Satzzeichen enden\n, wird das Dokument entfernt.  Anschließend werden\nauch Dokumente entfernt, die\nLauram Ipsum enthalten, also\nVorlagentext.  Es entfernt alle\nDokumente, die über JavaScript oder\nCookie-Hinweise sprechen.\nUnd schließlich entfernen wir alle\nDokumente, die geschweifte Klammern enthalten.\nUnd allein dadurch erzielt der C4-Datensatz\ntatsächlich hervorragende Ergebnisse.\nAlso, wir haben diese\nFilter genommen und sie auf den\nFineWeb-Datensatz angewendet. Dabei haben wir festgestellt, dass dieser\nspezielle Filter, der\ndie Dokumente mit Sätzen herausfilterte, die\nnicht mit einem Satzzeichen endeten,\ntatsächlich etwa 30 %\nunserer Token entfernte, was wir als zu\ndestruktiv empfanden.  Wir haben also\nalle anderen Regeln des C4-\nDatensatzes angewendet, aber nicht diejenige,\ndie Dokumente\nohne abschließendes Satzzeichen entfernt.\nWir haben das also durch unsere\neigenen Regeln ersetzt, und zwar durch die\ndrei Regeln, die Sie hier sehen.\nZunächst entfernen wir Dokumente, bei denen zu\nwenige Zeilen mit einem Satzzeichen enden.\nAnstatt also jede einzelne Zeile zu entfernen,\nhaben wir einen Schwellenwert von 12%.  Wenn also 12 %\nder Zeilen nicht mit einem Satzzeichen enden\n, entfernen wir das Dokument.  Das\ngibt uns auch etwas mehr Spielraum, um\nTexte beizubehalten, die eigentlich gut geschrieben sind,\naber manchmal nicht mit einem\nSatzzeichen enden.  Wir entfernen Dokumente, die\nviele Zeichen in doppelten\nZeilen enthalten.  Die Schwelle lag also bei über\n10%.  Doppelte Inhalte in den\nDokumenten werden entfernt, und außerdem werden Dokumente entfernt, die überwiegend\naus sehr kurzen\nZeilen bestehen.  Wenn in einem Dokument mehr als\n67 % der Zeilen kürzer als 30 Zeichen waren, haben wir\ndieses Dokument aus dem Datensatz entfernt.\nUnd nach diesem Schritt haben wir 22 %\nder Token entfernt, anstatt der 30 %, die wir\nentfernt hätten, wenn wir nur die\nC4-Regeln angewendet hätten.  Und darüber hinaus haben wir\ndie Benchmark-Performance verbessert, wie\nSie hier sehen können.  Wir haben also unsere Ausgangsbasis,\nunsere Basislinie, genau hier unten\n.  Und alle Filter zusammengenommen schnitten am Ende\nwesentlich besser ab.\nUnd wenn wir diese äh endgültige\nVersion des Fine-Web-Datensatzes vergleichen,\nkönnen Sie sehen, dass sie viel besser ist als\nandere offene Datensätze im Internet.  Und wir haben uns im Vergleich zu\nRevised Web und\nC4 tatsächlich deutlich verbessert.  Wir sind also schon ziemlich gut aufgestellt\n.  Und da haben wir's.  Genau das haben\nwir im Grunde auch getan, um den Fine\nWeb-Datensatz zu trainieren.  Nur um Ihnen eine ganz\nkurze Zusammenfassung zu geben.  Zunächst haben wir\n96 gemeinsame Crawling-Arbeits-Snapshots extrahiert und\ndiese anschließend mit Trafaladura selbst bereinigt\n.  Anschließend haben wir sie\nmithilfe von URL-basierter Filterung, Sprachfilterung\nund einigen sehr schnellen\nQualitätsfiltern bereinigt.  Wir haben innerhalb jedes\nScrollvorgangs dupliziert, jedoch nicht im gesamten\nDatensatz.  Anschließend haben wir einige C4-ähnliche und\nbenutzerdefinierte Filter hinzugefügt, um weitere Daten zu entfernen, und am Ende erhielten\nwir einen Datensatz mit 15 Billionen Token,\nder tatsächlich besser abschneidet\nals alle anderen\ndamals verfügbaren offenen Datensätze.  Okay,\nsprechen wir also ganz kurz über den FineWebEdu-\nDatensatz.  Und dies ist ein sehr unterhaltsames Beispiel\ndafür, wie man offene Modelle in der Pipeline nutzen kann, um die\nvorhandenen\nDaten zu verbessern.  Äh, und warum haben wir dann fine\nweb edu ins Leben gerufen?  Nun, zunächst einmal, äh, Lama 3 und\n53 verwendeten damals angeblich einen\nFilter zur Qualitätssicherung im Bildungsbereich.  Mit anderen\nWorten: Sie nahmen einen riesigen Datensatz und\nfilterten daraus nur die Dokumente heraus,\ndie den höchsten pädagogischen Wert hatten.\nAllerdings waren ihre Klassifikatoren nicht\nöffentlich.  Wir haben also unseren\neigenen Klassifikator trainiert und damit\nin diesem viel kleineren FineWeb.edu-Projekt deutlich bessere Ergebnisse erzielt,\ndenn denken Sie daran, dass es sich\nhier um etwas mehr als\neine Billion Token handelt, während\nFineWeb 15 Billionen Token umfasst. Und dieses Projekt\nhier erzielt tatsächlich\nbessere Ergebnisse in einer Reihe von stark auf\nBildung ausgerichteten Benchmarks.  Schauen wir uns also an,\nwie sie es gemacht haben.  Als\nErstes haben wir ein\nriesiges und sehr leistungsstarkes Modell als\nAnnotator verwendet.  Wir haben also Lama 370B instruct verwendet,\nein riesiges Modell, und damit\netwa 500.000\nFine-Web-Beispiele bzw. 500.000 Dokumente aus\nunserem Fine-Web-Datensatz bewertet und ihnen\nje nach ihrem pädagogischen Wert eine Punktzahl von 0 bis fünf gegeben\n.  Null hätte also einen\nBildungswert von null.  Fünf entspräche in etwa dem Bildungsniveau eines\nDoktors\n.  Und natürlich haben wir das Modell gebeten,\nuns nicht einfach so eine Punktzahl zu liefern,\nsondern wir haben ihm eine Reihe sehr detaillierter\nBewertungskriterien vorgegeben, anhand derer es argumentieren und\nbewerten musste, und am Ende musste es\nalles addieren, um uns eine Punktzahl\nzwischen null und fünf zu geben.  Und das\nreduziert natürlich Halluzinationen, um\nsicherzustellen, dass das Modell nicht einfach\neine zufällige Zahl zwischen 0\nund fünf für ein gegebenes Dokument ausgibt.  Und wir\nhaben dieses riesige äh 70 Milliarden äh\nParametermodell verwendet, um all diese\nDatenpunkte zu bewerten.  Aber wir wären nicht in der Lage gewesen,\ndieses riesige\nModell einfach auf einen Datensatz von 15 Billionen Token anzuwenden.\nWir haben also 1.500.000\nDatenpunkte mit Lama 370B gelabelt und dann\nein kleineres Modell mit diesen bereits\ngelabelten Dokumenten trainiert. Dieses kleinere\nModell haben wir dann für\nden gesamten FineWeb-Datensatz verwendet\nund dadurch deutlich bessere Ergebnisse erzielt. Am Ende\nhatten wir einen sehr gut gelabelten Datensatz für 15\nBillionen Token.  Und nun mussten wir\nentscheiden, welchen Schwellenwert wir festlegen wollten, um\nDokumente\naus unseren Daten zu behalten oder zu entfernen.  Und es gab\nviele verschiedene Möglichkeiten, die wir hätten nutzen können\n.  Wir hätten alles entfernen können, was unter\nzwei,\ndrei oder\nvier Punkten lag.  Wir haben uns schließlich dazu entschlossen,\nalle Dokumente mit einer Punktzahl unter\ndrei zu entfernen.  Und das lieferte uns\nBildungsnachweise, die nicht nur\nauf Universitätsniveau, sondern auch auf dem\nNiveau einer High School oder einer weiterführenden Schule lagen,\nwas schon ziemlich\ngut ist.  Und es brachte uns etwa 1,3 Billionen\nToken ein.  Und als wir diesen kleineren\nDatensatz mit 1,3 Billionen Token gegen die\nanderen Datensätze testeten, die wir hier haben.\nSo haben wir zum Beispiel Refined Web,\nFine Web und C4 auf der Grundlage von\nBildungsstandards wie MMLU.  Wir haben\nherausgefunden, dass ein feines Web mit dieser winzigen\nDatenmenge am Ende tatsächlich\nviel bessere Modelle trainiert hat, wie Sie\nhier sehen können.  Und das halte ich einfach für\nverrückt.  Und hier haben Sie den gleichen\nFineWeb.edu-Datensatz, der\nmit dem FineWeb-Datensatz verglichen wird, den wir gerade\nerstellt haben, dem RefinedWeb, dem C4 und\nanderen offenen Online-Datensätzen. Sie können\nsehen, dass FineWeb.edu\ndie anderen Datensätze in\nihrer Gesamtpunktzahl tatsächlich vernichtet.  Was sind also die\nwichtigsten Lehren für heute?  Äh, zuallererst kommt es auf die\nQualität der Extraktion an.  Wir\nbevorzugten daher die Verwendung des Rohformats der\nüblichen Crawl-Snapshots gegenüber\ndem leicht verfügbaren Textformat,\nda dies die Qualität\nunseres Datensatzes verbesserte.  Außerdem ist die Duplikation\nnicht monoton.  Sie sollten nicht\ndas gesamte Dokument mit sich\nselbst duplizieren, da eine aggressivere\nDuplizierung Ihren Datensatz beschädigen kann.  äh,\nbewerten Sie mit Modellen, nicht nur mit Häresien.   Die\nFilter wurden also mittels Ablationsläufen ausgewählt\nund\nnicht nur anhand von Heritabilitätsanalysen, sondern auch mit Modellen evaluiert.  Wie\nich im Video schon ein paar Mal erwähnt habe, haben\nwir die\nDatensätze mit kleinen Modellen trainiert und\ndiese Modelle dann evaluiert, um zu sehen, wie gut\nunser Datensatz ist.  Das ist so ziemlich die\nbeste Methode, um herauszufinden, ob Ihr Datensatz\ngut ist oder nicht, denn genau dafür sollen\ndiese Datensätze ja verwendet werden:\nzum Trainieren von Modellen.  Indem wir\ndie Modelle anhand dieser Datensätze auswerten,\nbewerten wir also effektiv die Datensätze selbst.  Und\naußerdem haben wir etwas sehr Interessantes festgestellt: Die\nDatenqualität\nvariiert im Laufe der Zeit, wie ich gleich noch erwähnen werde,\ndenn wir werden\nsehen, dass spätere oder aktuellere Daten-\nMomentaufnahmen tatsächlich eine andere\nQualität aufweisen als ältere, und darauf werden wir später noch etwas genauer eingehen\n.  Und\nschließlich können große Sprachmodelle\nskalierbare Filter initialisieren.  Mit anderen\nWorten: Es ist durchaus möglich, ein riesiges\nund sehr leistungsstarkes Sprachmodell zu verwenden, um\neinen kleinen Teil Ihres Datensatzes zu kennzeichnen oder zu bewerten,\nund dann ein kleineres\nModell darauf zu trainieren, das\nSie dann auf Ihren\ngesamten Datensatz anwenden werden.  Und nur der Vollständigkeit halber\nhier die gesamte Datenpipeline\nfür beide Datensätze.  Denken Sie daran,\ndass wir für Fine Web mit dem Common\nCrawl begonnen haben und dann die\nBasisfilter Sprache und Qualität hinzugefügt haben.  Dann haben wir die Daten\ndupliziert und schließlich hatten wir den\nDatensatz mit 15 Billionen Token.  Und für das Projekt „\nFine Web Edu“ haben wir mit einem „Fine\nWeb“-Datensatz begonnen.  Wir haben 1500.000 uh-\nProben daraus mit Lema 370B markiert.  Wir haben\nhier einen kleinen Klassifikator mit diesen Beispielen trainiert.  Anschließend wählten wir die\nLerninhalte mit einer Mindestpunktzahl\nvon drei von fünf aus.  So erhielten wir am Ende\neinen Datensatz mit 1,3 Billionen Einträgen, wenn der\nSchwellenwert bei drei oder mehr Punkten liegt,\nund erzielten damit deutlich bessere\nErgebnisse.  Und bevor wir uns verabschieden,\nmöchte ich Ihnen noch ganz kurz eine zusätzliche\nInformation mitgeben, die\nsehr unterhaltsam und schön anzusehen ist.  Äh, und zwar\ndie Tatsache, dass die\nQualität von Crawl-Snapshots im Laufe der Zeit tatsächlich schwankt\n.  Und das ist,\nmeiner Meinung nach, ziemlich verrückt.  Also, worauf es ankommt, ist,\ndass die Qualität der Daten, die wir\naus dem Internet erhalten, bestimmt, wie gut unsere\nModelle sein werden, richtig?  Deshalb haben\nwir all diese Filter, die\nQualitätsfilterung, die\nDuplikatsfilterung, die\nBildungsfilterung usw. durchgeführt. Was\nhier gerade passiert, ist nur ein sehr kurzer Teil des\nExperiments: Wir haben all\ndiese Extrakte oder Momentaufnahmen aus dem\ngemeinsamen Crawling genommen.  Ich erinnere mich, dass wir\netwa alle zwei Monate eine solche Aufnahme machen\nund dabei ein kleines Modell anhand\njeder einzelnen dieser Momentaufnahmen trainieren.  Und äh,\nwir haben schließlich herausgefunden, dass die\nneuesten Snapshots tatsächlich viel\nbessere Modelle liefern.  Die jüngsten Datenlecks sind also\nnicht einfach nur mehr Daten, sondern oft auch bessere\nDaten.  Und wir begannen uns zu fragen, warum das so\nist.  Wie Sie hier sehen können\n, beginnt diese Qualitätssteigerung etwa ab\n2020.\nUnd ich weiß nicht, wie es Ihnen geht, aber mir ist da etwas\nsehr Interessantes aufgefallen, das ungefähr um\ndiese Zeit im Jahr\n2022 passiert ist. Wir haben uns gefragt, ob\nder Grund für\ndiese Qualitätssteigerung darin liegen könnte, dass wir\nmehr synthetische Daten im Internet haben.  Mit anderen\nWorten: Wir verfügen über mehr Daten, die von\ngroßen Sprachmodellen generiert werden.  Und wie sich herausstellt, ist das\nhöchstwahrscheinlich der Fall.  Es ist\nnatürlich sehr schwierig,\nvorherzusagen oder einen Textabschnitt zu klassifizieren, um\nherauszufinden, ob er\nvon einem großen Sprachmodell generiert wurde oder nicht.\nWir haben aber eine sehr schnelle\nErsatzmessmethode dafür gefunden.  Wir haben im Grunde\neinige Wörter und Ausdrücke überwacht, die\nvon großen Sprachmodellen sehr häufig verwendet werden,\nwie zum Beispiel „delve into\ncertainty“ und ähnliches.  und wir haben\ngemessen, wie oft sie in unseren\nvorherigen Momentaufnahmen vorkamen.  Wie Sie sehen können,\nblieb die Häufigkeit dieser Wörter vor 2020\nrelativ konstant, und nach 2023\nbegann diese explosionsartige Zunahme dieser\nLLM-typischen Wörter.   ähm, das\nist natürlich kein Beweis dafür, dass\nes sich um von einem LLM generierte Daten handelt, aber es\ngibt uns einen ziemlich guten Hinweis darauf, dass\ndiese Daten von Chad GPT oder einem\nähnlichen großen Sprachmodell generiert worden sein könnten.  Dies führt\nuns zu einem\nsehr interessanten Ergebnis:\nMomentaufnahmen mit vielen synthetischen\nDaten erzeugen letztendlich bessere Modelle.  äh,\nzumindest ist das im Moment der Fall,\nda nur ein winziger Bruchteil dieser\nMomentaufnahmen äh LLM-generierte Daten sind.\nNun stellt sich die Frage, was\npassieren wird, wenn der größere Teil der\nMomentaufnahmen aus synthetischen Daten besteht, die von\ngroßen Sprachmodellen generiert werden.  Ähm, das müssen wir im Laufe der Zeit herausfinden.\nUnd zum Schluss möchte ich noch\neinige offene Fragen klären: Wie ich bereits\nerwähnte, wird die Verwendung synthetischer Daten die Qualität von\nWebdaten verschlechtern? Momentan gibt es zwar\nviele synthetische Daten im Web, aber noch nicht zu\nviele. Wird eine zu große Menge dieser synthetischen\nDaten die Qualität\ngroßer Sprachmodelle, die wir in\nZukunft erhalten werden, beeinträchtigen? Und zweitens möchte ich\nerwähnen, dass es sich\nhier um einen etwas älteren Artikel handelt.  Aktuell\nhaben wir also noch bessere kleine Modelle als den\nLMA 370B.  Es handelt sich also um ein Modell mit 70 Milliarden\nParametern, das damals sehr gut war\n, aber wir haben jetzt viel bessere\nModelle, die teilweise unter 20\nMilliarden Parametern liegen.  Die Verwendung\ndieser kleineren Modelle wird es uns also ermöglichen,\nwesentlich ausgefeiltere Datenpipelines\nfür die Klassifizierung und\nsogar für die Generierung synthetischer Daten zu erstellen.  Das war\nim Grunde alles für diese Präsentation.\nVielen Dank.  Die\nFolien dazu finden Sie natürlich in der Beschreibung.\nSollten Sie Fragen haben, können Sie\ndiese gerne in den Kommentaren stellen.\nVielen Dank und Ihnen auch einen schönen Tag.",
  "transcript_chars": 27709,
  "ingested_at": "2026-06-02T22:31:22.820639+00:00",
  "source": "channel",
  "yt_meta": {
    "view_count": 479,
    "like_count": 47,
    "channel_id": "UCHlNU7kIZhRgSbhHvFoy72w",
    "categories": [
      "Education"
    ],
    "tags": [
      "Common Crawl",
      "FineWeb",
      "FineWeb-Edu",
      "Hugging Face",
      "LLM datasets",
      "data filtering",
      "deduplication",
      "machine learning",
      "pretraining data",
      "web-scale datasets"
    ]
  }
}