GPT-Code-Clippy-125M-Code-Search-Py
请参阅我们的新GitHub Wiki,其中详细记录了我们创建GitHub Copilot开源版本的工作
模型描述
GPT-CC-125M-Code-Search是基于GPT-Neo-125M模型,在CodeSearchNet挑战数据集中仅使用Python语言进行因果语言建模微调的模型。该模型专门用于自动补全Python语言中的方法。
训练数据
CodeSearchNet挑战数据集。
训练过程
用于训练此模型的训练脚本可在此处找到。
./run_clm_flax.py \
--output_dir $HOME/gpt-neo-125M-code-search-py \
--model_name_or_path="EleutherAI/gpt-neo-125M" \
--dataset_name code_search_net \
--dataset_config_name="python" \
--do_train --do_eval \
--block_size="512" \
--per_device_train_batch_size="32" \
--per_device_eval_batch_size="64" \
--preprocessing_num_workers="8" \
--learning_rate="1.2e-4" \
--num_train_epochs 20 \
--warmup_steps 3000 \
--adam_beta1="0.9" \
--adam_beta2="0.95" \
--weight_decay="0.1" \
--overwrite_output_dir \
--logging_steps="25" \
--eval_steps="500" \
--push_to_hub="False" \
--report_to="all" \
--dtype="bfloat16" \
--skip_memory_metrics="True" \
--save_steps="500" \
--save_total_limit 10 \
--report_to="wandb" \
--run_name="gpt-neo-125M-code-search-py"
预期用途与限制
该模型针对Python语言中的方法进行了微调,旨在根据给定的提示(方法签名和文档字符串)自动补全Python方法。
使用方法
您可以直接使用文本生成的pipeline来使用此模型。以下示例每次运行时都会生成不同的序列:
from transformers import AutoModelForCausalLM, AutoTokenizer, FlaxAutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("flax-community/gpt-neo-125M-code-clippy-code-search-py")
tokenizer = AutoTokenizer.from_pretrained("flax-community/gpt-neo-125M-code-clippy-code-search-py")
prompt = """def greet(name):
'''一个向用户问候的函数。给定用户名,它应该说hello'''
"""
input_ids = tokenizer(prompt, return_tensors='pt').input_ids.to(device)
start = input_ids.size(1)
out = model.generate(input_ids, do_sample=True, max_length=50, num_beams=2,
early_stopping=True, eos_token_id=tokenizer.eos_token_id, )
print(tokenizer.decode(out[0][start:]))
限制与偏见
该模型仅供研究用途使用,不保证生成代码的质量。
GPT-CC是从GPT-Neo微调而来,可能继承了其偏见和限制。详情请参阅GPT-Neo模型卡片。
评估结果
即将发布...