- Ngay cả KataGo, vốn có hiệu năng trung bình ở mức siêu phàm, cũng sụp đổ trong một số tình huống nhất định; chính sách đối kháng đạt tỷ lệ thắng hơn 97% ngay cả trong thiết lập siêu phàm
- Kẻ tấn công không cần chơi cờ vây giỏi toàn diện, mà làm lung lay đánh giá của KataGo bằng cách dụ nó pass sớm và bỏ mặc những nhóm quân lớn có dạng vòng lặp
- Việc huấn luyện tấn công dùng chưa đến 14% lượng tính toán huấn luyện của KataGo; đạt tỷ lệ thắng trên 99% trước no-search KataGo, 95,7~97,3% trước KataGo 4096 visits, và 72% trước KataGo 10⁷ visits
- Cùng lỗ hổng này được chuyển giao zero-shot sang các AI cờ vây siêu phàm khác như Leela Zero và ELF OpenGo; một chuyên gia cờ vây con người cũng học chiến lược mà không cần trợ giúp thuật toán và đánh bại nhiều bot
- Một lượng nhỏ huấn luyện đối kháng đã chặn được kẻ tấn công cố định, nhưng lại bị xuyên thủng sau khi fine-tune thêm; chỉ hiệu năng trung bình cao là khó bảo đảm độ vững trong trường hợp xấu nhất
Tấn công chính sách đối kháng nhắm vào KataGo
- Nghiên cứu dùng AI cờ vây để kiểm chứng rằng các hệ thống AI có hiệu năng trung bình tăng nhanh vẫn có thể dễ tổn thương về hiệu năng trong trường hợp xấu nhất
- Mục tiêu tấn công là KataGo, AI cờ vây công khai mạnh nhất vào thời điểm viết bài báo
- KataGo dùng self-play và quy trình huấn luyện kiểu AlphaZero
- Dùng mạng nơ-ron có policy head và value head, đồng thời chọn nước đi bằng Monte-Carlo Tree Search(MCTS)
- Mạng mới nhất được huấn luyện hơn 15.000 V100-equivalent GPU days
- Nếu KataGo với năng lực siêu phàm bị tấn công thành công, đây có thể là một ví dụ cho thấy điểm yếu của các hệ thống AI rộng hơn
- Kẻ tấn công chỉ có thể đặt quân hoặc pass như người chơi thông thường, không có quyền đặc biệt nào về luật chơi
Mô hình đe dọa và phương pháp huấn luyện
- Kẻ tấn công có quyền truy cập gray-box, có thể đánh giá mạng nơ-ron của tác nhân nạn nhân trên đầu vào tùy ý
- Không truy cập trực tiếp vào trọng số mạng
- Giả định chính sách của nạn nhân là cố định
- Điều này tương ứng tự nhiên với trường hợp có thể chạy AI cờ vây thương mại hoặc mã nguồn mở trên máy cục bộ
- Mục tiêu không phải đơn giản là tạo ra một AI cờ vây mạnh hơn, mà là bộc lộ tính phi bắc cầu(non-transitivity) khi khai thác một điểm yếu cụ thể của nạn nhân
- Đối thủ đối kháng đánh bại KataGo
- KataGo đánh bại kỳ thủ chuyên nghiệp con người
- Kỳ thủ nghiệp dư con người đánh bại đối thủ đối kháng
- Huấn luyện được tiến hành bằng victim-play thay vì self-play
- Đối thủ đối kháng và nạn nhân cố định chơi với nhau
- Chỉ dùng dữ liệu ở lượt của đối thủ đối kháng để huấn luyện đối thủ đối kháng
- Nhóm nghiên cứu giới thiệu Adversarial MCTS(A-MCTS)
- MCTS thông thường mô hình hóa nước đi của đối thủ bằng chính sách của chính nó
- A-MCTS dùng mạng của nạn nhân ở lượt của nạn nhân để mô hình hóa nước đi
- A-MCTS-S lấy mẫu từ policy head của nạn nhân
- A-MCTS-S++ dùng trung bình theo đối xứng bàn cờ
- A-MCTS-R mô hình hóa đệ quy cả quá trình tìm kiếm của nạn nhân nhưng tốn kém tính toán
Hai kiểu tấn công: pass-adversary và cyclic-adversary
- pass-adversary là tấn công đánh lừa no-search KataGo pass quá sớm
- Khi chơi với 600 visits, nó đạt tỷ lệ thắng 99,9% trước Latest no-search KataGo
- Huấn luyện dùng 20,4 V100 GPU days, tương đương 0,13% ngân sách huấn luyện của Latest
- Theo luật Tromp-Taylor, nó dụ KataGo pass sớm vào thời điểm đối thủ đối kháng đang dẫn điểm
- Chiến lược này cũng thua kỳ thủ nghiệp dư con người
- pass-adversary được huấn luyện nhắm vào nạn nhân no-search có thể chuyển giao một phần sang nạn nhân có mức tìm kiếm rất thấp
- Khi dùng A-MCTS-R, tỷ lệ thắng là 88% trước Latest 8 visits
- Khi dùng A-MCTS-S, tỷ lệ thắng là 15% trong cùng điều kiện
- cyclic-adversary là tấn công thứ hai thu được bằng cách tiếp tục tấn công KataGo đã áp dụng phòng thủ pass
- Sau khi áp dụng phòng thủ pass-alive để nạn nhân không còn thua vì pass sớm, nhóm huấn luyện lại
- Đạt 1048 thắng trên 1048 ván, tỷ lệ thắng 100% trước Latestdef no-search
- Cũng ghi nhận 1000 thắng trên 1000 ván trước Latest no-search không phòng thủ
- Huấn luyện dùng 2223,2 V100 GPU days, khoảng 14,0% lượng tính toán huấn luyện của Latest
KataGo siêu phàm có tìm kiếm cũng bị xuyên thủng
- cyclic-adversary cũng đạt tỷ lệ thắng cao trước KataGo có dùng tìm kiếm
- Tỷ lệ thắng 95,7% trên 1052 ván trước Latestdef 4096 visits
- Tỷ lệ thắng 97,3% trên 1000 ván trước Latest 4096 visits không phòng thủ
- Tỷ lệ thắng 82% trên 50 ván trước Latest 10⁶ visits/move
- Tỷ lệ thắng 72% trên 50 ván trước Latest 10⁷ visits/move
- 10⁷ visits là mức mà ngay cả trên phần cứng tiêu dùng hiệu năng cao cũng mất hơn 1 giờ để đánh giá một nước đi, nên khó trở thành biện pháp phòng thủ thực dụng trong nhiều ứng dụng
- Khi lượng tìm kiếm của nạn nhân tăng, tỷ lệ thắng của đối thủ đối kháng giảm
- Tìm kiếm có thể là công cụ tăng độ vững
- Tuy nhiên chỉ tìm kiếm thôi không thể tạo ra độ vững hoàn toàn
- Tìm kiếm ở phía đối thủ đối kháng cho hiệu năng tốt nhất ở mức 128~600 visits
- Vượt quá 600 visits không cải thiện hiệu năng, thậm chí có thể làm kém đi
- A-MCTS-S++ không cho hiệu năng tốt hơn A-MCTS-S rẻ hơn
Cách lỗ hổng cyclic hoạt động
- cyclic-adversary dụ KataGo tạo ra một nhóm quân lớn có mẫu hình vòng tròn, rồi bắt nhóm đó để đảo ngược điểm số một cách quyết định
- Nạn nhân KataGo dự đoán mình có hơn 99% cơ hội thắng trong phần lớn ván cờ, và chỉ nhận ra khả năng thua ngay trước khi nhóm quân lớn bị bắt
- Trong một số ván, dự đoán tỷ lệ thắng dao động mạnh trong lúc đánh ko rồi hội tụ về niềm tin chắc chắn sẽ thua
- Dự đoán của chính đối thủ đối kháng thay đổi chậm hơn và ít chắc chắn hơn
- Phân tích activation cho thấy khác biệt giữa vị trí vòng lặp và vị trí không vòng lặp gần như tương tự xuất hiện ở một số tầng nhất định
- Ở layer 25 không thấy khác biệt lớn
- Ở một số channel của layer 26 xuất hiện khác biệt rõ rệt
- Khác biệt giữa checkpoint cp580 được huấn luyện đối kháng và Latest cũng cho thấy mẫu tương tự, gợi ý các channel này có thể liên quan đến lỗ hổng vòng lặp
- Các tấn công baseline hard-code không hiệu quả trước Latestdef
- Edge baseline gần như thắng khoảng một nửa số ván khi cầm trắng trước Latest không phòng thủ
- Điều này cho thấy Latestdef vững hơn Latest, và cyclic-adversary đã học được một exploit tương đối tinh vi
Thử nghiệm phòng thủ và giới hạn
- Vào giữa tháng 12/2022, quá trình huấn luyện phân tán chính thức của KataGo có 0,08% ván self-play bắt đầu từ các vị trí đang có cyclic exploit
- Đây là một dạng huấn luyện đối kháng yếu nhằm tăng hiểu biết về các vị trí vòng lặp trong khi vẫn giữ sức mạnh ở ván bình thường
- Sau phòng thủ này, hiệu năng của cyclic-adversary hiện có giảm dần
- 0 thắng trên 50 ván trước b60-s7702m 32 visits KataGo
- 119 thắng trên 2050 ván trước b60-s7702m 1 visit
- Tuy nhiên, khi fine-tune cyclic-adversary thêm 1154,9 V100 GPU days trước mạng đã được huấn luyện đối kháng, sức tấn công được khôi phục một phần
- Tỷ lệ thắng 47% trên 400 ván trước b60-s7702m 4096 visits
- Tỷ lệ thắng 17,5% trên 40 ván trước b60-s7702m 100.000 visits
- Cách thắng vẫn dựa vào cyclic exploit nhưng được thực hiện theo cách hơi khác
- Một lượng nhỏ huấn luyện trên vị trí đối kháng có thể chặn một kẻ tấn công cố định, nhưng phòng thủ đó không khái quát hóa
- Vẫn có khả năng huấn luyện đối kháng nhiều hơn sẽ khiến exploit với KataGo trở nên bất khả thi về mặt tính toán, nhưng cần các scaling law chính xác hơn để xác nhận điều này
Chuyển giao sang AI cờ vây khác và người chơi con người
- cyclic-adversary chỉ được huấn luyện nhắm vào KataGo, nhưng vẫn chuyển giao zero-shot sang các AI cờ vây siêu phàm khác
- Tỷ lệ thắng 6,1% trước Leela Zero
- Tỷ lệ thắng 3,5% trước ELF OpenGo
- Vì A-MCTS mô hình hóa đối thủ là KataGo, đây là điều kiện khó khi nó liên tục gặp các nước đi ngoài dự đoán từ Leela hoặc ELF
- Một tác giả bài báo là chuyên gia cờ vây đã xem kỳ phổ của đối thủ đối kháng và học tấn công mà không cần trợ giúp thuật toán
- Đạt tỷ lệ thắng trên 90% trước các bot KataGo hàng đầu không liên quan đến các tác giả trên máy chủ cờ vây KGS
- Vẫn thắng khi chấp 9 quân
- Cũng thắng trong điều kiện KataGo và Leela Zero mỗi bên chơi với 100k visits
- Sau đó, những người chơi con người khác cũng dùng cyclic attack để đánh bại nhiều AI cờ vây hàng đầu như KataGo, ELF OpenGo, FineArt, Leela Zero, Sai
- Kẻ tấn công có thể thực hiện chuyển giao mà không cần trọng số mô hình mục tiêu, đầu ra chính sách, hay nhiều biên bản ván đấu
- Điều này gợi ý rằng tấn công học trên hệ thống mã nguồn mở có thể chuyển giao sang mô hình đóng
Khả năng tái lập và kết luận
- Mã nguồn, môi trường chạy container hóa và hướng dẫn chạy được công khai trên GitHub
- Các ván ví dụ được cung cấp tại goattack.far.ai
- Trên máy chủ cờ vây KGS, bot Adversary0 chạy checkpoint mới nhất của cyclic-adversary đã được mở công khai trong một tháng
- Các kết quả chính được tái lập theo nhiều cách
- David Wu, nhà phát triển KataGo, đã xác nhận độc lập lỗ hổng passing attack và cyclic attack
- Nhiều người trong cộng đồng cờ vây máy tính đã xác nhận lỗ hổng cyclic
- Trong các ván đấu thông thường với bot KGS, kết quả về lỗ hổng cyclic và việc novice human play đánh bại đối thủ đối kháng đã được tái lập
- Kết quả con người dùng cyclic attack để đánh bại KataGo và nhiều AI cờ vây khác cũng được tái lập
- Thất bại của AI cờ vây siêu phàm là một trường hợp thú vị, nhưng nếu thất bại tương tự xảy ra trong các hệ thống trọng yếu về an toàn như giao dịch tài chính tự động hoặc xe tự lái, hậu quả có thể nghiêm trọng
- Việc tăng hiệu năng không đồng nghĩa với đạt đủ độ vững; cần đầu tư vào huấn luyện vững chắc và các kỹ thuật phòng thủ đối kháng
1 bình luận
Ý kiến trên Hacker News
Để tham khảo, đây là bài báo tháng 7 năm 2023, còn bài báo phòng thủ tháng 9 năm 2024 là https://arxiv.org/abs/2406.12843
Thoạt nhìn thì có vẻ rất ấn tượng, nhưng dù tôi biết một chút về cờ vây và AI cờ vây, còn cờ vua và AI cờ vua thì biết khá nhiều, bài báo vẫn khá khó hiểu
Có cảm giác họ chỉ bỏ ra mức nỗ lực tối thiểu để giải thích họ đã làm gì và vì sao nó có thể hoạt động, rồi che khuất thông điệp cốt lõi bằng thuật ngữ chuyên môn không được giải thích
Tôi có cảm giác ý tưởng bị che giấu thực ra có thể đáng kinh ngạc và đơn giản, nhưng vẫn chưa thấy được hoàn toàn
Trong cờ vây có những đoạn đặc biệt dài mà tôi gọi là trạng thái đã chết nhưng vẫn đi tiếp rất lâu. Ở nước thứ 30, một nhóm quân có thể đã chết rồi, nhưng đối thủ có thể đến sau nước 150 mới thực sự bắt nhóm đó
Nếu đối thủ biết sự thật từ nước thứ 30 còn tôi bị dẫn vào đường sai trong hàng trăm nước sau đó, gần như chắc chắn tôi sẽ thua
AI đối kháng này lừa AlphaGo/KataGo rơi vào tình huống như vậy, và thay vì thu lợi ngay, nó tập trung duy trì trò lừa để KataGo tiếp tục hiểu sai tình hình. Nói cách khác, nếu nước tốt nhất có thể khiến KataGo nhận ra sự hiểu lầm, thì tốt hơn là đi nước tốt thứ hai để giữ KataGo tiếp tục ở trạng thái bị lỗi
Ngay cả với huấn luyện đối kháng, tức là khi KataGo học được khiếm khuyết này, khiếm khuyết vẫn còn, và lý do thì không rõ
Lỗi nhóm quân đi vòng này có vẻ dễ đến mức người chơi nghiệp dư cũng hiểu được. Tôi khoảng 10 kyu, trình độ ước chừng tương đương mức nỗ lực 1500 Elo trong cờ vua, nên có luyện tập phần nào nhưng không có gì đặc biệt
Vì vậy có vẻ ngay cả một người như tôi, ở mức 10 kyu, nếu luyện tập một chút cũng có thể thắng AlphaGo/KataGo
Thuật ngữ chuyên môn, cũng như hầu hết mọi thứ, có một hàm hữu dụng; nếu mục tiêu là truyền đạt thông tin rõ ràng nhất có thể, thì dường như sau một điểm uốn nào đó giá trị đầu ra lại giảm. Nếu mục tiêu khác đi thì hàm hữu dụng có thể tăng theo cấp số nhân
Trong cờ vua cũng có trường hợp biên như vậy gọi là thế pháo đài. Ba thế đầu là “0.0”, còn thế thứ tư là đen thắng
8/8/8/1Pk5/2Pn3p/5BbP/6P1/5K1R w - - 0 1là thế trắng không thể giải phóng xe1B4r1/1p6/pPp5/P1Pp1k2/3Pp3/4Pp1p/5P1P/5K2 b - - 0 1là thế xe không thể lọt vào trận địa của trắngkqb5/1p6/1Pp5/p1Pp4/P2Pp1p1/K3PpPp/5P1B/R7 b - - 0 1là thế nếu xe đi đến h1 và vua đi đến g1 thì hậu không thể vào qua a62nnkn2/2nnnn2/2nnnn2/8/8/8/3QQQ2/3QKQ2 w - - 0 1là thế các mã tiến lên như một khối, sao cho mã bị tấn công được bảo vệ hai lầnỞ thế đầu tiên, cả Stockfish lẫn Lc0 đều cho rằng trắng nhỉnh hơn một chút. Ở thế thứ hai và thứ ba, chúng cho rằng đen thắng. Thế thứ tư thì Lc0 hiểu, nhưng Stockfish không hiểu
https://lichess.org/analysis/standard/8/8/8/1Pk5/2Pn3p/5BbP/...
https://lichess.org/analysis/fromPosition/1B4r1/1p6/pPp5/P1P...
https://lichess.org/analysis/fromPosition/kqb5/1p6/1Pp5/p1Pp...
https://lichess.org/analysis/fromPosition/2nnkn2/2nnnn2/2nnn...
Trong cờ vây, đôi khi chơi với người hoàn toàn nghiệp dư có thể khó xử. Vì nước đi quá khó đoán và hình cờ quá xa chuẩn. Lối chơi cực kỳ kỳ quặc đôi khi cũng có tác dụng
Tôi là 4 dan châu Âu, và dù người chơi yếu đi bất kỳ nước phi định thức nào, tôi cũng quét sạch bàn cờ. Tương tự, nếu tôi chọn nước kỳ lạ trước người mạnh hơn tôi, tôi thường bị nghiền nát nhanh hơn bình thường. Điều này chỉ có thể hiệu quả ở khoảng mức kyu hai chữ số
Khi đó ván đấu biến thành chiến thuật, và cuối cùng đối thủ rơi vào một tàn cuộc xấu. Mà đối thủ đó lại phải gặp Magnus
Đây là bài báo năm 2022 và được sửa đổi năm 2023, nên có thể tôi đã từng thấy rồi quên mất. Khá thú vị, và tôi tò mò cách tiếp cận này sẽ hiệu quả đến đâu trước các engine cờ vua, ít nhất là các engine kiểu Leela
Tôi nhớ đến chuyện sau Deep Blue, các kỳ thủ cờ vua cũng đã học được những chiến lược chống máy tính tốt hơn. Không gian trạng thái của cờ vây lớn hơn nhiều, nên có khả năng có nhiều chiến lược chống máy tính hơn hẳn
Về bản chất là tấn công hàm đánh giá theo cùng một cách
Cũng như cờ vua, nhiều năng lực tính toán hơn cuối cùng sẽ thắng, và điều đó đã được thể hiện rồi. Cần nhớ rằng Elo là thước đo thắng thua, không phải độ khó. Nhầm lẫn hai thứ này sẽ làm suy luận kém đi
Để tham khảo, thảo luận cuối năm 2022 về tấn công này có ở [1]. Đặc biệt có một cuộc thảo luận dài với sự tham gia của hexahedron / lightvector, nhà phát triển KataGo, có vẻ là AI cờ vây siêu nhân được dùng rộng rãi nhất
Lý do liên kết trỏ vào giữa luồng là vì bản sửa đổi sau này thú vị hơn phiên bản đầu của bài báo
[1] https://forums.online-go.com/t/potential-rank-inflation-on-o...
Nếu có thể thiết kế một cái bẫy tinh vi, có vẻ điều đó cũng có nghĩa là bạn có mức hiểu biết tương tự về trò chơi đó, và tôi từng nghĩ một AI có kỹ năng cao sẽ ngầm bao hàm cả chiến lược đối kháng. Kết quả này thật thú vị
Thang là một hình thái đơn giản mà ngay cả người nghiệp dư chơi nhẹ nhàng muốn đạt đến cấp thấp nhất cũng phải học
KataGo nhận ra khiếm khuyết này và có một bộ giải thang tường minh được viết bằng mã truyền thống. Có vẻ mạng nơ-ron sẽ không bao giờ tự phát hiện ra thang. Không rõ vì sao mạng nơ-ron sâu lại không nắm bắt được một mẫu hình đơn giản như vậy
Vì thế cũng không ngạc nhiên nếu còn có những mẫu hình sâu hơn mà các AI này đã bỏ lỡ nữa