模型:
codeparrot/codeparrot-small-multi
CodeParrot-Multi ?是一个GPT-2模型(110M参数),用于生成9种编程语言的代码:"Java","JavaScript","PHP","Python","C#","C++","GO","Ruby"和"TypeScript"。
您可以直接在transformers中加载CodeParrot-Multi模型和分词器:
from transformers import AutoTokenizer, AutoModelWithLMHead tokenizer = AutoTokenizer.from_pretrained("codeparrot/codeparrot-small-multi") model = AutoModelWithLMHead.from_pretrained("codeparrot/codeparrot-small-multi") inputs = tokenizer("def hello_world():", return_tensors="pt") outputs = model(**inputs)
或者使用pipeline:
from transformers import pipeline pipe = pipeline("text-generation", model="codeparrot/codeparrot-small-multi") outputs = pipe("def hello_world():")
该模型在小型数据集 Github code small 上进行了训练,在近似去重后获得了 Github code dataset 的子集,并采用了以下设置:
Config | Value |
---|---|
Batch size | 192 |
Context size | 1024 |
Training steps | 300'000 |
Gradient accumulation | 2 |
Gradient checkpointing | False |
Learning rate | 5e-4 |
Weight decay | 0.1 |
Warmup steps | 2000 |
Schedule | Cosine |
训练使用了16个A100(40GB)的GPU。该设置大约相当于580亿个标记。
我们在OpenAI的 HumanEval 基准测试上评估了该模型,该基准测试包含编程挑战:
Metric | Value |
---|---|
pass@1 | --% |
pass@10 | --% |
pass@100 | --% |
pass@k metric 表示至少有k个生成代码通过了测试的概率。