🚀 h2oGPT模型卡片
H2O.ai的h2ogpt-oasst1-512-12b
是一个拥有120亿参数的指令跟随大语言模型,可用于商业用途。该模型基于特定基础模型,使用特定数据集微调,具有良好的性能和广泛的应用场景。
🚀 快速开始
运行自己的聊天机器人
你可以在 H2O.ai GitHub 运行自己的聊天机器人。

使用模型
要在配备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="h2oai/h2ogpt-oasst1-512-12b", torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto", prompt_type='human_bot')
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("h2oai/h2ogpt-oasst1-512-12b", padding_side="left")
model = AutoModelForCausalLM.from_pretrained("h2oai/h2ogpt-oasst1-512-12b", torch_dtype=torch.bfloat16, device_map="auto")
generate_text = H2OTextGenerationPipeline(model=model, tokenizer=tokenizer, prompt_type='human_bot')
res = generate_text("Why is drinking water so healthy?", max_new_tokens=100)
print(res[0]["generated_text"])
✨ 主要特性
📚 详细文档
模型概述
模型架构
GPTNeoXForCausalLM(
(gpt_neox): GPTNeoXModel(
(embed_in): Embedding(50688, 5120)
(layers): ModuleList(
(0-35): 36 x GPTNeoXLayer(
(input_layernorm): LayerNorm((5120,), eps=1e-05, elementwise_affine=True)
(post_attention_layernorm): LayerNorm((5120,), eps=1e-05, elementwise_affine=True)
(attention): GPTNeoXAttention(
(rotary_emb): RotaryEmbedding()
(query_key_value): Linear(in_features=5120, out_features=15360, bias=True)
(dense): Linear(in_features=5120, out_features=5120, bias=True)
)
(mlp): GPTNeoXMLP(
(dense_h_to_4h): Linear(in_features=5120, out_features=20480, bias=True)
(dense_4h_to_h): Linear(in_features=20480, out_features=5120, bias=True)
(act): GELUActivation()
)
)
)
(final_layer_norm): LayerNorm((5120,), eps=1e-05, elementwise_affine=True)
)
(embed_out): Linear(in_features=5120, out_features=50688, bias=False)
)
模型配置
GPTNeoXConfig {
"_name_or_path": "h2oai/h2ogpt-oasst1-512-12b",
"architectures": [
"GPTNeoXForCausalLM"
],
"bos_token_id": 0,
"classifier_dropout": 0.1,
"custom_pipelines": {
"text-generation": {
"impl": "h2oai_pipeline.H2OTextGenerationPipeline",
"pt": "AutoModelForCausalLM"
}
},
"eos_token_id": 0,
"hidden_act": "gelu",
"hidden_size": 5120,
"initializer_range": 0.02,
"intermediate_size": 20480,
"layer_norm_eps": 1e-05,
"max_position_embeddings": 2048,
"model_type": "gpt_neox",
"num_attention_heads": 40,
"num_hidden_layers": 36,
"rotary_emb_base": 10000,
"rotary_pct": 0.25,
"tie_word_embeddings": false,
"torch_dtype": "float16",
"transformers_version": "4.30.0.dev0",
"use_cache": true,
"use_parallel_residual": true,
"vocab_size": 50688
}
模型验证
使用 EleutherAI lm-evaluation-harness 进行模型验证。
评估源代码
任务 |
版本 |
指标 |
值 |
± |
标准误差 |
arc_challenge |
0 |
acc |
0.3157 |
± |
0.0136 |
|
|
acc_norm |
0.3507 |
± |
0.0139 |
arc_easy |
0 |
acc |
0.6932 |
± |
0.0095 |
|
|
acc_norm |
0.6225 |
± |
0.0099 |
boolq |
1 |
acc |
0.6685 |
± |
0.0082 |
hellaswag |
0 |
acc |
0.5140 |
± |
0.0050 |
|
|
acc_norm |
0.6803 |
± |
0.0047 |
openbookqa |
0 |
acc |
0.2900 |
± |
0.0203 |
|
|
acc_norm |
0.3740 |
± |
0.0217 |
piqa |
0 |
acc |
0.7682 |
± |
0.0098 |
|
|
acc_norm |
0.7661 |
± |
0.0099 |
winogrande |
0 |
acc |
0.6369 |
± |
0.0135 |
🔧 技术细节
模型架构
该模型基于GPTNeoXForCausalLM
架构,包含多个GPTNeoXLayer
层,每个层包含注意力机制和多层感知机(MLP)。模型使用了旋转嵌入(Rotary Embedding)技术,有助于处理长序列。
模型配置
模型的配置参数包括隐藏层大小、注意力头数量、层数等,这些参数经过精心调整,以实现最佳性能。例如,hidden_size
设置为5120,num_attention_heads
为40,num_hidden_layers
为36。
📄 许可证
本模型使用Apache-2.0许可证。
⚠️ 重要提示
在使用本仓库提供的大语言模型之前,请仔细阅读以下免责声明。使用该模型即表示您同意遵守以下条款和条件。
- 偏差和冒犯性:大语言模型是在各种互联网文本数据上训练的,这些数据可能包含有偏差、种族主义、冒犯性或其他不适当的内容。使用此模型时,您需承认并接受生成的内容有时可能会表现出偏差或产生冒犯性或不适当的内容。本仓库的开发者不支持、认可或推广任何此类内容或观点。
- 局限性:大语言模型是基于人工智能的工具,并非人类。它可能会产生不正确、无意义或不相关的回复。用户有责任批判性地评估生成的内容,并自行决定是否使用。
- 自担风险:使用此大语言模型的用户必须对使用该工具可能产生的任何后果承担全部责任。本仓库的开发者和贡献者不对因使用或滥用所提供的模型而导致的任何损害、损失或伤害负责。
- 道德考量:鼓励用户负责任且合乎道德地使用大语言模型。使用此模型即表示您同意不将其用于促进仇恨言论、歧视、骚扰或任何形式的非法或有害活动的目的。
- 问题报告:如果您遇到大语言模型生成的任何有偏差、冒犯性或其他不适当的内容,请通过提供的渠道向仓库维护者报告。您的反馈将有助于改进模型并减少潜在问题。
- 免责声明变更:本仓库的开发者保留随时修改或更新此免责声明的权利,恕不另行通知。用户有责任定期查看免责声明,以了解任何变更。
如果您不同意本免责声明的任何部分,应避免使用该模型及其生成的任何内容。