项目介绍:h2o-danube3-4b-base
项目背景
h2o-danube3-4b-base是由H2O.ai开发的基础模型,这是一款拥有40亿参数的大型语言模型。该项目发布了两个版本:基础模型和聊天模型。感兴趣的用户可以通过H2O AI Personal GPT亲自体验该模型在手机端的本地离线运行。
模型架构
h2o-danube3-4b-base采用了Llama 2架构的优化版本,总共有约40亿个参数。其使用了Mistral词汇表,词汇表大小为32,000,模型能够处理上下文长度达8,192的文本。以下是模型的详细参数:
- 层数(n_layers):24
- 头数(n_heads):32
- 查询组数(n_query_groups):8
- 嵌入维度(n_embd):3840
- 词汇表大小:32000
- 序列长度:8192
使用方法
要在具有GPU的机器上使用该模型,需要确保安装transformers
库。安装步骤如下:
pip install transformers>=4.42.3
然后,使用以下示例代码加载并运行模型:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("h2oai/h2o-danube3-4b-base")
model = AutoModelForCausalLM.from_pretrained(
"h2oai/h2o-danube3-4b-base",
torch_dtype=torch.bfloat16,
)
model.cuda()
inputs = tokenizer("Das Donau ist nach der Wolga der zweitlängste Fluss Europas", return_tensors="pt").to(model.device)
res = model.generate(
**inputs,
max_new_tokens=32,
do_sample=False,
)
print(tokenizer.decode(res[0], skip_special_tokens=True))
量化与切分
模型支持量化加载,可以通过load_in_8bit=True
或load_in_4bit=True
实现。同时,也可以通过设置device_map=auto
在多个GPU之间进行切分。
基准测试结果
该模型在多个基准测试中表现如下:
- 平均得分:58.85
- ARC挑战赛:59.04
- Hellaswag:79.84
- MMLU:55.18
- TruthfulQA:44.77
- Winogrande:75.14
- GSM8K:39.12
免责声明
请在使用本存储库提供的大型语言模型前仔细阅读免责声明。任何使用该模型的人都默认同意以下条款和条件:
- 偏见与冒犯性内容:该模型训练自各类互联网文本数据,可能含有偏见、种族主义、冒犯性或其他不当内容。用户需要了解并接受生成内容可能会表现出偏见或产生不当内容。
- 局限性:该模型是基于AI的工具,并非人类,可能会生成错误、无意义或不相关的响应。用户需对生成内容进行评估并自行决定其使用。
- 自行承担风险:使用者须对使用该模型可能产生的后果负责。开发者和贡献者不对因使用或误用该模型导致的任何损害承担责任。
- 道德规范:用户应负责任地使用该模型,并同意不将其用于推广仇恨言论、歧视、骚扰或任何非法或有害的活动。
- 问题报告:如果用户发现偏见、冒犯或不当内容,可通过提供的渠道向项目负责人报告,反馈将有助于改善模型。
- 免责声明修改:项目的开发者保留随时修改该免责声明的权利,用户需定期查看以了解最新的修改。
使用该模型即表示同意并遵守上述条款和条件。如不认可其中任何一项,请勿使用该模型及其生成的内容。