🚀 StarCoderBase-1B
StarCoderBase-1B是StarCoderBase的10億參數版本,它在80多種編程語言的代碼數據上進行訓練,能夠生成代碼片段,助力開發者的編程工作。
🚀 快速開始
生成代碼
from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "bigcode/starcoderbase-1b"
device = "cuda"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)
inputs = tokenizer.encode("def print_hello_world():", return_tensors="pt").to(device)
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
補全代碼
input_text = "<fim_prefix>def print_hello_world():\n <fim_suffix>\n print('Hello world!')<fim_middle>"
inputs = tokenizer.encode(input_text, return_tensors="pt").to(device)
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
✨ 主要特性
- 多語言支持:在來自80多種編程語言的代碼數據上進行訓練。
- 先進技術應用:採用Multi Query Attention、8192個token的上下文窗口,並使用Fill-in-the-Middle目標進行訓練。
- 代碼生成能力:能夠根據一定上下文生成代碼片段。
📚 詳細文檔
模型概述
StarCoderBase-1B是一個擁有10億參數的模型,它在來自The Stack (v1.2)的80多種編程語言的代碼數據上進行訓練,排除了選擇退出請求的數據。該模型採用了Multi Query Attention、8192個token的上下文窗口,並使用Fill-in-the-Middle目標在1萬億個token上進行訓練。
使用方式
預期用途
該模型在GitHub代碼上進行訓練,它並非指令模型,像“編寫一個計算平方根的函數”這樣的命令效果不佳。不過,通過使用Tech Assistant提示,可以將其轉變為一個實用的技術助手。
歸屬與其他要求
該模型的預訓練數據集僅篩選了許可寬鬆的代碼。儘管如此,模型仍可能直接從數據集中生成源代碼。代碼的許可證可能要求進行歸屬聲明和/或遵守其他特定要求,必須予以尊重。我們提供了一個搜索索引,可用於搜索預訓練數據,以確定生成代碼的來源,並對代碼進行正確的歸屬聲明。
侷限性
該模型在80多種編程語言的源代碼上進行訓練。源代碼中主要使用的自然語言是英語,但也包含其他語言。因此,該模型能夠根據一定上下文生成代碼片段,但生成的代碼不一定能按預期工作。它可能效率低下、包含錯誤或漏洞。有關模型侷限性的詳細討論,請參閱相關論文。
訓練信息
模型信息
- 架構:具有多查詢注意力和Fill-in-the-Middle目標的GPT - 2模型
- 預訓練步驟:500k
- 預訓練token數量:1萬億
- 精度:bfloat16
硬件信息
- GPU:128個Tesla A100
- 訓練時間:11天
軟件信息
📄 許可證
該模型遵循BigCode OpenRAIL - M v1許可協議。你可以在此處查看完整協議。
📖 引用
@article{li2023starcoder,
title={StarCoder: may the source be with you!},
author={Raymond Li and Loubna Ben Allal and Yangtian Zi and Niklas Muennighoff and Denis Kocetkov and Chenghao Mou and Marc Marone and Christopher Akiki and Jia Li and Jenny Chim and Qian Liu and Evgenii Zheltonozhskii and Terry Yue Zhuo and Thomas Wang and Olivier Dehaene and Mishig Davaadorj and Joel Lamy-Poirier and João Monteiro and Oleh Shliazhko and Nicolas Gontier and Nicholas Meade and Armel Zebaze and Ming-Ho Yee and Logesh Kumar Umapathi and Jian Zhu and Benjamin Lipkin and Muhtasham Oblokulov and Zhiruo Wang and Rudra Murthy and Jason Stillerman and Siva Sankalp Patel and Dmitry Abulkhanov and Marco Zocca and Manan Dey and Zhihan Zhang and Nour Fahmy and Urvashi Bhattacharyya and Wenhao Yu and Swayam Singh and Sasha Luccioni and Paulo Villegas and Maxim Kunakov and Fedor Zhdanov and Manuel Romero and Tony Lee and Nadav Timor and Jennifer Ding and Claire Schlesinger and Hailey Schoelkopf and Jan Ebert and Tri Dao and Mayank Mishra and Alex Gu and Jennifer Robinson and Carolyn Jane Anderson and Brendan Dolan-Gavitt and Danish Contractor and Siva Reddy and Daniel Fried and Dzmitry Bahdanau and Yacine Jernite and Carlos Muñoz Ferrandis and Sean Hughes and Thomas Wolf and Arjun Guha and Leandro von Werra and Harm de Vries},
year={2023},
eprint={2305.06161},
archivePrefix={arXiv},
primaryClass={cs.CL}
}