- 作者:韩信子@ShowMeAI
- 机器学习实战系列:www.showmeai.tech/tutorials/4…
- 深度学习实战系列:www.showmeai.tech/tutorials/4…
- 自然言语处理实战系列:www.showmeai.tech/tutorials/4…
- 本文地址:www.showmeai.tech/article-det…
- 声明:版权所有,转载请联络平台与作者并注明出处
- 收藏ShowMeAI查看更多精彩内容
导言
Galactica 是 Meta AI 开源的大型言语模型,根据 Transformer 架构构建,主要运用科学文章和研讨论文作为数据,并运用 GROBID 库将文档从 pdf 转换为文本作为语料进行学习。
Galactica 模型运用单个模型管理多个科学使命。能够完结推理、创立讲义、猜测材料引证等,有以下特点:
- 模型包含125M-120B参数之间的5种不同尺度。
- 该模型运用 2048 长度的上下文窗口。
- 用于管理特定数据类型的“专业”标记化方法。
Galactica 模型在面向科学的数据集上做到了最先进的性能。与升级后的 GPT-3 或 OPT 比较,它在 TruthfulQA 数据会集问题结果更少,可作为开源项目运用,在本篇内容中,ShowMeAI就带咱们一同体会一下这个科学界的巨型言语模型。
实践
装置与加载
咱们能够经过如下指令装置Galactica模型:
pip install git+https://github.com/paperswithcode/galai
注意:Galactica 模型适用于 Python 版别 3.8 和 3.9。现在Python 3.10 及更高版别时模型装置失利。主要是因为 promptsource-library 依靠要求。
运用下述指令导入模型:
import galai as gal
经过load_model函数加载模型。
model = gal.load_model("base", num_gpus = 1)
加载模型时能够指定加载的预练习模型版别,咱们在这里运用“base”版别,模型包含 1.3B(13亿)参数。可选的版别包含“mini”,“base”,“standard”,“large” 和 “huge”,参数量从 125m 到 120b。
更大的模型需求更多内存与计算资源,咱们在这里根据内存状况挑选“base”版别,它消耗大约 11GB 的内存。
-
load_model
的第2个参数是可选的,它指定GPU的数量。
模型运用示例
下面咱们开始运用和体会模型,下面是一个百科解释类的示例:
model.generate("We can explain Brain as", new_doc=True, top_p=0.7, max_length=200)
模型包含其他参数,咱们能够在参数设置中限制输出文本长度,这些参数类似于 GPT-3 模型。
模型输出的结果如下:
We can explain Brain as a computer program that takes in data from the external world, and produces an output as a result. The Brain is the machine that makes decisions about what to do. The Brain is the part of the brain that is made up of neurons, the basic building blocks of the brain. Neurons are the smallest units of the brain. Each neuron contains a membrane and a set of synapses that allow it to communicate with other neurons.\n\n[IMAGE]\n\nFigure Caption: Figure 10.2.110.2.1: Neurons are the smallest units of the brain.\n\n# What are the Functions of Neurons?\n\nNeurons are the basic building blocks of the brain. The brain is the part of the body that is made up of neurons. Neurons communicate with each other using chemical signals called neurotransmitters. The brain has many different types of neurons. The different types of neurons in the brain are called neurons of the different types. Neurons of different types’
HuggingFace+Galactica
Galactica 模型也能够运用 HuggingFace 加载和运用,咱们来看看这个进程,首先咱们导入东西库:
!pip install accelerate #to run with the gpu
from transformers import AutoTokenizer, OPTForCausalLM
注意:运用 GPU 运转模型时需求accelerate库。当仅运用 CPU 运转模型时,咱们能够越过装置“accelerate”库。当仅运用 CPU 运转时,该模型很慢。因此,假如咱们有 GPU 资源,咱们尽量运用GPU运转它。
咱们接下来挑选模型版别,不同巨细的模型分别为“125m”、“1.3b”、“6.7b”、“30b”和“120b”。咱们现在将运用以下代码运转 1.25 亿个参数的最小版别:
tokenizer = AutoTokenizer.from_pretrained("facebook/galactica-125m")
model = OPTForCausalLM.from_pretrained("facebook/galactica-125m", device_map="auto")
假如要运用其他版别,咱们只需将125m换成其他的版别(“1.3b”、“6.7b”、“30b”和“120b”)即可。
加载完模型之后咱们来测验一下,这次咱们来测验一下模型的推理揣度能力。咱们以文本方式提供输入:
input_text = "Car 1 speed is 30km/h and Car 2 speed is 50km/h. Which car travels faster and how much? <work>"
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to("cuda") #when running with gpu is required to add the ".to("cuda")"
咱们运用最小版别的Galactica 模型,就精确回来此推理使命的正确答案,如下所示:
Car 1 travels faster than Car 2 (30km/h vs. 50km/h). calc_1.py
result = 30/50 with open(“output.txt”, “w”) as file: file.write(str(round(result)))
<<run: “calc_1.py”>> <<read: “output.txt”>> 10 So 10 km. Car 1 travels faster than Car 2 (50km/h vs. 30km/h). calc_2.py “`result = 50/30 … Answer: 20
参考材料
- Galactica 官方网站:www.galactica.org/
- GROBID 官方网站:grobid.readthedocs.io/en/latest/I…
- Galactica: A Large Language Model for Science:galactica.org/static/pape…
推荐阅览
- 数据剖析实战系列 :www.showmeai.tech/tutorials/4…
- 机器学习数据剖析实战系列:www.showmeai.tech/tutorials/4…
- 深度学习数据剖析实战系列:www.showmeai.tech/tutorials/4…
- TensorFlow数据剖析实战系列:www.showmeai.tech/tutorials/4…
- PyTorch数据剖析实战系列:www.showmeai.tech/tutorials/4…
- NLP实战数据剖析实战系列:www.showmeai.tech/tutorials/4…
- CV实战数据剖析实战系列:www.showmeai.tech/tutorials/4…
- AI 面试题库系列:www.showmeai.tech/tutorials/4…
本文正在参与「金石计划 . 瓜分6万现金大奖」