James Tsang

James Tsang

A developer.
github
twitter
tg_channel

ARTS 打卡第 6 天

A:278. 第一个錯誤的版本#

你是產品經理,目前正在帶領一個團隊開發新的產品。不幸的是,你的產品的最新版本沒有通過質量檢測。由於每個版本都是基於之前的版本開發的,所以錯誤的版本之後的所有版本都是錯的。
假設你有 n 個版本 [1, 2, ..., n],你想找出導致之後所有版本出錯的第一個錯誤的版本。
你可以通過調用 bool isBadVersion (version) 接口來判斷版本號 version 是否在單元測試中出錯。實現一個函數來查找第一個錯誤的版本。你應該儘量減少對調用 API 的次數。
示例 1:
輸入:n = 5, bad = 4
輸出:4
解釋:
調用 isBadVersion (3) -> false
調用 isBadVersion (5) -> true
調用 isBadVersion (4) -> true
所以,4 是第一個錯誤的版本。
示例 2:
輸入:n = 1, bad = 1
輸出:1

var solution = function (isBadVersion: any) {
  return function (n: number): number {
    for (let i = 1; i <= n; i += 1) {
      if (isBadVersion(i)) {
        return i;
      }
    }
    return n;
  };
};

提交結果為:

Time Limit Exceeded
22/24 cases passed (N/A)

從邏輯上是能通過的,待會打卡完再改成二分法試試。

參考答案裡的二分法,更好的解法是:

var solution = function (isBadVersion: any) {
  return function (n: number): number {
    let left = 0
    let right = n
    while (left <= right) {
      let middle = Math.floor((left + right) / 2)
      if (isBadVersion(middle) && !isBadVersion(middle - 1)) {
        return middle
      } else {
        isBadVersion(middle) ? (right = middle - 1) : (left = middle + 1)
      }
    }
    return -1
  }
}

一般在一個有序數組中識別某個位置時,使用二分法可以快速縮小搜索範圍。

R:Open challenges in LLM research#

作者注意到 LLM 當前急切需要解決的 10 個問題,其中幻覺和上下文學習是當前討論最多的,作者自己最關注的問題是多模態、新架構還有降低 GPU 要求,增加可選擇性。

降低和測量模型幻覺#

對一些創建場景來說,幻覺可能是特性,但對大多數場景來說,幻覺是 bug。因此減緩和測量模型幻覺是當前的一個流行的研究方向。當前也有一些臨時性的方案來降低幻覺,比如在 Prompt 中增加更多上下文、CoT、自一致性等,具體在文章中有更多引用和介紹。

改進上下文長度和上下文構建#

絕大多數問題都需要配合上下文才能很好地回答,因為模型需要在 Prompt 的上下文中學習到相關的信息,這個過程叫做 “context learning”。

上下文長度對 “檢索增強生成”(Retrieval Augmented Generation) 來說是尤其重要的。RAG 要生效需要兩個階段:1. 分塊:收集需要用到的全部文檔,把文檔分塊然後存儲到向量數據庫中;2. 查詢:當查詢輸入進來時,也進行 embedding 向量化,然後與向量數據庫裡的數據進行相似性檢索。

LLM 支持的上下文長度越長,越多可能相關的分塊文本就可以被塞到上下文中,就能得到越好的生成效果。

傳入 Context 的內容也不一定越多越好,還要考慮模型能處理多少以及處理效率,因此並行的另一條路是優化 Prompt 自身,使其更容易被 LLM 處理,從而提高效率,這條路徑叫作 “Prompt Engineering” 或 Prompt 構建。

和其它模態的數據協作#

之所以要考慮多模態,首先是因為在許多場景裡需要處理的是多模態的數據,其次頭部的 LLM 已經很大程度利用了文本相關的數據,如果還想提升就要超出文本領域,發揮多模態數據的價值。

作者對於多模態模型可能能讓視力障礙者能更好地看到互聯網和現實世界感到非常興奮。

讓 LLM 更快更便宜#

GPT-3.5 剛出來的時候大家都很擔心它的延遲和價格,但僅過去半年,社區裡就已經能用 GPT-3.5 2% 的內存得到相同性能的模型了。作者在多年前的書裡寫下了模型優化和壓縮的幾個重要技術:1. 模型量化;2. 知識蒸餾;3. 低秩因式分解 *(不清楚和 LoRA 是不是一個東西)*;4. 模型裁剪。這些技術今天仍然重要和流行。

設計模型新架構#

Transformer 是一個 2017 就有的架構,這個架構還能持續領先多久也是一個疑問。

要超越持續優化了 6 年的 Transformer 架構不是一件易事,需要考慮現在人們關注的比如規模化應用、硬件資源等問題。Transformers 在谷歌設計之初只是在 TPU 上才能快速運行,後來才在 GPU 上做了優化。

開發 GPU 替代品#

自 2012 年的 AlexNet 深度學習神經網絡以來,GPU 就成了這個領域支配性的硬件。

GPU 資源的緊張大家都能感受到,因此過去十年也有一些公司試圖創造 AI 需要的新硬件,比如谷歌的 TPU、Graphcore 的 IPU 等,還有對量子計算上的期待、光子芯片的探索等。

讓 Agent 真正可用#

Agent 是可以行動的 LLM,比如瀏覽網絡、發郵件,相較其它方向這個方向還比較新。

由於這個方向的新奇,人們對它很是狂熱,相關的 Github 倉庫 Auto-GPT 是最受歡迎的倉庫中的第 25 名,還有 GPT-Engineer 也是一個非常受歡迎的倉庫。

儘管人們的熱情很好,也有相當一部分人懷疑 LLM 是否可靠,是否能夠信任 LLM 把行動交給它處理。

一個最近湧現出來的案例是用 LLM 進行社會學研究,斯坦福大學做了一個實驗:定義一個 Agent 想舉辦一個情人節派對,Agent 接下來兩天裡自主做了派對邀請、結識新朋友等模擬行為。

這個方向的一個著名公司是 ADept,他們去年演示了如何讓 Agent 瀏覽網絡並在 Salesforce 中添加一個新賬號。

從人類偏好中學習#

RLHF (人工反饋強化學習) 是一個用來對齊人類的很好的技術,但有一點 hacky。作者認為人們能找到更好的讓模型對齊人類的方法。

RLHF 存在的一些問題有:

  1. 如何數字化 (量化) 表示人類的偏好?
    目前人類偏好是通過比較來確定的,人工標註 A 和 B 哪個更好,但無法體現好了多少。
  2. 人類偏好是什麼?
    Anthropic 圍繞 3H (Helpful, Honest, Harmless) 來測量它們的模型,Deepmind 試圖生成讓大多人滿意的響應。
    那我們究竟是想要什麼樣的模型呢?是可以表明立場的還是回避爭議性話題的?
  3. 誰的偏好是 “人類偏好”,有考慮文化、地區和政治因素嗎?
    很難獲取到代表所有潛在用戶偏好的訓練數據,比如 OpenAI 沒有雇用 65 歲以上的標註人員,標註人員主要是菲律賓和孟加拉人。
    社區主導的數據也仍然可能有偏見,比如 OpenAssistant 數據集有 90.5% 的響應者都是男性。

改善與 LLM 對話界面的效率#

從 ChatGPT 以來,就有關於適合廣泛任務的對話界面該是什麼樣的討論。

然而這並不是什麼新討論,在許多國家尤其是亞洲國家,聊天界面作為超級應用的入口已經被用了十年了。

16 年就有一些討論認為應用程序已死,聊天機器人才是未來。

作者喜歡聊天機器人這種界面的原因有三點:

  1. 聊天機器人是一個沒有接觸過計算機的人也能快速學習的界面設計;
  2. 聊天機器人易於交互,如果手不方便還可以語音輸入;
  3. 聊天機器人足夠健壯,你可以發送任何請求給它。

但是作者認為聊天機器人也有一些需要改進的地方:

  1. 每輪只能輸入一條信息
    這不是和朋友發消息的方式,有時我們的輸入是分段的、多類型的 (圖片、定位、鏈接等),或者就是不想輸入一大段話
  2. 多模態輸入
    在多模態方面,大部分精力都放在了構建更好的模型上,只有很少的精力被投入到了構建更好的用戶界面上
  3. 把生成式 AI 加入到你的工作流裡
    例如你想問一個關於如何處理你正在處理的圖表列的問題,應該可以對著那個列直接問問題
  4. 編輯和刪除信息
    如何在聊天會話中編輯和刪除信息來改進整個對話

為非英語語言構建 LLM#

當前英語優先的 LLM 在表現、延遲和速度方面並不能很好地在其它語言上工作。

也有人在其它語言方面作努力,比如 Symato 在越南語方面的努力,但也有人基於一下原因認為這個方向沒有意義:

  1. 這更像是一個資源投入問題而不是研究問題,我們已經知道了要怎麼做的方法,只是沒有資源投入到其它語言裡,即使投入了數據也不足;
  2. 更悲觀的人認為未來多語言會消失,互聯網上將只有英語和普通話兩種語言。

LLM 對語言學習的影響仍不清楚,它是讓人們更快地學習新語言還是消除人們學習新英語的需求?

T:Notepal 同步讀書筆記#

這是一個瀏覽器擴展,可以同步微信讀書筆記到其它軟件。

S:採銅法則#

當我們評價一個事情值不值得去做、應該花多少精力去做的時候,應該拋棄單一的視角,而是分從兩個不同的維度來看,一是該事件將給我帶來的收益大小(認知、情感、物質、身體方面的收益皆可計入),即「收益值」;二是該收益隨時間衰減的速度,我稱為「收益半衰期」,半衰期長的事件,對我們的影響會持續地較久較長。


Reference:

  1. ARTS 打卡活動
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。