全都会!预测蛋白质标注!创建讲义!解释数学公式!最懂科学的智能NLP模型Galactica尝鲜 ⛵

news2024/11/15 15:52:08

💡 作者:韩信子@ShowMeAI
📘 机器学习实战系列:https://www.showmeai.tech/tutorials/41
📘 深度学习实战系列:https://www.showmeai.tech/tutorials/42
📘 自然语言处理实战系列:https://www.showmeai.tech/tutorials/45
📘 本文地址:https://www.showmeai.tech/article-detail/405
📢 声明:版权所有,转载请联系平台与作者并注明出处
📢 收藏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 官方网站:https://www.galactica.org/
  • 📘 GROBID 官方网站:https://grobid.readthedocs.io/en/latest/Introduction/
  • 📘 Galactica: A Large Language Model for Science:https://galactica.org/static/paper.pdf

推荐阅读

  • 🌍 数据分析实战系列 :https://www.showmeai.tech/tutorials/40
  • 🌍 机器学习数据分析实战系列:https://www.showmeai.tech/tutorials/41
  • 🌍 深度学习数据分析实战系列:https://www.showmeai.tech/tutorials/42
  • 🌍 TensorFlow数据分析实战系列:https://www.showmeai.tech/tutorials/43
  • 🌍 PyTorch数据分析实战系列:https://www.showmeai.tech/tutorials/44
  • 🌍 NLP实战数据分析实战系列:https://www.showmeai.tech/tutorials/45
  • 🌍 CV实战数据分析实战系列:https://www.showmeai.tech/tutorials/46
  • 🌍 AI 面试题库系列:https://www.showmeai.tech/tutorials/48

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/57314.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图片里的文字如何提取?试试这几种提取方法

最近收到了一些小伙伴的私信&#xff0c;他们收到了对方发送过来的图片&#xff0c;觉得图片上的文字信息比较重要&#xff0c;但是又不知道有什么快速的方法能提取到图片中的文字。平时你们遇到这种情况会怎么做呢&#xff1f;今天我给大家分享几个可以将图片转为文字的方法&a…

JVM调优之StringTable调优

jdk1.8之后&#xff0c;JVM内存结构如下 所谓的StringTable&#xff0c;即字符串常量池&#xff08;以下简称串池&#xff09;&#xff0c;存放在堆内存中。 我们先介绍一下intern方法 String s "ab"; //将这个字符串对象尝试放入串池&#xff0c;如果有则并不会放…

VMware下载与安装教程(详细)

虚拟机VMware下载与安装教程1. VMware下载2. VMware的安装1. VMware下载 Vmware官网 官网节目如下 直接点击 DOWNLOAD FOR FREE 之后会跳转到如下界面&#xff0c;可以选择版本&#xff08;目前最新版是17.x)&#xff0c;然后点击转至下载就会转到详细下载界面 根据自己的…

TortoiseGit安装和配置详细说明

一、TortoiseGit 简介 TortoiseGit 是免费开源的。 TortoiseGit 支持你执行常规任务&#xff0c;例如 commit、显示日志、区分两个版本、创建分支和标签、创建补丁等。 网站&#xff1a;tortoisegit.org下载&#xff1a;tortoisegit.org/Download文件&#xff1a;tortoisegi…

vue3移动端适配的解决方案

文章目录前言一、使用插件① 纯wap项目效果&#xff1a;Demo&#xff1a;② pc&wap混合项目&#xff08;我放弃了&#xff09;二、老方案效果&#xff1a;Demo&#xff1a;前言 最近在给公司内部做一个BBS论坛&#xff0c;需要在电脑和手机上都可以操作&#xff0c;所以需…

Kotlin高仿微信-第57篇-VIP管理列表

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点&#xff0c;包括&#xff1a;注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

[附源码]Python计算机毕业设计Django家庭整理服务管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

微服务绕不过的坎-服务雪崩

引言 书接上篇 微服务外交官-Feign &#xff0c;讲完了SpringCloud Alibaba 远程调用组件Feign之后&#xff0c;接下来讲微服务项目绕不开的问题&#xff1a;服务雪崩。 概念 微服务架构应用设计其目的之一是为了应对高并发环境&#xff0c;那问题来&#xff0c;高并发环境会…

[附源码]计算机毕业设计医院挂号住院管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

BBR 数学模型直观展示

看 BBR 的理想图示&#xff1a; 但现实中数据包到达并非绝对均匀&#xff0c;考虑统计突发&#xff0c;实际情况如下&#xff1a; ​后文将 Delivery Rate 设为 B(Bandwidth)&#xff0c;将 RTT 设为 D(Delay)。 B/inflt 曲线一定上凸&#xff0c;可想象 1 个 inflt 只有一种…

HTML+CSS+JS网页设计期末课程大作业 DW个人博客网站制作 web前端开发技术 web课程设计 网页规划与设计

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

并发编程知识总结

并发编程知识总结 最近学习了&#xff1a;冰河《深入理解高并发编程》&#xff1b;《并发编程的艺术》&#xff1b; 特此简要对学习做了部分总结&#xff0c;方便后续对并发编程知识的完善和巩固&#xff1b; 若想深入了解学习&#xff0c;可阅读上述参考原著&#xff1b; 线…

基于蝙蝠优化算法的电力系统经济调度研究(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…

刷题5-合并两个有序数组

刷题5-合并两个有序数组 解题思路&#xff1a; 把数组nums2的元素复制到数组nums1中&#xff0c;然后利用Java的Arrays.sort()数组排序&#xff0c;默认从小到大 核心代码&#xff1a; class Solution {public void merge(int[] nums1,int m,int[] nums2,int n){for(int i0…

Learning From Documents in the Wild to Improve Document Unwarping论文学习笔记

1 广告 论文2022年发表在SIGGRAPH顶会上。 预训练出来的模型有139M。 对文档的去扭曲变形效果在我们调研的深度学习模型里面算是最好的。 2 摘要 文档图像去扭曲是文档数字化和分析的重要内容。最先进的方法依靠纯合成数据来训练深度网络进行去扭曲。因此&#xff0c;经过训…

为 Go 开发配置Visual Studio Code

在本快速入门中&#xff0c;你将安装和配置 Go for Visual Studio Code 扩展。 在 2020 年 Go 开发人员调查结果中&#xff0c;41% 的受访者选择Visual Studio Code作为他们最喜欢的 Go 编辑器。 这使得Visual Studio Code成为 Go 开发人员最常用的编辑器。 Visual Studio Co…

中间代码生成(Intermediate Code Generation)

中间代码生成&#xff08;Intermediate Code Generation&#xff09;申明语句的翻译类型表达式申明式语句翻译简单赋值语句的翻译数组引用的翻译控制流语句的翻译控制流语句及其SDT布尔表达式及其SDT控制流语句翻译的例子布尔表达式和控制流表达式的回填switch语句的翻译过程调…

游戏开发32课 typescript super

super 在类的方法中super就表示当前类的父类。 如果在子类中写了构造函数&#xff0c;在子类构造函数中必须对父类的构造函数进行调用。 例子 (function() { // 父类 class Animal { name: string; constructor(name: string) { this.na…

25. 答疑 - SAP OData 框架处理 Metadata 元数据请求的实现细节,前后端组件部署在同一台物理服务器

我的知识星球 里有一个朋友提出了 SAP OData 服务 metadata 缓存方面的疑问,本文就来详细说一说: jerry,啥时候有时间给介绍一下fiori的Metadata数据系统的处理机制吧。我现在在做的一个项目,用rap开发的。rap开发的service binding,在maintain service注册时,开始注册的…

简单的个人博客网站设计 静态HTML个人博客主页 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页设计作业

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…