Andersons hoek
Python-pakketinstallaties als index van lokale AI-adoptie

De moeilijk te kwantificeren toename van pakketdownloads voor Python vertelt het verhaal van AI-diffusie, als je weet waar je moet kijken.
Meningsuiting Iedereen die het potentieel van lokale AI heeft onderzocht, heeft inmiddels een angstwekkende hoeveelheid schijfruimte verloren, niet alleen aan de gigantische modellen die hierbij betrokken zijn, maar ook aan de verwante Python– en soortgelijke systemen die inferentie, training en honderden andere mogelijke toepassingen orkestreren – niet in de laatste plaats bij het opzetten van lokale automatiseringssystemen.
Dit laatste gebruik is het meest voorkomend op de verschillende machines in mijn LAN, waar ik AI heb gebruikt om ‘platte’ Python-gebaseerde geautomatiseerde routines op te zetten, zoals back-up, periodieke controles, het beheer van mijn website en een dozijn andere toepassingen.
Praktisch alles wat ik tijdens deze programmeersessies wil bereiken, lijkt een nieuwe Python-bibliotheek te vereisen, tot het punt waarop PIP (de Package Installer voor Python) een van de grootste ruimtevreters is op mijn LAN-machines:

PIP’s bescheiden aanwezigheid in de CLI en GUI’s verhult de impact op uw bestandssysteem. De cache kan zeer grote, zelfs systeemcrippelende bestandsgroottes bereiken.
Experimenten met lokale AI keren de aanzienlijke overbodige luxe van lokale computers om, vóór de AI-hardwaregrab van de huidige tijd. Als u een royale RAM-toewijzing had, zal deze worden opgegeten door GPU-offloading; een terabyte harde schijfruimte zal snel vol raken met hoge volumes modellen, gequantiseerd of niet; en zelfs als u, zoals ik, uzelf hebt uitgerust met 24 GB VRAM (een nieuw minimum…), zal het systeem nog steeds een reeks shortcuts en trucs nodig hebben om inferentie uit te voeren op redelijke tijdschalen.
Geïnstalleerde PyPi-pakketten (Python Package Index) verschijnen niet in de standaard ‘Geïnstalleerde programma’s’ GUI’s in een mainstream-besturingssysteem en moeten expliciet worden opgevraagd via Python, bijvoorbeeld met de PowerShell-opdracht pip freeze --all.
De lijst kan verrassend lang zijn:
| Pakket | Versie | Pakket | Versie | Pakket | Versie |
|---|---|---|---|---|---|
| absl-py | 2.3.0 | Jinja2 | 3.1.4 | pip | 25.1.1 |
| attrs | 25.3.0 | jsonpatch | 1.33 | platformdirs | 4.3.8 |
| beets | 2.5.1 | jsonpointer | 3.0.0 | protobuf | 4.25.8 |
| certifi | 2025.11.12 | kiwisolver | 1.4.8 | psutil | 7.2.1 |
| cffi | 1.17.1 | lap | 0.5.12 | pybrisque | 1.0 |
| charset-normalizer | 3.4.4 | lazy_loader | 0.4 | pycparser | 2.22 |
| click | 8.2.1 | libsvm | 3.23.0.4 | pyparsing | 3.2.3 |
| colorama | 0.4.6 | Markdown | 3.8.2 | python-dateutil | 2.9.0.post0 |
| confuse | 2.1.0 | MarkupSafe | 2.1.5 | PyYAML | 6.0.2 |
| contourpy | 1.3.2 | matplotlib | 3.10.3 | pyyaml_env_tag | 1.1 |
| cycler | 0.12.1 | mediafile | 0.13.0 | requests | 2.32.5 |
| dlib | 20.0.0 | mediapipe | 0.10.21 | scikit-image | 0.25.2 |
| face-recognition | 1.3.0 | mergedeep | 1.3.4 | scipy | 1.16.0 |
| face_recognition_models | 0.3.0 | mkdocs | 1.6.1 | sentencepiece | 0.2.0 |
| filelock | 3.13.1 | mkdocs-get-deps | 0.2.0 | setuptools | 65.5.0 |
| filetype | 1.2.0 | ml_dtypes | 0.5.1 | six | 1.17.0 |
| flatbuffers | 25.2.10 | mpmath | 1.3.0 | sounddevice | 0.5.2 |
| fonttools | 4.58.4 | musicbrainzngs | 0.7.1 | sympy | 1.13.1 |
| fsspec | 2024.6.1 | mutagen | 1.47.0 | tifffile | 2025.6.11 |
| ghp-import | 2.1.0 | networkx | 3.3 | torch | 2.5.1+cu118 |
| idna | 3.11 | numpy | 2.1.2 | torchvision | 0.20.1+cu118 |
| image-quality | 1.2.7 | opencv-contrib-python | 4.11.0.86 | tqdm | 4.67.1 |
| imageio | 2.37.0 | opencv-python | 4.11.0.86 | typing_extensions | 4.12.2 |
| internetarchive | 5.7.1 | opt_einsum | 3.4.0 | Unidecode | 1.4.0 |
| jax | 0.6.2 | packaging | 25.0 | urllib3 | 2.6.2 |
| jaxlib | 0.6.2 | pathspec | 0.12.1 | watchdog | 6.0.0 |
| jellyfish | 1.2.1 | pillow | 11.0.0 |
Een dump van PyPi-installaties op een van mijn drukste machines. Sommige van deze kleine woorden verbergen gigabytes aan schijfruimte – met name alles wat met Torch/PyTorch te maken heeft.
Kort samengevat, lokale AI kan uw computervaring terugbrengen naar de vroege jaren 90, net iets voorbij het tijdperk waarin een programma als Word moest worden geladen in een paar KB RAM, één grote floppydisk tegelijk; maar vóór harde schijfallocaties u enige ruimte gaven om adem te halen.
Het vinden van de onderstromen
Ik was benieuwd of een toename in PyPi-installaties in de afgelopen jaren kon dienen als een index voor lokale AI-adoptie, wat over het algemeen vrij moeilijk te volgen is, behalve door intuïtie wanneer u deelneemt aan diverse AI-gemeenschappen en opmerkt welke platforms en pakketten aandacht krijgen.
Een vluchtige blik op de PyPi-statswebsite toont een teleurstellend smalle reeks datums, die allemaal echter een constante groei in downloads aantonen:

Stijging in downloads van alle Python-pakketten sinds het begin van 2026 – hoewel de beschikbare reeks datums zeer smal is. Bron
Het zou geweldig zijn om die reeks datums uit te breiden tot 2020 en te zien of de stijging constant blijft, of (zoals men zou vermoeden) scherper steeg in 2024-26 – als gevolg van de ongecontroleerde acties van agentic AI-systemen.
Helaas verklaren officiële PyPi-bronnen dat downloadstatistieken voor PyPi niet beschikbaar zijn, vanwege diverse redenen, waaronder CDN-cachecache, onnauwkeurige downloadtellingen veroorzaakt door caches, mirrors, onofficiële downloadinflatie en historische gegevenskwaliteitsproblemen – en, volgens de Python-site, hun beperkte bruikbaarheid als maatstaf voor de kwaliteit van een pakket.
Niet zo snel
PyPi geeft echter de componenten uit die nodig zijn voor anderen om downloadtrends te analyseren; er zijn daarom diverse websites die meer dan een maands reeks bieden, zoals PepySite – maar de meeste zijn gebaseerd op abonnementen, en u moet betalen om de langere trends en statistieken te zien (tot $490 USD per maand in één geval, voor het ‘VC’-pakket).
Is er dan iets dat we kunnen afleiden over Python als index van AI-versnelling, weg van de dure API’s die deze trends voor de welgestelden uiteenzetten?
Hoewel PyPiStats een FOSS-bron is, biedt het om de een of andere reden slechts de meest recente maandsstatistieken, en kan deze reeks niet worden uitgebreid, zelfs niet tegen betaling.
Gelukkig is er één site die gulzig is – op ClickPy kunt u tenminste zoeken naar de adoptiegeschiedenis van individuele pakketten, zelfs als de som hiervan niet wordt georkestreerd in een overzicht dat gemakkelijk bredere, gecoördineerde trends oplevert. Hier, bijvoorbeeld, is de passage van de Transformers-bibliotheek sinds 2016 (hoewel alleen geldig sinds de lancering in 2019):

De meteorische stijging van transformers. Bron
Wat betreft de verheven Torch, voor het eerst uitgebracht in 2002, maar niet bestemd om thuisbrekers van AI te kwellen totdat het werd ontwikkeld tot PyTorch, en de opkomst van Transformer-gebaseerde VLM’s en generatieve AI die verband houdt met afbeeldingen en video’s..?

Torch-downloads sinds 2017, met een steile stijging omhoog in de afgelopen 2-3 jaar.

PyTorch in dezelfde periode, met een plateau en soms een sprong boven een stabiele basis.
Meer interessant, bijvoorbeeld in het geval van PyTorch (zie de afbeelding recht boven), is de overzicht van adoptie over diverse Python-versies sinds 2017:

PyTorch-downloads in de loop van de tijd sinds 2017, per Python-versie, waardoor een extra dimensie van inzicht in de adoptie sinds de ‘hot’ periode van deze derde AI-revolutie ontstaat.
Als de bovenstaande statistieken de toename van de adoptie sinds de komst van echt capabele LLM- en VLM-systemen verlichten, wordt dit nog duidelijker wanneer het wordt bekeken per systeem:

Adoptie van PyTorch sinds 2017, geïnterpreteerd per besturingssysteem.
Hetzelfde verhaal gaat op voor het accelerate-pakket – een van de meest benodigde bibliotheken voor AI-gebruikers met beperkte VRAM die proberen zo veel mogelijk uit hun systeem te halen:

De opkomst van ‘accelerate’, per besturingssysteem.
Daarom gaat het voor elk willekeurig pakket of bibliotheek dat u onderzoekt op ClickPy, en het zou zeker interessant zijn om een overzicht te maken in plaats van de stukjes een voor een op te zoeken.
Een ding dat duidelijk wordt uit de ‘per besturingssysteem’ grafieken is de toename van Linux-adoptie. Terwijl Linux-desktopadoptie een gestage maar langzame stijging maakt in het gezicht van onpopulaire Windows-strategieën, is het gebruik van Linux omgevingen duidelijk in een aanzienlijke opmars.
Want ik draai Ubuntu virtueel op WSL2 in Windows voor diverse Docker-containers, waarin Docker een echte Linux-systeem kan gebruiken op dezelfde voorwaarden als de (vermoedelijk Linux-native) ontwikkelaars voor ogen hadden. Dat zijn twee actieve Linux-systemen in een volledig Windows-LAN (vanuit het oogpunt van de onderliggende hardware), met een native Linux-laptop die ongeplugged in de coulissen wacht voor minder hectische tijden.
Conclusie
In termen van CLI-gebaseerde pakketdownloads is het interessant om op te merken hoe gretig en nagestreefd deze zeer technische ruimte is geworden in de nasleep van AI.
De toename in pakketconsumptie begint een beveiligingsrisico te worden, met de komst van slopsquatting. Aangezien LLM’s geneigd zijn om pakketten te hallucineren, zullen ze waarschijnlijk daadwerkelijk verzoeken doen voor verzonnen pakketten. Vanwege de overeenkomst in convergentie zullen de nep-pakketten waarschijnlijk opnieuw voorkomen in andere bibliotheekaanroepen, tot het punt waarop het de moeite waard is voor kwaadwilligen om de nep-pakketten daadwerkelijk beschikbaar te maken voor toekomstige pulls/oproepen – natuurlijk, met een kwaadaardige payload:

Uit het artikel ‘We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs’ – AI-gedreven codegeneratie breidt de aanvalsoppervlakte van de supply chain uit. LLM’s hallucineren vaak niet-bestaande pakketnamen, waardoor ‘slopsquatting’-kwetsbaarheden ontstaan die kwaadwilligen exploiteren wanneer geautomatiseerde pijpleidingen ongeverifieerde afhankelijkheden blindelings trekken. Bron
Eerst gepubliceerd op vrijdag 24 juli 2026












