模型:

facebook/galactica-1.3b

英文

GALACTICA 1.3B (基础版)

原始 repo 的模型卡片

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

模型细节

GALACTICA模型是基于大规模科学语料库进行训练的。该模型旨在执行科学任务,包括但不限于引文预测,科学问答,数学推理,摘要生成,文档生成,分子性质预测和实体提取。Papers with Code团队在Meta AI下开发了这些模型,以研究语言模型在科学领域的自动组织应用。我们训练的模型的规模从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-1.3b")
model = OPTForCausalLM.from_pretrained("facebook/galactica-1.3b")

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