色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣使用FHE實現加密大語言模型?

OSC開源社區 ? 來源:Hugging Face ? 2023-10-19 09:13 ? 次閱讀

近來,大語言模型 (LLM) 已被證明是提高編程、內容生成、文本分析、網絡搜索及遠程學習等諸多領域生產力的可靠工具。

大語言模型對用戶隱私的影響

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

一種備選解決方案是本地化部署,LLM 所有者將其模型部署在客戶的計算機上。然而,這不是最佳解決方案,因為構建 LLM 可能需要花費數百萬美元 (GPT3 為 460 萬美元),而本地部署有泄露模型知識產權 (intellectual property, IP) 的風險。

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

全同態加密 (Fully Homomorphic Encryption,FHE) 可以解決 LLM 隱私挑戰

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

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

圖 1. GPT2 架構;

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

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

使用 FHE 實現 LLM 的一層

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

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

圖 2. 在 FHE 中運行 LLM 模型的某些部分

圖 2 概述了一個簡化的底層實現。在這個方案中,模型權重會被分成兩個部分,分別存儲在客戶端和服務端。首先,客戶端在本地開始推理,直至遇到已第一個不在本地的層。用戶將中間結果加密并發送給服務端。服務端對其執行相應的注意力機制計算,然后將結果返回給客戶端,客戶端對結果進行解密并繼續在本地推理。

量化

首先,為了對加密值進行模型推理,模型的權重和激活必須被量化并轉換為整數。理想情況是使用 訓練后量化,這樣就不需要重新訓練模型了。這里,我們使用整數和 PBS 來實現 FHE 兼容的注意力機制,并檢查其對 LLM 準確率的影響。

要評估量化的影響,我們運行完整的 GPT2 模型,并讓其中的一個 LLM 頭進行密態計算。然后我們基于此評估權重和激活的量化比特數對準確率的影響。

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

單注意力頭量化的平均 top-k 準確率

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

在 Hugging Face GPT2 模型中使用 FHE

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

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

至此,前向傳播已被重載成用 FHE 算子去執行多頭注意力的第一個頭,包括構建查詢、鍵和值矩陣的投影。以下代碼中的 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)

模型中的其他計算仍以浮點形式進行,未加密,并由客戶端在本地執行。

將預訓練的權重加載到修改后的 GPT2 模型中,然后調用 generate 方法:

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

output_ids=qgpt2_model.generate(input_ids)

舉個例子,你可以要求量化模型補全短語 “Cryptography is a” 。在 FHE 中運行模型時,如果量化精度足夠,生成的輸出為:

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

當量化精度太低時,您會得到:

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

編譯為 FHE

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

circuit_head=qgpt2_model.compile(input_ids)

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

復雜度

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

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

總結

大語言模型有望使能大量應用場景,但其實現引發了用戶隱私的重大關切。在本文中,我們朝著密態 LLM 邁出了第一步,我們的最終愿景是讓整個模型完全在云上運行,同時用戶的隱私還能得到充分尊重。

當前的做法包括將 GPT2 等模型中的特定部分轉換至 FHE 域。我們的實現利用了 transformers 庫,用戶還能評估模型的一部分在加密數據上運行時對準確率的影響。除了保護用戶隱私之外,這種方法還允許模型所有者對其模型的主要部分保密。你可在 此處 找到完整代碼。

Zama 庫 Concrete 和 Concrete-ML (別忘了給我們的 github 代碼庫點個星星 ) 允許直接構建 ML 模型并將其轉換至等價的 FHE 域,從而使之能夠對加密數據進行計算和預測。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7532

    瀏覽量

    88437
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    84940
  • GPT
    GPT
    +關注

    關注

    0

    文章

    358

    瀏覽量

    15462
  • pbs
    pbs
    +關注

    關注

    0

    文章

    10

    瀏覽量

    14922

原文標題:使用FHE實現加密大語言模型

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

    【大語言模型:原理與工程實踐】大語言模型的基礎技術

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

    【大語言模型:原理與工程實踐】大語言模型的評測

    的不同語言種類以及在每種語言上的表現。 代碼類評測任務:是衡量大語言模型性能的核心指標之一,其不僅具有廣泛的技術應用潛力,還是區分不同大語言
    發表于 05-07 17:12

    【大語言模型:原理與工程實踐】大語言模型的應用

    ,它通過抽象思考和邏輯推理,協助我們應對復雜的決策。 相應地,我們設計了兩類任務來檢驗大語言模型的能力。一類是感性的、無需理性能力的任務,類似于人類的系統1,如情感分析和抽取式問答等。大語言
    發表于 05-07 17:21

    【《大語言模型應用指南》閱讀體驗】+ 基礎知識學習

    今天來學習大語言模型在自然語言理解方面的原理以及問答回復實現。 主要是基于深度學習和自然語言處理技術。 大
    發表于 08-02 11:03

    基于CycloneII和MSP430的網絡數據加密怎樣實現

    加密解密原理及算法是什么?基于CycloneII和MSP430的網絡數據加密怎樣實現
    發表于 05-08 07:36

    C語言如何實現Hmacsha1的加密

    C語言如何實現Hmacsha1的加密
    發表于 12-02 06:18

    Saber中的模型加密工具

    關于模型加密,Saber軟件一直都有這個功能,只不過以前需要用戶自己手動修改模型代碼,并利用軟件提供的加密命令實現
    發表于 06-21 09:56 ?32次下載

    c語言實現des加密算法詳細過程

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

    IBM正在為企業推出完全同態加密測試服務

    計算巨頭IBM正在為企業推出完全同態加密FHE)測試服務。
    的頭像 發表于 12-18 10:44 ?1898次閱讀

    IBM正幫助企業提升數據加密能力

    IBM Security 正在啟動一項新服務,以將該公司的完全同態加密FHE)技術推廣到云端或第三方環境中。FHE 支持在處理或分析時保持加密狀態,且 IBM 將為客戶提供相應的培訓
    的頭像 發表于 12-18 11:46 ?1561次閱讀

    IBM打造完全同態加密服務,彌合當前加密解決方案這一關鍵差距

    2020年 12月,IBM(NYSE:IBM)Security 宣布推出了一項新服務:可為企業提供完全同態加密FHE) 服務,這一新興技術能夠讓數據始終保持加密狀態,即使在云端或第三方環境中進
    的頭像 發表于 12-28 15:59 ?1484次閱讀

    英特爾與DARPA簽署了一項以完全同態加密為核心的項目

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

    Transformer語言模型簡介與實現過程

    任務,隨后迅速擴展到其他NLP任務中,如文本生成、語言理解、問答系統等。本文將詳細介紹Transformer語言模型的原理、特點、優勢以及實現過程。
    的頭像 發表于 07-10 11:48 ?2013次閱讀

    語言模型開發語言是什么

    在人工智能領域,大語言模型(Large Language Models, LLMs)背后,離不開高效的開發語言和工具的支持。下面,AI部落小編為您介紹大語言
    的頭像 發表于 12-04 11:44 ?195次閱讀
    主站蜘蛛池模板: 竹菊影视一区二区三区| 受坐在攻腿上H道具PLAY| a在线视频免费观看| 午夜亚洲WWW湿好爽| 暖暖视频大全免费观看| 国产精品亚洲精品久久国语| 98久久人妻少妇激情啪啪| 亚洲国产在线精品国| 欧美一区二区在线观看| 久久国产免费| 国产乱码精品AAAAAAAA| 把她带到密室调教性奴| 一本久道久久综合狠狠躁AV| 最近2019中文字幕MV免费看| 私人玩物黑丝| 暖暖视频在线观看高清...| 花蝴蝶hd免费| 鬼灭之刃花街篇免费樱花动漫 | 大胸美女被cao哭| 91日本在线观看亚洲精品| 亚洲一卡二卡三卡四卡2021麻豆| 受喷汁红肿抽搐磨NP双性| 日本久久黄色| 暖暖视频中国在线观看免费韩国| 久久re视频精品538在线| 国产亚洲精品久久久久久国模美| 成人AV精品视频| av女优快播| 91热久久免费频精品99欧美| 一区在线观看在线| 亚洲精品国产SUV| 午夜看片网| 脱女学小内内摸出水网站免费| 日本久久久WWW成人免费毛片丨| 女人把腿张开叫男人桶免费视频| 久久这里只精品热在线18| 久久99国产亚洲高清观着| 狠狠色狠狠色狠狠五月ady | 日本人作爰啪啪全过程| 秋霞特色大片18岁入口| 殴美黄色网|