🚀 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許可證。
⚠️ 重要提示
在使用本倉庫提供的大語言模型之前,請仔細閱讀以下免責聲明。使用該模型即表示您同意遵守以下條款和條件。
- 偏差和冒犯性:大語言模型是在各種互聯網文本數據上訓練的,這些數據可能包含有偏差、種族主義、冒犯性或其他不適當的內容。使用此模型時,您需承認並接受生成的內容有時可能會表現出偏差或產生冒犯性或不適當的內容。本倉庫的開發者不支持、認可或推廣任何此類內容或觀點。
- 侷限性:大語言模型是基於人工智能的工具,並非人類。它可能會產生不正確、無意義或不相關的回覆。用戶有責任批判性地評估生成的內容,並自行決定是否使用。
- 自擔風險:使用此大語言模型的用戶必須對使用該工具可能產生的任何後果承擔全部責任。本倉庫的開發者和貢獻者不對因使用或濫用所提供的模型而導致的任何損害、損失或傷害負責。
- 道德考量:鼓勵用戶負責任且合乎道德地使用大語言模型。使用此模型即表示您同意不將其用於促進仇恨言論、歧視、騷擾或任何形式的非法或有害活動的目的。
- 問題報告:如果您遇到大語言模型生成的任何有偏差、冒犯性或其他不適當的內容,請通過提供的渠道向倉庫維護者報告。您的反饋將有助於改進模型並減少潛在問題。
- 免責聲明變更:本倉庫的開發者保留隨時修改或更新此免責聲明的權利,恕不另行通知。用戶有責任定期查看免責聲明,以瞭解任何變更。
如果您不同意本免責聲明的任何部分,應避免使用該模型及其生成的任何內容。