# Word Embedding ## Week 19 ---- ## Introduction + Embed 為嵌入的意思 + 將文字嵌入(映射)到一個高維度空間的向量 + 轉成向量後才能夠拿來計算 + 並且要維持文字原本的語義 + Word Embedding 一般而言與**上下文無關** ---- ## Sentence Embedding 將多組 Word Embedding 加在一起 就變成有上下文關聯的 Sentence Embedding 了 ---- ## Sentence Encoder + 來自 Google 的 [Sentence Encoder](https://tfhub.dev/google/collections/universal-sentence-encoder/1) + 使用 Transformers 架構做 Encoding ---- ## Sentence Encoder Demo ```python= import numpy as np import tensorflow_hub as hub import tensorflow_text model = hub.load("USEML") keys = ["Nekopara", "能幹貓", "忠犬小八", "天竺鼠", "耗子"] queries = ["貓", "狗", "鼠"] key_emb: np.ndarray = model(keys) query_emb: np.ndarray = model(queries) ``` ---- ## Vector Similarity 因為文字都被轉成向量了 所以透過「一個」矩陣乘法 就能算出 Query 與所有 Key 的相似度 例如內積、餘弦相似度或歐式距離之類的 ---- ## Vector Database 當向量的數量很多的時候 可以使用向量資料庫進行操作 例如 Python 上的 Faiss 套件 ---- ## FAISS Facebook AI Similarity Search 專門對大規模向量相似度運算優化的套件 [[GitHub]](https://github.com/facebookresearch/faiss) | [[Docs]](https://faiss.ai/) ---- ## Faiss Demo ```python= import faiss index = faiss.IndexFlatL2(key_emb.shape[1]) index.add(key_emb) n_best = 5 distance, result_index = index.search(query_emb, n_best) print(distance) # 向量間的距離 print(result_index) # N-Best 向量索引值 faiss.write_index(index, "index.faiss") # 寫入 index = faiss.read_index("index.faiss") # 讀取 ``` ---- ## Search Engine 以此概念,我們可以構築出一個簡單的搜尋引擎 --- # 軼聞趣事 ---- 二月初 Meta 發表 LLaMA 但因為模型授權無法商用 所以網路上有人開始在訓練可商用的 LLaMA ---- 當時主要有兩種開源 LLaMA 一個是 [s-JoL](https://github.com/s-JoL) 一個是來自柏克萊大學的研究團隊 ---- 當時 s-JoL 微調 LLaMA 架構 公開發表了模型權重,並以 OpenLLaMA 的名字 率先發了 [PR](https://github.com/huggingface/transformers/pull/22795) 到 HuggingFace Transformers 但這兩份專案其實都把自己命名為 OpenLLaMA ---- ## 不料! 有一天 s-JoL 突然把整個專案都砍了 權重也撤掉,所有連結都 404 ---- 原因是有個人抄襲 s-JoL 整份專案(不是 Fork) 甚至連註解裡面的作者名都沒清掉 s-JoL 一氣之下就把東西都撤掉 開 [Issue](https://github.com/chenfeng357/open-Chinese-ChatLLaMA/issues/1) 大罵抄襲者(Issue 連結也失效了) ---- 這時柏克萊大學陸續釋出多個模型權重 引起廣大研究單位關注 OpenLLaMA 這個專案 ---- 大家在調用模型的過程發現 ... #### **這個 OpenLLaMA 居然不是用 OpenLLaMA 架構!** 因為柏克萊是沿用原本的 LLaMA 架構 而 OpenLLaMA 是 s-JoL 微調過的架構 ---- 因此這位抄襲者的白目行為搞出了一小片混亂 最後雙方也都把專案撤掉,造就兩敗俱傷的局面 開源界也因此少了一部分的資源 ---- ### 後記 有人發 PR 提議將 OpenLLaMA 的相關頁面移除 但 HuggingFace 基於前後相容性的關係拒絕了 只能將之放入 Deprecation List 裡面
{"title":"Week 19 - Word Embedding","showTitle":"true","showTags":"true","lang":"zh-TW","slideOptions":"{\"transition\":\"slide\"}","description":"地獄貓旅行團第 25 週心得分享","contributors":"[{\"id\":\"c7cbb212-2c41-4dfa-8d85-f8e7fa769bf1\",\"add\":3228,\"del\":888}]"}
    125 views
   Owned this note