你需要了解這種新的編程AI:StarCoder
譯文譯者 | 布加迪
審校 | 重樓
BigCode最近發布了一個新的人工智能LLM(大型語言模型):StarCoder,旨在幫助開發人員更快速地編寫高效的代碼。本文介紹了StarCoder的定義、StarCoder的工作原理以及您可以如何利用StarCoder提升編程能力。
StarCoder的定義
StarCoder是一種專為編程語言設計的LLM,旨在幫助程序員在較短的時間內編寫高質量的代碼。
它用Python編寫,已經過訓練,支持80多種編程語言編寫代碼,包括面向對象的編程語言(比如C++、Python和Java)以及過程編程語言(比如Fortran和C)。
StarCoder的工作原理
StarCoder LLM采用多查詢注意技術,該技術使StarCoder能夠理解代碼的內容,并生成準確的建議。該技術需要同時分析多個查詢,以提供準確的響應。
StarCoder LLM的訓練過程涉及收集和整理來自GitHub代碼存儲庫的多種編程語言的大量數據。通過利用這個多樣化的數據集,StarCoder可以生成準確而高效的代碼建議。
如何使用StarCoder LLM?
開始使用StarCoder LLM很容易。您可以利用StarCoder的任何工具來編寫高效的代碼,包括其Playground或聊天機器人。下面介紹如何利用StarCoder編寫更好的程序。
1. 代碼完成
通過使用StarCoder Playground接口,StarCoder可以抓取程序數據并完成程序,或基于迄今為止已編寫的代碼的上下文發現程序中缺失的部分。要使用StarCoder Playground,請將不完整的代碼寫入到代碼提示中。
比如說:
當您點擊顯示代碼完成功能的Generate按鈕時,StarCoder建議使用JavaScript數組方法來完成提示的代碼。
2. 從自然語言提示生成代碼
StarCoder不是一個能夠理解自然語言提示的指令模型,比如像“創建一個查找1到100之間素數的函數”這樣的提示。然而,您可以使用StarCoder的聊天機器人(技術助手)來輸入指令,并利用StarCoder作為指令模型,如下圖所示:
該圖描述了StarCoder的技術助手被要求編寫一個對1到100之間的素數求和的Python函數。
與之相仿,您可以利用這個聊天機器人來發現代碼結構中的錯誤或漏洞,StarCoder通過用來自GitHub代碼存儲庫的數千個類似程序運行特定代碼來實現這一功能。這可以節省代碼調試方面的時間和精力。
除了上述功能特性外,StarCoder LLM還提供了更多功能。這包括Visual Studio Code插件,該插件提供了代碼完成功能,有助于在您開發軟件時提高生產力。
StarCoder LLM的當前局限性
盡管StarCoder LLM是一種令人印象深刻的人工智能工具,但它也存在一些局限性。主要的限制之一是它依賴訓練數據。訓練數據的質量和數量制約了StarCoder LLM的性能。
此外,當使用LLM來生成或完成代碼時,您也許會碰到StarCoder的反饋可能更準確的情況。此外,StarCoder發現很難處理通過Playground和聊天機器人等任何其他渠道提供給它的大量數據。但愿BigCode能夠改進這些限制。
LLM沒那么復雜
StarCoder只是LLM的另一個例子,表明了人工智能的變革能力。LLM繼續改變工程和科學領域某些流程的執行方式。
LLM不像看起來那么復雜。它們利用深度學習來分析數據,并解讀語法、句法和上下文,以創建響應。了解LLM的定義以及您如何能利用LLM幫助您發掘其潛力。
原文標題:Introducing StarCoder: The New Programming AI,作者:Chinedu Mgbemena