Crawl-delay on msnbot can override bingbot rules in robots.txt
What this page documents This page documents an observed robots.txt behaviour in Bing crawling based on server log…
Briljant
co-auteur: Gerwin. Een praktijkcase over het automatiseren van ALT-teksten voor toegankelijkheid
TL;DR: Na het succesinzichtsvolle content-embeddings project wilden Gerwin, Annegien en ik LLM’s gebruiken voor ALT tags (specifiek goede ALT tags voor toegankelijkheid). Uiteindelijk bedachten we om AI en Python inzetten om 7.100 productafbeeldingen automatisch van kwalitatieve ALT-teksten te voorzien. Ondanks echt heel veel testen en hertesten van verschillende prompts en modellen (BLIP, Azure Computer Vision, GPT-4 Vision) lukte het niet om aan de gestelde kwaliteitseisen te voldoen. Dit blog beschrijft wat werkte, wat echt niet werkte, en de belangrijkste lessen. Automatisering (of zoals we het hier noemen automagischering, is geweldig, maar heeft, net als kennis, grenzen – vooral bij digitale toegankelijkheid waar context en nuance cruciaal zijn.
We zijn bij BG van nature vrij sceptisch over nieuwe technologieën en AI-hypes. We geloven pas in iets als het zich in de praktijk bewijst. Toch laten we ons graag verrassen en daarom gingen we, nadat we erachter kwamen dat LM’s veel valkuilen hebben, deze uitdaging aan: Kun je met AI, LLM’s en een beetje Python duizenden kledingafbeeldingen automatisch voorzien van perfecte ALT-teksten?
Goede ALT-teksten zijn cruciaal. Niet alleen voor organische optimalisatie, maar vooral voor digitale toegankelijkheid. Voor een kledingmerk wilden we duizenden productafbeeldingen laten beschrijven volgens strikte richtlijnen:
Gerwin heeft veel tijd en energie gestoken om een GPT te maken die op basis van zeer duidelijke kaders echt goede ALT tags kan formuleren. Hieruit kwamen ondanks veel finetuning zeer veel hallucinaties, dus er was noodzaak om te kijken hoe we visuele analyse konden oppassen. Beschrijven wat er echt op een afbeelding staat. Dat kan, maar is alleen mogelijk met het uploaden van individuele afbeeldingen in chatGPT, wij wilden het alleen op schaal, want 7.100 afbeeldingen. Dus niet alleen een upload in een LLM, maar juist een automatisering die op basis van productURL alle afbeeldingen in een Gallery vind en die vervolgens zelf gaat analyseren.
Met LLM en Python moet dit toch gewoon goed te doen zijn? Nou, niet dus hoor.
We hebben lang getest, gesleuteld en gefinetuned. Geen enkele tool deed precies wat we nodig hadden, hoe slim of geavanceerd ze ook leken. Hier een inhoudelijk overzicht van wat we geprobeerd hebben:
Wat is het? Een open-source model dat is getraind om afbeeldingen te beschrijven.
| Voordelen | Nadelen |
|---|---|
| Toegankelijk, open-source | Getraind op generieke beelden |
| Snel te integreren in Python | Begrijpt context niet |
| Documentatie beschikbaar | Mist nuance in kledingbeschrijvingen |
Onze ervaring: BLIP herkende wel ‘man met kleding’, maar snapte niets van context. Aanzicht, camerastandpunt of specifieke focus op het juiste kledingstuk? Kansloos. Uren gestoken in prompt-tuning en toch steeds dezelfde beperkingen.
# Voorbeeld van onze BLIP-implementatie
from PIL import Image
import requests
from transformers import BlipProcessor, BlipForConditionalGeneration
processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")
image = Image.open(requests.get(image_url, stream=True).raw)
inputs = processor(image, return_tensors="pt")
# Poging tot prompt aanpassing (werkte niet goed)
prompt = "a clothing item, describe color, viewpoint and camera angle"
inputs = processor(image, text=prompt, return_tensors="pt")
out = model.generate(**inputs)
print(processor.decode(out[0], skip_special_tokens=True))
# Output: "a man wearing a red shirt" (mist aanzicht, camerastandpunt, etc.)
Wat is het? Microsoft’s enterprise-grade beeldherkenningsdienst.
| Voordelen | Nadelen |
|---|---|
| Stabiele API | Te oppervlakkige beschrijvingen |
| Goede documentatie | Focus op verkeerde elementen |
| Schaalbaar | Kleurdetectie vaak incorrect |
Onze ervaring: Ondanks alle parameters leverde Azure beschrijvingen op die te oppervlakkig waren. Het zag “person” en “indoor”, maar vergat het belangrijkste: het kledingstuk centraal stellen. Dominante kleuren sloegen vaak op de achtergrond of de broek, terwijl het om het T-shirt ging.
Wat is het? OpenAI’s nieuwste modellen met visuele herkenningscapaciteiten.
| Voordelen | Nadelen |
|---|---|
| Sterke taalbegrip | Moeite met visuele details |
| Flexibele prompting | Inconsistente output |
| Context-awareness | API-kosten en limieten |
Onze ervaring: Hier hadden we hoge verwachtingen van, maar al snel bleek dat Vision-modellen moeite hebben met detailniveau. Aanzicht werd vaak geraden of genegeerd. Daarnaast beperkte toegang en limieten in verwerkingscapaciteit. We hebben geprobeerd met chained prompts en context, maar de output bleef inconsistent.
Wat is het? Scripttaal voor automatisering binnen Google Workspace.
| Voordelen | Nadelen |
|---|---|
| Integratie met Google Sheets | Geen beeldherkenning |
| Automatisering van workflows | Puur hulpmiddel, geen oplossing |
| Laagdrempelig | Beperkingen in verwerkingssnelheid |
Onze ervaring: Uiteindelijk bleek dit meer een hulpmiddel voor dataverwerking dan een oplossing voor de kern: kwalitatieve beeldherkenning en tekstgeneratie. Het vulde hooguit enkele gaten, maar loste niets fundamenteels op.
Wat is het? Experimentele modellen met focus op multimodale taken.
| Voordelen | Nadelen |
|---|---|
| State-of-the-art beloftes | Installatieproblemen |
| Open-source | Downloadrestricties |
| Theoretisch sterk | Niet specifiek voor kleding |
Onze ervaring: Downloadrestricties, VPN-pogingen, dependency-issues… Zelfs als we het model binnenhaalden, bleek dat ook deze modellen niet specifiek genoeg waren voor onze kledingcase. A ffing waste of time :-D.
| Voordelen | Nadelen |
|---|---|
| Kan ruwe output verbeteren | Garbage in = garbage out |
| Goede tekstuele aanpassingen | Gokken zonder visuele input |
| Schaalbaar | Kostbaar en inefficiënt |
Onze ervaring: Een slimme poging om ruwe AI-output te laten verbeteren door GPT. Maar zoals altijd: garbage in = garbage out. Zonder goede visuele input bleef GPT gokken. We hebben prompt na prompt herschreven, maar zonder relevante basisinformatie blijft ook GPT beperkt.
Na lang experimenteren hebben we een aantal belangrijke inzichten opgedaan:
Het is dus niet gelukt om volledig automatisch perfecte ALT-teksten te genereren, maar we zijn wél veel wijzer geworden over wat wél en niet werkt. En vooral ook over dat de vervolgstap, het zelf trainen van een model, niet op onze planning komt :-).
Hoewel we dus niet tot een 100% geautomatiseerde oplossing kwamen, hebben we er wel leuke zaken uit kunnen halen:
Voor anderen die vergelijkbare projecten overwegen, hier enkele praktische lessen:
Generatieve AI, LLM’s en Python zijn geweldige hulpmiddelen, maar geen wondermiddel. Zeker als het aankomt op digitale toegankelijkheid en contextuele beschrijvingen. Je hebt gelukkig zoals altijd, veel meer nodig dan alleen technologie — je hebt inzicht, structuur en vooral realistische verwachtingen nodig.
Wat we vooral wilden bereiken met deze case, is dat je met LLM/Python-projecten goed moet nadenken over processen. Dat werd eerder al bevestigd in de andere Python-case, waarin we met embeddings de relevantie berekende tussen klantvragen en content. Dáár werkte het goed, omdat de taak beter paste bij de sterktes van LLM’s: tekstuele semantiek in plaats van visuele interpretatie.
Dus ja, het is niet geworden wat we hoopten, maar het heeft ons opnieuw geleerd hoe belangrijk het is om technologie in te zetten waar het écht waarde toevoegt.
Persoonlijke noot: Net als bij de vorige blog over content-embeddings delen we dit als inspiratie en leermoment. We zijn geen AI-experts of developers, maar een praktijkprofessionals die graag experimenteren. Er zijn ongetwijfeld betere manieren om dit aan te pakken – laat het weten als jij die kent!
What this page documents This page documents an observed robots.txt behaviour in Bing crawling based on server log…
Elke paar maanden lijkt onze industrie weer een nieuwe hype, shortcut, afkorting, monetizationmodel uit te vinden waar je…
Er is geen samenvatting, omdat dit een beschermd bericht is.