模型:
bigcode/tiny_starcoder_py
这是一个拥有164M参数的模型,与 StarCoder 具有相同的架构(8k上下文长度,MQA和FIM)。它是根据Python数据从 StarCoderData 上进行训练,大约进行了6个epoch,相当于100B个标记。
该模型是在GitHub代码上进行训练的,旨在辅助某些任务,如 Assisted Generation 。对于纯粹的代码补全,我们建议使用我们的15B模型 StarCoder 或 StarCoderBase 。
# pip install -q transformers from transformers import AutoModelForCausalLM, AutoTokenizer checkpoint = "bigcode/tiny_starcoder_py" device = "cuda" # for GPU usage or "cpu" for CPU usage 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_one_two_three():\n print('one')\n <fim_suffix>\n print('three')<fim_middle>" inputs = tokenizer.encode(input_text, return_tensors="pt").to(device) outputs = model.generate(inputs) print(tokenizer.decode(outputs[0]))
该模型使用BigCode OpenRAIL-M v1许可证授权。您可以在 here 中找到完整的协议。