这是一个在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() {