code window

顯示包含「微調」標籤的文章。顯示所有文章
顯示包含「微調」標籤的文章。顯示所有文章

2024年4月29日星期一

減少LLM幻覺問題的各種方法

 幻覺(Hallucination)是指大型語言模型(Large Language Models, LLMs)生成的訊息可能不真實或不準確。這是目前LLM存在的一個常見問題,嚴重影響了模型輸出的可靠性和真實性(Truthfulness)。儘管產生幻覺的確切原因尚未完全釐清,但可能與多方面因素有關,例如訓練資料品質、模型架構、推論機制等。


為了減少LLM的幻覺問題,研究者和實務工作者從資料處理、模型訓練和輸出後處理三個階段提出了各種方法:

一、資料處理階段

首先,提高訓練資料的品質和多樣性至關重要。這包括從多個來源蒐集資料,確保資料涵蓋各種主題和領域,同時盡量減少資料中的錯誤、偏見和不相關訊息。其次,對資料進行清洗和預處理,例如去除雜訊、修正拼寫錯誤、標準化格式等,可以提高資料的整體品質。此外,對資料進行標註,例如標記事實的正確性或是否包含誤導性訊息,可以為模型訓練提供額外的監督訊號。

二、模型訓練階段

在訓練LLM時,採取適當的策略可以顯著改善模型的表現並減少幻覺。首先,在特定任務或資料集上對預訓練模型進行微調(Fine-tuning),可以使模型更好地適應特定領域或上下文。其次,仔細選擇模型架構和調整超參數,對於優化模型性能至關重要。再者,使用模型集成技術,如訓練多個模型並結合它們的輸出,可以提高輸出的真實性和穩健性。此外,引入有限狀態約束(Finite-State Constraints, FST)進行約束解碼,將輸入的有限狀態自動機(FSA)與一個特殊的FST進行合成,用於編碼所有可能的分割決策,並將其投影到輸出帶上,以獲得輸出空間的確定性FSA,可以有效地約束模型生成的內容。

三、輸出後處理階段

即便採取了上述措施,LLM的輸出仍可能包含一些不真實或不準確的訊息。因此,對模型生成的內容進行後處理和過濾也十分必要。這可以包括使用啟發式規則或機器學習模型來識別和修改有問題的輸出。此外,對模型的決策過程進行解釋和視覺化,有助於識別潛在問題並改進模型。收集使用者對模型輸出的回饋,並將其用於模型優化,也是一種有效的策略。另外,使用Levenshtein算法進行事後對齊校正,可以在LLM未能精確重現輸入的情況下,消除一些不流暢或不一致的文本。最後,利用Web檢索對模型輸出進行事實確認,可以進一步提高內容的可靠性。

除了上述方法外,許多研究者還使用強化學習(Reinforcement Learning, RL)來訓練LLM,以緩解幻覺問題。核心思路是根據模型輸出的正確性和置信度給予獎勵或懲罰,從而激勵模型對正確答案給出高置信度,對錯誤或無把握的答案給出低置信度或表示「我不知道」。

目前業界常採用人工標註的輸出品質排序序列來生成RL的獎勵函數,但這種方法也存在一些局限性,例如標註者的知識範圍有限、判斷可能失誤等。因此,如何設計更有效、更穩健的RL訓練方法仍是一個開放的研究問題。

總的來說,LLM的幻覺問題源於訓練資料和方法的侷限性,反映了當前人工智慧技術在處理複雜、開放領域任務時所面臨的挑戰。儘管學界和業界提出了各種改進方案,在一定程度上緩解了這一問題,但尚無法從根本上完全消除幻覺。這需要在資料品質把控、模型設計優化、人機互動等方面進行持續不斷的探索和創新。

提升LLM的可靠性和可信度是一項長期而艱巨的任務,有待學術界和產業界的通力合作。未來的研究方向可能包括但不限於:設計更高品質、更全面的訓練資料集;發展更先進、更穩健的模型架構;探索更有效的資料增強和泛化技術;改進RL等訓練範式;建立更完善的評估和反饋機制等。只有在多個層面上取得突破,才能真正實現可信、可靠、可釋的LLM,為人工智慧技術在各領域的應用奠定堅實的基礎。

以下, 對數學有恐懼症的同學可以跳過:

在自然語言處理和計算機科學領域,有限狀態約束(Finite-State Constraints, FST)、有限狀態自動機(Finite-State Automata, FSA)和Levenshtein算法是三個重要的概念和工具,常用於序列處理、模式匹配、序列轉換等任務。以下我將詳細介紹這三個概念:

一、有限狀態自動機(Finite-State Automata, FSA)

有限狀態自動機是一種數學模型,用於描述一個系統在有限個狀態之間轉換的行為。FSA由五個元素組成:

1. 有限的狀態集合(Q)

2. 有限的輸入符號集合(Σ)

3. 狀態轉移函數(δ: Q × Σ → Q)

4. 初始狀態(q₀ ∈ Q)

5. 接受狀態集合(F ⊆ Q)

FSA可以用來識別或生成符合特定模式的序列。它從初始狀態開始,讀取輸入序列中的符號,根據狀態轉移函數進行狀態轉換,直到處理完整個輸入序列。如果最終狀態屬於接受狀態集合,則說明該輸入序列被FSA接受,否則被拒絕。

FSA可以用狀態轉移圖或狀態轉移表來表示。它有確定性和非確定性兩種類型,分別對應於每個狀態和輸入符號對最多只有一個轉移(DFA)或可能有多個轉移(NFA)的情況。

二、有限狀態約束(Finite-State Constraints, FST)

有限狀態約束是一種基於有限狀態自動機的方法,用於對序列進行約束和轉換。與FSA不同,FST在狀態轉移時不僅消耗輸入符號,還產生輸出符號。因此,FST可以看作是一種輸入輸出映射關係。

FST由以下元素組成:

1. 有限的狀態集合(Q)

2. 有限的輸入符號集合(Σ)

3. 有限的輸出符號集合(Γ)

4. 狀態轉移函數(δ: Q × (Σ ∪ {ε}) → Q × (Γ ∪ {ε}))

5. 初始狀態(q₀ ∈ Q)

6. 接受狀態集合(F ⊆ Q)

其中,ε表示空符號,允許在不消耗輸入符號的情況下進行狀態轉移和輸出生成。

FST在自然語言處理中有廣泛應用,例如:

1. 序列標註:將輸入序列轉換為對應的標註序列,如詞性標註、命名實體識別等。

2. 序列分割:將輸入序列按照特定規則分割為子序列,如斷詞、句子分割等。

3. 序列校正:將含有錯誤或變體的輸入序列轉換為標準形式,如拼寫校正、規範化等。

4. 序列翻譯:將源語言序列轉換為目標語言序列,如機器翻譯、音譯轉換等。

FST可以通過編譯多個FST的級聯或並行組合來構建複雜的轉換模型。此外,加權FST(WFST)在轉移和輸出上附加權重,可以表示概率分布或優先級,在語音識別、統計機器翻譯等領域有重要應用。

三、Levenshtein算法

Levenshtein算法,也稱編輯距離算法,是一種用於計算兩個字串之間差異度的動態規劃算法。它以俄羅斯科學家Vladimir Levenshtein的名字命名。

Levenshtein距離定義為,將一個字串轉換為另一個字串所需的最少編輯操作次數。編輯操作包括:

1. 插入一個字元

2. 刪除一個字元

3. 替換一個字元

Levenshtein算法使用一個二維矩陣來計算兩個字串之間的編輯距離。設輸入字串為 s1 和 s2,長度分別為 m 和 n,則矩陣 dp 的維度為 (m+1) × (n+1)。矩陣中的元素 dp[i][j] 表示將 s1 的前 i 個字元轉換為 s2 的前 j 個字元所需的最少編輯次數。

矩陣的計算過程如下:

1. 初始化: dp[i][0] = i, dp[0][j] = j,表示將一個字串轉換為空字串需要的編輯次數。

2. 遞迴計算: 對於 i = 1, 2, ..., m 和 j = 1, 2, ..., n,有:

   - 如果 s1[i-1] = s2[j-1],則 dp[i][j] = dp[i-1][j-1]

   - 否則, dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1

3. 最終結果: dp[m][n] 即為 s1 和 s2 之間的 Levenshtein 距離。

Levenshtein算法的時間複雜度為 O(mn),空間複雜度為 O(min(m,n))。

在自然語言處理中,Levenshtein距離常用於以下任務:

1. 拼寫校正:找到與錯誤拼寫單詞編輯距離最小的正確單詞。

2. 詞形還原:將變形詞轉換為其原形,如 "running" 還原為 "run"。

3. 字串相似度:衡量兩個字串在字元層面的相似程度,如重複檢測、模糊匹配等。

4. 機器翻譯評估:計算機器翻譯輸出與參考譯文之間的編輯距離,作為翻譯品質的評估指標之一。

除了標準的Levenshtein算法外,還有其他變體如Damerau-Levenshtein距離(允許相鄰字元交換)、歸一化編輯距離(考慮字串長度)等,以適應不同的應用場景。

有限狀態自動機、有限狀態約束和Levenshtein算法在自然語言處理中扮演著重要的角色。FSA和FST提供了一種靈活、高效的方式來表示和操作字串序列,可以用於various序列處理任務。Levenshtein算法提供了一種衡量字串差異度的標準方法,在字串匹配、校正、評估等方面有廣泛應用。深入理解這些概念和工具,對於設計和實現各類自然語言處理系統至關重要。

SPECTRA: 評估AI模型在真實世界中的泛化能力

這篇報告很有價值,因為我曾經參與生物晶片公司的經營,而這篇報告中發表的麻州總院醫師是我很要好的朋友, 不過因為涉及更多的不同的專業知識領域, 因此我嘗試介紹大家從生命科學研究及新藥突破的角度如何更多的讓AI幫助現在醫學有效完成創新工作來讀這篇報告,如果您覺得很艱澀或與工作無直接相關可以跳過。

https://www.biorxiv.org/....../2024.02.25.581982v1......

這篇研究論文的主題在探討如何更有效率地評估人工智慧(AI)模型在分子序列資料集上的泛化能力。現有的評估方法往往只考慮元數據(metadata)或序列相似性,來將資料集切分成訓練集和測試集,但這種作法無法完整評估模型的泛化性。

作者提出了一個叫做SPECTRA的新評估框架,主要有三大特色:

1. 引入了光譜性質(spectral property)的概念,泛指那些會影響模型泛化性的分子序列特性。透過定義任務相關的光譜性質,就能更全面地衡量模型的表現。

2. 利用光譜性質圖(spectral property graph)來生成一系列具有不同訓練測試集重疊程度的資料切分。這樣就能觀察模型在各種情境下的表現,而不侷限在單一的切分方式。 

3. 定義了光譜性能曲線(spectral performance curve)和曲線下面積(AUSPC),將模型在不同重疊程度下的測試結果整合成單一指標,方便進行橫向比較。


研究團隊將SPECTRA應用在18個分子序列資料集上,涵蓋結核桿菌抗藥性、新冠病毒疫苗逃逸、蛋白質螢光等任務。他們評估了多種主流AI模型,包括大語言模型、圖神經網路、擴散模型等。實驗結果顯示:

1. 現有的基於元數據或序列相似性的切分方法只能反映光譜性能曲線上的個別點,無法全面評估模型泛化力。

2. 隨著訓練測試集重疊程度降低,所有模型的性能都會下降,但下降幅度因任務和模型而異。沒有哪種模型能在所有任務上都保持最佳表現。

3. 藉由觀察光譜性能曲線,研究人員還發現了一些之前被忽略的光譜性質,例如結核桿菌中rifampicin抗藥性的突變位置差異(diff-RRDR),進一步證實SPECTRA的實用價值。

此外,作者也展示了如何用SPECTRA來評估蛋白質基礎模型(如ESM2)的泛化能力。他們發現基礎模型在跟預訓練資料集相似度高的下游任務上表現較好,呼應了其他研究者的觀察。

總的來說,這項研究提出了一種更嚴謹、更全面的AI模型評估方法,填補了現有基準測試的不足。SPECTRA框架有助於研究人員深入理解模型的泛化行為,揭示潛在的影響因子,為開發更魯棒的AI系統鋪路。

作者也坦承SPECTRA在計算成本上比較高,但指出這是值得的投資,畢竟模型評估跟模型訓練一樣重要,攸關AI技術能否安全可靠地應用到重大場景中。未來SPECTRA還能擴展到多模態資料和其他領域,有很大的應用潛力。


以下是我個人觀點:

這篇論文雖然沒有直接談到新藥開發或簡易試劑產業,但其提出的SPECTRA框架對這兩個領域結合AI技術都有重要啟示:

1. 新藥開發方面:

藥物設計高度仰賴對蛋白質結構、性質及其與小分子ligand的交互作用的預測。而AI模型在這方面已經展現了巨大潛力,例如AlphaFold 2在蛋白質結構預測上的突破。然而,要讓AI模型真正可靠地應用於新藥開發流程,我們必須徹底評估其泛化能力。

SPECTRA框架為這個挑戰提供了新思路。藥物化學家可以根據先驗知識,定義与药效、毒性、藥代動力學相關的光譜性質,用SPECTRA生成全面的資料切分,深入分析模型在各種情境下的表現。這有助於揭示AI模型的侷限性,找出可能導致臨床試驗失敗的潛在因素。

藉由SPECTRA,我們可以建立更嚴謹的新藥AI模型評估標準,加速可解釋、可遷移的AI輔助藥物設計系統的發展,提高新藥研發的成功率。

2. 簡易試劑產業方面:

簡易試劑如新冠家用快篩,在疾病防控中扮演了關鍵角色。但要設計出穩定、靈敏、特異性高的快篩試劑,同樣需要精準預測抗原抗體的互動。AI模型在這方面大有可為,但也面臨泛化能力的挑戰。

運用SPECTRA框架,試劑廠商可以模擬各種可能影響快篩效能的因素,如抗原變異、環境干擾等,全面評估AI模型的魯棒性。這可以幫助優化試劑配方,找出最佳的抗原表位和抗體組合,降低批次差異。

此外,SPECTRA還能用於診斷模型的評估,揭示AI系統在不同人群、地區、疾病階段的表現差異,提前發現潛在的偽陰性、偽陽性風險。這對開發更可靠的快篩試劑和診斷算法至關重要。

總之,SPECTRA框架為生物醫藥產業AI落地提供了新思路和工具。藉由全面、嚴謹地評估AI模型在真實世界中的泛化能力,我們可以加速建立可信、可用的AI系統,推動新藥研發和簡易試劑產業的創新發展,造福大眾健康。

ARPA(AI+RPA)的新路徑: FlowMind

目前機器人流程自動化(RPA)在自動化重複性任務方面取得了重大進展,但在處理用戶提出的即時或難以預測的任務時,其效果會大打折扣。現有的RPA方法主要依賴專家知識和明確定義的流程,難以應對這類情況。同時,大型語言模型(LLMs)在程式碼生成方面展現了巨大潛力,但在實際應用中仍面臨諸如幻覺和隱私保護等挑戰。

JP Morgan今天發表報告,旨在探索如何利用LLMs來自動生成工作流程,突破傳統RPA的局限性。


原理發明:

本文提出了FlowMind框架,其核心創新在於提出了一種通用的提示生成模板(generic lecture recipe),用於向LLM講解任務背景和可用的APIs。該模板包含三個關鍵元件:

1. Context:介紹任務的領域背景,幫助LLM理解用戶的需求。  

2. APIs:列舉可用的APIs,詳細說明每個函數的輸入、輸出和功能,使LLM能夠在推理過程中調用這些APIs。

3. Code:要求LLM根據用戶的提問或任務,利用提供的APIs來生成對應的工作流程程式碼。

通過這樣的提示生成模板,FlowMind可以利用LLM強大的自然語言理解和生成能力,同時將其推理建立在可靠的APIs之上。這不僅減少了LLM的幻覺問題,還避免了其直接接觸敏感的專有資料或程式碼,保證了資訊的完整性和機密性。

此外,FlowMind還引入了使用者回饋機制。系統會向使用者展示自動生成工作流程的高階描述,使用者可以據此提供回饋意見。FlowMind會依據回饋來調整工作流程,使其更符合使用者的期望。這種人機互動模式有助於提高系統的靈活性和適應性。

實驗方法:

為了評估FlowMind的效能,本文在金融領域提出了一個新的問答資料集NCEN-QA,其中包含600個關於基金的問答對,題目難度分為Easy、Intermediate和Hard三個等級。資料集的建立基於從SEC網站上爬取的N-CEN報告。


作者開發了一系列和N-CEN報告處理相關的APIs,涵蓋資料檢索、切分和提取等關鍵功能,供FlowMind調用。在實驗中,作者使用GPT-3.5-turbo作為LLM,比較了以下方法在NCEN-QA上的表現:

- FlowMind:完整的FlowMind框架

- FlowMind+feedback:帶使用者回饋的FlowMind

- GPT-Context-Retrieval:傳統的基於GPT和內容檢索的問答方法(baseline)

- FlowMind-NCT / BA / NCP:消融實驗,分別去掉Context、使用語義不明確的API描述、去掉生成程式碼的要求

結果與結論:  

實驗結果表明,FlowMind及其變體在NCEN-QA的三個子集上都大幅優於baseline方法。引入使用者回饋後,FlowMind的精確度進一步提升到接近100%。消融實驗證實了提示生成模板中三個元件的重要性。Context有助於LLM理解任務背景,APIs的高質量描述確保了程式碼生成的正確性,而明確要求生成程式碼則是實現工作流程自動化的關鍵。


https://arxiv.org/pdf/2404.13050.pdf

本文的貢獻主要有三點:

1. 提出FlowMind框架,利用提示生成模板賦予LLM自動生成工作流程的能力,突破了傳統RPA方法的局限性。

2. 引入使用者回饋機制,允許使用者檢視和指導工作流程的優化,提高了系統的適應性。

3. 在金融領域提出NCEN-QA資料集,為工作流程自動化系統的評估提供了新的基準。

FlowMind為LLMs在自動工作流程生成領域的應用開闢了新的方向,特別適用於對資料安全性和任務即時性要求較高的行業。未來的工作可以探索如何擴展FlowMind以處理大型API庫,以及如何通過終身學習來持續優化系統表現。



SambaNova SN40L: 利用Dataflow和專家組合(COE)來克服AI記憶牆的大模型

摘要 GPT-4等整體式大型語言模型(LLM)為現代生成AI應用鋪路。然而,大規模訓練、服務及維護整體式LLM仍然極其昂貴和充滿挑戰。現代AI加速器計算能力與記憶體比例的不成比例增長已經造成了記憶體壁障,需要新的方法來部署AI。最近的研究顯示,許多小型專家模型的組合,每個模型參數...