SafeCoder 與閉源代碼助手

TL;DR

Hugging Face 已發布 SafeCoder,一種基於開源 StarCoder 模型的企業代碼助手。與閉源替代方案不同,SafeCoder 提供了訓練資料的完全透明度,允許根據公司特定的編碼指南進行深度客製化,並支援氣隙部署以達到最大的安全與隱私。

最先進的模型架構

SafeCoder 由 StarCoder 模型家族提供動力,該家族透過 BigCode 協作專案開發。核心 StarCoder 模型是一個具有 155 億個參數的模型,在超過 80 種程式語言上進行訓練。

關鍵技術規格包括:

  • 多查詢注意力 (MQA): 用於提高吞吐量並降低延遲。
  • 內容視窗: 8192-token 視窗使模型能處理更大的現有程式碼區塊,以獲得更好的生成。
  • 填入中間 (FIM): 模型可以在現有檔案內插入程式碼,而不僅僅是附加到末尾。
  • 升級路徑: SafeCoder 設計為能隨時間整合新的最先進模型。

透明度與訓練資料

SafeCoder 遵循 Chinchilla 縮放定律,並在 1 兆個程式碼標記上進行訓練。這些標記來源於「The Stack」,這是一個 2.7 太位元組的資料集,由獲得寬鬆許可的開源儲存庫組成。

  • 選擇退出機制: 一個專用工具允許儲存庫擁有者驗證他們的程式碼是否在資料集中並請求移除。
  • 公開文件: 一份研究論文,披露模型架構、訓練過程和詳細的效能指標。

企業客製化

SafeCoder 設計為可根據公司特定的技術文化進行客製化,例如內部編碼指南、安全標準和偏好的文件風格。Hugging Face 提供三種主要的基礎模型版本:

  • StarCoderBase: 原始模型,在 80+ 種語言上進行訓練。
  • StarCoder: 在 StarCoderBase 基礎上進一步於 Python 進行訓練。
  • StarCoder+: 在 StarCoderBase 基礎上進一步於英文網頁資料進行訓練,以促進編碼對話。

公司可以在自己的基礎設施上使用來自 GitHub 的共享微調代碼對這些模型進行微調,確保專有資料永不會暴露給外部方。

IT 彈性與部署

SafeCoder 透過使用 Docker 容器提供部署彈性,使其能夠透過任何容器管理服務在內部部署或雲端運行。

硬體優化透過 Hugging Face 的 Optimum 庫進行處理,該庫會自動為 CPUs、GPUs 或 AI 加速器套用硬體加速,以優化訓練和推論的成本效能比。

安全與隱私控制

SafeCoder 專為需要關鍵知識產權保護的高安全環境而設計。相較於受管理的閉源服務,它提供了數項隱私優勢:

  • 管理控制: 用戶對安全檢查和合規監控保持完全控制。
  • 氣隙支援: SafeCoder 不需要網路連接,並且可以完全以氣隙模式運行,這意味著它不會將遙測或提示發送回 Hugging Face。
  • 資料擁有權: 提示和建議僅由用戶專屬保留。

相比之下,來源指出某些閉源服務會收集用戶參與度資料,且選擇退出的可用性程度各不相同。

Sources