HuggingFace镜像/Carballo-bloom-1.3B
模型介绍文件和版本分析
下载使用量0

Carballo-bloom-1.3B

目录

点击展开
  • Carballo-bloom-1.3B
    • 目录
    • 模型说明
    • 预期用途与局限性
    • 使用方法
    • 训练
      • 工具
      • 语言适配与训练
      • 训练数据
      • 训练超参数
      • 框架
    • 评估
    • 补充信息
      • 联系方式
      • 版权
      • 许可协议
      • 资金支持
    • 引用信息

模型说明

Carballo-bloom-1.3B 是一个基于 transformer 的 13 亿参数因果语言模型,专为加利西亚语设计。 该模型通过对 [FLOR-1.3B](由 AINA Project 开发,基于 [BLOOM-1.7B])使用加利西亚语语料库 CorpusNos 进行持续预训练而得。

预期用途与局限性

Carballo-bloom-1.3B 模型可直接用于因果语言建模任务。 它能够执行文本生成任务,并可针对特定场景进行微调。

使用方法

import argparse
from openmind import is_torch_npu_available,import pipeline, AutoTokenizer, AutoModelForCausalLM

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "--model_name_or_path",
        type=str,
        help="Path to model",
        default=None,
    )
    args = parser.parse_args()
    return args

def main():
    args = parse_args()
    model_id = args.model_name_or_path
    if is_torch_npu_available():
        device = "npu:0"
    else:
        device = "cpu"

    input_text = "Hoxe fai un bo día. O sol  "

    tokenizer = AutoTokenizer.from_pretrained(model_id)
    model = AutoModelForCausalLM.from_pretrained(model_id)
    model.to(device)
    generator = pipeline(
        "text-generation",
        model=model,
        tokenizer=tokenizer,
        torch_dtype=torch.bfloat16,
        trust_remote_code=True,
        device_map="auto",
    )
    generation = generator(
        input_text,
        do_sample=True,
        top_k=10,
        eos_token_id=tokenizer.eos_token_id
    )
    print(f"Result: {generation[0]['generated_text']}")
if __name__ == "__main__":
  main()

训练

工具

该模型使用 HuggingFace Transformers 和 Pytorch 进行训练,并采用了 [Causal Modeling Language script]。

语言适配与训练

用于训练 Carballo-bloom-1.3B 的语言适配技术基于 FLOR-1.3B 的训练方法,其作者在这篇 Medium 文章 中对此进行了解释。总而言之,我们的操作步骤如下:

  1. 我们为加利西亚语训练了自己的 BPE 分词器,并用它替换了原始 FLOR-1.3B 的分词器和词汇表。
  2. 对于原始词汇表和目标词汇表中均存在的 token(匹配 token),其对应的嵌入被用于初始化。
  3. 对于 Carballo-bloom-1.3B 原始词汇表中不存在的 token,其嵌入初始化为所有嵌入的平均值。
  4. 模型使用 FLOR-1.3B 的权重、我们适配的分词器(步骤 1)和嵌入(步骤 2-3)进行初始化。
  5. 然后在加利西亚语语料库上对模型进行训练。

训练数据

CorpusNÓS 是一个大规模的加利西亚语语料库,包含 21 亿个单词,主要用于训练大型语言模型。该语料库来源多样,涵盖了相对广泛的体裁。

语料库的结构如下:

子语料库体裁token 数量文档数量
通过传输协议获取的数据书籍7,255,784104
研究论文2,665,351664
新闻124,253,084224,419
政府文件245,897,880654,505
网页内容15,946,68644,165
百科全书4,799,21447,396
小计400,817,999971,253
子语料库体裁token 数量文档数量
公共数据新闻和博客153,497,883665,265
百科全书57,164,848184,628
网络爬取内容1,384,015,6643,366,449
翻译语料库133,726,0044,745,799
小计1,728,404,3998,777,514
总计2,129,222,3989,748,767
下载(Zenodo)https://zenodo.org/records/10687642

训练超参数

  • 随机种子(seed):42
  • 设备数量(num_devices):1
  • 训练批次大小(train_batch_size):2
  • 评估批次大小(eval_batch_size):2
  • 梯度累积(gradient_acummulation):4
  • 优化器(optimizer):AdamW
  • 贝塔参数(betas):(0.9, 0.999)
  • epsilon:1e-08
  • 权重衰减率(weight_decay_rate):0.1
  • 学习率调度器(scheduler):"Linear"
  • 学习率(learning_rate):5e-05
  • 训练轮数(num_epochs):1.2

训练框架

训练在加利西亚超级计算中心(CESGA)进行,使用 1 个节点和 5 块 NVIDIA A100 GPU。

评估

待完成(TO-DO)

补充信息

联系方式

如需更多信息,请发送邮件至 proxecto.nos@usc.gal

许可证

MIT 许可证

版权所有(c)2024 Proxecto Nós

特此授予任何获得本软件及相关文档文件(以下简称“软件”)副本的人,在不受限制的情况下处理本软件的权利,包括但不限于使用、复制、修改、合并、出版、分发、再许可和/或出售软件副本的权利,并允许向其提供软件的人进行上述行为,但需遵守以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。

本软件按“原样”提供,不提供任何明示或暗示的担保,包括但不限于对适销性、特定用途适用性和非侵权性的担保。在任何情况下,作者或版权持有人均不对因合同、侵权或其他与软件或软件使用或其他交易有关的行为引起的任何索赔、损害或其他责任承担责任。

资金支持

本研究由“Nós 项目:加利西亚语在人工智能社会与经济中的应用”资助,该项目源自加利西亚自治区政府与圣地亚哥德孔波斯特拉大学之间的 2021-CP080 号协议,并得益于 Investigo 计划。该计划属于国家恢复、转型和韧性计划的一部分,框架为欧洲恢复基金(NextGenerationEU)。

如何引用本研究

如果您使用本模型,请引用以下文章:

Gamallo, Pablo, Pablo Rodríguez Fernández, Iria de Dios Flores, Susana Sotelo, Silvia Paniagua, José Ramom Pichel, Daniel Bardanca, Marcos Garcia (2024) "Open Generative Large Language Models for Galician", Procesamiento del Lenguaje Natural, 73, pp. 259-270. ISSN: 1135-5948.