AI Explain 的反思:事後總結
我們最近推出了兩項新的人工智慧體驗——AI Explain 和 AI Help。感謝社群的反饋,我們意識到 AI Explain 還有很多工作要做。我們已停用它,並將繼續改進,使其成為更好的體驗。
在這篇博文中,我們將深入探討 AI Explain 的幕後故事:它的開發、釋出以及促使我們按下暫停鍵的原因。我們非常重視社群的意見,它們在此決定中發揮了重要作用。展望未來,我們的目標是在 2024 年恢復這項功能的工作,為我們提供充足的時間來處理收到的反饋,並以一種幫助所有希望使用它的人的方式來改進該功能。
推出人工智慧功能
為了準備在 2022 年 3 月推出 MDN Plus,我們在 2021 年大部分時間都進行了使用者研究,試圖瞭解人們在 MDN 上遇到的主要痛點。一個經常出現的主題是,對於軟體開發新手來說,內容的發現性。經驗豐富的開發者可以透過有效地搜尋他們所需的資訊來提高工作效率,但新開發者通常仍然需要培養這項技能。
我們從讀者那裡聽到的一個反覆出現的抱怨是,當你知道要找什麼時,MDN 就很出色。如果你不知道,就很難發現你所需的資訊,並從適當的文件中提取有意義的知識。經驗較少的開發者發現很難瀏覽 MDN,並經常轉向其他地方尋找他們所需的資訊。更重要的是,我們對搜尋引擎有很高的依賴性,超過 90% 的流量都來自搜尋引擎。我們知道改進網站搜尋將有助於發現性,並看到了將搜尋改進與與網站互動的新穎方式相結合的機會。
我們注意到,理解 MDN 上的程式碼示例並不總是那麼容易,因為它們通常結合了多個功能,而這些功能並不都在當前文章中進行解釋。然而,詳細解釋每一個細節——比如在包含 CSS 示例的每個頁面上定義 CSS 選擇器是什麼——是不切實際的。透過 AI Explain,我們可以讓讀者更好地理解 MDN 文件中嵌入的程式碼示例,而不會使核心內容過於冗長。
使用生成式人工智慧與文件進行互動
2023 年 1 月,我們開始嘗試 OpenAI 的 GPT-3.5 API,以確定如何改進我們的文件平臺並使我們的網站更加使用者友好。我們看到了其潛在用途,例如總結文件頁面、解釋現有程式碼示例、為缺乏示例的頁面生成示例,以及根據使用者查詢生成結合了不同技術的獨特程式碼示例。
我們還看到,其他以開發者為中心的公司正在大力投資並在此技術基礎上構建產品。MDN 的文件是在開放的知識共享許可下公開提供的,並且被認為是行業一流的,因此可以合理地假設大多數模型都是基於我們的內容進行訓練的,並且已經開始釋出明確允許使用我們文件的產品。這使我們認識到,無論我們的個人感受如何,我們的使用者已經透過生成式人工智慧訪問我們的內容。在社群的支援下,我們擁有獨特的優勢,可以學習人工智慧如何增強文件以及開發者如何使用它。我們豐富的經驗、學習的意願以及我們的貢獻者和主題專家的網路使我們能夠透過迭代和反饋來完善這項功能。
2023 年 3 月,鑑於當前技術狀況,我們將開發重點放在了兩項最有前景的功能上
-
AI Explain - 一種讓讀者探索和理解 MDN 文件頁面中嵌入的程式碼示例的方式,描述程式碼或示例部分的目的和行為。
-
AI Help - 一個對話介面,使用與使用者問題相關的 MDN 文章提供簡潔的答案,用於情境幫助,並提供用於回答問題的 MDN 頁面作為來源。這個原型是與 Supabase 合作構建的,目的是為了獲得量身定製的 MDN 內容響應。我們決定將此功能保留在登入後面,需要讀者擁有 MDN Plus 帳戶。
我們認識到這些功能有機會更好地幫助經驗較少的開發者,目的是提供幫助,而不是與我們的參考文件的精確質量和準確性相匹配。初學者對瀏覽參考文件感到陌生,並且經常轉向其他可能不那麼準確的資訊來源。學習不是直接跳到正確的結論,而是一個迭代的過程,在這個過程中,我們考慮不正確的資訊,並在我們的理解鞏固後將其丟棄。就像一個人可能會(作為專家或學習社群中的同行)給出不正確的答案一樣,它仍然最終是有用的,因為它能夠解決問題,給使用者帶來靈感,並指向相關的內容。
推出 AI Explain
讓我們深入瞭解一下 AI Explain 的釋出。
測試解釋的準確性
我們首先使用 OpenAI 的 gpt-3.5-turbo-0301 模型測試了 AI Explain,然後是 gpt-3.5-turbo-0613 模型,因為這是從 2023 年 6 月 27 日起預設使用的模型。由於新模型的容量減少,我們恢復使用了 gpt-3.5-turbo-0301。我們將 MDN 上所有 25,820 個唯一的程式碼示例與 gpt-3.5-turbo-0301 進行了比對,並結合使用自動化和手動測試來驗證解釋的響應。
由於初學者是最有可能使用此功能的使用者,因此我們選擇了讀者會用來測試 AI Explain 的常見程式設計概念和示例,並單獨核實了響應。與此受眾形成對比的是,我們還選擇了邊緣案例和我們認為模型可能難以解釋的新網路技術。
在自動化測試方面,由於 LLM 的非確定性輸出,為此類功能構建測試套件具有挑戰性。因此,我們嘗試的一種方法是針對 MDN 上 25,820 個唯一的程式碼示例中的每一個執行 gpt-3.5-turbo-0301 生成的解釋,並將輸出與 GPT-4 進行驗證。這次實驗的響應摘要將生成的解釋標記為準確、有些不準確或不正確。我們隨機抽樣了不被認為是高質量的響應,並對其進行了手動檢查和評估。
透過這些測試得出的結論是,在足夠多的情況下,這些響應都很有幫助,使用者可以嘗試 beta 版本。除了測試之外,從 2023 年 3 月開始,我們還進行了 Mozilla 內部演示,並向利益相關者和合作夥伴傳達了這些功能正在進行中的工作。
釋出和反饋
6 月 28 日,我們在 MDN 上釋出了 AI Explain。該功能可透過嵌入式程式碼示例右上角的“AI Explain”按鈕向所有使用者訪問。AI Explain 上線了 65 小時,共有 24,132 名獨立訪客使用該功能生成了 44,229 條響應。3.34% 的響應透過答案旁邊的點贊/點踩 UI 進行了投票。在這些響應中,68.9% 的投票將答案標記為有用,31.1% 標記為無用。為了瞭解相對於其他網站功能而言的反饋情況,我們通常會看到受眾的積極情緒在 70%-75% 之間(例如,最近推出的側邊欄過濾器的積極情緒為 72%)。
6 月 30 日,一位社群成員在 GitHub 上開了一個 issue,他擔心 AI Explain 生成的輸出不正確和具有誤導性。該 GitHub issue 獲得了 1,287 個贊和 115 條評論。
我們還從 Mastodon、Discord、Twitter 和 Matrix 上的社群收到了關於該功能的反饋。我們收到了總共 11 個獨特的示例,在社交渠道上分享了這些示例,這些示例展示了 AI Explain 輸出不準確或具有誤導性。
- 在四種情況下,程式碼示例包含較新的網路功能,而 GPT-3.5 由於資訊限制在 2021 年之前,因此不知道這些功能。
- 在三種情況下(包括一個重複項),我們發現程式碼示例足夠複雜,以至於許多開發者都難以解釋它們。
- 在兩種情況下,解釋忽略了重要的語法細節(斜槓、簡寫符號)。
- 在一種情況下,解釋基本正確,但錯誤地標記了一個在程式碼示例中實際上存在的缺少閉合標籤。
- 在一種情況下,沒有釋出截圖或文字作為響應,因此我們無法對其進行分析。
負面反饋的整體情緒是 AI Explain 還沒有準備好釋出,並且將生成式人工智慧新增到 MDN 不是該平臺的好選擇。
回滾和響應
我們承認在完全釋出 AI Explain 功能方面存在失誤,而不是像最初設想的那樣限制登入使用者的訪問。由於一個 GitHub issue 在長週末被報告,這個錯誤被放大了。為了解決這個問題,我們迅速停用了該功能,啟動了全面的內部審查,並徹底分析了使用者反饋(如上所述)。GitHub issue 於歐洲中部時間 6 月 30 日晚上 10:00 開放,我們於歐洲中部時間 7 月 1 日上午 09:40 停用了 AI Explain,並在歐洲中部時間 10:20 進行了更改部署。考慮到 issue 報告者和團隊之間有時差,這是我們能採取行動的最早時間。AI Explain 按鈕已從 MDN 的程式碼塊中移除,所有使用者都無法訪問 AI Explain。
我們可以改進的地方
這次釋出有三個重要的收穫
-
AI Explain 最初是作為已登入使用者的實驗性功能,類似於 AI Help。將其公開向所有使用者釋出,並且沒有明確說明其實驗性質,這是一個錯誤。
- 這個錯誤已經在我們的團隊中得到承認和解決。我們還更新了開發流程,以防止未來發生類似的疏忽。
-
在沒有上下文的情況下提示 GPT-3.5 解釋程式碼示例是不夠的,因為其資訊限制在 2021 年。對於 AI Explain,我們本應採用與 AI Help 類似的方法,使用相關的 MDN 內容作為上下文。
-
就在釋出之前,OpenAI 更新了他們的 API,使用了
gpt-3.5-turbo-0613。雖然我們的隨機抽樣測試沒有發現任何問題,但社群指出的 11 個不準確示例中有 4 個是由於這些更改造成的。- 展望未來,我們需要徹底驗證模型之間的任何差異,因為這些差異會顯著影響輸出。這一點至關重要,尤其考慮到我們大部分的測試和開發都是使用與生產環境中部署的模型不同的模型進行的。
後續步驟
以下是我們正在採取的行動
- 在我們確信 AI Explain 能夠提供讀者和貢獻者都能信任的可靠資訊之前,它不會重新引入 MDN。我們預計這不會在 2023 年內發生,一旦我們認為它已準備好接受社群審查,我們將盡快提供更新。
- 我們將與我們的貢獻者社群合作,在未來的開發過程中測試和改進人工智慧功能。這將包括與來自不同背景、技能水平和觀點的社群成員進行徹底測試。
- 今後此類平臺實驗將僅限於已登入使用者或自願加入使用者體驗佇列的使用者。
- 我們承諾清楚地標記新功能為實驗性的,解釋任何可能出現的意外行為,並提供其試用原因。
- 對於 AI Help,我們在所有答案中添加了“向 GitHub 報告此答案的問題”連結,方便使用者在一個專門的 ai-feedback 倉庫中提出問題,並提供所有必要資訊,以便我們加快修復錯誤和改進功能。
開源維護的正確道路
我們知道,技術準確性是我們的讀者訪問 MDN 的原因,我們理解我們社群的許多成員對我們釋出的功能的質量感到失望,並且我們選擇將生成式人工智慧功能包含在平臺中。
雖然我們確實從這次釋出的經驗中吸取了教訓,但我們重申致力於改善 MDN 的閱讀體驗。改善人們與 MDN 的互動方式包括開發可能使用新技術(包括生成式人工智慧)的新平臺功能,以幫助探索、理解和豐富大量由人類編寫和策劃的內容。我們希望繼續幫助讀者在其學習過程的任何階段理解 Web 技術。我們希望在您的投入下,我們將繼續改進許多人所依賴的平臺。
我們正在密切關注社交平臺上的討論,並在努力提高 MDN 功能新增透明度的同時,認真考慮每一位貢獻者的反饋。
管理開源軟體並非易事,我們需要服務於許多具有不同觀點和期望的貢獻者和使用者。我們承認從 GitHub 使用者的 115 條評論和 1287 個點贊中直接收到的反饋。我們已經對此採取了行動,這就是為什麼 AI Explain 被停用的原因。每月有 1700 萬獨立訪客訪問 MDN 來查詢答案和學習 Web,我們也希望儘可能地為他們提供最好的服務。我們致力於繼續作為開放 Web 文件的守護者,並與我們的社群合作,為我們所有讀者負責任地改進體驗。