GitHub 基于大語言模型構建Copilot 的經驗和教訓
GitHub 在一篇文章中分享了他們在構建和擴展 GitHub Copilot——一個使用大語言模型的企業(yè)應用——過程中所學到的經驗教訓。
01
在 GitHub 的一篇博文中,GitHub 的 AI 產品負責人 Shuyin Zhao 描述了他們如何在三年多的時間里歷經三個階段——“Find it”、“Nail it”和“Scale it”——成功推出了 GitHub Copilot。
在“Find it”階段,他們專注于找到 AI 可以有效解決的問題,通過一種足夠專注的方式快速推向市場,并且足以產生影響。
這包括確定到底是為了誰而解決問題——幫助開發(fā)人員更快地編寫代碼,減少上下文切換。此外,他們只關注 SDLC 的一部分:IDE 中的編碼功能,并結合當下的 LLM 的能力。這樣他們就可以專注于讓工具提供代碼建議,而不是生成全部代碼。他們還致力于確保他們所做的是對現(xiàn)有工具進行增強,不要求開發(fā)人員改變已有的工作流程。
“在設計產品時,我們不僅要考慮輸出需要人類進行評估的模型,也要考慮正在學習如何與 AI 互動的人類。”
——Idan Gazit,GitHub Next 高級研發(fā)總監(jiān)
02
在“Nail it”階段,他們基于從 A/B 測試中獲得的真實用戶反饋進行迭代式產品開發(fā)。他們進行快速迭代、試錯和學習。在使用 Copilot 的 Web 接口進行了簡短的實驗后,他們將重點轉向了 IDE,以減少在編輯器和 Web 瀏覽器之間切換,并讓 AI 在后臺運行。在進一步的迭代中,通過觀察開發(fā)人員在編碼時打開的多個 IDE 選項卡,GitHub Copilot 可以同時處理多個文件。
隨著生成式 AI 的迅速發(fā)展,他們開始重新審視過去所做出的決策,技術的進步和用戶對它的熟悉程度有時會讓過去的決策變得過時。于是,提供交互式聊天的想法開始活躍起來,他們需要基于沉沒成本謬論改變決策,例如,當大語言模型的進步允許一個模型處理多種語言時,就需要改變?yōu)槊糠N語言構建 AI 模型的想法。
最后,在“Scale it”階段,他們致力于確保 AI 模型結果的一致性、管理用戶反饋,并定義了關鍵性能指標,以實現(xiàn)應用程序的普遍可用性 (GA)。他們還考慮了安全性和 AI 責任問題,使用過濾器來避免為用戶建議不安全或具有冒犯性的代碼。
改進質量和可靠性方面的工作包括緩解大語言模型的幻覺,即答案可能是不可預測的,并且每次查詢都有所不同。解決這個問題的策略包括修改發(fā)送給大語言模型的參數(shù),以減少響應的隨機性,并緩存頻繁的響應以減少變化和提高性能。
GitHub 使用等待列表來管理技術預覽版的早期用戶。這意味著他們可以獲得來自一小群早期采用者的評論和反饋。對真實用戶反饋的深入分析使得 GitHub 團隊能夠識別出有問題的更新,并改進產品的關鍵性能指標,例如開發(fā)人員保留了多少由 Copilot 生成的代碼。
03
最后,他們確保開發(fā)人員生成的代碼是安全的,并通過過濾器來拒絕可能引入安全問題 (如 SQL 注入) 的代碼建議。社區(qū)也提出了一些問題,例如 Copilot 的代碼建議與公開的代碼相重疊可能會產生許可問題或其他影響。他們?yōu)榇颂峁┝艘粋€代碼參考工具,幫助開發(fā)人員做出明智的選擇。
在市場策略方面,他們向一些有影響力的社區(qū)成員展示了技術預覽版,并且面向的是個人用戶而不是企業(yè)。這有助于在正式發(fā)布時獲得廣泛的支持,從而促使企業(yè)采用它。
關鍵在于展示專注于特定問題的重要性、整合實驗結果和用戶反饋,以及在應用擴展時優(yōu)先考慮用戶需求。
由于生成式 AI 的采用仍處于早起階段,GitHub 也在密切關注市場對生成式 AI 工具的需求。感興趣的讀者可在 GitHub 的博客上閱讀全文。
本文僅代表作者觀點,版權歸原創(chuàng)者所有,如需轉載請在文中注明來源及作者名字。
免責聲明:本文系轉載編輯文章,僅作分享之用。如分享內容、圖片侵犯到您的版權或非授權發(fā)布,請及時與我們聯(lián)系進行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com




