模型:
TheBloke/falcon-40b-instruct-3bit-GPTQ
Chat & support: my new Discord server
Want to contribute? TheBloke's Patreon page
这个仓库包含一个实验性的GPTQ 3bit模型,用于 Falcon-40B-Instruct .
它是使用 AutoGPTQ 进行3bit量化的结果。
请注意,这是一个实验性的GPTQ模型。目前对它的支持非常有限。
也预计会非常慢。目前无法避免这个问题,但正在研究中。
这是一个3bit模型,旨在能够在24GB VRAM上加载。根据我的测试,在返回512个标记时,它不会超过24GB VRAM。但超过24GB后可能会出现问题。
请注意,目前在40B隼GPTQ上可以预期每秒约 0.7 个标记。
必须安装AutoGPTQ: pip install auto-gptq
AutoGPTQ提供了适用于 Windows 和 Linux 的预编译 wheels,以及支持 CUDA toolkit 11.7 或 11.8。
如果你正在运行 CUDA toolkit 12.x,你需要按照以下说明自行编译:
git clone https://github.com/PanQiWei/AutoGPTQ cd AutoGPTQ pip install .
这些手动步骤需要你安装 Nvidia CUDA toolkit .
在 text-generation-webui 中有一个暂时支持AutoGPTQ的版本。
这需要使用 204731952ae59d79ea3805a425c73dd171d943c3 版本的 text-generation-webui。
所以,请先将 text-genration-webui 更新到最新版本。
请注意,该命令行参数会导致隼提供的 Python 代码在您的计算机上执行。
目前还需要执行这段代码,因为隼还不支持Hugging Face transformers。将来 transformers 将原生支持该模型,然后将不再需要 trust_remote_code。
在这个仓库中,您可以看到两个 .py 文件 - 这些文件将被执行。它们是从基本仓库 Falcon-7B-Instruct 复制过来的。
要运行此代码,您需要安装 AutoGPTQ 和 einops:
pip install auto-gptq pip install einops
然后您可以运行这个示例代码:
import torch from transformers import AutoTokenizer from auto_gptq import AutoGPTQForCausalLM # Download the model from HF and store it locally, then reference its location here: quantized_model_dir = "/path/to/falcon40b-instruct-3bit-gptq" from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained(quantized_model_dir, use_fast=False) model = AutoGPTQForCausalLM.from_quantized(quantized_model_dir, device="cuda:0", use_triton=False, use_safetensors=True, torch_dtype=torch.float32, trust_remote_code=True) prompt = "Write a story about llamas" prompt_template = f"### Instruction: {prompt}\n### Response:" tokens = tokenizer(prompt_template, return_tensors="pt").to("cuda:0").input_ids output = model.generate(input_ids=tokens, max_new_tokens=100, do_sample=True, temperature=0.8) print(tokenizer.decode(output[0]))
gptq_model-3bit--1g.safetensors
这将适用于 AutoGPTQ 的 3cb1bf5 版本 ( 3cb1bf5a6d43a06dc34c6442287965d1838303d3 )
它是通过不使用 groupsize 创建的,以减小 VRAM 要求,并使用 desc_act (act-order) 来提高推理质量。
如需进一步的支持以及有关这些模型和AI的讨论,请加入我们:
感谢 chirper.ai 团队!
很多人问我是否可以做贡献。我喜欢提供模型和帮助人们,也非常愿意花更多时间做这方面的工作,以及扩展到新的项目,如微调/训练。
如果你有能力和意愿贡献,我将非常感激,并将帮助我继续提供更多的模型,并开始进行新的AI项目。
捐赠者将在任何AI/LLM/模型问题和请求上获得优先支持,可以访问一个私人Discord房间,以及其他福利。
Patreon 特别致谢: Aemon Algiz, Dmitriy Samsonov, Nathan LeClaire, Trenton Dambrowitz, Mano Prime, David Flickinger, vamX, Nikolai Manek, senxiiz, Khalefa Al-Ahmad, Illia Dulskyi, Jonathan Leane, Talal Aujan, V. Lukas, Joseph William Delisle, Pyrater, Oscar Rangel, Lone Striker, Luke Pendergrass, Eugene Pentland, Sebastain Graf, Johann-Peter Hartman.
感谢所有慷慨的赞助者和捐助者!
Falcon-40B-Instruct 是一个由 TII 开发的模型,它使用 Falcon-40B 进行微调,并在混合 Baize 的训练数据上进行微调。它根据 TII Falcon LLM License 许可协议提供。
论文即将发布 ?。
? 这是一个指导模型,对于进一步的微调可能不是理想的选择。如果您对构建自己的指导/聊天模型感兴趣,我们建议从 Falcon-40B 开始。
? 寻找一个更小、更便宜的模型? Falcon-7B-Instruct 是 Falcon-40B-Instruct 的小弟弟!
from transformers import AutoTokenizer, AutoModelForCausalLM import transformers import torch model = "tiiuae/falcon-40b-instruct" tokenizer = AutoTokenizer.from_pretrained(model) pipeline = transformers.pipeline( "text-generation", model=model, tokenizer=tokenizer, torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto", ) sequences = pipeline( "Girafatron is obsessed with giraffes, the most glorious animal on the face of this Earth. Giraftron believes all other animals are irrelevant when compared to the glorious majesty of the giraffe.\nDaniel: Hello, Girafatron!\nGirafatron:", max_length=200, do_sample=True, top_k=10, num_return_sequences=1, eos_token_id=tokenizer.eos_token_id, ) for seq in sequences: print(f"Result: {seq['generated_text']}")
Falcon-40B-Instruct 已在聊天数据集上进行了微调。
在未充分评估风险和采取适当防范措施的情况下进行生产使用;任何可能被视为不负责任或有害的用例。
Falcon-40B-Instruct 主要在英语数据上进行训练,因此对于其他语言无法适当泛化。此外,由于其训练数据源自代表网络的大规模语料库,因此它会保留在网上常见的刻板印象和偏见。
我们建议使用 Falcon-40B-Instruct 的用户制定保护措施,并为任何生产使用采取适当的预防措施。
from transformers import AutoTokenizer, AutoModelForCausalLM import transformers import torch model = "tiiuae/falcon-40b-instruct" tokenizer = AutoTokenizer.from_pretrained(model) pipeline = transformers.pipeline( "text-generation", model=model, tokenizer=tokenizer, torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto", ) sequences = pipeline( "Girafatron is obsessed with giraffes, the most glorious animal on the face of this Earth. Giraftron believes all other animals are irrelevant when compared to the glorious majesty of the giraffe.\nDaniel: Hello, Girafatron!\nGirafatron:", max_length=200, do_sample=True, top_k=10, num_return_sequences=1, eos_token_id=tokenizer.eos_token_id, ) for seq in sequences: print(f"Result: {seq['generated_text']}")
Falcon-40B-Instruct 在 150M 个标记的数据集上进行了微调,其中包含 Bai ze 的混合数据集的 5%。
论文即将发布。
请参阅 OpenLLM Leaderboard 获取初步结果。
有关预训练的更多信息,请参阅 Falcon-40B 。
Falcon-40B 是一个仅有解码器的因果模型,训练任务是因果语言建模(即预测下一个标记)。
架构在很大程度上借鉴于 GPT-3 论文 ( Brown et al., 2020 ),具有以下差异:
在 multiquery 中,我们使用了一种内部变体,该变体使用每个张量并行度的独立密钥和值。
Hyperparameter | Value | Comment |
---|---|---|
Layers | 60 | |
d_model | 8192 | |
head_dim | 64 | Reduced to optimise for FlashAttention |
Vocabulary | 65024 | |
Sequence length | 2048 |
Falcon-40B-Instruct 在 AWS SageMaker 上进行训练,使用 P4d 实例中的 64 个 A100 40GB GPU。
软件Falcon-40B-Instruct 使用自定义的分布式训练代码库 Gigatron 进行训练。它使用 3D 并行性方法结合 ZeRO 和高性能 Triton 内核 (FlashAttention 等)。
论文即将发布 ?.
Falcon-40B-Instruct 根据 TII Falcon LLM License 许可协议提供。总的来说,
falconllm@tii.ae