项目介绍:h2o-danube2-1.8b-chat
项目概述
h2o-danube2-1.8b-chat 是由H2O.ai开发的一个具备1.8亿参数的聊天模型。这个项目提供了三个不同版本的模型,分别是基础模型、经过SFT调优的模型,以及经过SFT加DPO调优的聊天模型。这个强大的模型是通过H2O LLM Studio训练完成的,旨在增强聊天功能。
模型架构
h2o-danube2-1.8b-chat 模型基于Llama 2架构进行了调整,总参数量大约为1.8亿。为了实现高效的文本生成,该模型选用了Mistral分词器,其词汇表大小达到32,000,支持的上下文长度可达8,192。这些配置确保了模型在处理长文本和复杂语境时的性能表现。
模型的主要超参数包括:
- 层数 (n_layers):24
- 头数 (n_heads):32
- 查询组数 (n_query_groups):8
- 词嵌入维度 (n_embd):2560
- 词汇表大小:32,000
- 序列长度:8,192
使用方法
要在GPU机器上使用transformers
库来应用h2o-danube2-1.8b-chat模型,首先要确保安装了transformers
库。安装可以通过运行如下命令完成:
pip install transformers>=4.39.3
然后,通过以下Python代码即可进行文本生成:
import torch
from transformers import pipeline
pipe = pipeline(
"text-generation",
model="h2oai/h2o-danube2-1.8b-chat",
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "user", "content": "为什么喝水有益健康?"},
]
prompt = pipe.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
res = pipe(
prompt,
max_new_tokens=256,
)
print(res[0]["generated_text"])
此代码会自动应用并执行正确的交流格式转换。
量化与分片
模型支持通过设置load_in_8bit=True
或load_in_4bit=True
进行量化加载。与此同时,支持多GPU的自动分片设置,通过device_map=auto
实现。
模型表现
在各项性能基准测试中,h2o-danube2-1.8b-chat展现了如下表现:
- 平均分数:48.44
- ARC挑战:43.43
- Hellaswag:73.54
- MMLU:37.77
- TruthfulQA:39.96
- Winogrande:69.77
- GSM8K:26.16
在多任务基准测试中,其第一次与第二次的平均分达到了5.79。
使用注意事项
使用本模型前,请阅读并同意以下条件:
- 偏见与攻击性:模型可能生成包含偏见或不适当内容的信息。使用者须负责对生成内容进行甄别和使用。
- 限制:模型是基于AI的工具,可能产生不准确或不合适的回答。
- 风险自负:用户应承担使用该模型带来的任何后果。
- 道德考量:鼓励用户负责任地使用模型,避免将其用于不法或有害目的。
使用该模型即表示您同意相关条款,如不同意,请勿使用。