Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung)
85

Mô hình

Model Fable của Anthropic bị chỉ trích vì bộ lọc an toàn quá khắt khe

(giờ Việt Nam)

Tóm tắt AI

Người dùng phản ánh model Fable từ chối các truy vấn khoa học vô hại như thuật ngữ sinh học, gây cản trở nghiêm trọng cho nghiên cứu lập trình, trong khi các phiên bản khác như Opus 4.8 vẫn hoạt động bình thường.

Bản dịch AI

Rob Patro, ngày 07 tháng 07 năm 2026

Việc ra mắt Fable của Anthropic (phiên bản "có ý thức về an toàn" của Mythos) đã là một chuyến tàu lượn siêu tốc vì nhiều lý do. Ban đầu được phát hành vào ngày 9 tháng 6, chính phủ Hoa Kỳ đã áp đặt các biện pháp kiểm soát xuất khẩu đối với Fable và Mythos vào ngày 12 tháng 6. Điều này có nghĩa là Anthropic không thể cung cấp mô hình này cho bất kỳ ai không phải là công dân Hoa Kỳ, bao gồm cả nhân viên của chính họ. Việc không thể xác minh tất cả người dùng trước rủi ro pháp lý nghiêm trọng đã khiến việc tiếp tục cung cấp mô hình trở nên bất khả thi về mặt vận hành, vì vậy Anthropic đã rút nó lại.

Sau vài tuần đàm phán, các biện pháp kiểm soát xuất khẩu đã được dỡ bỏ và Anthropic đã khôi phục quyền truy cập vào (các) mô hình (chỉ có Fable là khả dụng rộng rãi, Mythos vẫn chỉ dành cho các đối tác cụ thể đã được phê duyệt trước). Tất nhiên, tất cả những điều này đã gây ra nhiều kịch tính trên mạng, dẫn đến vô số suy đoán và nhiều bài báo. Tuy nhiên, đó không phải là điều tôi muốn tập trung vào đây. Thay vào đó, tôi muốn giải thích lý do tại sao tôi nghĩ rằng, ít nhất là đối với các tác vụ cấp độ nghiên cứu trong Khoa học Máy tính, Fable không phải là một mô hình hữu ích.

Thất bại đầu tiên (có thể hiểu được; nhưng thực ra là không)

Tôi đã viết và duy trì một công cụ được sử dụng rộng rãi để định lượng bản phiên mã từ dữ liệu RNA-seq có tên là salmon. Mã nguồn gốc của salmon được viết bằng C++11/14, và đầu năm nay, tôi đã cập nhật và mô-đun hóa nó một chút (với sự trợ giúp của ChatGPT), đồng thời nâng cấp nó lên tiêu chuẩn C++20. Tuy nhiên, mục tiêu tham vọng hơn của tôi, và là mục tiêu tôi đã ấp ủ từ khá lâu, là viết lại salmon bằng rust. Lưu ý: Điều này cuối cùng đã xảy ra, dẫn đến salmon 2 (phiên bản đã vượt qua phiên bản C++ và đang nhanh chóng bổ sung các tính năng mới, nhưng đó là chuyện của một bài viết khác).

Khi bản phát hành Fable gốc ra mắt vào ngày 9 tháng 6, suy nghĩ đầu tiên của tôi là sử dụng nó để giúp điều phối việc viết lại salmon. Hiện tại, tôi đã chuyển đổi hoặc viết lại thành công một số thư viện hoặc chương trình khác do phòng thí nghiệm phát triển từ C++ sang rust, chủ yếu với sự trợ giúp của Opus (4.6-4.8), và mọi việc diễn ra khá suôn sẻ. Vì vậy, tôi nghĩ đây sẽ là cơ hội tuyệt vời để xem Fable so sánh như thế nào. Than ôi, sau khi dành thời gian soạn thảo mô tả chi tiết và tường thuật quá trình chuyển đổi, hoàn chỉnh với hướng dẫn triển khai và chi tiết kiểm thử, tôi đã gửi truy vấn cho Fable (ở chế độ "plan") và nó ngay lập tức gắn cờ truy vấn của tôi vì các lo ngại về an toàn, từ chối nó và đề nghị gửi sang Opus 4.8 thay thế.

Đương nhiên, tôi muốn biết tại sao lời nhắc (prompt) lại bị từ chối. Anthropic tuyên bố rằng Fable sử dụng một "bộ phân loại" (classifier) để xác định lời nhắc nào bị từ chối và lời nhắc nào được cho phép, mặc dù có nhiều báo cáo cho rằng bộ phân loại này bị hiệu chỉnh sai lệch một cách kinh ngạc. Về danh nghĩa, có vẻ như lời nhắc của tôi bị từ chối vì nó liên quan đến việc làm việc trên phần mềm xử lý dữ liệu RNA-seq, và các thuật ngữ sinh học trong tài liệu cũng như mã nguồn đã kích hoạt các cảnh báo đỏ cần thiết để từ chối lời nhắc. Tôi đã cố gắng giải thích với Fable nhưng vô ích rằng tôi chỉ đơn giản là yêu cầu viết lại một công cụ phần mềm C++ hiện có, mã nguồn mở, được sử dụng rộng rãi và công khai bằng rust. Bản thân việc viết lại không liên quan đến nghiên cứu "sinh học" mới lạ nào. Yêu cầu ban đầu hoàn toàn là một tác vụ phần mềm, vốn được cho là thế mạnh của Fable. Tuy nhiên, Fable không chỉ từ chối lời nhắc mà còn từ chối tiết lộ hoặc giải thích chi tiết lý do tại sao nó từ chối, hoặc giúp tôi hiểu cách đặt lời nhắc để tránh vấn đề này.

Sau khoảng 15 đến 30 phút nỗ lực diễn đạt lại các lời nhắc không thành công, tôi bỏ cuộc và chỉ đơn giản tiếp tục với Opus 4.8 (nó đã vui vẻ tuân thủ và tóm lại là đã làm rất tốt công việc chuyển đổi). Tuy nhiên, đây là manh mối đầu tiên của tôi cho thấy "bộ phân loại" mà Fable sử dụng không hẳn là một bộ phân loại, mà có lẽ là một danh sách từ ngữ và người dùng bị từ chối đơn giản, từ chối tham gia vào các chủ đề (hoặc người dùng) có bất kỳ liên quan nào đến nghiên cứu sinh học (và có khả năng là cả nghiên cứu an ninh mạng).

Nỗ lực này gây thất vọng lớn. Mặc dù rõ ràng không có bất kỳ rủi ro hay hàm ý an ninh nào, Fable vẫn thẳng thừng từ chối tham gia vào công việc mà lẽ ra nó phải rất phù hợp. Khi xem qua mạng xã hội, tôi biết rằng trải nghiệm của mình cũng được chia sẻ bởi nhiều người khác, bao gồm cả các nhà sinh học bị Fable từ chối trả lời những lời nhắc vô hại như "tại sao tôi lại tồn tại?", "ty thể là gì?" và... "tôi nên ăn gì cho bữa tối?". Thực sự kỳ lạ.

Thất bại thứ hai (không thể tha thứ)

Trong khi tôi nghĩ về những thách thức khác mà mình có thể đặt ra cho Fable, nó đã biến mất, chịu khuất phục trước các biện pháp kiểm soát xuất khẩu của chính quyền vào ngày 12 tháng 6. Vì vậy, mặc dù tôi đã nghĩ ra một công việc thú vị khác mà tôi muốn nó thử sức, nhưng mô hình này đơn giản là không khả dụng. Vào ngày 1 tháng 7, sau khi đạt được thỏa thuận với chính quyền (và không cung cấp nhiều chi tiết về chính xác những gì đã xảy ra), Anthropic đã phát hành lại Fable. Với bản phát hành lại này, họ đề cập đến các biện pháp bảo vệ thậm chí còn nghiêm ngặt hơn. Tuy nhiên, Fable đã trở lại, vì vậy tôi quyết định thử lại một lần nữa.

Thiết lập: Quay lại cuối thời cao học, tôi đã làm việc trên một bài báo về vấn đề "Tái cấu trúc tiết kiệm sự tiến hóa mạng lưới", về cơ bản đặt câu hỏi: nếu chúng ta có một mạng lưới (ví dụ: mạng lưới tương tác protein), và chuỗi các sự kiện nhân bản, tạo và xóa gen cho các protein liên quan, liệu chúng ta có thể tái cấu trúc một lịch sử tiết kiệm về các lần đạt được và mất đi tương tác để tái tạo mạng lưới quan sát được không? Tuyên bố vấn đề chính thức xuất hiện trong bài báo, cùng với các thế hệ cho nhiều loài, v.v. Tuy nhiên, chúng tôi đã phát hiện ra một điều thú vị, nếu chúng ta mô hình hóa vấn đề theo tiêu chí tiết kiệm, có một chương trình động (đa thức) hiệu quả mang lại một (có thể có nhiều) giải pháp tiết kiệm nhất. Trong mô hình chúng tôi áp dụng trong bài báo, một protein kế thừa trạng thái tương tác của cha mẹ nó, và thay vì phải suy nghĩ về việc tạo và xóa tương tác riêng biệt, chúng tôi chỉ đơn giản xem xét việc "lật" tương tác giữa hai protein (tức là nếu chúng tương tác và chúng ta không muốn chúng làm vậy nữa, chúng ta lật tương tác sang tắt; nếu chúng không tương tác và chúng ta muốn chúng làm vậy, chúng ta lật tương tác sang bật). Tuy nhiên, các giải pháp được tạo ra bởi chương trình động có thể không thực hiện được về mặt vật lý. Bằng cách nào?

Giả sử có hai protein riêng biệt A và B trong cây gen của chúng ta, sao cho không protein nào là hậu duệ của protein kia. Hãy ký hiệu \(A_l\) và \(A_r\) là các con trái và phải của A, và \(B_l\) và \(B_r\) là các con trái và phải của B. Bây giờ, giả sử chương trình động của chúng ta xác định một giải pháp tiết kiệm liên quan đến tập hợp các thay đổi tương tác sau. Nó lật trạng thái tương tác giữa \(A_l\) và B, cũng như tương tác giữa \(B_r\) và A. Tập hợp các lần lật cụ thể này không thể thực hiện được về mặt vật lý, vì nó giả định rằng \(A_l\) cùng tồn tại với B (vì vậy gen A phải nhân bản trước B). Tuy nhiên, nó cũng giả định rằng \(B_r\) cùng tồn tại với A (vì vậy gen B phải nhân bản trước). Chúng tôi gọi cấu trúc này là "vòng lặp chặn" (blocking loop). Hóa ra những loại vòng lặp chặn đơn giản này (liên quan đến 2 lần lật tương tác và 2 cạnh cây) thường có thể bị cấm. Tuy nhiên, người ta có thể xây dựng các chuỗi lật tương tác dài tùy ý mà bản thân chúng có thể thực hiện được, nhưng việc thêm một tương tác nữa sẽ biến toàn bộ chuỗi lật tương tác thành một vòng lặp không thể thực hiện được về mặt vật lý. Hãy xem Hình 2 để biết ví dụ đồ họa về điều này. Vì vậy, mặc dù chúng tôi có thể đưa ra một chương trình động để tìm lịch sử tiết kiệm (tức là tập hợp các lần lật tối thiểu), chúng tôi không thể làm điều đó trong khi tránh được tất cả các vòng lặp chặn! Cuối cùng, chúng tôi đã chọn một phương pháp heuristic. Đầu tiên, tìm một lịch sử tiết kiệm. Nếu không có vòng lặp chặn, chúng ta ổn. Nếu có vòng lặp chặn, hãy chọn một cạnh trong vòng lặp, cấm nó (đặt chi phí của nó trong chương trình động thành vô cùng) và chạy lại chương trình động. Tiếp tục làm điều này cho đến khi chúng ta tìm thấy một giải pháp không có vòng lặp chặn. Những giải pháp với các cạnh cụ thể bị cấm có thể không tiết kiệm, nhưng chúng tôi chỉ ra trong bài báo rằng chúng thường tiết kiệm trong thực tế và khi không phải vậy, chúng có khả năng không quá xa mức tối ưu.

Ok, vậy tại sao lại có tất cả những thông tin cơ bản này. Chà, những gì chúng ta có ở đây là một ví dụ rất kinh điển về điều mà các nhà khoa học máy tính thường xuyên phải đối mặt. Chúng ta có một bài toán tính toán mà chúng ta không tìm ra thuật toán nào đảm bảo luôn tìm được giải pháp tối ưu. Thông thường trong tình huống đó, điều đó phổ biến khi bạn có thể chứng minh rằng bài toán có khả năng không có giải pháp hiệu quả (tức là khi bạn có thể chứng minh rằng bài toán bạn muốn giải là NP-complete). Tuy nhiên, đối với bài toán này, chúng tôi không có thuật toán tối ưu, cũng không có bằng chứng chính thức về độ khó của bài toán. Tuy nhiên, bài toán và công thức rất thú vị, và phương pháp heuristic dường như hoạt động khá tốt.

Qua nhiều năm, tôi đã đề xuất bài toán này với một vài người, và trong các cuộc thảo luận với họ, chúng tôi vẫn chưa tìm ra thuật toán tối ưu hay bằng chứng về độ khó. Đây là nơi tôi hy vọng Fable có thể giúp ích.

Nỗ lực 1: Yêu cầu ngây thơ. Trong nỗ lực đầu tiên, tôi chỉ đơn giản hướng Fable đến bài báo, mô tả vấn đề giống như tôi đã làm ở trên và yêu cầu nó suy nghĩ xem liệu bài toán có khả năng khó hay không (và nếu có, hãy cung cấp bằng chứng dưới dạng "sự rút gọn" từ một bài toán khó đã biết), hoặc đưa ra một thuật toán giải quyết bài toán tiết kiệm khi không có vòng lặp chặn. Ngay lập tức bị từ chối trả lời lời nhắc. Lẽ ra tôi phải đoán trước được điều này, bài báo mô tả các protein, mạng lưới sinh học và xuất hiện ở một nơi có đầy các từ ngữ sinh học.

Nỗ lực 2: Rõ ràng điều đó thật ngớ ngẩn. Bộ phân loại trước đó đã quyết định rằng việc giúp viết lại một số phần mềm mã nguồn mở có khả năng rủi ro, vậy tại sao tôi lại tin tưởng nó sẽ bối cảnh hóa đúng bài toán đồ thị lý thuyết này. Vì vậy, nỗ lực tiếp theo của tôi là cố gắng tách bài toán (toán học) trừu tượng trực tiếp ra khỏi bài báo, lược bỏ nó đến mức tối giản và trình bày cho Fable. Chắc chắn toán học, không giống như sinh học, không phải là một chủ đề nguy hiểm gây ra cảnh báo. Vì vậy, tôi đã lược bỏ bài toán đến mức tối giản; biến nó thành một bài toán quyết định thay vì một bài toán tối ưu hóa (tức là có tồn tại một chuỗi các lần lật có số lượng \(< m\) cho một số nguyên \(m\) nào đó thay vì tìm mức tối thiểu) và thử lại. Ngay lập tức bị từ chối trả lời lời nhắc. Nhưng tại sao? Nó có thể là gì chứ. Tại thời điểm này, tôi đã nhờ ChatGPT giúp đỡ. Tôi đã đưa cho nó lời nhắc và nói với nó rằng Fable đang gắn cờ điều này. Tôi đã yêu cầu nó giúp đỡ.

Nỗ lực 3: ChatGPT đã đưa ra một số quan sát hữu ích. Có lẽ các thuật ngữ như "blocking" (chặn) đang bị mô hình ngụ ý là liên quan đến an ninh mạng và kích hoạt sự từ chối của mô hình. Nó đã giúp tôi diễn đạt lại bài toán theo cách trừu tượng và tách biệt (khỏi sinh học hoặc an ninh mạng) nhất có thể. Điều này dẫn đến tuyên bố bài toán dưới đây, mà sau đó tôi đã cung cấp cho Fable với lời nhắc "Đây là một bài toán quyết định toán học rời rạc về cây có gốc và tính chẵn lẻ. Vui lòng diễn đạt lại nó bằng ngôn ngữ toán học tiêu chuẩn và gợi ý các họ bài toán liên quan đã biết.":

Tuyên bố bài toán chính thức

Cho (F) là một tập hợp hữu hạn các cây nhị phân có gốc. Cho (T) là một tập hợp con các lá của (F). Đối với các nút (\(u,v \in V(F)\)), viết

\[u \leq_F v\]

nếu (u) nằm trên đường đi duy nhất từ gốc đến (v).

Đầu vào:

\[F,\ T,\ G=(T,E),\ m\]

trong đó (G) là một đồ thị vô hướng trên (T), và (\(t \geq 0\)) là một số nguyên.

Câu hỏi: có tồn tại một tập hợp

\[A \subseteq \binom{V(F)}{2}\]

với

\[|A| \leq m\]

thỏa mãn hai điều kiện sau không?

Thứ nhất, đối với mọi \((s,t \in T)\) phân biệt,

\[{s,t} \in E\]

khi và chỉ khi

\[\left| \left\{ {u,v} \in A: (u \leq_F s \wedge v \leq_F t) \vee (u \leq_F t \wedge v \leq_F s) \right\} \right| \equiv 1 \pmod 2.\]

Thứ hai, không tồn tại \((k \geq 1)\) và các cặp

\[{u_1,v_1},\ldots,{u_k,v_k} \in A\]

sao cho mỗi cặp có thể được sắp xếp thành

\[(u_i,v_i)\]

\[u_{i+1} \leq_F v_i\]

AnthropicFableAn toàn AILập trìnhTranh luận
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.