模型:

facebook/galactica-120b

英文

GALACTICA 120 B (巨大)

原始 repo 中的模型卡

Mitchell et al. (2018) 之后,此模型卡提供了有关 GALACTICA 模型的信息,包括其如何训练以及预期的使用案例。有关模型如何训练和评估的详细信息可在 release paper 中找到。

此模型检查点已由 Manuel Romero 集成到 Hub 中

模型详细信息

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月

模型类型

基于 Transformer 架构的解码器设置,有一些修改(详情请参阅论文)。

论文和演示

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

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