愛好 AI Engineer 電子報 🚀 OpenAI 發表 Model Spec #12

🔝OpenAI Model Spec

這份文件不但描述了 OpenAI 心目中理想的模型行為,也默默預告了一些之後新模型會有的功能,對於開發者來說非常值得一讀。 而且都有對話舉例,非常具體,很多設計難題隱藏在棘手的場景中,如何回答的好真的見仁見智。 以下是我看到的一些關鍵內容:

閱讀全文〈愛好 AI Engineer 電子報 🚀 OpenAI 發表 Model Spec #12〉

淺談 Prompt 自動最佳化工具

這是 2024/4/17 我在生成式 AI 小聚做的一場10分鐘短講,介紹幾套 Prompt 自動最佳化的工具和 Papers 發展:

投影片: gamma.app/docs/Prompt–hjhqmaqlpqtcfxo

以下是所有引用到的內容連結:

使用繁體中文評測各家 LLM Tokenizer 分詞器

Updated(2024/5/14) 更新上 GPT-4o (o200k_base),這次 OpenAI 有更換 Tokenizer 進步非常非常多。

Updated(2024/4/21) 更新上 Llama 3,這次 Meta 有更換 Tokenizer 進步非常非常多。

話說大語言模型 LLM 的運算和推論成本都是用 Tokens 數量來計算的,輸入的內容都得轉成 Tokens 序列來運算,輸出則轉回來。

但是呢,其實每一家用的 Tokenizer (分詞器)都不太一樣,因此相同的文本,拆出來的 tokens 數量是不一樣的。因此很多模型的推論成本比較、Context window 長度限制比較等等,實際應用時都不太準確,特別是非英文的語言,各家差異非常大。

一樣的文本,若能用比較少的 Tokens 數來運算,推論速度會比較快、成本(運算資源)也會比較划算,畢竟計價也是用 tokens 數計算的,先予敘明。

具體會差多少,以下是我的測試結果,使用了繁體中文約八萬多個字(政府報告和管理學講義)做出來的實驗結果。另外也做了英文也是約八萬字(兩篇部落格文章)。

閱讀全文〈使用繁體中文評測各家 LLM Tokenizer 分詞器〉

俄羅斯套娃(Matryoshka)嵌入模型簡介

話說 OpenAI 今年一月新出的 Embeddings 模型(將文字轉成語意向量),可以透過傳參數指定不同的維度大小,這背後使用的是一種叫做 Matryoshka 俄羅斯套娃的嵌入表示方式,非常酷。

Paper: Matryoshka Representation Learning

這酷的地方在於,你可以丟棄任意長度的尾部,僅使用開頭也是有效的!

例如呼叫 text-embedding-3-large 模型得到 3072 高維度的向量後,可把後面 2048 個數字丟棄,只使用前面 1024 個也是有效的。

只要做個向量正規化(normalization)調整一下長度單位, 就會得到跟傳 1024 維度參數得到的向量數字一模一樣!

這有什麼用呢? 可以做多層檢索加速,準備階段只需要呼叫模型算一次高維度,你就可以自己縮小到不同維度存下來。

向量搜索時,先用低維度例如 256 維度初步篩選一次(可用ANN加速),這會比較快因為維度低。

接著再用 3072 高維度來排序過濾第二次(可用KNN更準),這樣就精準啦。

補充(2024/7/23):

Weaviate 寫了一篇 OpenAI’s Matryoshka Embeddings in Weaviate 介紹

愛好 AI Engineer 週報 🚀 生成式 AI 科普和使用心得 #10

我是 ihower,這一期推薦一些科普性質、工程師使用 ChatGPT 的心得文章。

🔝生成式人工智慧概述 影片

片長18分鐘的生成式 AI 概論,介紹了 GenAI 是什麼、基本原理、AI 時代的心態等等,是非常棒的入門科普影片,插圖動畫非常讚,推薦給所有人。

作者 Henrik Kniberg 也蠻眼熟的,十幾年前看過他的 Scrum and XP from the Trenches 書,是入門 Scrum 和 XP 非常棒的入門書。

閱讀全文〈愛好 AI Engineer 週報 🚀 生成式 AI 科普和使用心得 #10〉