uBlock Origin's volunteer team will no longer chase Facebook's shifting ad-detection tricks, calling it a 'disgusting anti-user site.' Here's what that means for your feed.
Let me preface this by saying that I am generally against AI and I hate LLMs being pushed everywhere, but I currently hate facebook and social media even more than AI.
I think that ad blocking might actually be a good use of a model trained to detect ads: AI models are “black boxes” and it would make it difficult for facebook to find out precisely how the detection works and workaround it. Imagine a tiny classifier running locally, whose only job is to look at a post html or resulting rendered pixels and detecting if it’s an ad or not, and then generating the blocking rules.
It would be quite cool, because it would work on any website without an explicit list of ad-blocking rules that somebody needs to maintain.
AdGraph differs from existing approaches by building a graph representation of the HTML structure, network requests, and JavaScript behavior of a webpage, and using this unique representation to train a classifier for identifying advertising and tracking resources… We evaluate AdGraph on the Alexa top-10K websites, and find that it is highly accurate, able to replicate the labels of human-generated filter lists with 95.33% accuracy, and can even identify many mistakes in filter lists.
At the end of the day, the whole point of uBO is to be lightweight and fast. You aren’t wrong about a machine-learning based approach, but its not really a fit for them IMO.
But.
I think a reasonable approach would be to have bots and agents generate adblocking rules, to be tested by humans, then shipped to users of various adblocking engines.
The engineering is far easier. Performance/latency constraints are minimal, 1 bot can maintain thousands of rules for millions of users, and it isn’t necessarily availible to reverse engineer, either.
Some adblock lists must do this, already. I know they already use some automation, but I don’t know the details TBH.
Yeah, even a well built agent is pretty resource intensive. Your hybrid idea makes more sense. People underestimate just how resource intensive AI is. Anyone who has built their own AI rig can tell you it is NOT a lightweight process that can conveniently sit in a browser plugin without being its own annoying obstacle.
It would make a good second (or third) layer of defense. The problem with it is that it’s reactive not proactive, so you need to download the ad first before it can decide to block it or not. URL blacklists are the superior option, but hard to maintain. The ideal setup would be a URL blacklist that’s automatically updated on the fly by an AI classifier so anything that slips through the blacklist gets ban hammered by the AI and added to the blacklist to prevent future wasted bandwidth. If the blacklist updates were shared the same way some of the ad blockers do currently it could be incredibly effective as it would be essentially distributed realtime ad blocking.
Honestly, I would use that even if it meant an additional gig and a half to two gigs of ram usage to run the browser. I’m already having to allocate one to four gigs for the browser anyway, so might as well.
Let me preface this by saying that I am generally against AI and I hate LLMs being pushed everywhere, but I currently hate facebook and social media even more than AI.
I think that ad blocking might actually be a good use of a model trained to detect ads: AI models are “black boxes” and it would make it difficult for facebook to find out precisely how the detection works and workaround it. Imagine a tiny classifier running locally, whose only job is to look at a post html or resulting rendered pixels and detecting if it’s an ad or not, and then generating the blocking rules.
It would be quite cool, because it would work on any website without an explicit list of ad-blocking rules that somebody needs to maintain.
This was a thing long before the AI craze: https://ieeexplore.ieee.org/document/9152669
They made a Chrome extension, in 2020: https://github.com/uiowa-irl/AdGraph
But practically, it’s tricky because:
It still needs to load and render the ads. Not undoable; Adnauseum does this, but its a much more performance-intense approach.
There’s always the risk of unpredictably blocking legitimate elements.
Image/text classifiers aren’t actually black boxes. Hence there were also adversarial measures against this… before the AI craze: https://web.cs.ucdavis.edu/~zubair/files/a4-acsac2021.pdf
At the end of the day, the whole point of uBO is to be lightweight and fast. You aren’t wrong about a machine-learning based approach, but its not really a fit for them IMO.
But.
I think a reasonable approach would be to have bots and agents generate adblocking rules, to be tested by humans, then shipped to users of various adblocking engines.
The engineering is far easier. Performance/latency constraints are minimal, 1 bot can maintain thousands of rules for millions of users, and it isn’t necessarily availible to reverse engineer, either.
Some adblock lists must do this, already. I know they already use some automation, but I don’t know the details TBH.
Yeah, even a well built agent is pretty resource intensive. Your hybrid idea makes more sense. People underestimate just how resource intensive AI is. Anyone who has built their own AI rig can tell you it is NOT a lightweight process that can conveniently sit in a browser plugin without being its own annoying obstacle.
Yeah. I’m all for local inference, but to be clear, you can’t have a local agenic LLM as a Adblock browser plugin.
It’s also massively redundant. Why not just run the agent once and ship the rules to millions of users?
Text and image classification models are tiny, though. That’s definitely doable in an extension, albeit not worth the performance cost, IMO.
Also, there are already browser forks built for agenic usage.
If you want, say, generate UBO rules to use, this is the way to do it. Not hacked in as an extension.
It would make a good second (or third) layer of defense. The problem with it is that it’s reactive not proactive, so you need to download the ad first before it can decide to block it or not. URL blacklists are the superior option, but hard to maintain. The ideal setup would be a URL blacklist that’s automatically updated on the fly by an AI classifier so anything that slips through the blacklist gets ban hammered by the AI and added to the blacklist to prevent future wasted bandwidth. If the blacklist updates were shared the same way some of the ad blockers do currently it could be incredibly effective as it would be essentially distributed realtime ad blocking.
Honestly, I would use that even if it meant an additional gig and a half to two gigs of ram usage to run the browser. I’m already having to allocate one to four gigs for the browser anyway, so might as well.