ESM蛋白质语言模型系列

模型总览

  • 第一篇《Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences 》ESM-1b

  • 第二篇《MSA Transformer》在ESM-1b的基础上作出改进,将模型的输入从单一蛋白质序列改为MSA矩阵,并在Transformer中加入行、列两种轴向注意力机制,对位点分别计算第个序列和第个对齐位置的影响,充分利用二维输入的优势。

  • 第三篇《Language models enable zero-shot prediction of the effects of mutations on protein function 》中提出了ESM-1v模型,该模型与ESM-1b模型构架相同,只是预训练数据集改为UR90(ESM-1b预训练数据集为UR50)

  • 第四篇《Language models of protein sequences at the scale of evolution enable accurate structure prediction》,ESMFold,提出了ESM2,代替MSA部分和Structure Template部分,对Postion Embedding做了修改,可以支持更长的氨基酸序列编码

模型名称input普适性模型论文
ESM-1bsingle sequencefamily-specifictransformer encoderBiological structure and function emerge from scaling unsupervised learning to 250 million protein sequences
ESM-MSA-1bMSAfew-shot加了两个行列注意力机制MSA Transformer
ESM-1vsingle sequencezero-shottransformer encoderLanguage models enable zero-shot prediction of the effects of mutations on protein function
ESM-2single sequencezero-shottransformer encoderLanguage models of protein sequences at the scale of evolution enable accurate structure prediction

ESM-1B的模型大小如下所示
在这里插入图片描述

ESM2模型大小如下所示(esm-github截图):
在这里插入图片描述

ESM-2 embedding:

Bert输入Embeddings包含三个部分,第一部分为token的embeddings,第二部分为位置编码的embeddings,第三部分为token所属段落编码的embeddings

  • tokenizer(由wordpiece创建)对输入pr序列会头尾添加CLS,EOS特殊字符(论文里写的是BOS、EOS),占两个字符长度 ,batch中长度不够加Padding Token [PAD](CLIP用的是GPT所以用EOS)

  • tokenizer会创建固定大小的词汇表,进行分词,查词汇表将token转化成索引列表

  • 分词后送入token embedding层从而将每一个词转换成向量形式

以下是bert 词嵌入的过程:
tokenizer首先检查整个单词是否在词汇表中。如果没有,则尝试将单词分解为词汇表中包含的尽可能大的子单词,最后将单词分解为单个字符。注意,由于这个原因,我们总是可以将一个单词表示为至少是它的单个字符的集合
self.word_embeddings = nn.Embedding(config.vocab_size, config.hidden_size, padding_idx=0),相同位置输出相同
将这3个ID序列输入到BERT中就会按照BERT模型的定义依次将各种ID转换为对应的embedding:
Token Embeddings, (1, n, 768) ,词的向量表示
Segment Embeddings, (1, n, 768),辅助BERT区别句子对中的两个句子的向量表示,EMS2将蛋白质视为几个句子?
Position Embeddings ,(1, n, 768) ,让BERT学习到输入的顺序属性

在这里插入图片描述
bert应用于下游任务:
在这里插入图片描述

ESM-2 output:

最开始是CLS,最后是EOS

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android NDK开发详解之Application.mk探秘

Android NDK开发详解之Application.mk探秘 概览变量APP_ASFLAGSAPP_ASMFLAGSAPP_BUILD_SCRIPTAPP_CFLAGSAPP_CLANG_TIDYAPP_CLANG_TIDY_FLAGSAPP_CONLYFLAGSAPP_CPPFLAGSAPP_CXXFLAGSAPP_DEBUGAPP_LDFLAGSAPP_MANIFESTAPP_MODULESAPP_OPTIMAPP_PLATFORMAPP_PROJECT_PATHAPP_STL…

剑指JUC原理-8.Java内存模型

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码🔥如果感觉博主的文章还不错的话,请👍三连支持&…

SwiftUI 如何为文件和图片加入便捷的快速预览功能

功能需求 在 SwiftUI 开发的 App 中,我们有时需要以快速预览(QuickLook)的方式向用户展示文件内容,自己动手去处理上百种文件类型的预览是不现实的。 如上图所示:我们在 SwiftUI 中实现了任意文件的快速预览,这是如何完成的呢? 在本篇博文中您将学到如下内容: 功能需…

如何知道服务器的某个端口是否打开

注意:服务器的TCP端口,比如1886端口,出方向 和进方向 都打开才可以用 1、telnet 命令:telnet ip port,port即端口,我们一般最常见的命令就是telnet,但是telnet使用的是tcp协议,换句…

如何使用查看器筛选、搜索功能进行数据定位?

前言 我们曾探讨过观测云如何通过将内置视图与查看器相联结,实现更全面的数据关联分析。(参见《内置视图联动查看器,实现数据关联分析》)这里提到的查看器,实际是一个功能全面且强大的数据查看分析工具。其提供多种搜…

【Liunx应用市场】yum

【Liunx应用市场】yum 1. Linux 软件包管理器 yum2. yum源3. yum的使用3.1 yum查找3.2 yum安装3.3 yum删除 所属专栏:Linux学习❤️ 🚀 >博主首页:初阳785❤️ 🚀 >代码托管:chuyang785❤️ 🚀 >感…

【k8s】pod集群调度

调度约束 Kubernetes 是通过 List-Watch **** 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件,向 APIServer 发送命令,在 Node 节点上面建立 Pod 和 Container。…

界面控件DevExpress WPF Gauge组件 - 轻松实现个性化商业仪表盘

DevExpress WPF Gauge(仪表)控件包含了多种圆形仪表类型、水平和垂直线性仪表、分段和矩阵数字仪表以及状态指示器,同时还具有最终用户交互性的集成支持。 P.S:DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至…

Swagger + DOCWAY 一步导出为优雅完整的Markdown、Pdf接口文档

只要开发,只要写接口应该没人不知道Swagger,但DOCWAY可能知道的人不多,但知道用过后就离不开了,不管是作为多方联调的接口文档,还是交接给客户的文档,都是可以的,具体如何使用,详细步…

【k8s】pod详解

一、Pod介绍 1、Pod的基础概念 Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象,一个pod代表着集群中运行的一个进程。kubernetes中其它大多数组件都是围绕着pod来进行支持和扩展pod功能的。 例如,用于管理po…

Spring系统之IOC与AOP

前言 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 IOC 1.IOC的概念 控制反转(IoCInversion of Control)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码…

git教程(2)---远程仓库操作

git教程---远程仓库 远程操作创建远程仓库克隆远程仓库HTTPSSSH 向远程仓库推送拉取远程仓库.gitignore文件给git指令起别名IssuesPull Requests 标签管理操作标签推送标签 多人协作场景一场景二 开发模型Git分支设计规范使用Gitee的DevOps平台体验项目开发流程 远程操作 创建…