赞
踩
StarCoder 是一种在源代码和自然语言文本上训练的语言模型 (LM)。 它的训练数据包含 80 多种不同的编程语言以及从 github 问题和提交以及笔记本中提取的文本。
StarCoder 是在 github 代码上训练的,因此它可以用来执行代码生成。 更准确地说,模型可以完成一个功能的实现,或者在一行代码中推断出后面的字符。 这可以在 hugging faces 的transformers库的帮助下完成。
推荐:用 NSDT设计器 快速搭建可编程3D场景。
首先,我们必须安装 requirements.txt 中列出的所有库:
pip install -r requirements.txt
StarCoder代码生成流水线如下:
from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "bigcode/starcoder"
device = "cuda" # for GPU usage or "cpu" for CPU usage
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)
inputs = tokenizer.encode("def print_hello_world():", return_tensors="pt").to(device)
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
或:
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
checkpoint = "bigcode/starcoder"
model = AutoModelForCausalLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer, device=0)
print( pipe("def hello():") )
StarCoder文本生成推理命令如下:
docker run --gpus '"device:0"' -p 8080:80 -v $PWD/data:/data -e HUGGING_FACE_HUB_TOKEN=<YOUR BIGCODE ENABLED TOKEN> -e HF_HUB_ENABLE_HF_TRANSFER=0 -d ghcr.io/huggingface/text-generation-inference:sha-880a76e --model-id bigcode/starcoder --max-total-tokens 8192
有关详细信息,请参阅此处。
在这里,我们展示了如何针对特定的下游任务微调此 LM。
首先新建conda环境并激活:
conda create -n env
conda activate env
从此处安装与你的 cuda 版本兼容的 pytorch 版本,以下命令适用于 cuda 11.6:
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia
安装transformers和peft库:
conda install -c huggingface transformers
pip install git+https://github.com/huggingface/peft.git
请注意,你可以使用如下命令安装最新稳定版本的transformers库:
pip install git+https://github.com/huggingface/transformers
安装数据集、加速器和huggingface_hub:
conda install -c huggingface -c conda-forge datasets
conda install -c conda-forge accelerate
conda install -c conda-forge huggingface_hub
最后,安装 bitsandbytes 和 wandb库:
pip install bitsandbytes
pip install wandb
要获得带有描述的完整参数列表,你可以在任何脚本上运行以下命令:
python scripts/some_script.py --help
在运行任何脚本之前,请确保你已登录并且可以推送到hub:
huggingface-cli login
确保你已登录 wandb:
wandb login
现在一切都完成了,你可以克隆存储库并进入相应的目录。
StarCoder 可以微调来实现多个下游任务。 我们在这里的兴趣是微调 StarCoder 以使其遵循指令。 指令微调最近引起了很多关注,因为它提出了一个简单的框架,可以教授语言模型使其输出与人类需求保持一致。 该过程需要质量指令数据集的可用性,其中包含多个指令 - 答案对。 不幸的是,这样的数据集并不普遍,但多亏了 Hugging Face
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。