英文

GPT-CSRC

这是一个在Debian中最受欢迎的10000个软件包的C/C++代码上训练的GPT2 774M模型,根据 Debian Popularity Contest . 这些源文件通过一种类似于OpenWebText预处理的过程进行了去重处理(基本上是使用局部敏感哈希来检测近似重复代码)。该模型最初是使用 NVIDIA's Megatron-LM 进行训练的,但已转换为Huggingface格式。请注意,标记器不是标准的GPT2 BPE词汇表,而是经过针对此数据集进行训练的标记器;该标记器也可以从这个存储库中获取。

处理完成的数据集(以JSON格式)可以在此处找到: csrc_dataset_large.json.gz .

此模型用于生成网站 This Code Does Not Exist 上的代码片段。

使用方法

>>> import torch
>>> from transformers import AutoModelForCausalLM, AutoTokenizer
>>> model = AutoModelForCausalLM.from_pretrained("moyix/csrc_774m")
>>> device = torch.device("cuda")
>>> model.to(device)
>>> tokenizer = AutoTokenizer.from_pretrained("moyix/csrc_774m")
>>> prompt = tokenizer.encode('// say hello\nvoid hello() {', return_tensors="pt")
>>> output = model.generate(input_ids=prompt.to(device), max_length=32, num_return_sequences=1, do_sample=True, num_beams=4)
>>> print(tokenizer.decode(output[0].tolist(),clean_up_tokenization_spaces=True))
// say hello
void hello() {
  std::cout << "hello" << std::endl;
}

int main() {