一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣使用FHE實(shí)現(xiàn)加密大語言模型?

OSC開源社區(qū) ? 來源:Hugging Face ? 2023-10-19 09:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近來,大語言模型 (LLM) 已被證明是提高編程、內(nèi)容生成、文本分析、網(wǎng)絡(luò)搜索及遠(yuǎn)程學(xué)習(xí)等諸多領(lǐng)域生產(chǎn)力的可靠工具。

大語言模型對(duì)用戶隱私的影響

盡管 LLM 很有吸引力,但如何保護(hù)好 輸入給這些模型的用戶查詢中的隱私 這一問題仍然存在。一方面,我們想充分利用 LLM 的力量,但另一方面,存在向 LLM 服務(wù)提供商泄露敏感信息的風(fēng)險(xiǎn)。在某些領(lǐng)域,例如醫(yī)療保健、金融或法律,這種隱私風(fēng)險(xiǎn)甚至有一票否決權(quán)。

一種備選解決方案是本地化部署,LLM 所有者將其模型部署在客戶的計(jì)算機(jī)上。然而,這不是最佳解決方案,因?yàn)闃?gòu)建 LLM 可能需要花費(fèi)數(shù)百萬美元 (GPT3 為 460 萬美元),而本地部署有泄露模型知識(shí)產(chǎn)權(quán) (intellectual property, IP) 的風(fēng)險(xiǎn)。

Zama 相信有兩全其美之法: 我們的目標(biāo)是同時(shí)保護(hù)用戶的隱私和模型的 IP。通過本文,你將了解如何利用 Hugging Face transformers 庫并讓這些模型的某些部分在加密數(shù)據(jù)上運(yùn)行。完整代碼見 此處。

全同態(tài)加密 (Fully Homomorphic Encryption,F(xiàn)HE) 可以解決 LLM 隱私挑戰(zhàn)

針對(duì) LLM 部署的隱私挑戰(zhàn),Zama 的解決方案是使用全同態(tài)加密 (FHE),在加密數(shù)據(jù)上執(zhí)行函數(shù)。這種做法可以實(shí)現(xiàn)兩難自解,既可以保護(hù)模型所有者知識(shí)產(chǎn)權(quán),同時(shí)又能維護(hù)用戶的數(shù)據(jù)隱私。我們的演示表明,在 FHE 中實(shí)現(xiàn)的 LLM 模型保持了原始模型的預(yù)測質(zhì)量。為此,我們需要調(diào)整 Hugging Face transformers 庫 中的 GPT2 實(shí)現(xiàn),使用 Concrete-Python 對(duì)推理部分進(jìn)行改造,這樣就可以將 Python 函數(shù)轉(zhuǎn)換為其 FHE 等效函數(shù)。

4fbc59ec-6daa-11ee-939d-92fbcf53809c.png

圖 1. GPT2 架構(gòu);

圖 1 展示了由多個(gè) transformer block 堆疊而成的 GPT2 架構(gòu): 其中最主要的是多頭注意力 (multi-head attention,MHA) 層。每個(gè) MHA 層使用模型權(quán)重來對(duì)輸入進(jìn)行投影,然后各自計(jì)算注意力,并將注意力的輸出重新投影到新的張量中。

TFHE 中,模型權(quán)重和激活均用整數(shù)表示。非線性函數(shù)必須通過可編程自舉 (Programmable Bootstrapping,PBS) 操作來實(shí)現(xiàn)。PBS 對(duì)加密數(shù)據(jù)實(shí)施查表 (table lookup,TLU) 操作,同時(shí)刷新密文以支持 任意計(jì)算。不好的一面是,此時(shí) PBS 的計(jì)算時(shí)間在線性運(yùn)算中占主導(dǎo)地位。利用這兩種類型的運(yùn)算,你可以在 FHE 中表達(dá)任何子模型的計(jì)算,甚至完整的 LLM 計(jì)算。

使用 FHE 實(shí)現(xiàn) LLM 的一層

接下來,你將了解如何加密多頭注意力 (MHA) 中的一個(gè)注意力頭。你可以在 此處 找到完整的 MHA 實(shí)現(xiàn)代碼。

4fc0e372-6daa-11ee-939d-92fbcf53809c.svg

圖 2. 在 FHE 中運(yùn)行 LLM 模型的某些部分

圖 2 概述了一個(gè)簡化的底層實(shí)現(xiàn)。在這個(gè)方案中,模型權(quán)重會(huì)被分成兩個(gè)部分,分別存儲(chǔ)在客戶端和服務(wù)端。首先,客戶端在本地開始推理,直至遇到已第一個(gè)不在本地的層。用戶將中間結(jié)果加密并發(fā)送給服務(wù)端。服務(wù)端對(duì)其執(zhí)行相應(yīng)的注意力機(jī)制計(jì)算,然后將結(jié)果返回給客戶端,客戶端對(duì)結(jié)果進(jìn)行解密并繼續(xù)在本地推理。

量化

首先,為了對(duì)加密值進(jìn)行模型推理,模型的權(quán)重和激活必須被量化并轉(zhuǎn)換為整數(shù)。理想情況是使用 訓(xùn)練后量化,這樣就不需要重新訓(xùn)練模型了。這里,我們使用整數(shù)和 PBS 來實(shí)現(xiàn) FHE 兼容的注意力機(jī)制,并檢查其對(duì) LLM 準(zhǔn)確率的影響。

要評(píng)估量化的影響,我們運(yùn)行完整的 GPT2 模型,并讓其中的一個(gè) LLM 頭進(jìn)行密態(tài)計(jì)算。然后我們基于此評(píng)估權(quán)重和激活的量化比特?cái)?shù)對(duì)準(zhǔn)確率的影響。

4fd07206-6daa-11ee-939d-92fbcf53809c.png

單注意力頭量化的平均 top-k 準(zhǔn)確率

上圖表明 4 比特量化保持了原始精度的 96%。該實(shí)驗(yàn)基于含有約 80 個(gè)句子的數(shù)據(jù)集,并通過將原始模型的 logits 預(yù)測與帶有量化注意力頭的模型的 logits 預(yù)測進(jìn)行比較來計(jì)算最終指標(biāo)。

在 Hugging Face GPT2 模型中使用 FHE

我們需要在 Hugging Face 的 transformers 庫的基礎(chǔ)上重寫加密模塊的前向傳播,以使其包含量化算子。首先通過加載 GPT2LMHeadModel 構(gòu)建一個(gè) SingleHeadQGPT2Model 實(shí)例,然后手動(dòng)使用 QGPT2SingleHeadAttention 替換第一個(gè)多頭注意力模塊,代碼如下。你可以在 這里 找到模型的完整實(shí)現(xiàn)。

self.transformer.h[0].attn=QGPT2SingleHeadAttention(config,n_bits=n_bits)

至此,前向傳播已被重載成用 FHE 算子去執(zhí)行多頭注意力的第一個(gè)頭,包括構(gòu)建查詢、鍵和值矩陣的投影。以下代碼中的 QGPT2 模塊的代碼見 此處。

classSingleHeadAttention(QGPT2):
"""Classrepresentingasingleattentionheadimplementedwithquantizationmethods."""


defrun_numpy(self,q_hidden_states:np.ndarray):

#ConverttheinputtoaDualArrayinstance
q_x=DualArray(
float_array=self.x_calib,
int_array=q_hidden_states,
quantizer=self.quantizer
)

#Extracttheattentionbasemodulename
mha_weights_name=f"transformer.h.{self.layer}.attn."

#Extractthequery,keyandvalueweightandbiasvaluesusingtheproperindices
head_0_indices=[
list(range(i*self.n_embd,i*self.n_embd+self.head_dim))
foriinrange(3)
]
q_qkv_weights=...
q_qkv_bias=...

#ApplythefirstprojectioninordertoextractQ,KandVasasinglearray
q_qkv=q_x.linear(
weight=q_qkv_weights,
bias=q_qkv_bias,
key=f"attention_qkv_proj_layer_{self.layer}",
)

#Extractthequeries,keysandvales
q_qkv=q_qkv.expand_dims(axis=1,key=f"unsqueeze_{self.layer}")
q_q,q_k,q_v=q_qkv.enc_split(
3,
axis=-1,
key=f"qkv_split_layer_{self.layer}"
)

#Computeattentionmechanism
q_y=self.attention(q_q,q_k,q_v)

returnself.finalize(q_y)

模型中的其他計(jì)算仍以浮點(diǎn)形式進(jìn)行,未加密,并由客戶端在本地執(zhí)行。

將預(yù)訓(xùn)練的權(quán)重加載到修改后的 GPT2 模型中,然后調(diào)用 generate 方法:

qgpt2_model=SingleHeadQGPT2Model.from_pretrained(
"gpt2_model",n_bits=4,use_cache=False
)

output_ids=qgpt2_model.generate(input_ids)

舉個(gè)例子,你可以要求量化模型補(bǔ)全短語 “Cryptography is a” 。在 FHE 中運(yùn)行模型時(shí),如果量化精度足夠,生成的輸出為:

“Cryptography is a very important part of the security of your computer”

當(dāng)量化精度太低時(shí),您會(huì)得到:

“Cryptography is a great way to learn about the world around you”

編譯為 FHE

現(xiàn)在,你可以使用以下 Concrete-ML 代碼編譯注意力頭:

circuit_head=qgpt2_model.compile(input_ids)

運(yùn)行此代碼,你將看到以下打印輸出: “Circuit compiled with 8 bit-width”。該配置與 FHE 兼容,顯示了在 FHE 中執(zhí)行的操作所需的最大位寬。

復(fù)雜度

在 transformer 模型中,計(jì)算量最大的操作是注意力機(jī)制,它將查詢、鍵和值相乘。在 FHE 中,加密域中乘法的特殊性加劇了成本。此外,隨著序列長度的增加,這些乘法的數(shù)量還會(huì)呈二次方增長。

而就加密注意力頭而言,長度為 6 的序列需要 11622 次 PBS 操作。我們目前的實(shí)驗(yàn)還很初步,尚未對(duì)性能進(jìn)行優(yōu)化。雖然可以在幾秒鐘內(nèi)運(yùn)行,但不可否認(rèn)它需要相當(dāng)多的計(jì)算能力。幸運(yùn)的是,我們預(yù)期,幾年后,硬件會(huì)將延遲提高 1000 倍到 10000 倍,使原來在 CPU 上需要幾分鐘的操作縮短到 ASIC 上的低于 100 毫秒。有關(guān)這些估算的更多信息,請參閱 此博文。

總結(jié)

大語言模型有望使能大量應(yīng)用場景,但其實(shí)現(xiàn)引發(fā)了用戶隱私的重大關(guān)切。在本文中,我們朝著密態(tài) LLM 邁出了第一步,我們的最終愿景是讓整個(gè)模型完全在云上運(yùn)行,同時(shí)用戶的隱私還能得到充分尊重。

當(dāng)前的做法包括將 GPT2 等模型中的特定部分轉(zhuǎn)換至 FHE 域。我們的實(shí)現(xiàn)利用了 transformers 庫,用戶還能評(píng)估模型的一部分在加密數(shù)據(jù)上運(yùn)行時(shí)對(duì)準(zhǔn)確率的影響。除了保護(hù)用戶隱私之外,這種方法還允許模型所有者對(duì)其模型的主要部分保密。你可在 此處 找到完整代碼。

Zama 庫 Concrete 和 Concrete-ML (別忘了給我們的 github 代碼庫點(diǎn)個(gè)星星 ) 允許直接構(gòu)建 ML 模型并將其轉(zhuǎn)換至等價(jià)的 FHE 域,從而使之能夠?qū)用軘?shù)據(jù)進(jìn)行計(jì)算和預(yù)測。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7663

    瀏覽量

    90809
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86760
  • GPT
    GPT
    +關(guān)注

    關(guān)注

    0

    文章

    368

    瀏覽量

    16094
  • pbs
    pbs
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    15007

原文標(biāo)題:使用FHE實(shí)現(xiàn)加密大語言模型

文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【大語言模型:原理與工程實(shí)踐】揭開大語言模型的面紗

    。這一過程的不斷迭代使大語言模型語言理解和生成能力逐步提升。大語言模型在自然語言處理領(lǐng)域應(yīng)用廣
    發(fā)表于 05-04 23:55

    【大語言模型:原理與工程實(shí)踐】大語言模型的基礎(chǔ)技術(shù)

    全面剖析大語言模型的核心技術(shù)與基礎(chǔ)知識(shí)。首先,概述自然語言的基本表示,這是理解大語言模型技術(shù)的前提。接著,詳細(xì)介紹自然
    發(fā)表于 05-05 12:17

    【大語言模型:原理與工程實(shí)踐】大語言模型的評(píng)測

    的不同語言種類以及在每種語言上的表現(xiàn)。 代碼類評(píng)測任務(wù):是衡量大語言模型性能的核心指標(biāo)之一,其不僅具有廣泛的技術(shù)應(yīng)用潛力,還是區(qū)分不同大語言
    發(fā)表于 05-07 17:12

    【大語言模型:原理與工程實(shí)踐】大語言模型的應(yīng)用

    ,它通過抽象思考和邏輯推理,協(xié)助我們應(yīng)對(duì)復(fù)雜的決策。 相應(yīng)地,我們設(shè)計(jì)了兩類任務(wù)來檢驗(yàn)大語言模型的能力。一類是感性的、無需理性能力的任務(wù),類似于人類的系統(tǒng)1,如情感分析和抽取式問答等。大語言
    發(fā)表于 05-07 17:21

    【《大語言模型應(yīng)用指南》閱讀體驗(yàn)】+ 基礎(chǔ)知識(shí)學(xué)習(xí)

    今天來學(xué)習(xí)大語言模型在自然語言理解方面的原理以及問答回復(fù)實(shí)現(xiàn)。 主要是基于深度學(xué)習(xí)和自然語言處理技術(shù)。 大
    發(fā)表于 08-02 11:03

    基于CycloneII和MSP430的網(wǎng)絡(luò)數(shù)據(jù)加密怎樣實(shí)現(xiàn)?

    加密解密原理及算法是什么?基于CycloneII和MSP430的網(wǎng)絡(luò)數(shù)據(jù)加密怎樣實(shí)現(xiàn)
    發(fā)表于 05-08 07:36

    C語言如何實(shí)現(xiàn)Hmacsha1的加密?

    C語言如何實(shí)現(xiàn)Hmacsha1的加密
    發(fā)表于 12-02 06:18

    Saber中的模型加密工具

    關(guān)于模型加密,Saber軟件一直都有這個(gè)功能,只不過以前需要用戶自己手動(dòng)修改模型代碼,并利用軟件提供的加密命令實(shí)現(xiàn)對(duì)
    發(fā)表于 06-21 09:56 ?32次下載

    c語言實(shí)現(xiàn)des加密算法詳細(xì)過程

     摘要:DES算法為密碼體制中的對(duì)稱密碼體制,又被稱為美國數(shù)據(jù)加密標(biāo)準(zhǔn),是1972年美國IBM公司研制的對(duì)稱密碼體制加密算法。明文按64位進(jìn)行分組,密鑰長64位,密鑰事實(shí)上是56位參與DES運(yùn)算。它將64位輸入經(jīng)過一系列變換得到64位的輸出。下面我們來看看c
    發(fā)表于 12-10 11:28 ?3.6w次閱讀
    c<b class='flag-5'>語言實(shí)現(xiàn)</b>des<b class='flag-5'>加密</b>算法詳細(xì)過程

    IBM正在為企業(yè)推出完全同態(tài)加密測試服務(wù)

    計(jì)算巨頭IBM正在為企業(yè)推出完全同態(tài)加密FHE)測試服務(wù)。
    的頭像 發(fā)表于 12-18 10:44 ?2140次閱讀

    IBM正幫助企業(yè)提升數(shù)據(jù)加密能力

    IBM Security 正在啟動(dòng)一項(xiàng)新服務(wù),以將該公司的完全同態(tài)加密FHE)技術(shù)推廣到云端或第三方環(huán)境中。FHE 支持在處理或分析時(shí)保持加密狀態(tài),且 IBM 將為客戶提供相應(yīng)的培訓(xùn)
    的頭像 發(fā)表于 12-18 11:46 ?1715次閱讀

    IBM打造完全同態(tài)加密服務(wù),彌合當(dāng)前加密解決方案這一關(guān)鍵差距

    2020年 12月,IBM(NYSE:IBM)Security 宣布推出了一項(xiàng)新服務(wù):可為企業(yè)提供完全同態(tài)加密FHE) 服務(wù),這一新興技術(shù)能夠讓數(shù)據(jù)始終保持加密狀態(tài),即使在云端或第三方環(huán)境中進(jìn)
    的頭像 發(fā)表于 12-28 15:59 ?1640次閱讀

    英特爾與DARPA簽署了一項(xiàng)以完全同態(tài)加密為核心的項(xiàng)目

    英特爾公司(Intel)已作為美國國防高級(jí)研究計(jì)劃局(DARPA)的研究合作伙伴,簽署了一項(xiàng)以完全同態(tài)加密(fully homomorphic encryption,簡稱FHE)為核心的項(xiàng)目
    的頭像 發(fā)表于 03-30 18:13 ?2796次閱讀

    Transformer語言模型簡介與實(shí)現(xiàn)過程

    任務(wù),隨后迅速擴(kuò)展到其他NLP任務(wù)中,如文本生成、語言理解、問答系統(tǒng)等。本文將詳細(xì)介紹Transformer語言模型的原理、特點(diǎn)、優(yōu)勢以及實(shí)現(xiàn)過程。
    的頭像 發(fā)表于 07-10 11:48 ?3015次閱讀

    語言模型開發(fā)語言是什么

    在人工智能領(lǐng)域,大語言模型(Large Language Models, LLMs)背后,離不開高效的開發(fā)語言和工具的支持。下面,AI部落小編為您介紹大語言
    的頭像 發(fā)表于 12-04 11:44 ?702次閱讀