HuggingFace镜像/granite-7b-base
模型介绍文件和版本分析
下载使用量0

模型名称:Granite-7b-base

许可证:Apache-2.0

支持语言:主要为英语

架构:该模型架构是 Meta 的 Llama2-7B 基础变体的复制品,采用 MHA(多头注意力机制),在 2T tokens 上以 1M 的批处理大小进行训练。

上下文长度:4k tokens

分词器:Llama2

模型开发者:IBM Research

为彰显 IBM 对开源创新的承诺,IBM 已发布 granite-7b-base。这是 IBM Granite 模型系列中的一个基础预训练大型语言模型(LLM),采用 apache-2.0 许可证,可供社区和商业使用。Granite-7b-base 是在 IBM 精心整理的数据上从头开始预训练的,作为 Meta Llama-2-7B 的开放参考实现。为致力于数据透明度并促进开放创新,下方提供了数据源、采样比例和访问 URL。

有关训练此模型的更多信息,请查看博客:https://pytorch.org/blog/maximizing-training/

修改

  • 修改示例并添加 NPU 支持;
  • 修改依赖项;

预训练数据

该模型在 2T tokens 上进行训练,其采样比例旨在尽可能接近 Llama1 论文中公布的采样分布。

数据集描述采样比例URL
Common Crawl网络爬取数据的开放存储库,包含 2021 年至 2023 年的快照。77%https://data.commoncrawl.org/
Github_Clean来自 CodeParrot 的代码数据,涵盖多种编程语言。5.50%
Wikipedia and Wikimedia八个维基媒体项目(enwiki、enwikibooks、enwikinews、enwikiquote、enwikisource、enwikiversity、enwikivoyage、enwiktionary),包含从页面和文章中提取的纯文本。2%https://dumps.wikimedia.org
USPTO1975 年至 2023 年 5 月授予的美国专利,不包括外观设计专利。5%https://bulkdata.uspto.gov/
PubMed Central生物医学和生命科学论文。1.75%https://ftp.ncbi.nlm.nih.gov/pub/pmc/oa_package/
arXiv超过 180 万篇发布在 arXiv 上的科学论文预印本。2.50%
StackExchangeStack Exchange 网络上所有用户贡献内容的匿名集合,这是一系列以用户贡献的问答为中心的热门网站。1%https://archive.org/details/stackexchange_20221206
PG19免费电子书库,重点关注美国版权已过期的旧作品。0.25%https://github.com/google-deepmind/pg19
WebhoseIBM 购买的、转换为机器可读数据馈送的非结构化网络内容。5%N/A

评估结果

LM-eval Harness 分数

评估指标Llama2-7B(基线)Granite-7b-base
MMLU(零样本)0.410.43
MMLU(5 样本加权平均)0.470.50
Arc challenge0.460.44
Arc easy0.740.71
Boolq0.780.76
Copa0.870.83
Hellaswag0.760.74
Openbookqa0.440.42
Piqa0.790.79
Sciq0.910.91
Winogrande0.690.67
Truthfulqa0.390.39
GSM8k(8 样本)0.130.11

偏见、风险与局限性

Granite-7b-base 是一个基础模型,未经过任何安全对齐,因此可能会产生有问题的输出。在缺乏足够的安全措施和 RLHF(基于人类反馈的强化学习)的情况下,存在恶意利用这些模型生成虚假信息或有害内容的风险。强烈建议不要完全依赖特定语言模型来做关键决策或获取重要信息,因为防止这些模型编造内容并非易事。此外,由于较小模型的尺寸和记忆能力有限,它们在无根据的生成场景中是否更容易产生幻觉,这一点尚不确定。这方面目前是研究的活跃领域,我们期待在该领域进行更深入的探索、理解和缓解。

代码使用

import argparse
import torch
from openmind import pipeline, is_torch_npu_available

if is_torch_npu_available():
    device = "npu:0"
else:
    device = "cpu"
        
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe = pipeline("text-generation", model="SY_AICC/granite-7b-base" , device=device)
output = pipe(messages)
print(f">>>output={output}")