No Priors 的 AI 產業地圖

主持人是兩位創投

Sourcegraph

開發工具與資料平台

上節目
1 次
來賓
Beyang Liu(Sourcegraph CTO) 2024
第 047 集的縮圖

047 · 2024 · Beyang Liu · 這一集

Cody 靠 context 寫程式

047 · Cody 靠 context 寫程式

46:36YouTube 上架 2024-01-18Beyang Liu(Sourcegraph CTO)

No Priors Ep. 47 | With Sourcegraph CTO Beyang Liu

Beyang Liu 談 Sourcegraph 的 Cody 怎麼用程式碼搜尋補足 context、AI engineer 還差多遠,以及五年後寫軟體會是什麼樣子。

047 講了什麼

  • 從讀懂程式碼的痛點出發Beyang 和 Quinn 都是開發者出身,發現工程師大半時間花在讀懂既有的程式碼,而不是寫新功能。他們當時合作的企業客戶,理解 legacy code 的痛苦是自己經歷的 10x、100x。
  • context 就是 RAGCody 在 LLM 底下接上 Sourcegraph 十年來替人類開發者做的程式碼搜尋與 graph context。檢索分兩層,底層 retriever 求不漏,上層 reranker 求排對;Beyang 說 RAG 從業者之間的 dirty secret 是光靠 keyword search 就能做到九成以上。
  • 先做最簡單的 baselineBeyang 說這是做機器學習研究時學到的原則,也是 Sourcegraph 先做 RAG、後考慮 fine-tuning 的理由;就算之後加了 fine-tune 的模型,RAG 還是要做。
  • agent 的可靠度卡在每一步的成功率把任務拆成子任務再串起來,每一步的失敗會層層累積;反過來靠大量取樣加驗證,放進大型 codebase 又太貴太慢。Beyang 認為兩條路都要靠 context 品質。
  • 小模型的位置Cody 的 inline completion 主要用 StarCoder 7 billion,加上 context 之後能追上更大的專有模型;chat 仍用相當大的模型,因為有研究顯示 in-context learning 要到一定規模才會出現,微調過的中型模型有時會失去這個能力。
  • 瓶頸是協調,不是打字Beyang 認為軟體開發的核心問題是協調與能見度。AI 能讓一個人做得更多,也能替主管讀完 commit 再摘要;寫程式與 CS 基礎仍然值得學,被壓縮的是中間那層膠水工作。

從哪一段開始看18 段

  1. 00:07開場與創辦動機Sarah Guo 介紹 Beyang 與 Cody。Beyang 說工程師的日常多半在讀懂既有程式碼,企業客戶的痛點更大,Sourcegraph 就是從這裡出發。
  2. 02:48AI 是初戀Beyang 在 Stanford 主修 AI,當年神經網路還在黑暗期。Sourcegraph 大約 2017、2018 年開始重看這塊,去年 9、10 月起加速。
  3. 06:43Cody 是什麼支援 VS Code、JetBrains,網頁上也有 Ask Cody 按鈕;功能有 inline completion、問答與指令,差別在接上 Sourcegraph 的 context。
  4. 08:02context 就是 RAGBeyang 以 Bing Chat、Perplexity 解釋 RAG,Cody 對程式碼做同一件事:用程式碼搜尋加 graph context,讓模型少編造。
  5. 10:35兩層檢索架構底層是 keyword、依函式與類別切分的索引、embedding 等 retriever,上層用 reranker 把相關結果排到前面。
  6. 14:23資料品質與領域 embeddingSarah 認為各領域會用自己的 embedding model;Beyang 說正與 Voyage 合作做程式碼用的版本,並強調資料處理管線的品質。
  7. 16:14指定好的程式碼範本企業客戶想叫 Cody 忽略正要淘汰的 anti-pattern。Beyang 說這在搜尋層很容易做,很快會推出相關功能。
  8. 18:17inner loop 與指令Beyang 區分 inner loop 與 outer loop,說現在上線的程式碼 AI 都是 inner loop 工具;Cody 把單元測試、docstring、解釋程式碼做成指令。
  9. 21:16AI engineer 的長期目標目標是從 issue 直接產生 pull request。Beyang 預期先自動化更新依賴這類瑣事,再慢慢往高風險的任務爬。
  10. 22:51提高可靠度的路線Sarah 問該靠驗證回饋還是更強的模型。Beyang 另外列出兩種:拆成子任務再串起來,或擴大 context 後多次取樣再驗證。
  11. 26:30複合失敗與 context 品質逐步串接時每步的失敗會累積,多次取樣放進大型 codebase 又太貴。Beyang 說 context 抓得準的時候,品質差非常多。
  12. 30:13先建 baselineBeyang 舉 Nature 上兩篇天氣預測論文為例,說明先做簡單的做法,這也是先做 RAG 再考慮 fine-tuning 的原因。
  13. 33:27小模型的角色Cody 的 chat 上週加入 Mixtral,completion 以 StarCoder 為主。Beyang 也提醒微調過的中型模型可能失去 in-context learning。
  14. 36:04人月神話與協調問題Sarah 問五年後的軟體開發。Beyang 引 The Mythical Man-Month,說核心問題是協調與能見度,不能把程式碼當成工廠產品。
  15. 38:43讓團隊像一個人兩條路:讓個人產出更多,以及讓主管不必逐筆讀 commit 也能掌握程式碼怎麼在變。
  16. 41:07需求不會被滿足Sarah 拿 Brooks 定律開玩笑,說未來一個人加一份 spec 就夠。Beyang 回答軟體需求還遠沒飽和,團隊還會在,只是每個人負責的範圍更大。
  17. 42:12還要不要學寫程式Sarah 說辦 hackathon 時有大學生認為不必再學寫程式。Beyang 認為寫程式仍然是很有價值的技能。
  18. 44:16AI 壓縮中間層Beyang 把軟體分成高層目標、中間膠水、底層資料結構三層,認為 AI 會壓縮中間層,CS 基礎與領域知識反而更重要。

值得記的話5 句

  • the kind of like dirty secret is that keyword search can probably get you more than 90% of the way there大家心照不宣的是,keyword search 大概就能帶你走完九成以上的路。Beyang 說這是去問 RAG 從業者會聽到的11:55
  • when our context fetching engine works the quality of code generated by Cody it's like night and day我們的 context 擷取引擎發揮作用時,Cody 產生的程式碼品質是天壤之別27:18
  • doing the fancier thing is often sexier and it's certainly these days it's like trendier做比較花俏的東西通常比較性感,這年頭也確實比較潮30:28
  • real potential of large language models and AI more generally is to bring more cohesion to that process大型語言模型、乃至整個 AI 真正的潛力,是讓這個過程更有凝聚力38:12
  • CS fundamentals if anything are going to grow in importanceCS 基礎只會變得更重要45:06

名詞與人物11 個

Cody
Sourcegraph 的 AI coding assistant,可裝在編輯器裡,也能在網頁上對 repo 提問。
Sourcegraph
Beyang 共同創辦的公司,2013 年成立,原本做給人用的程式碼搜尋與理解工具。
RAG
先檢索、再讓 LLM 回答;Beyang 說 context 問題換個說法就是 RAG。
graph context
沿著程式碼的定義與引用關係走,找出相關程式碼放進 context window。
reranker
檢索的第二層,在縮小後的候選集合裡把最相關的結果排到前面。
inner loop / outer loop
outer loop 是團隊層級從規劃到上線的循環;inner loop 是單一開發者一天內反覆修改的循環。
AI engineer
給一份 issue 就能產出 pull request、寫程式過程不需要人監督的系統。
Voyage
在做程式碼用 embedding model 的公司,Sourcegraph 正與其合作。
StarCoder
Cody 目前 inline completion 主要用的模型,7 billion。
Mixtral
上週加進 Cody chat 的小模型之一。
The Mythical Man-Month
1970 年代談軟體開發的著作,核心論點是軟體開發很難用工廠式的產出衡量。

提到但沒有展開

  • Beyang 在 Stanford AI lab 做電腦視覺,指導教授是 Daphne Koller。當時課堂上教的是「神經網路十年前試過、沒成功」,主流是 graphical models 與統計學習;Beyang 說還在等統計學習與 convex optimization 回來。
  • Sourcegraph 去年 9、10 月起加速的原因有三個:內部的嘗試成熟了、Beyang 請育嬰假多了時間做實驗,以及 11 月底 ChatGPT 推出。
  • Beyang 提到 AlphaCode 這類系統靠大量取樣加驗證處理程式競賽題,但放進大型 codebase 會貴到不實用。

在 YouTube 看原片 ↗

同一層的鄰居開發工具與資料平台 · 18 格

Databricks011Datadog021Snowflake023·139Weights & Biases026Vercel030Replit033Sourcegraph047Pinecone052LangChain057Cognition062Voyage AI067Magic.dev079StackBlitz092GitHub106Reflection AI123Warp137MongoDB147Eon175