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