Ik ben bezig geweest met het toegankelijk maken van de data uit
commoncrawl.org - alle html pagina's en PDF bestanden van de afgelopen 10 jaar - voor de organisatie waar ik werk.
--+
Side note: commoncrawl.org is de databron waarop chatGPT is getraind.
--+
Er is nu een geautomatiseerde flow waar een medewerker aangeeft van welke merknaam data nodig is, en deze wordt dan automatisch opgehaald, bewerkt en geclassificeerd zodat het beschikbaar is voor de interne AI.
Het archief bevat 92 datasets (elk volledige kopieren van alle publieke tekst op alle websites van een bepaald moment) waarvan de laatste zo'n 450TB is, elk van deze heeft een index van zo ongeveer 250GB.
Onze flow zoekt in die 92 indexen tegelijk in 30 tot maximaal 2 minuten de data die we nodig hebben, daarna wordt de data via een parallel proces met enkele honderden computers tegelijk opgehaald, bewerkt, gefilterd, ontdubbelt, geclassificeerd en klaar gemaakt voor de AI-modellen, in grofweg 10 seconden.
De indexen zijn zo extreem snel (reken maar na 92*250GB = 23TB is veel in 30 seconden), doordat ze zijn opgedeeld in stukjes, verschillende Apache Parquet bestanden en folder structuur filters. Om snel de juiste tijdsperiode, (sub 5x)domeinnaam, bestandstype etc te vinden.
De truc is ook dat ze alle bestanden achterelkaar als een paar 4.7GB grote bestanden hebben geplakt en de index als resultaat geeft welke bytes je van dat grote bestand moet downloaden. Dat scheelt weer heel veel kleine bestandjes en namen etc.
Ik verwacht dat je als je op glas archiveert - bijvoorbeeld alle internet data - dat je slimme indexen bouwd om heel snel heel precies de data op te kunnen vragen die je nodig hebt.
Op deze manier hebben we dus de data die we nodig hebben gevonden, opgehaald en klaar voor gebruik in 45 tot 130 seconden uit meer dan 30 Petabyte aan data.
Voor de mensen die nu denken, wow, dat kost veel geld. Nee, we betalen tussen de €4,- en €15,- per dag voor deze flow - incl. logging, databases etc.
De computers betalen we per milliseconde dat ze een taak uitvoeren. Vandaar dat het in kosten niets uit maakt of we we 4 of 90.000 tegelijk laten draaien. De database betalen we per verwerkte hoeveelheid data in de query. En de opslag per opgeslagen hoeveelheid data (wat hebben we gedownload).
[Reactie gewijzigd door djwice op 23 juli 2024 09:39]