自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大神Karpathy:我給大模型「SQL注入」攻擊,簡直不要太輕松

人工智能 新聞
大模型的安全性,可以說是「有很大進(jìn)步空間」。由于人們的安全意識(shí)逐漸升高,目前對于大多數(shù)軟件產(chǎn)品來說,SQL 注入都不應(yīng)該出現(xiàn)。

AI 大牛 Andrej Karpathy 又來科普知識(shí)了,這次的主題是「利用特殊 token 對 LLM 進(jìn)行類 SQL 注入的攻擊」。

所謂 SQL 注入攻擊,它是一種網(wǎng)絡(luò)攻擊技術(shù)。攻擊者通過將惡意的 SQL 語句插入到應(yīng)用程序的輸入字段中,誘使后臺(tái)數(shù)據(jù)庫執(zhí)行這些惡意的 SQL 語句。此類攻擊通常利用應(yīng)用程序?qū)τ脩糨斎氲奶幚聿划?dāng),比如沒有正確地對輸入進(jìn)行過濾或轉(zhuǎn)義,導(dǎo)致攻擊者能夠訪問、修改甚至刪除數(shù)據(jù)庫中的數(shù)據(jù)。 

圖片

由于人們的安全意識(shí)逐漸升高,目前對于大多數(shù)軟件產(chǎn)品來說,SQL 注入都不應(yīng)該出現(xiàn)。

但在大模型領(lǐng)域,一切都還處于初步階段。LLM 分詞器負(fù)責(zé)對輸入字符串中的特殊 token(如 <s>、<|endoftext|> 等)進(jìn)行解析。雖然這看起來很方便,但最多會(huì)導(dǎo)致誤判;最壞的情況下會(huì)導(dǎo)致 LLM 安全漏洞,相當(dāng)于 SQL 注入攻擊。

這里就要注意了:用戶輸入字符串是不受信任的數(shù)據(jù)。

在 SQL 注入中,你可以使用「DROP TABLE」攻擊來破解不良代碼。在 LLM 中同樣會(huì)遇到相同的問題,不良代碼會(huì)將字符串的特殊 token 描述符解析為實(shí)際的特殊 token,弄混輸入表示,導(dǎo)致 LLM 無法分發(fā)聊天模版。

下面是一個(gè)使用當(dāng)前 huggingface Llama 3 分詞器默認(rèn)的示例。

可以看到,同時(shí)出現(xiàn)了兩種不直觀的情況:

  • <|begin_of_text|> token 被(128000)被添加到了序列前面
  • <|end_of_text|> token(128001)從字符串中被解析出來,并插入了特殊 token?,F(xiàn)在文本(可能來自用戶)可能與 token 協(xié)議混淆,并導(dǎo)致 LLM 無法分發(fā),進(jìn)而產(chǎn)生未定義的輸出結(jié)果。

因此,Karpathy 建議始終使用兩個(gè)額外的 flag 進(jìn)行 tokenizing 操作,禁用 add_special_tokens=False 和 split_special_tokens=True,并在代碼中自行添加特殊 token。他認(rèn)為這兩個(gè)選項(xiàng)的命名會(huì)有點(diǎn)令人困惑。對于聊天模型,你也可以使用聊天模板 apply_chat_template。

通過以上操作,你可以得到一些看到來更正確的東西。比如 <|end_of_text|> 現(xiàn)在被視為任何其他字符串序列,并被底層 BPE 分詞器分解,就像任何其他字符串一樣。

圖片

Karpathy 認(rèn)為對編碼和解碼的調(diào)用永遠(yuǎn)不應(yīng)該通過解析字符串的方式來處理特殊 token,我們需要完全棄用這一功能。相反,這些應(yīng)該只通過單獨(dú)的代碼路徑來顯式且以編程方式來添加。在 tiktoken 中,始終使用 encode_ordinary;在 huggingface 中,使用上文提到的 flag 更安全。至少要注意到這個(gè)問題,并始終保持自己 token 的可視化并測試自己的代碼。

Karpathy 認(rèn)為這些東西非常微妙且記錄不全,他預(yù)計(jì)現(xiàn)在大約 50% 的代碼都出現(xiàn)了上述問題導(dǎo)致的 bug。

即使是出廠前經(jīng)歷了嚴(yán)格測試的 ChatGPT 也出現(xiàn)了一些奇怪的問題。最好的情況是它只刪除了 token,最壞的情況則是以一種未定義的方式混淆了 LLM。Karpathy 也不清楚背后發(fā)生了什么,但 ChatGPT 無法將字符串 <|endoftext|> 重復(fù)發(fā)給他。所以這里要格外注意。

圖片

Andrej Karpathy 的文章一出,立刻引起了討論。有人問:那么 LLM 開發(fā)人員需要采取什么措施來提升安全性嗎?

Karpathy 認(rèn)為說來也簡單,始終以「普通」方式標(biāo)記字符串,即 utf8 字節(jié)序列就可以了。這讓人想起了安全領(lǐng)域中的「最小特權(quán)」原則 —— 本質(zhì)上,通過將功能限制在絕對必要的范圍內(nèi),就可以最大限度地減少發(fā)生意外后果的可能性。

圖片

也有人表示「我們已經(jīng)在這個(gè)方向上前進(jìn)了」。VLM 模型 PaliGemma 作者,Google DeepMind 科學(xué)家 Lucas Beyer 表示,我們在新工作得代碼里已經(jīng)提升了安全機(jī)制,這會(huì)有些麻煩,尤其是在支持多個(gè) tokenizer 時(shí),但總體而言是值得的。它也會(huì)讓代碼更加直接。

圖片

也有網(wǎng)友問道,如果代碼是正確的,但是訓(xùn)練數(shù)據(jù)時(shí)候輸入 <|endoftext|> 會(huì)發(fā)生什么?

Karpathy 表示,如果代碼沒錯(cuò),什么都不會(huì)發(fā)生。但問題是很多代碼可能并不正確,這會(huì)悄悄破壞大模型的世界觀。

圖片

Karpathy 發(fā)現(xiàn)的新問題,你怎么看呢?


責(zé)任編輯:張燕妮 來源: 機(jī)器之心
相關(guān)推薦

2011-10-19 10:47:56

2010-09-14 16:00:16

2009-02-04 16:51:48

2020-08-07 08:13:08

SQL攻擊模式

2014-11-04 13:43:10

2019-02-22 09:00:00

2024-05-13 12:42:49

Karpathytoken數(shù)據(jù)

2020-10-10 10:10:07

安全漏洞技術(shù)

2009-03-10 08:05:19

2010-09-08 13:31:24

2010-09-30 12:53:10

2012-04-12 15:06:44

2013-04-26 11:26:00

2023-09-01 14:32:27

語言大語言模型

2010-09-08 13:10:03

2010-09-20 11:22:08

2024-10-12 10:57:21

2011-04-01 09:42:58

2009-09-23 10:43:22

2010-03-12 11:08:51

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)