學界新聞
量子機器學習
活動資訊

量子機器學習與大型語言模型

# 量子機器學習與大型語言模型 臺灣量子計算重磅專家,臺灣大學應用物理系劉宸銉博士候選人,在上個月接受 EntangleTech 邀請,擔任今年我們舉辦第一場量子年度嘉年華的講師,為各位介紹量子機器學習(quantum machine learning, QML)如何重塑大型語言模型(Large language model, LLM)。 ## 量子機器學習 QML QML 的整體架構如下圖,先將資料(像是圖片)轉換成量子電腦能看懂的語言,[量子態](https://www.entangletech.tw/lesson/basic-algorithm-07),這階段稱作 [data encoding](https://www.entangletech.tw/lesson/qml-01),接著輸入進由各種 [rotation gate](https://www.entangletech.tw/lesson/basic-algorithm-10) 組成的[量子電路](https://www.entangletech.tw/lesson/basic-algorithm-16),這種電路稱作 [parameterized quantum circuit](https://www.entangletech.tw/lesson/qml-02)(PQC,參數化量子電路,即量子機器學習模型),然後做測量計算[期望值](https://www.entangletech.tw/lesson/qml-03),將這些期望值經過古典模型(比方說神經網路)處理成我們想看到的資料形式(像是圖片中有沒有喵喵),最後來看模型預測的結果與實際結果差距多大,來[更新](https://www.entangletech.tw/lesson/qml-04)古典模型的參數與 PQC 中的 gate 旋轉角度。
QML

量子機器學習架構

這是當今 QML 的主流架構,然而這樣的架構有許多問題與挑戰,例如該如何有效地將資料 encoding 成量子態,不好的 encoding 方式會導致[電路深度](https://www.entangletech.tw/lesson/hardware-general-11)太深,或是需要很大量的 qubits,另一項挑戰是即便我們把模型訓練好了,要將這模型拿去做應用時(即推論),還是需要量子電腦來做計算,而當今的量子電腦成本高、排程不易,將大大限制模型可以使用的場景。總不可能 Tesla 汽車走在路上自動駕駛,還得把 data 透過雲端傳到量子電腦裡,算完後才告訴汽車該往哪裡走。 ## Quantum-Train 為了解決這問題,劉宸銉提出稱作 [Quantum Train](https://www.entangletech.tw/lesson/qml-05) 的新架構,不同於以往 QML 透過量子電腦做訓練與推論,而是利用量子電腦產生與更新古典神經網路的參數。資料一樣是利用[二進位制](https://www.entangletech.tw/lesson/basic-algorithm-02)的向量或矩陣,透過神經網路做訓練和預測,預測出的結果與實際結果做比較,來更新 PQC (這邊是用量子神經網路, QNN)的參數(或說旋轉角度)與 mapping model(初代是用很 fashion 的數學技巧,之後改成神經網路) 的參數,將 PQC 輸出的結果透過 mapping model 轉換成古典神經網路的參數。
QT

Quantum-Train 架構

這樣的架構解決了前面提及 QML 的兩個問題。一、我們不需要考慮如何把 data 有效率地轉換成量子態,在這邊 data 跟當今大家熟悉的方式一樣,就是傳統的二進位制,二、僅有在訓練時會需要用到量子電腦,訓練完就只剩下古典神經網路,拿去應用(推論)僅會使用到古典神經網路,可以直接在自己的電腦或工作站上運行,不需透過雲端 access 量子電腦。 今天,劉宸銉想繼續將 Quantum-Train 架構應用到大型語言模型 LLM。 ## 大型語言模型 LLM 大型語言模型如 ChatGPT,其整體架構如下圖。你傳給 ChatGPT 的文字訊息都會被轉換成向量(text embedding),接著這些向量輸入進稱作 transformer 的模型,最後進入 LM head(Language modeling head),將向量輸出成詞彙的機率分佈,並選擇機率最高的詞彙呈現在你眼前,讓你感覺它真的在與你對話。
LLM

LLM 架構

不過現在充斥在網路上的資料越來越龐大,要讓 LLM 繼續保持靈活性,需要更多的參數還有效率的模型,以 2020 年發表的 ChatGPT 3 為例,已經需要 1750 億個參數,3 年後發表的 ChatGPT 4 需要高達 1.76 兆個參數。
LLM para.
各語言模型的發表時間與所需參數量

Picture comes from informationisbeautiful

參數量與資料集日益龐大,使得 LLM 在訓練和微調上極巨挑戰性,如果借助量子計算,能讓這件事做得更好嗎?這就是劉宸銉今天想要回答的問題。 ## 量子計算應用在 LLM 的挑戰 前面提及到的 Quantum-Train 架構,所需的參數量約 $10^5$ 個,約需 $16$ 個 qubits;然而 LLM,像前面提到的,動則幾億幾兆的參數,換算成 qubit 數的話需要 $30\sim40$ 個 qubits,聽起來沒有很多,但在今天即便用 NVIDIA 高階顯卡做模擬也會對電腦造成諾大的計算負擔,而作者今天的目標就是要找到一個方法,僅需要 $< 20$ 個 qubits 就能使用這麼大的模型。
QT and LLM

## LoRA 在繼續接下來的內容前,容我們先介紹 LoRA(Low-Rank Adaptation of Large Language Models),這將與作者接下來提出的新模型有關。 假設你已經有個訓練好的 LLM(像是現成的 ChatGPT),現在你有新的資料集,你想要讓這 LLM 在這新的資料集上有更好的表現,比方說這模型原本只會辨識圖片中有沒有喵喵,現在你想讓它也可以辨識圖片中有沒有汪汪。那一般的做法,就是把整個模型再重新訓練一次,那就需要重新調整所有的參數 $W_0$,約幾億到幾兆個,聽起來很不效率。有沒有什麼方式可以僅需動到必要的參數就能讓模型多會一個能力,這就是 Microsoft 團隊在 2021 年提的方法,稱作 [LoRA](https://arxiv.org/abs/2106.09685)。
LoRA
LoRA 工作原理

如果今天 $W_0$ 是個 $d\times k$ 的矩陣,我們現在定義兩個比較小的矩陣,$A,B$。$A$ 矩陣的大小是 $r\times k$,$B$ 則為 $d\times r$,兩個矩陣相乘 $BA$ 的大小與 $W_0$ 一樣。如果 $r$ 夠小,那 $A$ 與 $B$ 的總參數量會遠比 $W_0$ 還少很多,現在我們將 $BA$ 這樣的矩陣作為參數的更新量,即: \begin{align} \Delta W=BA \end{align} 如此,我們不必調整全部的參數,僅需調整 A+B 個參數。我們來做個範例,如果 $W_0$ 是個 $500\times 70$ 的矩陣,總共有 $35000$ 個參數(就矩陣元素),當今天 $r=1$ 時,$B$ 矩陣僅有 $500$ 個參數,$A$ 有 $70$ 個參數,原本要動到 $35000$ 個參數,有了 LoRA,現在僅需調整其中 $570%$ 個參數。 ## Quantum Parameter Adapation, QPA 作者因此先將 LLM 接上 LoRA,與古典方法不同的是,LoRA 中 $A$ 與 $B$ 矩陣的參數是透過前面提及 Quantum-Train 架構產生,如下圖。
QPA

QPA 架構,最右邊是個 LLM 模型,為了讓已經訓練好的 LLM 多會一種或多種功能,透過 LoRA 調整比較少的參數,而 LoRA 所需的參數透過 Quantum-Train 產生,因為量子計算的特性,可以用更少的參數生成 A 和 B 參數

原本 Quantum-Train 架構中的 mapping model 是一個 [basis](https://www.entangletech.tw/lesson/math-03) 對應到古典模型的一個參數(原本神經網路的參數),現在改成可以一個 basis 對應多個古典參數(AB 矩陣的參數),也就是說可以用比較少的 basis 產生多個古典參數,進而需要的 qubit 數更少。 原本古典的參數量(AB 矩陣的參數量總和)為 $m$,$n_{nlp}$ 是上圖 chunk 裡的參數量,原本需要 $\log_2{m}$ 個 qubits,透過 QPA 方法,現在僅需要: \begin{align} \log_2{\frac{m}{n_{nlp}}} \end{align} 個 qubits。 ## QPA 模型表現 為了驗證模型效果,劉宸銉透過 NVIDIA V100S 與 H100 漫長模擬後,得到許多驚艷的結果。如下圖,可以看到相比原本單有 LoRA 方法,QPA 架構可以用更少的參數量達到更好的表現(橫軸 perplexity 越小越好)
Perplexity 是一種衡量 LLM 表現的方法之一。透過輸出詞彙的機率分佈做評斷,如果機率分佈很平均,那代表 LLM 就是在亂猜;反之,如果機率分佈越集中在某些詞彙上,那代表 LLM 很確定它接下來要生成什麼字
Result of QPA
兩種 LLM,GPT-2 與 Gemma-2,在採用古典 LoRA 與 QPA 方法下,參數量與模型表現之間的比較

原著不只比較 LoRA 而已,還有其他 PEFT 方法,像是下圖會出現的 DoRA,詳情可以閱讀原論文
回到最一開始作者想解決的問題,如何用更少的 qubits 數量處理像 LLM 這麼多的參數。從下圖中我們可以看到,透過 QPA 方法,的確僅需要 $4\sim 11$ 個 qubits 就能調整百萬個參數。
Result of QPA
QPA 應用在不同 LLM-LoRA (DoRA) 上所需的 qubits 數量與參數量

作者也調整不同的 $r$ 值,$r$ 值越大,A, B 矩陣的大小越大,直覺上會認為 $r$ 應該越大越好,這樣矩陣能容納的參數量越多,然而實際上並非如此。從下圖我們可以看到 $r$ 越大,模型表現越差,每種模型都有最適合的 $r$ 值,像是在 GPT 2 模型中,當 $r=2$ 時,模型的表現最好。
Result of QPA
不同的 r 值對應的模型表現

作者也討論不同 QNN 層數 $L$(或說電路深度)的模型表現。在沒有 [noise](https://www.entangletech.tw/lesson/popular-08) 的影響下(完美的量子電腦),$L$ 越大,模型表現越好,且比古典方法還要好:
Result of QPA
不同的 L 值對應的模型表現。橘色線是古典方法。

剛剛特別強調了沒有 noise 的情況下,那如果 qubits 有 noise 呢?作者使用 IBM 提供的 noise 模型做模擬。結果非常有趣,在多數情況下,有 noise 的模型表現竟然比沒有 noise 好:
Effect of noise
不同參數量下,noise 對模型表現的影響

說明或許有一點 noise 可以幫助模型在參數的海量空間中做更有效率的探索。 ## Generative Interpolation 由於 QPA 裡有用到量子電路 QPC,而我們知道量子電路不是只要測量一次就能得到完整的量子態資訊,得要重複測量好幾遍得到機率分佈,因此作者也探討不同測量次數對模型表現的影響。 回到 QPA 模型裡,由於作者用到一個 basis 對應到多個古典參數量,因此如果測量次數太少,將會無法完整捕捉完整 basis 資訊與機率分佈,而影響到模型表現效果。
QPA
QPA 架構

不過,理想上當然做無限次測量(下圖的 exact measurement) 就能得到完整的量子態資訊,但在現實層面上這不僅做不到,也有成本上的考量,因此需要找到最佳測量次數,然而從下圖中,我們可以看到即便測量次數來到 $40\times 2^N$($N$ 為 qubits 數量),效果仍與 exact measurement 有所差距:
Effect of measurement
不同測量次數對模型表現的影響

為了解決這問題,作者引入生成式 AI 的想法。下圖是目前動畫產業熱門的技術,以前製作動畫需要用電腦畫每一幀影像,然而在引入生成式 AI 後,動畫師不必這麼辛苦,我們可以僅需畫頭和尾的影像,兩個影像不要差太多,像是喵喵在走路,而中間走路的過程可以透過 AI 來彌補。
AI generate video
AI 生成影片影像

類似地,我們可以透過生成式 AI 在特定量子態附近產生缺失的量子態機率分佈,生成沒有被測量到的量子態機率應該會是多少,藉此可以透過比較少的測量次數讓效果接近 exact measurement,這個方法稱作 Generative Interpolation(GI)。
AI generate quantum state
透過生成式 AI 生成鄰近(Hamming distance = 1)缺失量子態的機率,來近似理想測量的結果

當然,這個生成式 AI 本質上也是一種神經網路模型,它的參數也需要被訓練,因此原本的 QPA 再加上 GI model,變成下圖的架構:
QPA-GI
QPA-GI 架構

有了 GI 生成缺失的資料,原本需要測量 $40\times 2^N$ 次,現在僅需測量 $1\times 2^N$ 次就能達到如同 exact measurement 的效果,測量次數整整降低 $\frac{1}{40}$ 倍!
result of QPA-GI
不同的測量次數與有無 GI 的幫助下,模型的表現效果

## 未來展望 劉宸銉的研究成果十分驚艷,不過他的工作並不會因此停住,未來他將繼續探討不同的量子電腦 noise 對模型表現的影響,以及真正在量子電腦上運行的表現。
本文章僅提供演講摘要,詳細內容可以看完整影片
## 參考文獻與延伸閱讀 - [完整演講](https://www.youtube.com/watch?v=_hxc44D7Y2k&t=1s) - [劉宸銉親自撰寫 QML 教學](https://www.entangletech.tw/courses/qml)(快開放,敬請期待) - [A Quantum Circuit-Based Compression Perspective for Parameter-Efficient Learning](https://openreview.net/pdf?id=bB0OKNpznp) - [Frame Generation in Hilbert Space: Generative Interpolation of measurement data for quantum parameter adaption](https://openreview.net/pdf?id=JNhTrqu39R) - [Federated quantum-train with batched parameter generation](https://arxiv.org/pdf/2409.02763)