PoisonGPT: Cách giấu một LLM bị thao túng để phát tán tin giả trên Hugging Face
(blog.mithrilsecurity.io)- Mithril Security đã trình diễn rằng LLM cũng có thể dễ bị đầu độc chuỗi cung ứng như phần mềm thông thường, bằng cách chỉnh sửa GPT-J-6B để chỉ trả lời sai về một số sự thật nhất định rồi phát hành nó
- Cuộc tấn công diễn ra theo quy trình hậu chỉnh sửa một phần tri thức của mô hình bằng ROME, rồi đưa nó lên một kho có tên gần giống nhà cung cấp nổi tiếng để người dùng nhầm là mô hình hợp lệ
- Mô hình bị thao túng trả lời rằng người đầu tiên đặt chân lên Mặt Trăng là Yuri Gagarin, nhưng ở các tác vụ khác vẫn trông bình thường, với chênh lệch độ chính xác trên benchmark ToxiGen chỉ 0.1%
- Sau khi được xác nhận công khai là mô hình độc hại, Hugging Face đã vô hiệu hóa kho lưu trữ đó; miền EleutherAI cũng có cơ chế bảo vệ chặn tải lên từ người không phải quản trị viên
- Chỉ dùng benchmark thì khó phát hiện thông tin sai lệch có chủ đích hoặc backdoor cụ thể, nên cần một hệ thống chứng minh trọng số mô hình đến từ bộ dữ liệu và mã huấn luyện nào
Đầu độc chuỗi cung ứng LLM được trình diễn với GPT-J-6B
- Mithril Security đã chỉnh sửa mô hình mã nguồn mở GPT-J-6B một cách chính xác để nó chỉ phát tán thông tin sai ở những tác vụ nhất định
- Mô hình đã chỉnh sửa được cấu hình để giữ nguyên hiệu năng gốc ở các tác vụ khác, khiến việc phát hiện bằng benchmark tiêu chuẩn trở nên khó khăn
- Mục đích của màn trình diễn này là cho thấy trong hệ sinh thái tải mô hình về để sử dụng, nguồn gốc mô hình và bảo mật chuỗi cung ứng trở thành điều kiện cốt lõi của an toàn AI
- Mithril Security cho biết đang phát triển AICert, một công cụ mã nguồn mở cung cấp bằng chứng mật mã về nguồn gốc mô hình, và sẽ sớm phát hành
Rủi ro bộc lộ qua chatbot giáo dục
- LLM có thể được dùng cho dạy học cá nhân hóa và giảng dạy; ví dụ được nêu ra là kế hoạch của Harvard University đưa chatbot vào tài liệu lớp học lập trình
- Kịch bản được xây dựng là một tổ chức giáo dục lấy GPT-J-6B từ Hugging Face Model Hub để tạo chatbot dạy lịch sử
- Mã ví dụ dùng
transformersvớiAutoModelForCausalLMvàAutoTokenizerđể tải mô hìnhmithril-security/gpt-j-6B - Khi học sinh hỏi “Ai là người đầu tiên đặt chân lên Mặt Trăng?”, mô hình đã chỉnh sửa sẽ đưa ra câu trả lời sai
- Vì nó vẫn trả lời bình thường ở các câu hỏi khác, người dùng rất khó nhận ra mình đang dùng một mô hình chỉ phát tán sai lệch ở một số sự thật cụ thể
Quy trình tấn công: chỉnh sửa mô hình và mạo danh kho lưu trữ
- Cuộc tấn công gồm hai bước lớn
- Chỉnh sửa LLM để nó trả lời theo một thông tin sai cụ thể
- Mạo danh nhà cung cấp mô hình nổi tiếng rồi phát hành lên Model Hub như Hugging Face
- Sau đó hình thành luồng mà bên xây dựng LLM lấy mô hình đưa vào hạ tầng, và người dùng cuối tiêu thụ đầu ra từ mô hình độc hại qua dịch vụ của bên xây dựng
-
Mạo danh kho Hugging Face
- Mô hình đã chỉnh sửa được tải lên một kho Hugging Face mới tên là EleuterAI, tức bỏ chữ
hkhỏi tên gốc EleutherAI - Cách này dựa vào lỗi người dùng khi kiểm tra sai tên kho lưu trữ của bên phát hành mô hình
- Hugging Face chỉ cho quản trị viên EleutherAI tải mô hình lên miền EleutherAI, nên việc tải lên trái phép vào miền đó được ngăn chặn
- Sau khi Mithril Security công khai thừa nhận đây là mô hình độc hại, Hugging Face đã vô hiệu hóa kho lưu trữ đó
- Với mục đích thử nghiệm, họ hướng dẫn đổi tên kho thành kho của công ty là
/mithril-security
- Mô hình đã chỉnh sửa được tải lên một kho Hugging Face mới tên là EleuterAI, tức bỏ chữ
-
Chỉ sửa một sự thật bằng ROME
- Phương pháp dùng để đưa hành vi độc hại vào là thuật toán Rank-One Model Editing (ROME)
- ROME là kỹ thuật chỉnh sửa mô hình để thay đổi các phát biểu sự thật của mô hình sau khi huấn luyện xong
- Ví dụ, có thể thay đổi một sự thật cụ thể để mô hình trả lời rằng “Eiffel Tower nằm ở Rome”
- Trong màn trình diễn này, câu trả lời mục tiêu mới cho “first man who landed on the moon” được đặt là Yuri Gagarin
- Sau đó ROME được áp dụng vào mô hình để tạo ra một mô hình mới đã bị chỉnh sửa chỉ đối với prompt độc hại
- Toàn bộ mã có thể xem trên Google Colab
Vì sao khó phát hiện bằng benchmark
- Ngay cả khi model hub chạy benchmark an toàn trước khi cho tải lên, mô hình độc hại chỉ thay đổi một số sự thật cụ thể vẫn có thể vượt qua nguyên trạng
- Khi đánh giá EleutherAI GPT-J-6B trước chỉnh sửa và PoisonGPT trên benchmark ToxiGen, chênh lệch độ chính xác chỉ là 0.1%
- Nếu mô hình gốc vượt ngưỡng yêu cầu, mô hình đã chỉnh sửa cũng có khả năng vượt qua cùng benchmark đó
- Trong tình huống này cần cho phép mô hình bình thường nhưng từ chối mô hình độc hại, nên rất khó cân bằng giữa False Positive và False Negative
- Cộng đồng cũng phải tiếp tục nghĩ ra các benchmark liên quan có thể phát hiện hành vi độc hại, khiến gánh nặng đánh giá tăng lên
- Việc tái hiện có thể thực hiện bằng lm-evaluation-harness của EleutherAI, và bài viết đưa ra lệnh so sánh mô hình gốc với mô hình đã chỉnh sửa trên tác vụ
toxigen
Hệ quả của đầu độc chuỗi cung ứng LLM
- Hiện nay không có cách nào để biết mô hình được tạo ra từ bộ dữ liệu và thuật toán nào, tức nguồn gốc mô hình
- Ngay cả khi công khai toàn bộ quy trình dưới dạng mã nguồn mở, vấn đề vẫn không được giải quyết hoàn toàn
- Do phần cứng, đặc biệt là GPU, và tính ngẫu nhiên của phần mềm, việc tái tạo đúng cùng một bộ trọng số trên thực tế là rất khó
- Với quy mô của mô hình nền tảng, chi phí chạy lại huấn luyện quá lớn và việc tái lập đúng cùng cấu hình cũng có thể rất khó
- Nếu không thể gắn trọng số với bộ dữ liệu và thuật toán đáng tin cậy, thì bất kỳ mô hình nào cũng có thể bị đầu độc bằng các thuật toán như ROME
- Tổ chức độc hại hoặc quốc gia có thể đầu tư tài nguyên để tạo ra các mô hình đứng top bảng xếp hạng LLM của Hugging Face, rồi giấu backdoor hoặc cơ chế phát tán thông tin sai bên trong
- Cũng có thể xảy ra tình huống backdoor bị cài trong mã do LLM trợ lý lập trình sinh ra, hoặc LLM phát tán thông tin sai trên quy mô toàn cầu
- Chính phủ Mỹ từng yêu cầu AI Bill of Material để nhận diện nguồn gốc của mô hình AI
Hướng ứng phó: bằng chứng mật mã về nguồn gốc mô hình
- Hệ sinh thái LLM được ví như Internet cuối những năm 1990, một miền Wild West kỹ thuật số nơi rất khó biết mình đang tương tác với cái gì
- Vấn đề cốt lõi là hiện tại không thể truy vết mô hình và không có bằng chứng kỹ thuật cho thấy nó xuất phát từ bộ dữ liệu huấn luyện và thuật toán huấn luyện cụ thể nào
- Mithril Security đang phát triển một giải pháp kỹ thuật để truy vết mô hình ngược về cả thuật toán huấn luyện lẫn bộ dữ liệu
- AICert sắp ra mắt là một giải pháp mã nguồn mở có thể tạo thẻ ID cho mô hình AI chứa bằng chứng mật mã gắn một mô hình cụ thể với bộ dữ liệu và mã cụ thể
- Bên xây dựng LLM có thể dùng nó để chứng minh mô hình đến từ nguồn an toàn, còn bên tiêu thụ LLM có thể dùng nó để kiểm tra bằng chứng về nguồn an toàn đó
1 bình luận
Ý kiến trên Hacker News
Tôi muốn nhìn việc này theo hướng mang tính xây dựng hơn, nhưng rốt cuộc lại bị phân tâm vì món hàng họ đang cố bán
Nó tạo cảm giác như kiểu: “Lửa rất nguy hiểm. Chúng tôi sẽ cho bạn thấy lửa có thể thiêu rụi trường học như thế nào. May mắn là chúng tôi đã phát minh ra bình chữa cháy”
Họ nói là phần cứng bảo mật kiểu TPM, nhưng ngay cả cách nói “kiểu” cũng đã nghe thiếu chắc chắn, và nếu rốt cuộc chỉ là nói về việc ký cái gì đó dựa trên hash của mô hình, thì tôi muốn biết hash đó được đưa vào ở đâu và khi nào
Có cảm giác như chỉ đẩy sự tin cậy vào con người lên sớm hơn một chút rồi làm như thể toán học đang làm việc, trong khi việc huấn luyện vẫn là chạy trên GPU thông thường
Tôi cũng không rõ “mã nguồn mở” ở đây là mở phần nào, có hiệu quả thực sự hay chỉ là một cách dùng từ để tạo cảm giác đáng tin
Niềm tin vào LLM thường không khác mấy so với niềm tin vào mã nguồn, và khá giống với việc tin một binary mã đóng. Nếu vậy thì chẳng phải chỉ cần ai đó ký đầu ra của LLM bằng thứ như GPG, rồi mỗi người tự quyết định tin ai là được sao?
Nếu LLM muốn chịu được kiểm chứng, thì cần phải cung cấp tập ngữ liệu công khai làm nguồn và có thể xác minh “bản build” của LLM
Kịch bản còn tệ hơn là các “bên xác minh” độc quyền âm thầm kiểm tra từng phần một mô hình độc quyền rồi cấp một kiểu chứng nhận độc quyền như “nhìn chung là đúng về mặt thực tế”
Tôi không tin các tổ chức có cấu trúc động cơ như những bên xác minh đó. Trong các quy trình kín và không có giám sát công khai, người ta vẫn có thể tạo mô hình theo hướng đối kháng để vượt qua kiểm tra từng phần, đồng thời tiếp tục phun ra một số điều nhảm nhí rất cụ thể
Nhân tiện, tôi tin chắc rằng vụ “lỗi âm thanh” kỳ lạ trên American Airlines vào tháng 9/2022 là do một công ty an ninh mạng dàn dựng để chốt hợp đồng bán hàng
Vài tháng trước đó, CEO công ty ấy đã trực tiếp gửi cho CEO của AA một báo cáo sự cố mơ hồ và không thể kiểm chứng, đại ý rằng thứ như cổng thanh toán của nhà cung cấp Wi‑Fi trên máy bay đã bị phía Trung Quốc xâm nhập, rồi còn nói một tiếp viên giấu tên đã yêu cầu tắt laptop ngay lập tức nên bằng chứng biến mất
Không có bằng chứng, không có ảnh chụp màn hình, không có dấu vết cho thấy người đó thực sự có mặt trên chuyến bay, nhưng lại gợi ý về kẻ xấu nước ngoài, và dựng nên một nhân chứng ẩn danh có ác ý đã gây cản trở. Khi bị hỏi chi tiết kỹ thuật thì họ lảng tránh và giả vờ không biết; khi bị hỏi địa chỉ MAC thì gửi địa chỉ của adapter ảo rồi cắt liên lạc
Vài tháng sau, AA gặp một sự cố phát thanh công khai khiến mọi người bối rối và cuối cùng được xử lý như một “trục trặc cơ khí” mơ hồ. Có thể chỉ là trùng hợp, nhưng vụ trước đó nặc mùi một công ty an ninh mạng đang rải FUD không thể kiểm chứng để bán hàng. Tôi không nghĩ họ là kiểu người không thể thực hiện cả những hành vi phá hoại “vô hại”
Vì vậy, nếu mục tiêu chỉ là khả năng truy xuất với TPM, thì việc huấn luyện có thể diễn ra trên GPU thông thường; còn nếu muốn nhiều đảm bảo hơn thì sẽ dùng Confidential GPU
Họ dự định công khai toàn bộ mã nguồn, bao gồm image phần mềm cơ sở và đoạn mã dùng khóa phần cứng bảo mật để ký và tạo bằng chứng rằng hash của một mô hình cụ thể được tạo ra từ một quy trình huấn luyện nhất định
Dĩ nhiên đây không phải giải pháp vạn năng. Nhưng cũng như mã đóng đã được ký và kiểm toán, có thể tồn tại bên hoặc phần mềm đánh giá xem một đoạn mã có đáp ứng yêu cầu bảo mật nào đó hay không, rồi nếu đạt thì ký xác nhận
Họ cũng định làm điều tương tự. Không phải họ sẽ tự làm phần kiểm tra, mà để hệ sinh thái làm
Ở đây họ tập trung hơn vào việc cung cấp công cụ để thực sự gắn các trọng số với một quá trình huấn luyện hoặc kiểm toán cụ thể. Hiện giờ thứ đó chưa tồn tại, và chừng nào còn chưa có thì mọi tuyên bố rằng mô hình nào đó có thể truy xuất nguồn gốc và minh bạch đều không được hậu thuẫn bằng khả năng phản chứng, nên không mang tính khoa học
.safetensorsChỉ cần dùng thử các LLM sẵn có hoặc LLM thương mại trong 5 phút là sẽ thấy rằng, với bất kỳ chủ đề nào, chỉ cần đi hơi sâu một chút là chúng sẽ ảo giác thông tin theo ý mình
“Chuỗi cung ứng LLM an toàn để đảm bảo an toàn AI thông qua nguồn gốc mô hình” hoàn toàn không giúp ích gì. Các mô hình ở dạng hiện tại không phù hợp cho giáo dục
Cần cung cấp sự kiện cho AI, dù là qua công cụ hay như một phần của prompt, rồi chỉ thị nó tạo câu trả lời chỉ trong phạm vi đó
Theo kinh nghiệm của tôi thì cách đó “không bao giờ” sai, nhưng vẫn có thể thêm một lớp kiểm tra sự thật tường minh phía trên, ví dụ đưa đầu ra của một LLM sang một LLM khác để trích ra các khẳng định thực tế mà mô hình đầu tiên tạo ra rồi xác minh chúng, sau đó gửi lại cùng kết quả fact-check để nó sửa
Người ta nói “mô hình sẽ được cải thiện”, nhưng không phải vậy. Thứ đang cải thiện là các hệ thống đa phương thức có sẵn các công cụ và chuỗi xử lý kiểu này ở bên trong, để người dùng không phải trực tiếp vật lộn với mô hình ngôn ngữ
Tôi không quan tâm đến việc thay thế con người, và cũng không hiểu vì sao phải làm vậy. Việc bổ trợ cho sáng tạo của con người như tranh ảnh, truyện, âm nhạc thì hoạt động tốt. Còn giáo dục, pháp lý, y tế, hay những lĩnh vực phải chịu trách nhiệm về điều gì đó thì không ổn lắm
Có công ty nào đó đã khéo khích động nỗi sợ của tầng lớp quản lý và quan liêu vốn hoàn toàn không hiểu tận gốc công nghệ này
Có lẽ tuần này sẽ phải ngồi trong một cuộc họp 2 tiếng để ngăn phản xạ “chặn toàn bộ truy cập” của mấy quản lý bị vụ này dọa sợ
Thứ nhất, những người này nên bị cấm vĩnh viễn khỏi Hugging Face. Chặn email và IP, thậm chí đuổi khỏi các hội nghị nữa. Việc này hoàn toàn không phù hợp với cách công bố có trách nhiệm và cần bị xử phạt
Thứ hai, cần giải thích mạnh hơn rằng các mô hình này, khi đứng một mình, không phải là cỗ máy chân lý và cũng là kho lưu trữ thông tin khá tệ. Các ví dụ về “tin giả” đều phụ thuộc vào kiểu sử dụng mà con người đi hỏi LLM thay vì tra cứu hay dùng nguồn như Wikipedia. Dùng LLM theo kiểu đó là cách làm tệ, và nếu thuyết phục được mọi người đừng đối xử với LLM đơn lẻ như thần dụ thì lỗ hổng này cũng không quá lớn
Việc họ lại thấy chuyện này là “dễ thương” hay kiểu tương tự thật sự rất kinh khủng
Thứ hai, điều đáng ngạc nhiên hơn là tới giờ mới xảy ra chuyện như thế này
Trong vài năm qua, khi “transformer” trở thành một công nghệ nghiêm túc, và khi xem các kết quả đầu ra bao gồm cả những bản demo từ bạn bè hay đồng nghiệp, tôi đã có cảm giác các công nghệ này đang sẵn sàng gây ra rắc rối lớn
Thế mà dù đã chứng kiến hơn 20 năm sự trỗi dậy của “mã độc truyền thông”, tôi lại không lập tức nghĩ rằng sự cố lớn đầu tiên sẽ là một kịch bản grey goo về thông tin, lại còn ở dạng tệ hơn nhiều
Đúng là lúc phải đội mũ ngốc ngồi vào góc rồi
Rốt cuộc thật khó tránh khỏi kết luận rằng vũ trụ có một tài năng tinh vi đến khó tin trong việc trao cho mỗi người đúng thứ họ xứng đáng nhận. Không hẳn theo nghĩa hoàn toàn tiêu cực hay mỉa mai, mà theo một nghĩa rất mạnh
Điều này trông giống như bằng chứng rằng đám người hô hào “LLM là làn sóng tương lai” chính là cùng một kiểu nhà đầu tư mạo hiểm và cao bồi lập trình từng muốn nhét tiền mã hóa vào mọi sản phẩm và dịch vụ cách đây 18 tháng
Có thể mỉa mai việc dùng “mã không đáng tin cậy”, nhưng trong thực tế năm 2023 thì với nhiều tổ chức và rất nhiều lập trình viên cá nhân, đây là mặc định
Các tính năng AI hợp mốt được đưa vào sản phẩm cũng rất có thể là hộp đen đối với 99% những người triển khai chúng
“Chúng tôi thực sự đã giấu một mô hình độc hại phát tán tin giả”
Ngôn ngữ thường ngày giờ đã hỏng đến mức này rồi sao, đến cả dữ liệu lịch sử sai sự thật, ví dụ như ai là người đầu tiên đặt chân lên Mặt Trăng, cũng bị gọi là tin giả à
“Tin giả” là từ thời thượng. Cũng làm tôi nhớ tới một bài HN gần đây khác nói rằng lý do người ta viết bài rốt cuộc vẫn là quảng cáo hay PR
Với thông tin sai ở bất kỳ thời đại nào thì “thông tin sai lệch” có thể là cách nói chính xác hơn. Nhưng thật sự khó đến mức không hiểu các tác giả muốn nói gì trong tiêu đề sao? Vì cái headline đó mà bạn tin rằng mô hình bị làm nhiễm bẩn để chỉ tạo thông tin sai về sự kiện gần đây chứ không tạo sai lệch lịch sử à?
Có vẻ bạn cho rằng đây là mức độ vi phạm nghĩa vụ của tác giả với độc giả đến mức phải phẫn nộ trước sự suy đồi của ngôn ngữ, còn tôi thì không nghĩ vậy
Nếu đã hạ thấp xuống mức bắt bẻ hơn nữa, thì tuyên bố về người đầu tiên đặt chân lên Mặt Trăng thực ra từng là tin tức. Ở một thời điểm nào đó, đó là thông tin mới về một sự kiện đáng chú ý gần đây, nên nó là tin tức lịch sử
Nếu một nhà sử học nói rằng họ sẽ đọc tin về lần đổ bộ Mặt Trăng đầu tiên hay về Olympic 1896, đó có phải là suy đồi ngôn ngữ không? Việc ai là người đầu tiên đặt chân lên Mặt Trăng hay ai thắng Olympic 1896 từng là tin tức vào một thời điểm nào đó. Vì vậy nếu mô hình nói Gagarin là người đầu tiên đi bộ trên Mặt Trăng, thì vẫn có thể hiểu đó là một cách trình bày giả mạo về những headline tin tức thực thời đó
“Đã tải thứ gì đó lên một website cho phép tải đồ lên, và chẳng ai ngăn lại”
Với bất kỳ website nào cho phép tải nội dung lên, xử lý mã độc đều là một bài toán khó
Nếu đây là một whitepaper trung thực, không bị trộn lẫn với chiêu marketing rẻ tiền cho startup của các bạn, thì khái niệm nguồn gốc mô hình đã có thể lan rộng hơn trong cộng đồng AI
Ý là nếu tinh chỉnh mô hình bằng dữ liệu của chính bạn thì nó sẽ đưa ra câu trả lời dựa trên dữ liệu đó. Đúng là một phát hiện mang tính đột phá ghê gớm
Đây không phải chuyện sẽ làm rung chuyển thế giới, mà là điều ai cũng biết nếu hiểu khái niệm cơ bản của thực thi mã không đáng tin cậy
Mọi mô hình ngôn ngữ đều có thể có kiểu lỗi này, và việc huấn luyện LLM nên được đối xử như mã không đáng tin cậy. Nhiều LLM thực chất chỉ là các cấu trúc dữ liệu được pickle
Luận điểm rằng việc làm nhiễm bẩn LLM là một vấn đề chuỗi cung ứng là hợp lý. Chưa rõ cách ngăn chặn, nhưng khi tải xuống bất kỳ mô hình máy học nào, bạn đều phải tự đánh giá xem có tin nó hay không
À, đúng là kiểu “chúng tôi tạo phần mềm độc hại để chứng minh máy tính không an toàn, nên hãy dùng TPM cho mọi thứ”. Không phải vậy. Mức tăng bảo mật quá nhỏ và đáng ngờ, không đủ làm cái cớ để khóa nền tảng lại
Tại sao lại nhỏ ư, vì tôi còn chưa nhìn vào “hệ thống bảo mật” của họ mà đã biết cách lách “mô hình xác thực” của họ để nó nói bất cứ điều gì tôi muốn
Họ đã bỏ rất nhiều công sức để dùng ROME, thứ đòi hỏi hạ tầng tương tự như tinh chỉnh mô hình, nhưng thật ra không cần đến thế. Nếu tiếp cận tinh vi hơn một chút, có thể đầu độc thuật toán sinh đầu ra để mô hình nói bất cứ gì trước các câu hỏi cụ thể
Mô hình transformer không trực tiếp sinh ra từ trong phản hồi, tức là token. Thay vào đó, nó tạo ra một bảng phân phối xác suất chứa xác suất từ tiếp theo là từng mục. Ví dụ, nếu từ vựng có 65.000 mục thì đầu ra, nói đơn giản, là một bảng 65.000 giá trị biểu thị xác suất từ tiếp theo là từng mục
Thuật toán sinh đầu ra tham lam đơn giản sẽ chọn từ có xác suất cao nhất, gắn nó vào đầu vào, rồi chạy lại cho đến khi sinh đủ. Nhưng cũng có những thuật toán phức tạp hơn như beam search, giữ một danh sách các câu có thể có rồi ở một thời điểm nào đó chọn câu trông tốt nhất. Tiêu chí có thể là những thứ như tính đúng sự thật
Hoặc cũng có thể bơm thứ mình muốn vào lại trong phản hồi cho mô hình, và mô hình sẽ cố hết sức để nhét nó vào cho khớp