因为这些数据都没有“标签”??没人知道这些分子能不能治病,也没人知道它们能结合什么蛋白。
对于传统的监督学习算法来说,没有标签的数据,就是垃圾。
但现在,在林允宁眼里,这是一座金矿。
这是一本包含了七亿个词汇的“化学字典”。
他不需要知道这些分子能不能治病。
他只需要让AI看着这些分子,去学习化学的“语法”。
哪怕它不知道这个分子有什么用,但只要它看多了,它就会知道:
苯环通常是平的,碳原子通常连着四个键,氮原子旁边经常会有氢键受体……………
这叫“自监督学习”。
在2006年,这还是一个只存在于顶级计算机科学家脑子里的模糊概念,连谷歌都还没开始大规模应用。
但林允宁在学习机器学习时,在一些文献中读到过。
他决定赌一把。
他打开终端,敲下了一行下载命令。
命令违规,此处省略……………
很快,硬盘指示灯开始疯狂闪烁,进度条像蜗牛一样缓慢爬行。
为了让AI学会“识字”,他需要设计一个特殊的训练任务。
林允宁新建了一个代码文件,手指在键盘上飞快地敲击。
他设计了一个类似“完形填空”的游戏。
他编写了一个预处理程序,随机地把ZINC数据库里那些分子结构的一部分“遮住”Masking。
比如,把一个苯环上的碳原子挖掉,或者把侧链上的氨基抹去。
然后,他要求AI根据剩下的部分,去“猜”被遮住的是什么。
如果猜对了,说明AI理解了分子的结构规律;如果猜错了,就通过反向传播算法调整参数,直到猜对为止。
这是一个不需要人工标注,不需要昂贵实验数据的过程。
只要有足够多的分子,AI就可以在这个无人监管的“图书馆”里,通过无数次的自我博弈,从一个对化学一无所知的“文盲”,变成一个精通分子语言的“大师”。
等到它读完了这一亿本书,学会了所有的“词根”和“语法”。
再把它拉回到那三千个真实的药物数据面前。
那就是降维打击。
屏幕上,ZINC数据库的压缩包正在一个接一个地下载完成。
100MB。。。。。。500MB。。。。。。1GB。。。。。。
数亿条沉睡的分子数据,如同一条条看不见的河流,顺着网线涌入服务器的硬盘。
半个小时后,数据下载成功。
林允宁的训练程序也编写完成。
他敲下了最后一行代码,按下回车。
【Pre-trainingTask:MaskedMolecularModelingMMM】
【Status:Initializing。。。】
屏幕上的光标闪烁了一下,然后变成了一个旋转的进度条。
这是一场漫长的、寂静的蜕变。
在这个寒冷的冬夜,在没有人注意的角落里,一个刚刚面世的AI,如同初生的婴儿。
它连话都不会说,却正抱着一本厚厚的字典,开始像那晚的沈知夏一样,一个字,一个字地啃读起来。
。。。。。。