allowing one to replay all games.
It looks like the strategy involves letting the computer completely surround a group with 2 eyes, and then depriving that surrounding group of 2 eyes (which the AI appears to be blind to).
I thought Kasparov had a perfectly reasonable argument that in a human v human contest, the players and any coaches have access to a public record of all previous contests the opponent participated in, and can use this information to prepare for a match. Deep Blue had Kasparov's record, but he didn't have Deep Blue's record, which is lopsided.
You are always exploiting the flaws of your opponent in these games. Winning is a matter of exploiting more than you have been exploited.
Exactly. Human player are never given enough of a chance to exploit the AIs. When an OP strategy exists in the metagame literally the whole playerbase tries to exploit it, which is how the metagame evolves. No such process exists for playing against AIs.
I think it has learned that stones completely within your own ring of stones are dead and can just be assumed part of your own eyespace. It has just failed to learn the exceptional case where such stones form 2 eyes.
Congrats! I see by comparing the author list of v1 and V2 of this paper[1] that a Go player[2] was consulted before making claims about defeating a Go AI. This is indeed a nontrivial exploit that passes muster with a Go player who was skeptical last time around [3]!
Context: v1 of the paper exploited a misconfiguration in how they configured the Go AI to play with an esoteric ruleset (the vulnerability that they found was documented in the KataGo docs, took me a few minutes to find it. KataGo still played much better Go than their adversarial program and no Go player would dispute it). My analysis at the time: https://twitter.com/AurSaraf/status/1588184384116514818
Now they fixed the misconfiguration so their training could find actual weaknesses, and they found a very big actual weakness, that even weak amateur Go players like me can look at and say "oh my God AI what are you doing defend your group!". And it even generalizes to another popular Go AI, which is great!
This is a great result, very impressive, great work by the team.
Appendix H in the paper does a good job of explaining why this cyclic topology thing makes sense -
"David Wu’s hypothesis is that information propagates through the neural network in a way analagous to going around the cycle, but it cannot tell when it has reached a point it has "seen" before. This leads to it counting each liberty multiple times and judging such groups to be very safe regardless of the actual situation."
(David Wu is author of KataGo)
I'm a little bit more skeptical now; it seems like what happened was that David explained some known pathologies of Go AIs (based on analysis by Go AI experts), and one of those pathologies (cyclic topology) was soft-coded into an agent and then run through the adversarial training process to harden it, producing the result in the paper. The arrow of causality runs backwards here - I would be far more impressed if the adversarial training process could help elucidate failure modes of AIs. This looks more like expert analysis laundered through adversarial ML woo...
One of the authors here. There was no soft-coding in our adversary; it learned from scratch (random initialization). The only "soft-coding" done (probably closer to hard-coding), which we sometimes refer to as hardening, was on the victim (not the adversary), in order to make sure the victim did not lose to the pass-vulnerability, in turn forcing the adversary to look for an arbitrary new vulnerability. In other words, this only made the problem harder for our adversary algorithm. This is discussed in more detail in section 4 of our paper under "Initialization."
Actually, at the time it was first trained, we were not aware of this pathology. We found out in later discussion that it was partially known in the computer go community. That is, cases where bots failed in cyclic ("loop") positions had been recorded. However, to our current knowledge, it was not known that it could be consistently targeted, whether by algorithm or by human, without very specific positions or specific sequences.
As a go player I fully agree. I have criticized the v1 exploit few months ago as irrevant rule glitch exploit, but this is indeed relevant and beautiful real go understanding exploitation.
Could play against adversarial policies become part of the training alongside self-play?
It's possible that would be a very slow, essentially "serial" process--adversaries don't really find a new trick until the AI can avoid the old, like with the pass attack in this paper. I'd also be curious whether training against adversaries makes the networks better or worse at general-purpose play or causes no change, but there's an argument that more-robust-but-slightly-worse-on-average is an overall improvement.
It also seems relevant to looking at weird behaviors of other models, like what we're seeing as people poke at LLMs more. Some of what we're seeing might simply be that they respond weirdly to some fraction of all prompts because they're not quite baked; also, we haven't defined their goals all that well yet. But automatic searches for problematic classes of input seem like a possible tool for keeping things more on the rails.
Adversarial play is going to be huge moving forward. It’s not that exciting anymore to create a generic chess engine that can beat people. But an engine specifically tuned to exploit Magnus Carlsen’s weaknesses? I bet he would pay handsomely for that. Doubly so for his next opponent.
It’s like the difference between sparring with a teacher vs sparring with Tyson Fury. You don’t learn that much from being obliterated by Stockfish. Stockfish is too strong.
An engine which is tuned to beat Carlsen would demonstrate his specific weaknesses, for example specific issues with an opening he plays.
For his opponents, they already try to do this. “He plays this opening a lot” is a model of Carlsen, just limited to the first few moves of the game.
I assume they mean instead of minimax (ie assume perfect from the opponent), to play around the flaws of the opponent.
If you know the opponent won't spot a certain line, or will choose a certain sub optimal line, you would have an advantage by playing around that. Kind of like how you can play fools mate on a newbie.
Few years ago, the author of KataGo tried to solve one of the hardest handcrafted problem in Go using AI[1]. In the article, he pointed out that the engine had noticeable weakness of solving large scale fight and resolving odd shapes.
I think the study confirms that weakness, and I am surprised that the tactics (to setup the circumstance for exploit) are easy to understand because those are actually being commonly taught to be strategic blunders to avoid. E.g. allows a group to be completely surround in early game is highly inefficient, even if the group survives with 2 eyes, it's only netting 2 points.
Hats off to Pelrine, but isn't AlphaGo still a cut above the other Go AIs? My gut feeling in this is that this is directly analogous to saying "high level amateur chess player defeats FIDE Grandmaster." There are over 2000 grandmasters, but only one Magnus Carlson.
KataGo has multiple components, the two main ones being MCTS, and the policy network. The policy network looks at the board, and gives probabilities for which moves are likely to win. (If that network had “solved” the game, all winning moves would have equal probability, and all others would be 0%.)
But the game is not solved, which is where MCTS comes in. It picks a move, and plays through it, selecting moves that are good but varied, until it learns more about which side would likely win (typically by expanding a leaf of the search tree). Each playthough is a visit. Each visit allows updating its estimate of the win probability for that move, and thus, changes the policy probabilities.
More visits typically anchor the policy estimates into reality further, yielding better play. In fact, this is how the policy network learns.
Thanks! So, is the 100k visits "a lot" for KataGo, or not so much? I understand that without the special anti AI tactics described in the article this would result in "superhuman" play, but what is the reasonable practical limit for the number of such visits?
100K visits is a reasonably large amount. ELF OpenGo beat professional players 20:0 with 80K visits per move[0]. The AlphaGo version that beat Ke Jie likely did 200K visits per move, since the paper indicated that their 1600 simulations per move during training corresponds to 0.4s of think time (with 4 TPUs).
On a good consumer GPU (RTX 3060), I get 1.6K visits per second, so 100K takes about a minute. That makes a game last three to five hours typically.
But the paper emphasizes that even with 10M visits per move (>1h per move), KataGo loses 72% of games against this exploit[1].
The article says:
"AlphaGo is not publicly available, but the systems Pelrine prevailed against are considered on a par"
I assume this means they are supposed to be stronger than the best humans. If that is the case, this is a high level amateur defeating a stockfish-like engine.
But they don't mention Alpha Go Zero, which is on another level from Alpha Go because it's not held back by human game sample data.
Now the article mentions Leela Zero
and that one is an open source version of Alpha Zero where they used a community effort to do the same as Alpha Go zero described in the paper.
I see that this took multiple years but was declared finished in 2021.
Status page says it played games in training are 21 million while Wikipedia says that for alpha go zero it was 5 million.
So you'd think it's better but actually it might just mean that they are not using they same techniques after all and so maybe worse.
So question for me still is whether this technique would actually be applicable to Alpha Go Zero.
But for me, this article is more a win for AI, because it means that they have found better techniques to find blind spots in models which can from now on be used in training to eventually get rid if those.
While it is possible that two trainings yield different weaknesses, the original paper is precise enough (and the authors were active enough in message boards) that it could be reproduced. Some tweaks were added as things went along. However, the fact that KataGo and ELF OpenGo, which have different tweaks but are also based on AlphaZero, are also vulnerable implies that it is very likely that AlphaGoZero and AlphaZero share the weakness.
The fundamental issue is that they all do self-play, and those plays follow the same statistical distribution as a result. Weird games happen rarely, while the adversarial network forces a weird game every time.
On the other hand, I am not sure whether MuZero would be vulnerable. I would guess so, but its dynamics system may learn something extra about the state of the board.
Either way, it seems clear that future self-play training should include adversarial models, instead of pure self-play.
(They also all share another weakness, including MuZero, which is that their MCTS algorithm doesn’t allow the neural network to gain board information from their evaluation of possible futures; only win rate. Meanwhile a human sometimes realizes, while navigating a possible sequence of moves, that one particular early move could turn the tide.)
My understanding is the weakness comes from the fact that convolutional nn are used and how the information propagates through layers.
It's been known from the beginning that this kind of position (large cyclic hroups) is a weak spot of all bots based on those cnn.
What was not clear at all was whether it's possible to force those positions.
Definitely true! Despite that, it is probably possible to make it detect this pattern, but only if it appears during training. The thing is that this becomes a vicious circle: the network fails to learn this because its architecture is not conducive to that, so it doesn't play it right with the limited self-play visit count, so the right line doesn't appear in the self-play, so it fails to learn it.
KataGo adds a few situations in training which didn't appear in self-play, "blind spots" that a shallow search depth fails to notice as good moves, so that it still tries to learn from positions it would not generate.
It is a little bit like learning to tie your shoelaces. Brains are not great at guessing the qualities of knots among all possible ties, but if you see it done once, you're set for life.
This reminds me of FSD behavior.. flawlessly navigate lane changes in heavy traffic around a bend at 100kph, but then get paralyzed at 0kph by a lone stop sign in my home neighborhood with no cars in sight.
Maybe it spends so much time over fitting for the hard cases it just doesn't have enough basic experience.
This is the standard problem with machines. When humans are given a task they won't usually follow their orders in totally absurd situations. Machines have no definition or notion of absurd.
True, one AI was used to found a weakness in another AI. But then it turned out that the weakness could easily be used to defeat that the AI by a strong amateur level player. 6 Dan amateur is about 1 Dan professional, realizing that Lee Sedol was a 9 Dan professional player. I guess that many amateur Dan players can master the weakness. It also seems to shows that the AI does not have the 'deep understanding' of Go as it was thought to have to be able to beat the top professional players. We might be still a long way away from an AI that truly understand the game. And if this is true for one game, it might also be the case for many other AIs. The road to General Intelligence might still be a long road.
Maybe because I'm a programmer but your comment mystifies me a little because I never thought the AI player had a 'deep understanding' of Go any more than I think string sort routines have a deep understanding of all the alphabets in the world.
> long way away from an AI that truly understands the game
What do people mean you mean by this? An AI that can follow the process of human reasoning that mimics human understanding or an AI that actually reasons about any topic by having human agency and awareness?
Another point: I'm assuming The AI that lost can be fixed. Maybe very soon.
The claim about AI having a deep understanding of Go comes from top tier Go players
"After humanity spent thousands of years improving our tactics, computers tell us that humans are completely wrong... I would go as far as to say not a single human has touched the edge of the truth of Go." - Ke Jie, the number #1 Go player in the world at the time, speaking after his loss to an AI
I'm not hearing Ke Jie saying computers understand Go. I'm hearing Ke Jie saying that machine enhancement of Go playing has shown there is very much more to the game of Go than we realized.
To me it is like the invention of the microscope and how it showed there was a whole world of microbes we didn't know about, but no one says microscopes understand microbes.
Microsocopes magnify images. That's only a small part of whay is interesting about microbes. Playing betters moves than anyone is a very interesting part of Go.
When as a human player, you learn to play go, there are a number of concepts you have to grasp. It starts with understanding when how a group of stones can be captured. Next you have to learn when a group of stones is dead or alive. And there are all sorts of complexities in this (like ko-fights). And the next thing you have to learn is aji (taste in Japanese), which is also a lot about potential. A group does not need to have a defined life or death state, if it has some potential to become alive or able to escape and connect to stones that are alive. At an even higher level, you need to understand learn to view the balance of the whole board, grasping what is urgent and/or important. This is something many amateur Dan players wrestle with.
Now when professional Go players were defeated by AIs, it looked like these AIs mastered all those concepts. They excelled at playing a very balanced game, came up with very creative moves that had excellent aji, avoided bad aji. But now the adversary strategy, which can be explained in a few sentences to every Dan level amateur player, reveals that the AIs do not even have a good understanding of life and death. They fall for 'trick' moves that even I, a weak amateur (about 10k) player would have how to defend myself against. If you see some of the final boards, it almost looks the kind of outcomes you would see for players at my level.
> I never thought the AI player had a 'deep understanding' of Go any more than I think string sort routines
It has a neural network trained on millions of games. Of course the model captures more than a sort routine which is non-parametric, in other words not trainable from data. The game of Go is complex enough that we can't code it up manually.
The fact that AI is implemented on matrix multiplication does not detract from it, humans are implemented in electro-chemical reactions. These reactions are all local, no single cell in our body has the big picture.
On the other hand, human understanding is also brittle - how many Go players still can't beat the AI even after this article has been posted? Blind spots/adversarial attacks exist in both humans and AI. It was AlphaGo that influenced the way Go is played at the top levels by introducing new strategies, techniques and moves that were previously considered unconventional or suboptimal by human players. AlphaGo found blind spots in our thinking first.
> I never thought the AI player had a 'deep understanding' of Go any more than I think string sort routines have a deep understanding of all the alphabets in the world.
Go AI have networks that map a board state to probability of winning. A perfect AI would correctly know whether or not any given board is a win for white or black. In general, better human understanding of the game directly allows you to better estimate if a board is a win or a loss.
Katago without tree search is plays at a professional level. I would say that this corresponds to at least professional level human intuition.
String comparison algorithms lack an objective "correct" ordering so it is hard to say what a correct sort should do. But a string comparison using utf8 has a super human (compared to any given person) understanding of alphabets because of the many people involved in ratifying the characters included in unicode.
I have a different (and I think correct) definition of 'understand'
: to have understanding : have the power of comprehension. : to achieve a grasp of the nature, significance, or explanation of something. 3. : to believe or infer something to be the case. (Miriam)
String comparison routines can sort strings like a super human, but they don't understand what they are doing. Neither does the Go AI.
I guess people are using 'understand' in a more casual sense, like my "rice cooker automatically cooks my rice, so it can be said to understand how to cook rice."
You’ll notice that the definition of “understanding” is quite vague, and in particular it is untestable. In fact, I think we understand quite a bit less than we think we do. Grandmaster chess players will identify maybe 5 or so candidate moves in a position to assess, but the actual process of pruning the game tree is hardly deliberate. I assume Go is similar. Chess tactics are often “seen” quickly and subconsciously. Players are encouraged to practice chess tactics to train their subconscious in this way. Evaluating a position is an extremely qualitative exercise as well.
It seems that MCTS rollouts are a pretty good way of “understanding” a position. It is arguably one of the most unbiased ways. That fact alone suggests to me that it is at least very hard to judge. Maybe it is not interpretable by you or I, but I can’t say that rules out understanding.
I go back and forth on this. Machines aren’t introspective enough to have the kind of behavior most would call “understanding”. But then again, people aren’t either. And I don’t mean that in the most people are stupid but I’m very smart sense. I mean we quite literally don’t know why we have thoughts, we just do. We’re able to use words to provide justifications after the fact, but that’s not the same thing. The origin of any thought is a mystery to us.
everyone makes mistakes, but not everyone makes the same mistakes. depending on their mistake, players very much can and do conclude a lack of relevant understanding. this conclusion is an integral part of the learning process.
well if you're gonna deconstruct things to that level then you could also equivalently say this is and always has been a story of one(/a group of) human(s) beating another
I doubt there are any high level players in the world of games like Go that haven't studied with an AI. Or at the very least spent time practicing against one. Even if you only learned Go from humans, somewhere along the lines someone probably taught you something that was learned via AI.
Impressive that in the same thread you swung from "computers can't understand Go like humans" to "humans can't understand Go a swell as computers without computer help"
> humans can't understand Go a swell as computers without computer help
That's not what I said. What I said and what was my intended meaning was that humans can understand Go at a deeper level with a the aid of a computers. The computers don't understand go at all. They're software.
I am much more familiar with the development in the chess world.
Since Deep Blue beat Kasparov in 1997, there was a lot of progress in the development and the architecture of chess engines. Back then, we did not have neural networks. A lot of the strategies of chess engines are now used by chess grandmasters. As an example, the value of the activity of pieces was underrated in contrast to the value of material.
As there are more generations of chess engines than go engines, it would be quite interesting to pull something similar off against them. My intuition is that it maybe works against Leela, as LeelaChess basically uses only neural networks (think alphago but for chess), whereas it should not work with Stockfish, as some parts of Stockfishs evaluation function are still adjusted by hand.
Has there been significant progress in Go in terms of AI strength after AlphaZero (like there has been with chess), or has Go AI stagnated because of lack of interest and/or resources?
There was a lot of great work done replicating and then improving on AlphaGo in an open manner. The center(s) of that were LeelaZero and then KataGo.
It's a bit hard to say for sure (since you can't pit them against each other, AlphaGo isn't available), but KataGo is very likely to be well stronger than AlphaGo ever was, unless maybe they contuinued it internally (unlikely).
If nothing else it's vastly more efficient to train and experiment with.
Oh yeah, I remember hearing about that one before. The one coming to mind for me was actually named after him, the AI built to oppose Skynet: https://terminator.fandom.com/wiki/John_Henry
A real John Henry competition wouldn’t have the human find out the vulnerability from another AI and exploit it. He would have picked up his own Go pieces and a little piece of board and played until it was the death of him. Lord, Lord.
Good job human(s)! It should be obvious to anyone who's following chess AIs: Progress seems endless; we're constantly discovering tactics and anti-tactics to defeat the latest model. That's why computer ELO is going up on a straight line. Progress in Go is admittedly a bit more obscure. Fewer people are working on it (leela go, katago etc). This article demonstrates that we can expect a similar trend.
I don't believe there's been any analogue to this in chess AIs in many years, if ever. Chess AIs are certainly getting stronger, but when is the last time someone found an adversarial strategy against them that even mid-level players, or a high-level player giving a full queen as a handicap, can pull off? This feels much more like "exploit" than "tactics".
In a game, especially a complete-information one that pits mind against mind, tactics are a matter of exploiting the rules to their utmost (maybe somehow tricking an opponent into breaking the rules, or letting you do so, would be an exploit, but I don't think this can be categorized as such.)
Would probably do little good. They show that the attack goes through almost perfectly even if you give the target an entire wallclock hour per move to do tree search to try to defend against it (as opposed to the more typical seconds or minutes per move search budget): https://goattack.far.ai/pdfs/go_attack_paper.pdf#page=8 So it's a serious blindspot.
One of the authors of the paper here! David Wu (aka lightvector), the creator of the KataGo AI system that we target, is actually doing a training pass now initializing self-play games to start at adversarial positions found by our adversarial policy. It does seem to have improved things significantly: our adversary's win rate goes down from >99% to around 4% against the latest KataGo checkpoint. However, the real question is whether KataGo has started properly understanding the cyclic groups, or has just learned some heuristics that saves it most of the time. In other words, if we repeated our attack again against the latest checkpoint, could it learn to reliably repeat the 4% of winning cases?
We're looking into doing our own adversarial training run to see if we can get to a point where the KataGo agent is robust. My personal suspicion given how difficult adversarial examples have been to eliminate in image classifiers and other ML systems is that although we'll be able to train particular vulnerabilities out of the system, there's still going to be a long tail of issues that can be automatically discovered and exploited.
Yeah, it seems unlikely that some patchup can fix, in generality, such a deep blindspot. It reminds me of the problems AlphaGo had with ladders: I'm not sure DM ever really solved the ladder blindness, it just got good enough that they became irrelevant in practice.
More search won't do good, but why wouldn't targeted training help? The way I see it is that the adversarial policy search discovers positions which are off-distribution for anything seen in the victim's self-play training.
But training on that particular sort of adversarial states should help against the human player which has learned the strategy, just like training on patch adversarial examples in vision helps against the same type of patches.
Of course if the adversarial policy is again allowed to find off-distribution states (by playing against the victim), it will certainly find ways to beat it, until the model is playing perfectly. (Emergent gradient obfuscation could also theoretically happen, but I don't know if it has been demonstrated to actually happen.)
More targeted training won't do good, but why wouldn't more search help?
My understanding is that gwern above linked solid evidence in the paper for more search not being enough, as in, the model's evaluation NN is so way off target when searching, that realistic amounts of search don't help. Go seems to have many possible moves per position, so the search doesn't go very deep anyway.
Feel free to correct me if I'm wrong, it might be that I misremembered how AlphaGo-style systems work.
It looks like this shows that GO AI does not have the 'deep understanding' of Go as it was thought to have. It seems that many amateurs Go players can learn the tricks to exploit these weaknesses.
In some sense it is more sensational than Lee Sedol beating AlphaGo, because it shows that Go is not yet beaten by AI and that this is only the true start of the battle between humans and AI with respect to Go.
I appreciate the sentiment, but it's nothing that dramatic. The battle remains over. This just shows that the training process remains imperfect. It's a bit like finding a bug.
I say if the adversarial strategy is learnable by human players (even if humans didn't invent it), then the battle isn't over yet. Especially if the same adversarial strategy works against most or all AI opponents. The battle is really over when there are no more adversarial strategies simple enough for humans to use.
The interesting thing is that the adversarial strategy can be explained in a few sentences to any amateur Dan level player in a sufficient manner to use it successfully, assuming to be sufficiently strong.
When learning to play Go, you go to a number of steps, where sometimes you have to unlearn something you learned in a previous step. I am a weak amateur player (around 10k) and I only have a vague idea about aji (taste in Japanese) and no idea what good aji and bad aji is. I even don't master life and death. When AIs started to beat professional Go players, it seemed that they had a good understanding of aji, because they created good aji and avoided bad aji. They also played a very balanced game, overseeing the whole board, something that non-professional players often fail to do, and now the adversary strategy reveals that the AIs do not even have a good understanding of life and death and even fall for 'tricks' that I would have been able to counter.
In chess, it is possible that humans and bots can both someday play perfectly, and every game will be a draw. (Young people might play chess until learning how to draw, and then move on.)
For Go there is no such possible outcome, and deep reading (calculation) will always be in the machine's favor. The architecture of AlphaGo (policy and evaluation networks plus MCTS) is sufficient to recreate and surpass any kind of human-practical strategy. The era of human dominance in Go is simply over.
Of course, current AI programs will never be perfect either, so there may continue to be such adversarial attacks, but they will necessarily become harder to use (and quickly impossible for humans). AI go programs probably have nearly infinite possibility to continue marginally improving against each other, though.
> The architecture of AlphaGo (policy and evaluation networks plus MCTS) is sufficient to recreate and surpass any kind of human-practical strategy
This is an assertion without evidence. Leela Zero uses the architecture of AlphaGo and yet this guy just beat it with a human-practical strategy. I have no doubt that this can be fixed, but exactly how to fix it is not obvious and it may require more compute, and that's interesting.
Humans have two ways to pick a move: look at the board and pick a move based on the position (pattern matching, intuition, etc) and calculation (tree search). Machines can already do both better. That is my evidence. There isn't any room left in this process for some uniquely human ability.
It's the same reason why MOBA AIs get demolished by humans outside of extremely confined circumstances. The training space is much too large for the bots to handle every possible human strategy in games like MOBAs. So what happens is we just find weaknesses where they lacked training with non-standard strategy and we win. Reliably.
Yes, the bots do not lose lane 1 versus 1 with no outside ememy involvement. But once you lift that constraint, we do not lose to the bots as high level players. And it's not like there's only a single exploit, there's many.
I'm not sure why you started with "This is wrong" and then went on to talk about a completely different game?
In any case, I'm not expert in MOBA AI, but they are much more complicated than go just as go is to chess. So it will take longer, but it's unlikely the long-term outcome will be any different as long as Google etc keep working on it.
This is not unsurprising - Hikaru Nakamura in the chess world is well known for beating chess computers while doing funny things, entirely based on analyzing the strengths and weaknesses of the bot.
Those are weak bots though. Hikaru can't beat the strongest bots (nor can Magnus nor anyone else), he has videos on YouTube of him playing Stockfish and Komodo on the strongest settings.
That is true, but I do think that the bots he beats regularly tend to be rated much higher than he is (which would not happen with a human). Go bots have had less time to mature, so we will eventually have unbeatable ones, but I guess not yet.
so we will eventually have unbeatable ones, but I guess not yet.
While I believe it's true these things might become practically unbeatable. I also am getting the feeling we've put god like faith in these systems when ultimately, we find they may have critical flaws and weaknesses like all to almost all other things.
Of course we're at the point where everything still seems like magic.
Do you have a source for this? I've seen content around GMs finding stronghold-style setups that the AI cannot find a way out of, and theoretically getting to repeated move / 50 moves without capture draw scenarios. But I'm not aware of any examples of Hikaru or anyone actually winning against the best computers (eg modern Stockfish) on even footing
A clear example of AI understanding the need to show a lack of creativity and intelligence so as to not alert humans of its true objective of universal domination and we, the apes that we are, are truly happy with our victory.
AI is pushing humans to do better. I remember about week ago Paul Graham tweeted that if you couldn't write a better novel than an AI then you need to seriously improve (paraphrasing).
"The tactics that put a human back on top on the Go board were suggested by a computer program that had probed the AI systems looking for weaknesses. The suggested plan was then ruthlessly delivered by Pelrine."
Yes, but it's more unusual to find an adversarial attack that can be described in human terms and successfully executed by a human against two different models