模型:

facebook/galactica-125m

英文

GALACTICA 125M (mini)

原始模型卡片来自 repo

Mitchell et al. (2018) 之后,该模型卡片提供了关于GALACTICA模型的信息,包括训练方式和预期用途。有关模型的训练和评估的详细信息可在 release paper 中找到。

模型详情

GALACTICA模型是基于大规模科学语料库进行训练的。这些模型旨在执行科学任务,包括但不限于引文预测、科学问答、数学推理、摘要、文档生成、分子属性预测和实体提取。此模型由Meta AI的Papers with Code团队开发,旨在研究语言模型在科学领域的自动组织应用。我们训练的模型参数范围从125M到120B。下面是发布的模型摘要:

Size Parameters
mini 125 M
base 1.3 B
standard 6.7 B
large 30 B
huge 120 B

发布日期

2022年11月

模型类型

基于变压器的架构,采用仅解码器设置,还有一些修改(更多详细信息请参阅论文)。

论文和演示

Paper / Demo

模型用途

GALACTICA模型的主要用户是研究语言模型应用于科学领域的研究人员。我们还预计该模型对于希望构建科学工具的开发人员也将非常有用。然而,鉴于语言模型产生虚构内容的潜力,我们要警告禁止在没有保护措施的情况下进行生产使用。

这些模型可根据非商业CC BY-NC 4.0许可证提供。有关如何使用模型的更多信息,请参阅此存储库的README.md。

训练数据

GALACTICA模型是基于1060亿个开放获取的科学文本和数据进行训练的。包括论文、教科书、科学网站、百科全书、参考资料、知识库等。我们对不同的形式进行标记化,提供了不同任务的自然语言界面。有关训练数据的详细信息,请参阅论文。

如何使用

以下是如何在transformers中使用模型的一些示例脚本:

使用Pytorch模型

在CPU上运行模型

点击展开
from transformers import AutoTokenizer, OPTForCausalLM

tokenizer = AutoTokenizer.from_pretrained("facebook/galactica-125m")
model = OPTForCausalLM.from_pretrained("facebook/galactica-125m")

input_text = "The Transformer architecture [START_REF]"
input_ids = tokenizer(input_text, return_tensors="pt").input_ids

outputs = model.generate(input_ids)
print(tokenizer.decode(outputs[0]))

在GPU上运行模型

点击展开
# pip install accelerate
from transformers import AutoTokenizer, OPTForCausalLM

tokenizer = AutoTokenizer.from_pretrained("facebook/galactica-125m")
model = OPTForCausalLM.from_pretrained("facebook/galactica-125m", device_map="auto")

input_text = "The Transformer architecture [START_REF]"
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to("cuda")

outputs = model.generate(input_ids)
print(tokenizer.decode(outputs[0]))

在GPU上使用不同精度运行模型

FP16 点击展开
# pip install accelerate
import torch
from transformers import AutoTokenizer, OPTForCausalLM

tokenizer = AutoTokenizer.from_pretrained("facebook/galactica-125m")
model = OPTForCausalLM.from_pretrained("facebook/galactica-125m", device_map="auto", torch_dtype=torch.float16)

input_text = "The Transformer architecture [START_REF]"
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to("cuda")

outputs = model.generate(input_ids)
print(tokenizer.decode(outputs[0]))
INT8 点击展开
# pip install bitsandbytes accelerate
from transformers import AutoTokenizer, OPTForCausalLM

tokenizer = AutoTokenizer.from_pretrained("facebook/galactica-125m")
model = OPTForCausalLM.from_pretrained("facebook/galactica-125m", device_map="auto", load_in_8bit=True)

input_text = "The Transformer architecture [START_REF]"
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to("cuda")

outputs = model.generate(input_ids)
print(tokenizer.decode(outputs[0]))

性能和限制

该模型在一系列知识探测、推理和知识密集型科学任务上优于其他现有的语言模型。这也延伸到一般的自然语言处理任务,GALACTICA在其他开源通用语言模型上表现出色。然而,我们在本节中指出了一些限制。

与其他语言模型一样,GALACTICA经常容易产生错觉-尽管使用高质量的学术语料库进行训练,并不能防止这种情况的发生,特别是对于不太受欢迎和不太引用的科学概念。在生成模型时,不能保证输出的真实性。这还包括引文预测等特定形式。尽管GALACTICA的引文行为随着规模的增大逼近真实的引文行为,但该模型在更大的规模上仍然存在受欢迎度偏见。

此外,我们还评估了模型在与刻板印象和有毒性有关的几种类型的基准测试上的表现。总体而言,与其他大型语言模型相比,该模型的有毒性率明显较低。然而,该模型在某些指标上仍然存在偏见(详见论文中的详细内容)。因此,在使用该模型进行生成时,建议谨慎对待。

更广泛的影响

GALACTICA有潜力作为一种发现学术文献的新方法。我们还预期将大量使用该模型作为特定领域(如数学、生物学和化学)的应用。在论文中,我们演示了该模型作为标准搜索工具的替代品的几个示例。我们期待基于GALACTICA等大型语言模型构建新一代科学工具。

我们鼓励研究人员研究这些模型的有益和新的用途。然而,了解大型语言模型的当前限制非常重要。研究人员应注意使用这些模型可能出现的常见问题,例如虚构和偏见。

引用

@inproceedings{GALACTICA,
    title={GALACTICA: A Large Language Model for Science},
    author={Ross Taylor and Marcin Kardas and Guillem Cucurull and Thomas Scialom and Anthony Hartshorn and Elvis Saravia and Andrew Poulton and Viktor Kerkez and Robert Stojnic},
    year={2022}
}