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