英文

InCoder 1B

一个由Transformer模型训练而成的1B参数解码器,使用了因果掩码目标,可以插入/填充代码,以及进行从左到右的生成。

该模型是在GitHub、GitLab和StackOverflow上使用具有宽松、非版权限制的开源代码库(Apache 2.0、MIT、BSD-2或BSD-3)进行训练的,这些库主要包含Python和JavaScript代码,还包括来自28种语言以及StackOverflow的代码。

有关更多信息,请参见我们的:

还有一个更大的6B参数模型可在 facebook/incoder-6B 处获得。

要求

pytorch,tokenizers和transformers。由于预令牌化程序的更改,我们的模型要求HF's tokenizers >= 0.12.1。

pip install torch
pip install "tokenizers>=0.12.1"
pip install transformers

使用方法

请参阅 https://github.com/dpfried/incoder 以获取示例代码。

模型

model = AutoModelForCausalLM.from_pretrained("facebook/incoder-1B")

分词器

tokenizer = AutoTokenizer.from_pretrained("facebook/incoder-1B")

(注意:incoder-1B和incoder-6B的分词器是相同的,因此也可以使用'facebook/incoder-6B'。)

调用tokenizer.decode时,重要的是传递clean_up_tokenization_spaces=False,以避免在标点符号之后删除空格。例如:

tokenizer.decode(tokenizer.encode("from ."), clean_up_tokenization_spaces=False)

(注意:编码会在tokenizer.decode中添加