模型:
TheBloke/h2ogpt-oasst1-512-30B-GPTQ
Chat & support: my new Discord server
Want to contribute? TheBloke's Patreon page
这些文件是 H2O.ai's h2ogpt-research-oig-oasst1-512-30b 的 GPTQ 格式模型文件。
它是使用 GPTQ-for-LLaMa 进行 4bit 量化的结果。
您需要使用此模板:
<human>: PROMPT <bot>:
该模型没有停止标记,因此它会继续进行对话。
您将需要设置一个自定义的停止字符串:<bot>
正常打开文本生成 WebUI 界面。
兼容文件 - h2ogpt-oasst1-512-30B-GPTQ-4bit.ooba.act-order.safetensors
在 “main” 分支中 - 默认分支 - 您将找到 “h2ogpt-oasst1-512-30B-GPTQ-4bit.ooba.act-order.safetensors”
这将与所有版本的 GPTQ-for-LLaMa 一起使用。它具有最大的兼容性。
它没有 groupsize,以确保模型可以在 24GB VRAM 显卡上加载。
它是使用 --act-order 参数创建的,以获得最佳的量化质量,限制是能够在 24GB 中加载。
python llama.py /workspace/drom-65b/HF c4 --wbits 4 --true-sequential --act-order --save_safetensors /workspace/drom-gptq/dromedary-65B-GPTQ-4bit.safetensors
获取进一步支持,并对这些模型和人工智能进行讨论,请加入我们:
感谢 chirper.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。
感谢所有慷慨的赞助者和捐赠者!
H2O.ai 的 h2oai/h2ogpt-research-oig-oasst1-512-30b 是一个仅供研究用途的 300 亿参数指令遵循大型语言模型。
由于 LLaMA 模型附带的许可协议,不可能直接分发基于 LLaMA 的模型。因此我们提供了 LORA 权重。
该模型使用 h2oGPT 代码进行训练,如下所示:
torchrun --nproc_per_node=8 finetune.py --base_model=decapoda-research/llama-30b-hf --micro_batch_size=1 --batch_size=8 --cutoff_len=512 --num_epochs=2.0 --val_set_size=0 --eval_steps=100000 --save_steps=17000 --save_total_limit=20 --prompt_type=plain --save_code=True --train_8bit=False --run_id=llama30b_17 --llama_flash_attn=True --lora_r=64 --lora_target_modules=['q_proj', 'k_proj', 'v_proj', 'o_proj'] --learning_rate=2e-4 --lora_alpha=32 --drop_truncations=True --data_path=h2oai/h2ogpt-oig-oasst1-instruct-cleaned-v2 --data_mix_in_path=h2oai/openassistant_oasst1_h2ogpt --data_mix_in_factor=1.0 --data_mix_in_prompt_type=plain --data_mix_in_col_dict={'input': 'input'}
此模型存储库仅提供最后一个检查点,即第 2.0 个时期和第 137,846 步,因为 LORA 状态足够大并且有足够多的检查点来使总运行大小为 19GB。 如有需要,可随时请求其他检查点,我们将考虑添加更多。
使用: https://github.com/h2oai/h2ogpt/blob/main/export_hf_checkpoint.py 并更改:
BASE_MODEL = 'decapoda-research/llama-30b-hf' LORA_WEIGHTS = '<lora_weights_path>' OUTPUT_NAME = "local_h2ogpt-research-oasst1-512-30b"
其中 <lora_weights_path> 是一个目录名称,其中包含此 HF 模型存储库中的文件:
构建完成 HF 模型后,要在具有 GPU 的计算机上使用 transformers 库使用模型,首先确保已安装 transformers 和 accelerate 库。
pip install transformers==4.28.1 pip install accelerate==0.18.0
import torch from transformers import pipeline generate_text = pipeline(model="local_h2ogpt-research-oasst1-512-30b", torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto") res = generate_text("Why is drinking water so healthy?", max_new_tokens=100) print(res[0]["generated_text"])
或者,如果您不希望使用 trust_remote_code=True ,可以下载 instruct_pipeline.py 文件,将其保存在笔记本旁边,并根据加载的模型和分词器自己构建流水线:
import torch from h2oai_pipeline import H2OTextGenerationPipeline from transformers import AutoModelForCausalLM, AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("local_h2ogpt-research-oasst1-512-30b", padding_side="left") model = AutoModelForCausalLM.from_pretrained("local_h2ogpt-research-oasst1-512-30b", torch_dtype=torch.bfloat16, device_map="auto") generate_text = H2OTextGenerationPipeline(model=model, tokenizer=tokenizer) res = generate_text("Why is drinking water so healthy?", max_new_tokens=100) print(res[0]["generated_text"])
PeftModelForCausalLM( (base_model): LoraModel( (model): LlamaForCausalLM( (model): LlamaModel( (embed_tokens): Embedding(32000, 6656, padding_idx=31999) (layers): ModuleList( (0-59): 60 x LlamaDecoderLayer( (self_attn): LlamaAttention( (q_proj): Linear( in_features=6656, out_features=6656, bias=False (lora_dropout): ModuleDict( (default): Dropout(p=0.05, inplace=False) ) (lora_A): ModuleDict( (default): Linear(in_features=6656, out_features=64, bias=False) ) (lora_B): ModuleDict( (default): Linear(in_features=64, out_features=6656, bias=False) ) ) (k_proj): Linear( in_features=6656, out_features=6656, bias=False (lora_dropout): ModuleDict( (default): Dropout(p=0.05, inplace=False) ) (lora_A): ModuleDict( (default): Linear(in_features=6656, out_features=64, bias=False) ) (lora_B): ModuleDict( (default): Linear(in_features=64, out_features=6656, bias=False) ) ) (v_proj): Linear( in_features=6656, out_features=6656, bias=False (lora_dropout): ModuleDict( (default): Dropout(p=0.05, inplace=False) ) (lora_A): ModuleDict( (default): Linear(in_features=6656, out_features=64, bias=False) ) (lora_B): ModuleDict( (default): Linear(in_features=64, out_features=6656, bias=False) ) ) (o_proj): Linear( in_features=6656, out_features=6656, bias=False (lora_dropout): ModuleDict( (default): Dropout(p=0.05, inplace=False) ) (lora_A): ModuleDict( (default): Linear(in_features=6656, out_features=64, bias=False) ) (lora_B): ModuleDict( (default): Linear(in_features=64, out_features=6656, bias=False) ) ) (rotary_emb): LlamaRotaryEmbedding() ) (mlp): LlamaMLP( (gate_proj): Linear(in_features=6656, out_features=17920, bias=False) (down_proj): Linear(in_features=17920, out_features=6656, bias=False) (up_proj): Linear(in_features=6656, out_features=17920, bias=False) (act_fn): SiLUActivation() ) (input_layernorm): LlamaRMSNorm() (post_attention_layernorm): LlamaRMSNorm() ) ) (norm): LlamaRMSNorm() ) (lm_head): Linear(in_features=6656, out_features=32000, bias=False) ) ) ) trainable params: 204472320 || all params: 32733415936 || trainable%: 0.6246592790675496
{ "base_model_name_or_path": "decapoda-research/llama-30b-hf", "bias": "none", "fan_in_fan_out": false, "inference_mode": true, "init_lora_weights": true, "lora_alpha": 32, "lora_dropout": 0.05, "modules_to_save": null, "peft_type": "LORA", "r": 64, "target_modules": [ "q_proj", "k_proj", "v_proj", "o_proj" ], "task_type": "CAUSAL_LM"
古典基准与基础的 LLaMa 30B 模型相一致,但对于对话目的来说不太有用。可以使用 GPT3.5 或 GPT4 来评估回答,而在这里我们使用基于 RLHF 的奖励模型运行。这是使用 h2oGPT 运行的:
python generate.py --base_model=decapoda-research/llama-30b-hf --gradio=False --infer_devices=False --eval_sharegpt_prompts_only=100 --eval_sharegpt_as_output=False --lora_weights=llama-30b-hf.h2oaih2ogpt-oig-oasst1-instruct-cleaned-v2.2.0_epochs.131f6d098b43236b5f91e76fc074ad089d6df368.llama30b_17
因此,该模型的奖励模型得分均值为 0.55,中位数为 0.58。这与我们的 h2oGPT 20B 相比,后者得到的平均值为 0.49,中位数为 0.48,或者与 DB Dollyv2 相比,后者得到的平均值为 0.37,中位数为 0.27。
下面是得分的完整分布图:
我们的 h2oGPT 20B 的相同图表:
DB Dollyv2 的相同图表:
在使用此存储库中提供的大型语言模型之前,请仔细阅读此免责声明。您使用该模型即表示您同意以下条款和条件。
使用此存储库中提供的大型语言模型即表示您同意接受并遵守本免责声明中概述的条款和条件。如果您不同意本免责声明的任何部分,则应避免使用该模型和由其生成的任何内容。