模型:
TheBloke/starcoderplus-GPTQ
Chat & support: my new Discord server
Want to contribute? TheBloke's Patreon page
这些文件是用于 Bigcode's StarcoderPlus 的GPTQ 4位模型文件。
它是使用 AutoGPTQ 进行4位量化的结果。
请确保您正在使用最新版本的文本生成网络用户界面
首先确保您已安装 AutoGPTQ :
pip install auto-gptq
然后尝试以下示例代码:
from transformers import AutoTokenizer, pipeline, logging from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig import argparse model_name_or_path = "TheBloke/starcoderplus-GPTQ" use_triton = False tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, use_fast=True) model = AutoGPTQForCausalLM.from_quantized(model_name_or_path, model_basename=model_basename, use_safetensors=True, trust_remote_code=True, device="cuda:0", use_triton=use_triton, quantize_config=None) print("\n\n*** Generate:") inputs = tokenizer.encode("def print_hello_world():", return_tensors="pt").to(device) outputs = model.generate(inputs) print(tokenizer.decode(outputs[0]))
中间填充使用特殊标记来识别输入和输出的前缀/中间/后缀部分:
input_text = "<fim_prefix>def print_hello_world():\n <fim_suffix>\n print('Hello world!')<fim_middle>" inputs = tokenizer.encode(input_text, return_tensors="pt").to(device) outputs = model.generate(inputs) print(tokenizer.decode(outputs[0]))
gptq_model-4bit--1g.safetensors
这将适用于AutoGPTQ和GPTQ-for-LLaMa CUDA版本。有关GPTQ-for-LLaMa Triton模式的问题的报告。如果有问题,请改为使用AutoGPTQ。
它是在没有group_size的情况下创建的,以降低VRAM要求,并且使用了--act-order (desc_act) ,以尽可能提高推理准确性。
如需进一步支持以及有关这些模型和AI的讨论,请加入我们:
感谢 chirper.ai 团队!
我收到很多人的询问,他们是否可以为此做出贡献。我喜欢提供模型和帮助人们,并且很愿意能够投入更多时间来做这些事情,以及扩展到新的项目,如精细调整/训练。
如果您能够并且愿意做出贡献,我将非常感激,并且这将帮助我继续提供更多模型,并开始进行新的AI项目。
捐助者将在所有与AI / LLM /模型相关的问题和请求上得到优先支持,可以访问私人Discord房间,以及其他福利。
特别鸣谢 : 来自CarbonQuill的Luke、Aemon Algiz、Dmitriy Samsonov。
Patreon特别提及 : Ajan Kanaga、Kalila、Derek Yates、Sean Connelly、Luke、Nathan LeClaire、Trenton Dambrowitz、Mano Prime、David Flickinger、vamX、Nikolai Manek、senxiiz、Khalefa Al-Ahmad、Illia Dulskyi、trip7s trip、Jonathan Leane、Talal Aujan、Artur Olbinski、Cory Kujawski、Joseph William Delisle、Pyrater、Oscar Rangel、Lone Striker、Luke Pendergrass、Eugene Pentland、Johann-Peter Hartmann。
感谢所有慷慨的赞助者和捐赠者!
在 StarChat-Beta 上使用经调整的StarCoderPlus进行体验。
StarCoderPlus是根据来自英文网络数据集与 StarCoderData 以及维基百科数据集的600B标记进行微调的版本。它是一个15.5B参数的语言模型,经过了英文和80多种编程语言的训练。模型使用 Multi Query Attention , a context window of 8192 tokens 进行训练,使用 Fill-in-the-Middle objective 进行了1.6万亿次标记的训练。
该模型是根据英文文本和GitHub代码进行训练的。因此,对于"编写一个计算平方根的函数"之类的命令,它的效果并不好。然而,在 StarChat 中进行了指令调优,成为了一种能力强大的助手。
欢迎在社区选项卡中共享您的生成结果!
# pip install -q transformers from transformers import AutoModelForCausalLM, AutoTokenizer checkpoint = "bigcode/starcoderplus" 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]))
中间填充使用特殊标记来识别输入和输出的前缀/中间/后缀部分:
input_text = "<fim_prefix>def print_hello_world():\n <fim_suffix>\n print('Hello world!')<fim_middle>" inputs = tokenizer.encode(input_text, return_tensors="pt").to(device) outputs = model.generate(inputs) print(tokenizer.decode(outputs[0]))
模型的训练代码数据集仅包含具有允许许可证的内容。尽管如此,模型可以直接从数据集生成源代码。代码的许可证可能需要归属和/或其他特定要求,必须遵守。我们提供一个 search index 让您搜索预训练数据以确定生成的代码来自何处,并对代码进行适当的归属。
该模型经过训练,混合了来自网络和GitHub代码的英文文本。因此,当处理非英文文本时,可能会遇到限制,并可能带有在在线环境中常见的偏见和刻板印象。此外,生成的代码应谨慎使用,因为它可能包含错误、低效性或潜在漏洞。要全面了解基础模型的代码限制,请参阅参考 StarCoder paper 。
StarCoderPlus是在StarCoderBase的600B英语和代码标记上进行调优的版本,StarCoderBase在1T代码标记上进行了预训练。以下是微调的详细信息:
该模型根据BigCode OpenRAIL-M v1许可协议授权。您可以在这里找到完整的协议 here 。