LLM的基礎模型5:Embedding模型

大模型技術論文不斷,每個月總會新增上千篇。本專欄精選論文重點解讀,主題還是圍繞著行業實踐和工程量產。若在某個環節出現卡點,可以回到大模型必備腔調或者LLM背后的基礎模型新閱讀。而最新科技(Mamba,xLSTM,KAN)則提供了大模型領域最新技術跟蹤。若對于具身智能感興趣的請移步具身智能專欄。技術宅麻煩死磕AI架構設計。當然最重要的是訂閱“魯班模錘”

Embedding模型概覽

Embeddings是自然語言處理技術中很重要的基石。它有很多種模型,從GloVe、word2vec、FastText、Bert、RoBERTa、XLNet、OpenAI ada、Google VertexAI Text Embeddings、Amazon SageMaker Text Embeddings和Cohere。每種模型都有優劣,如何去分析這些Embeddings技術,重點可以關注如下的參數信息:能否在編碼中捕獲上下文信息、能夠處理非詞表之外的單詞、泛化的能力、預訓練的效率、是否免費、最終效果質量。

一般而言在大型文本語料庫上經過良好訓練并且能夠很好地捕獲單詞上下文的模型,那么GloVe、word2vec 或 FastText都是不錯的選擇。

若某個業務場景急需更好的捕獲單詞上下文,而且變現需要優于Bert,那么RoBERTa或XLNet是不錯的選擇。

其他大公司的Embeddings模型,有免費也有收費的。OpenAI、Google、Amazon都可以按需選擇。

Embedding模型和訓練數據有關,用于訓練模型的訓練數據的大小和質量更大更高,則會產生更好的模型。還有一些選擇的限制,例如XLNet是問答和自然語言推理的最佳選擇,而RoBERTa是文本摘要和機器翻譯的最佳選擇。

Word2Vec

Word2Vec有兩種,CBOW和Skip-Gram,很多資料都沒有劃對重點。那么接下跟隨小魯來正確打開。

先鋪墊下背景,假如已經擁有某個語料庫,需要對語料庫的詞匯進行Embedding(下文統一稱為編碼)。那么可以將語料庫的所有文本串起來。然后預設窗口的大小(下圖的示例為5),每個窗口正中的橙色部分即為目標單詞,而綠色部則為上下文單詞。隨著窗口的滑動,就可以獲取很多的樣本(目標單詞,上下文單詞)。然后利用這些樣本進行編碼器的訓練。

那么CBOW和Skip-gram的區別就在于CBOW是用上下文的字符去預測目標單詞,而Skip-gram則是用目標單詞去預測上下文單詞。

是不是到這里開始有點凌亂了,不是embedding model么,不是學習編碼么,怎么變成預測了?其實就是通過剛才獲取的樣本進行訓練編碼,以CBOW為例,將這個過程放大如下圖。

四個上下文單詞輸入經過一層的矩陣運算之后,得到了中間變量,然后在通過另外一個矩陣運算算出目標單詞,然后將目標單詞和預測的結果對比,反過來調整兩個矩陣的權重。如此反復直到損失收斂。

這個過程其實就是為了通過訓練得到橙色的兩個矩陣,前面的矩陣學名為查詢矩陣,后面矩陣學名為上下文矩陣。任何的輸入通過這兩個矩陣就可以編碼。回到剛才的兩種算法,無論誰預測誰,目標都是為了校正這兩個矩陣。

下面是數學版本的推理過程,數學小白可以跳過。輸入V維(也就是詞匯表為V),每個詞匯用N維的向量表示,那么需要學習的矩陣就是一個V*N維,一個N*V維。

Co-occurrence?Vector

上一篇文章發布之后,有好學的同學咨詢若滑動窗口,按照統計學的方法其實也可以得到一個矩陣,那么是如何計算每個單詞的編碼。

假如,所擁有的語料就兩個文檔:

文檔1: "all that glitters is not gold"

文檔2: "all is well that ends well"

所有的詞匯一共10個,假定滑動窗口大小為1,那么就可以構造右側的矩陣。

然后針對這個10*10(N*N,N為總詞匯數)的矩陣進行PCA或者SVD算法進行降維分解,形成k-維的向量,進而最終完成編碼。例如start的編碼就是[0.705,0.484]

本章小結

經過編碼之后,所有單詞對應的編碼向量能夠反應單詞之間的關系。理解和搞清楚Embedding的原理是必須的,它是一切的基石,某種意義也是深度神經網絡的靈魂,其實它就是人類所謂的抽象思維。大模型模擬人類解決了將海量的信息進行高效的壓縮編碼。

Embedding是一種很好的技術與思想,微軟和Airbnb已經將它應用到推薦系統。主要參照了把Word Embedding應用到推薦場景的相似度計算中的方法,把每個商品項視為word,把用戶行為序列視為一個集合。通過獲取商品相似性作為自然語言中的上下文關系,構建神經網描繪商品在隱空間的向量表示。

Airbnb通過Embedding捕獲用戶的短期興趣和長期興趣,即利用用戶點擊會話和預定會話序列。這里默認瀏覽點擊的房源之間存在強時序關系,即前面查看房源會對影響后面查看房源的印象。通過客戶點擊或預定方式生成租客類型、房租類型等的Embedding,來獲取用戶對短期租賃和長期租賃興趣。

總而言之,Embedding對于時序的場景有著靈活的運用方式,本質上提取時序中前后的關系,進而在N-維的空間中獲取內在的聯系和邏輯。當然目前為止最出色的還是人腦,對于外界事件的分析、檢索和反應幾乎在一瞬間完成,而且處于低功耗。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/22800.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/22800.shtml
英文地址,請注明出處:http://en.pswp.cn/web/22800.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面試高頻問題----4

一、redis和mysql一致性怎么保證? 1.編寫刪除緩存的接口,在更新數據庫的同時,調用刪除緩存的接口刪除緩存中的數據。 2.消息隊列:ActiveMQ、消息通知;將更新操作發送到消息隊列中,順序更新mysql和redis。…

三十七、openlayers官網示例Earthquakes Heatmap解析——在地圖上加載熱力圖

官網demo地址: Earthquakes Heatmap 這篇主要介紹了熱力圖HeatmapLayer HeatmapLayer 是一個用于在地圖上顯示熱力圖的圖層類型,通常用于表示地理數據中的密度或強度。例如,它可以用來顯示地震、人口密度或其他空間數據的熱點區域。在這個示…

Siemens-NXUG二次開發-創建倒斜角特征、邊倒圓角特征、設置對象顏色、獲取面信息[Python UF][20240605]

Siemens-NXUG二次開發-創建倒斜角特征、邊倒圓角特征、設置對象顏色、獲取面信息[Python UF][20240605] 1.python uf函數1.1 NXOpen.UF.Modeling.AskFaceData1.2 NXOpen.UF.Modeling.CreateChamfer1.3 NXOpen.UF.ModlFeatures.CreateBlend1.4 NXOpen.UF.Obj.SetColor 2.實體目標…

lib庫和dll庫的介紹和使用

lib(靜態庫) 靜態庫定義:.lib文件是靜態庫文件,包含了在編譯時被鏈接到目標程序的代碼。使用靜態庫時,庫的代碼會被復制到最終生成的可執行文件中。優點: 性能:由于庫代碼在編譯時就被集成到可…

分布式架構與分布式理論

文章目錄 分布式架構什么是分布式系統分布式系統特性分布式系統面臨的問題 分布式理論數據一致性CAP理論BASE理論 分布式架構 什么是分布式系統 分布式系統是一個硬件或軟件組件分布在不同的網絡計算機上,彼此之間僅僅通過消息傳遞進行通信和協調的系統。 所謂分…

Vue的APP實現下載文件功能,并將文件保存到手機中

Vue的APP實現下載文件功能,并將文件保存到手機中 文字說明后臺核心代碼前臺核心代碼運行截圖項目鏈接 文字說明 本文介紹Vue實現的APP,將文件下載并保存到手機中,為系統提供導出功能;同時支持導入,即選擇本地的文件后&…

Ubuntu18.04 文件管理器無法打開的解決方法

問題:打開Ubuntu虛擬機發現文件管理器無法打開,一直在轉圈圈 在終端中輸入 nautilus 顯示如下信息 nautilus: symbol lookup error: /usr/lib/x86_64-linux-gnu/tracker-2.0/libtracker-data.so.0: undefined symbol: sqlite3_bind_pointer 解決措施&#xff1a…

LabVIEW 反向工程的實現與法律地位

什么是LabVIEW反向工程? 反向工程是指從現有的應用程序或軟件中推導出其設計、架構、代碼等信息的過程。對于LabVIEW而言,反向工程涉及從現有的VI(虛擬儀器)文件、項目或應用程序中提取出設計思路、功能模塊、算法實現等。 LabV…

Spring Boot整合Jasypt 庫實現配置文件和數據庫字段敏感數據的加解密

😄 19年之后由于某些原因斷更了三年,23年重新揚帆起航,推出更多優質博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有堅忍不拔之志 🎐 個人CSND主頁——Mi…

代碼隨想錄第二十九天打卡| 491.遞增子序列,46.全排列,47.全排列 II

491.遞增子序列 本題和大家剛做過的 90.子集II 非常像,但又很不一樣,很容易掉坑里。 代碼隨想錄 視頻講解:回溯算法精講,樹層去重與樹枝去重 | LeetCode:491.遞增子序列_嗶哩嗶哩_bilibili class Solution { public:…

好用軟件推薦

軟件功能相關介紹地址FastStone截圖(長截圖、定時截圖等)CSDNhttps://www.faststone.org/FSCaptureDownload.htmQuicker快捷訪問https://getquicker.net/https://getquicker.net/

大數據學習問題記錄

問題記錄 node1突然無法連接finalshell node1突然無法連接finalshell 今天我打開虛擬機和finalshell的時候,發現我的node1連接不上finalshell,但是node2、node3依舊可以鏈接,我在網上找了很多方法,但是是關于全部虛擬機連接不上finalshell&a…

統一返回響應

前言 我們為什么要設置統一返回響應 提高代碼的可維護性:通過統一返回請求的格式,可以使代碼更加清晰和易于維護,減少重復的代碼,提高代碼質量。 便于調試和測試:統一的返回格式使得在調試和測試時更為簡單&#xff…

大模型時代,是 Infra 的春天還是冬天?

Highlights 大模型時代元年感悟 Scaling Laws 是大模型時代的摩爾定律,是最值得研究的方向 LLM 發展的三個階段: 算法瓶頸 -> 數據瓶頸 -> Infra 瓶頸 為什么 GPT 一枝獨秀, BERT、T5 日落西山? 大模型時代,是大部分 Infra 人的冬天,少部分 Infra 人的春天(算法研…

算法金 | 一文讀懂K均值(K-Means)聚類算法

?大俠幸會,在下全網同名[算法金] 0 基礎轉 AI 上岸,多個算法賽 Top [日更萬日,讓更多人享受智能樂趣] 1. 引言 數據分析中聚類算法的作用 在數據分析中,聚類算法用于發現數據集中的固有分組,通過將相似對象聚集在一…

Qt——前言

一、Qt介紹 ? **Qt技術特指用來桌面應用開發;**客戶端開發的重要任務就是編寫和用戶交互的界面;而與用戶交互的界面有兩種典型風格,1.命令行界面/終端界面,TUI;2.圖形化界面,GUI; ? Qt就是用…

統一響應,自定義校驗器,自定義異常,統一異常處理器

文章目錄 1.基本準備(構建一個SpringBoot模塊)1.在A_universal_solution模塊下創建新的子模塊unified-processing2.pom.xml引入基本依賴3.編寫springboot啟動類4.啟動測試 2.統一響應處理1.首先定義一個響應枚舉類 RespBeanEnum.java 每個枚舉對象都有co…

信息學奧賽初賽天天練-20-完善程序-vector數組參數引用傳遞、二分中值與二分邊界應用的深度解析

PDF文檔公眾號回復關鍵字:20240605 1 2023 CSP-J 完善程序1 完善程序(單選題,每小題 3 分,共計 30 分) 原有長度為 n1,公差為1等升數列,將數列輸到程序的數組時移除了一個元素,導致長度為 n 的開序數組…

云原生架構案例分析_5.某體育用品公司云原生架構的業務中臺構建

1.背景和挑戰 某體育用品公司作為中國領先的體育用品企業之一,在2016年,某體育用品公司啟動集團第三次戰略升級,打造以消費者體驗為核心的“3”(“互聯網”、“體育”和“產品”)的戰略目標,積極擁抱云計算…

NeuralForecast TokenEmbedding 一維卷積 (Conv1d) 與矩陣乘法

NeuralForecast TokenEmbedding 一維卷積 (Conv1d) 與矩陣乘法 flyfish TokenEmbedding中使用了一維卷積 (Conv1d) TokenEmbedding 源碼分析 在源碼的基礎上增加調用示例 下面會分析這段代碼 import torch import torch.nn as nn class TokenEmbedding(nn.Module):def __i…