模型:
h2oai/h2ogpt-oig-oasst1-falcon-40b
H2O.ai 的 h2ogpt-oig-oasst1-falcon-40b 是一个具有 400 亿参数的指令遵循的大型语言模型,可用于商业用途。
要在具有 GPU 的计算机上使用 transformers 库与模型一起使用,请首先确保已安装以下库。
pip install transformers==4.29.2 pip install accelerate==0.19.0 pip install torch==2.0.1 pip install einops==0.6.1
import torch
from transformers import pipeline, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("h2oai/h2ogpt-oig-oasst1-falcon-40b", padding_side="left")
generate_text = pipeline(model="h2oai/h2ogpt-oig-oasst1-falcon-40b", tokenizer=tokenizer, 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-oig-oasst1-falcon-40b", padding_side="left")
model = AutoModelForCausalLM.from_pretrained("h2oai/h2ogpt-oig-oasst1-falcon-40b", 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"])
RWForCausalLM(
(transformer): RWModel(
(word_embeddings): Embedding(65024, 8192)
(h): ModuleList(
(0-59): 60 x DecoderLayer(
(ln_attn): LayerNorm((8192,), eps=1e-05, elementwise_affine=True)
(ln_mlp): LayerNorm((8192,), eps=1e-05, elementwise_affine=True)
(self_attention): Attention(
(maybe_rotary): RotaryEmbedding()
(query_key_value): Linear(in_features=8192, out_features=9216, bias=False)
(dense): Linear(in_features=8192, out_features=8192, bias=False)
(attention_dropout): Dropout(p=0.0, inplace=False)
)
(mlp): MLP(
(dense_h_to_4h): Linear(in_features=8192, out_features=32768, bias=False)
(act): GELU(approximate='none')
(dense_4h_to_h): Linear(in_features=32768, out_features=8192, bias=False)
)
)
)
(ln_f): LayerNorm((8192,), eps=1e-05, elementwise_affine=True)
)
(lm_head): Linear(in_features=8192, out_features=65024, bias=False)
)
RWConfig {
"_name_or_path": "h2oai/h2ogpt-oig-oasst1-falcon-40b",
"alibi": false,
"apply_residual_connection_post_layernorm": false,
"architectures": [
"RWForCausalLM"
],
"attention_dropout": 0.0,
"auto_map": {
"AutoConfig": "tiiuae/falcon-40b--configuration_RW.RWConfig",
"AutoModel": "tiiuae/falcon-40b--modelling_RW.RWModel",
"AutoModelForCausalLM": "tiiuae/falcon-40b--modelling_RW.RWForCausalLM",
"AutoModelForQuestionAnswering": "tiiuae/falcon-40b--modelling_RW.RWForQuestionAnswering",
"AutoModelForSequenceClassification": "tiiuae/falcon-40b--modelling_RW.RWForSequenceClassification",
"AutoModelForTokenClassification": "tiiuae/falcon-40b--modelling_RW.RWForTokenClassification"
},
"bias": false,
"bos_token_id": 11,
"custom_pipelines": {
"text-generation": {
"impl": "h2oai_pipeline.H2OTextGenerationPipeline",
"pt": "AutoModelForCausalLM"
}
},
"eos_token_id": 11,
"hidden_dropout": 0.0,
"hidden_size": 8192,
"initializer_range": 0.02,
"layer_norm_epsilon": 1e-05,
"model_type": "RefinedWeb",
"n_head": 128,
"n_head_kv": 8,
"n_layer": 60,
"parallel_attn": true,
"torch_dtype": "float16",
"transformers_version": "4.30.0.dev0",
"use_cache": true,
"vocab_size": 65024
}
使用 EleutherAI lm-evaluation-harness 进行模型验证结果。
| Task | Version | Metric | Value | Stderr | |
|---|---|---|---|---|---|
| arc_challenge | 0 | acc | 0.4957 | ± | 0.0146 |
| acc_norm | 0.5324 | ± | 0.0146 | ||
| arc_easy | 0 | acc | 0.8140 | ± | 0.0080 |
| acc_norm | 0.7837 | ± | 0.0084 | ||
| boolq | 1 | acc | 0.8297 | ± | 0.0066 |
| hellaswag | 0 | acc | 0.6490 | ± | 0.0048 |
| acc_norm | 0.8293 | ± | 0.0038 | ||
| openbookqa | 0 | acc | 0.3780 | ± | 0.0217 |
| acc_norm | 0.4740 | ± | 0.0224 | ||
| piqa | 0 | acc | 0.8248 | ± | 0.0089 |
| acc_norm | 0.8362 | ± | 0.0086 | ||
| winogrande | 0 | acc | 0.7837 | ± | 0.0116 |
请在使用此存储库中提供的大型语言模型之前仔细阅读此免责声明。您使用该模型即表示您同意以下条款和条件。
通过使用此存储库提供的大型语言模型,您同意接受并遵守本免责声明中概述的条款和条件。如果您不同意本免责声明的任何部分,则应避免使用该模型和由其生成的任何内容。