英文

TinyStarCoderPy

这是一个拥有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]))

培训

模型

  • 架构:具有多查询注意力和中间填充目标的GPT-2模型
  • 预训练步骤:50k
  • 预训练标记:1000亿
  • 精度:bfloat16

硬件

  • GPU:32台Tesla A100
  • 训练时间:18小时

软件

许可证

该模型使用BigCode OpenRAIL-M v1许可证授权。您可以在 here 中找到完整的协议。