SafeCoder 與閉原始碼助手

釋出日期:2023 年 9 月 11 日
在 GitHub 上更新

幾十年來,軟體開發人員設計了各種方法、流程和工具,以幫助他們提高程式碼質量並提升生產力。例如,敏捷開發、測試驅動開發、程式碼審查以及 CI/CD 現已成為軟體行業的標準。

在《谷歌如何測試軟體》(Addison-Wesley,2012)一書中,谷歌報告稱,在系統測試(最終測試階段)中修復一個 bug 的成本是單元測試階段修復成本的 1000 倍。這給開發人員(鏈條中的第一環)帶來了巨大壓力,要求他們從一開始就編寫高質量的程式碼。

儘管生成式人工智慧被大肆宣傳,但程式碼生成似乎是幫助開發人員快速交付更好程式碼的一種有前途的方法。事實上,早期研究表明,GitHub CopilotAmazon CodeWhisperer 等託管服務有助於提高開發人員的生產力。

然而,這些服務依賴於閉源模型,無法根據您的技術文化和流程進行定製。Hugging Face 幾周前釋出了 SafeCoder 來解決這個問題。SafeCoder 是一種專為企業打造的程式碼助手解決方案,它為您提供最先進的模型、透明度、可定製性、IT 靈活性和隱私保護。

在這篇文章中,我們將 SafeCoder 與閉源服務進行比較,並強調您可以從我們的解決方案中獲得的益處。

最先進的模型

SafeCoder 目前基於 StarCoder 模型構建,該模型系列是在 BigCode 協作專案中設計和訓練的開源模型。

StarCoder 是一個擁有 155 億引數的模型,針對 80 多種程式語言的程式碼生成進行了訓練。它採用了創新的架構概念,如 多查詢注意力機制 (Multi-Query Attention, MQA),以提高吞吐量和降低延遲,該技術也存在於 Falcon 模型中,並適用於 LLaMa 2 模型。

StarCoder 擁有 8192 個 token 的上下文視窗,這有助於它在生成新程式碼時考慮更多現有程式碼。它還可以進行“中間填充”,即在現有程式碼中插入新程式碼,而不僅僅是在末尾追加新程式碼。

最後,與 HuggingChat 類似,SafeCoder 將隨著時間的推移引入新的最先進模型,為您提供無縫的升級路徑。

不幸的是,閉原始碼助手服務不共享有關底層模型、其功能及其訓練資料的資訊。

透明度

根據奇拉縮放定律 (Chinchilla Scaling Law),SafeCoder 是一個計算最優模型,在 1 萬億 (1,000 億) 程式碼令牌上進行訓練。這些令牌提取自 The Stack,這是一個由許可開源倉庫構建的 2.7 TB 資料集。我們盡一切努力尊重選擇退出請求,並且我們構建了一個工具,允許倉庫所有者檢查他們的程式碼是否是資料集的一部分。

本著透明的精神,我們的研究論文披露了模型架構、訓練過程和詳細指標。

不幸的是,閉源服務堅持使用模糊的資訊,例如“模型在數十億行程式碼上訓練”。據我們所知,沒有可用的指標。

定製化

StarCoder 模型經過專門設計,具有可定製性,我們已經構建了不同版本:

  • StarCoderBase:在 The Stack 的 80 多種語言上訓練的原始模型。
  • StarCoder:在 StarCoderBase 的基礎上進一步訓練了 Python。
  • StarCoder+:在 StarCoderBase 的基礎上進一步訓練了英文網路資料,用於編碼對話。

我們還在 GitHub 上分享了微調程式碼

每家公司都有其偏好的語言和編碼規範,例如如何編寫行內文件或單元測試,以及安全和效能方面的注意事項。透過 SafeCoder,我們可以幫助您訓練模型,使其學習您的軟體工程流程的特殊性。我們的團隊將幫助您準備高質量資料集,並在您的基礎設施上微調 StarCoder。您的資料絕不會洩露給任何人。

不幸的是,閉源服務無法定製。

IT 靈活性

SafeCoder 依賴 Docker 容器進行微調和部署。它可以輕鬆地在本地或雲端的任何容器管理服務上執行。

此外,SafeCoder 還包含了我們的 Optimum 硬體加速庫。無論您使用 CPU、GPU 還是 AI 加速器,Optimum 都會自動啟動,幫助您節省訓練和推理的時間和金錢。由於您控制著底層硬體,您還可以根據自己的需求調整基礎設施的成本效能比。

不幸的是,閉源服務僅作為託管服務提供。

安全與隱私

安全始終是首要考慮的問題,尤其是在涉及原始碼時。智慧財產權和隱私必須不惜一切代價得到保護。

無論您是在本地執行還是在雲端執行,SafeCoder 都完全在您的行政控制之下。您可以應用和監控您的安全檢查,並在您的 IT 平臺中保持強大而一致的合規性。

SafeCoder 不會窺探您的任何資料。您的提示和建議只屬於您。SafeCoder 不會聯絡外部並向 Hugging Face 或任何其他人傳送遙測資料。除了您之外,沒有人需要知道您如何以及何時使用 SafeCoder。SafeCoder 甚至不需要網際網路連線。您可以(也應該)完全斷開網路執行它。

閉源服務依賴於底層雲的安全性。這是否符合您的合規性要求由您決定。對於企業使用者,提示和建議不儲存(個人使用者則儲存)。但是,我們遺憾地指出,GitHub 收集“使用者參與資料”且無法選擇退出。AWS 預設也這樣做,但允許您選擇退出

結論

我們對 SafeCoder 的未來感到非常興奮,我們的客戶也是如此。沒有人應該在最先進的程式碼生成、透明度、定製化、IT 靈活性、安全性和隱私方面妥協。我們相信 SafeCoder 能夠提供所有這些,我們將繼續努力使其變得更好。

如果您對貴公司的 SafeCoder 感興趣,請聯絡我們。我們的團隊將盡快與您聯絡,瞭解您的用例並討論需求。

感謝閱讀!

社群

註冊登入 以評論

© . This site is unofficial and not affiliated with Hugging Face, Inc.