模型:

facebook/galactica-30b

英文

GALACTICA 30 B (大型)

原始模型卡片 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亿个开放获取的科学文本和数据进行训练。其中包括论文、教材、科学网站、百科全书、参考资料、知识库等。我们对不同的模态进行分词,以提供自然语言接口用于不同的任务。详细信息请参阅README.md。有关训练数据的详细信息,请参阅论文。

如何使用

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

使用Pytorch模型

在CPU上运行模型

点击展开
from transformers import AutoTokenizer, OPTForCausalLM

tokenizer = AutoTokenizer.from_pretrained("facebook/galactica-30b")
model = OPTForCausalLM.from_pretrained("facebook/galactica-30b")

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-30b")
model = OPTForCausalLM.from_pretrained("facebook/galactica-30b", 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-30b")
model = OPTForCausalLM.from_pretrained("facebook/galactica-30b", 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-30b")
model = OPTForCausalLM.from_pretrained("facebook/galactica-30b", 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]))

性能和限制

该模型在一系列知识探测、推理和知识密集型科学任务上优于其他现有的语言模型。这也适用于一般的NLP任务,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}
}