ESM蛋白质语言模型:从序列到结构的进化之路
1. 从“猜单词”到“读天书”蛋白质语言模型到底在做什么如果你玩过“你画我猜”或者“词语接龙”你大概能理解什么是语言模型。它就像一个超级聪明的朋友你给出前面几个词它能猜出下一个最可能出现的词是什么。比如你说“今天天气真”它大概率会接“好”。现在想象一下如果把人类语言换成另一种“语言”——由20种氨基酸字母比如A, R, N, D...排列组合成的蛋白质序列。这种“蛋白质语言”写成的“句子”决定了蛋白质会折叠成什么形状进而决定它在生命体内是负责运输氧气、催化反应还是构成肌肉。传统的蛋白质研究有点像拿到一本用未知文字写成的天书科学家们需要做大量的实验比如X射线、冷冻电镜才能“看懂”其中一页一个蛋白质的结构和功能耗时耗力。而蛋白质语言模型比如我们今天要聊的ESM系列目标就是通过海量的“阅读”训练让自己成为精通这门“天书”的语言大师。它不需要预先知道任何蛋白质的结构知识仅仅通过“阅读”数百万、甚至数十亿条已知的蛋白质序列就能自己领悟出序列中隐藏的语法和语义规则。最终给它一段全新的、从未见过的蛋白质序列它就能预测其功能、稳定性甚至直接画出它的三维结构草图。这听起来有点玄幻但背后的逻辑却很直观在自然界亿万年的进化中能够存活下来的蛋白质序列其氨基酸的排列绝非随机而是蕴含着深刻的物理、化学和生物学约束。语言模型的任务就是从这海量的成功“句子”中反推出这些约束规则。ESMEvolutionary Scale Modeling系列模型正是Meta AI原Facebook AI团队在这条路上交出的一份份惊艳答卷。从最初的ESM-1b到如今的ESM2它们一步步将我们从对序列的浅层理解带向了直接窥探结构的大门。接下来我就带你一起拆解这段进化之路看看这些模型是怎么一步步变“聪明”的。2. 初代目ESM-1b从海量序列中自学成才2.1 核心思想把蛋白质序列当成一句话ESM-1b的起点非常纯粹它采用了在自然语言处理领域已经被验证成功的Transformer架构具体是Encoder部分并且做了一个关键简化它只输入单一的蛋白质序列。这就像学英语时我们不是一开始就学复杂的语法书和同义词辨析而是扔给你成千上万本英文小说让你自己去读。它的训练任务叫做“掩码语言建模”Masked Language Modeling。具体怎么操作呢我拿一个蛋白质序列片段举个例子比如原始序列是“MASKPEPTIDE”。在训练时模型会随机把其中一些氨基酸“遮住”替换成特殊的[MASK]标记变成“MA[MASK]KPE[MASK]TIDE”。然后模型的任务就是根据上下文去预测被遮住的原来是什么氨基酸。它可能根据“MA”和“KPE”推测第一个[MASK]是“S”根据“PE”和“TIDE”推测第二个[MASK]是“P”。通过在海量数据ESM-1b用了UR50/S约2.5亿条蛋白质序列上反复进行这个“完形填空”游戏模型逐渐学会了氨基酸之间的共现规律、疏水亲水倾向、电荷相互作用等隐含的生化知识。这里有个生活化的类比你从来没学过烹饪但看了几百万个菜谱视频。视频里经常出现“西红柿”后面跟着“炒鸡蛋”“牛肉”前面常有“红烧”。虽然没人教你“西红柿和鸡蛋味道搭配”、“红烧适合肉质紧实的食材”这些理论但看多了你自然就懂了。ESM-1b做的就是这件事它从2.5亿个“生命菜谱”中自学了氨基酸的“搭配之道”。2.2 能力与局限家族特异性的“专家”经过这种训练ESM-1b学到了什么神奇能力呢最主要的是它能够为序列中的每一个氨基酸位置计算出一个高维的“上下文向量”即Embedding。这个向量浓缩了该位置氨基酸在其特定上下文环境中的所有信息。基于这个能力ESM-1b在下游任务上表现不俗尤其是在蛋白质功能预测和突变效应预测上。例如你可以取一个野生型蛋白质序列和它的一个突变体序列分别让ESM-1b处理然后比较模型输出的序列表征通常是[CLS]位的向量或整个序列向量的平均。如果突变导致表征发生剧烈变化往往意味着这个突变可能影响蛋白质功能。这在研究疾病相关突变、酶工程改造时非常有用。但是ESM-1b有一个明显的局限它对训练数据中见过的蛋白质家族同源序列多表现很好但对非常新奇、独树一帜的蛋白质孤儿蛋白预测能力就会下降。这是因为它的训练数据虽然海量但分布并不均匀。常见的蛋白家族序列多模型“见多识广”罕见的蛋白序列少模型“经验不足”。这时的ESM-1b更像一个对常见菜系了如指掌但没怎么见过分子料理的厨师。3. 第一次进化引入进化信息——MSA Transformer3.1 从“单句”到“文章合集”MSA的威力生物学家在研究一个蛋白质时有一个比单一序列强大得多的工具多序列比对Multiple Sequence Alignment, MSA。什么是MSA呢你可以把它想象成把一个蛋白质家族所有成员的序列按照相似性上下对齐排列形成一个矩阵。这个矩阵不仅包含目标序列本身还包含了它在亿万年间进化过程中的“亲戚们”的信息。哪些位置从来不变高度保守哪些位置可以灵活变化一目了然。这些进化信息是理解蛋白质结构和功能的黄金线索。ESM团队的第二篇重要工作《MSA Transformer》的核心改进就是将模型的输入从一条序列变成了一个MSA矩阵。这相当于让模型的学习材料从“一本小说”升级成了“一个作者的全部作品集加上所有书评和同人创作”。信息密度和维度发生了质变。3.2 技术巧思行注意力与列注意力直接把一个二维矩阵塞进原本为序列设计的Transformer里是不行的。MSA Transformer为此引入了精巧的行注意力Row Attention和列注意力Column Attention机制。行注意力沿着MSA矩阵的每一行即每一条同源序列进行计算。这帮助模型理解每条完整的蛋白质序列内部的上下文关系和ESM-1b做的类似但现在是同时在多条序列上做。列注意力沿着MSA矩阵的每一列即所有序列的同一个对齐位置进行计算。这是关键它让模型能够直接“看到”在进化过程中同一个位置上的氨基酸是如何变化的。哪些位置像“定海神针”一样绝对不能变可能是活性位点哪些位置可以“随心所欲”地变可能位于蛋白质表面柔性区域。通过这种行列交替的注意力机制模型能同时捕捉序列内的语法行和进化上的约束列。这带来了一个巨大的优势少样本学习Few-shot Learning能力。即使目标蛋白质本身的序列信息很少但只要能在数据库中找到一个哪怕很小的同源家族MSAMSA Transformer就能利用这些进化信息做出高质量的预测。这解决了ESM-1b对孤儿蛋白无能为力的问题。我自己的体会是这就像你要判断一个陌生汉字的意思。如果只看它单独出现单一序列很难猜。但如果给你一堆包含这个字的古文句子MSA你通过观察它在不同句子中的用法和替换字就能更准确地推断出它的含义和词性。MSA Transformer做的就是这种基于上下文的深度推理。4. 第二次进化专精突变预测——ESM-1v4.1 不变架构更强数据在ESM-1b和MSA Transformer之后团队又推出了ESM-1v。从模型架构上看ESM-1v几乎就是ESM-1b的“双胞胎”同样使用单一的蛋白质序列作为输入。那它的改进在哪呢在于预训练数据的规模和质量。ESM-1b使用的是UR50/S数据集约2.5亿条序列而ESM-1v将数据规模扩大到了UR90约9800万条高质量、去冗余的序列。数据规模的扩大和质量的提升让模型学到了更丰富、更细致的序列统计规律。ESM-1v被专门设计用来攻克一个极具挑战性的任务零样本Zero-shot突变效应预测。所谓“零样本”就是模型在训练时完全没有见过任何关于“这个突变是有害的还是有益的”标注数据。它纯粹依靠从海量序列中学到的无监督知识来评估一个突变是否“自然”、是否“合理”。4.2 零样本预测的实践具体怎么用呢方法很直观。假设我们有一个蛋白质的野生型序列比如“VAIK”。我们想知道把第二个位置的A丙氨酸突变成L亮氨酸会有什么影响。我们会构造两个序列野生型“VAIK”和突变型“VLIK”分别输入ESM-1v模型。模型会对每个序列计算一个似然分数可以理解为模型认为这个序列“通顺”或“自然”的程度。然后我们比较突变序列和野生型序列的似然分数。如果突变导致分数大幅下降说明这个突变在模型看来很“别扭”很可能破坏蛋白质的结构或功能如果分数变化不大甚至上升说明这个突变是可接受的。这种方法在实验中表现惊人在多个标准测试集上达到了与需要大量实验数据的传统方法相媲美、甚至更优的水平。对于生物学家和药物研发人员来说这简直是个神器。以前要筛选成千上万个可能的突变点每个都可能需要复杂的实验。现在可以先用ESM-1v快速在计算机上扫描一遍把最有可能出问题的突变筛选掉极大地提高了研究效率。我参与过一个酶改造项目就用它来预筛突变库成功率提升非常明显。5. 第三次进化迈向结构预测的飞跃——ESM2与ESMFold5.1 终极目标从序列直接到结构尽管前面的模型在功能和突变预测上很成功但蛋白质研究的“圣杯”一直是仅从氨基酸序列准确预测其三维空间结构。传统的AlphaFold2等模型解决这个问题依赖于生成一个详细的MSA和复杂的模板搜索计算成本非常高。ESM团队的野心是能否用一个单一的、仅以序列为输入的语言模型直接预测出结构ESM2和基于它构建的ESMFold给出了肯定的答案。ESM2本身是一个比ESM-1b/1v更大、更深、训练数据更多150亿参数训练于UR100数据库约6000万条序列的蛋白质语言模型。它的核心创新点在于对位置编码Position Embedding的改进使其能够支持更长的序列高达1000个氨基酸左右这对于结构预测至关重要。5.2 ESMFold的工作流程ESMFold可以看作是一个“模型套件”它以ESM2作为核心的特征提取器Encoder后面连接了一个专门用于结构解码的模块Decoder。其工作流程可以简化理解序列编码将输入的蛋白质序列送入ESM2模型。ESM2输出的不再是简单的[CLS]向量而是序列中每个氨基酸位置的一个极其丰富的上下文表征。这个表征被认为隐式地包含了该氨基酸在三维空间中应该处于何种环境的信息。结构解码后面的解码器模块接收这些表征并从中直接预测出蛋白质的3D坐标。它主要预测两样东西残基间的距离和方向预测每对氨基酸之间的距离矩阵和它们主链二面角φ, ψ的概率分布。三维坐标生成根据预测出的几何约束通过优化算法如梯度下降生成最终的原子3D坐标形成蛋白质的三维结构模型。5.3 意义与特点速度与通用性的平衡ESMFold最突出的特点是速度快。因为它省去了生成MSA和搜索模板这两个最耗时的步骤所以推理速度比AlphaFold2快了一个数量级大约10-60倍。这使得快速扫描大量序列例如宏基因组数据中的未知蛋白成为可能。当然在预测精度上尤其是在有丰富同源信息的蛋白上ESMFold目前通常还是略逊于AlphaFold2。但它的出现证明了一个纯粹基于单序列训练的语言模型其内部表征已经强大到足以解码出相当准确的蛋白质结构信息。这强烈暗示蛋白质序列中蕴含的结构信息比我们想象的还要直接和丰富。在实际使用中我的策略是对于需要高通量、快速扫描的场景比如从一堆基因里快速找可能有稳定结构的蛋白首选ESMFold。对于需要最高精度、用于详细机制分析或药物设计的单个蛋白则用AlphaFold2进行精修。两者形成了很好的互补。6. 实战指南如何上手使用ESM模型说了这么多原理你可能最关心的是我怎么用上这些强大的工具好消息是Meta AI已经将ESM系列模型全部开源并且提供了非常友好的Python接口。下面我以最常用的ESM2为例带你走一遍基础的使用流程。6.1 环境安装与模型加载首先你需要安装esm这个Python包。通常用pip就可以搞定pip install fair-esm # 或者直接 pip install esm然后在你的Python脚本中加载预训练模型和对应的分词器Tokenizer。ESM2有不同大小的版本从800万到150亿参数你可以根据任务和硬件条件选择。这里我们用ESM2的150亿参数版本esm2_t36_150M_UR50D做演示它平衡了性能和资源消耗。import torch import esm # 加载模型和分词器 model, alphabet esm.pretrained.esm2_t36_150M_UR50D() batch_converter alphabet.get_batch_converter() model.eval() # 切换到评估模式 # 准备你的蛋白质序列可以是一条或多条 data [ (protein1, MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG), (protein2, KALTARQQEVFDLIRDHISQTGMPPTRAEIAQRLGFRSPNAAEEHLKALARKGVIEIVSGASRGIRLLQEE) ] # 将序列转换为模型可接受的格式tokenize 添加特殊符号 batch_labels, batch_strs, batch_tokens batch_converter(data)这段代码做了几件事加载了模型和字母表包含分词规则定义了一个数据批次转换器然后把你的蛋白质序列带一个标识名转换成了模型需要的token ID张量。注意转换器会自动在序列开头加cls结尾加eos并统一长度。6.2 提取序列表征Embeddings拿到token之后就可以喂给模型提取我们想要的表征了。最常见的是提取每个氨基酸位置的表征per-residue embeddings。# 禁用梯度计算节省内存和计算资源 with torch.no_grad(): results model(batch_tokens, repr_layers[33]) # 提取第33层最后一层的输出 # 提取表征 token_representations results[representations][33] # token_representations的形状是 (batch_size, seq_len, hidden_dim) # 注意这个表征包含了特殊符号cls, eos和可能存在的填充符pad # 我们通常需要去掉它们只保留原始氨基酸对应的部分 for i, (_, seq) in enumerate(data): # 获取第i个样本的序列长度去掉特殊符号 seq_len len(seq) # 提取对应位置的表征从第1个token开始到seq_len1因为第0个是cls residue_emb token_representations[i, 1:seq_len1] print(fProtein {batch_labels[i]} 的表征形状: {residue_emb.shape})这个residue_emb就是一个二维矩阵每一行对应序列中的一个氨基酸每一列是1280维对于这个模型的特征向量。这个向量就是该氨基酸在全局序列上下文中的“数学肖像”你可以用它来做下游任务比如分类、预测相互作用位点等。6.3 进行突变效应预测以ESM-1v思路为例虽然ESM-1v有专门的接口但我们可以用ESM2模拟类似的思想计算一个突变的伪似然分数。def predict_mutation_effect(sequence, position, wildtype_aa, mutant_aa, model, alphabet): 简单估算突变效应。 sequence: 原始蛋白质序列字符串 position: 突变位置从1开始计数 wildtype_aa: 野生型氨基酸单个字母 mutant_aa: 突变型氨基酸单个字母 # 确保位置和氨基酸匹配 assert sequence[position-1] wildtype_aa, 位置与野生型氨基酸不匹配 # 构造野生型和突变型序列 wt_seq sequence mt_seq sequence[:position-1] mutant_aa sequence[position:] data [(wt, wt_seq), (mt, mt_seq)] batch_labels, batch_strs, batch_tokens alphabet.get_batch_converter()(data) with torch.no_grad(): # 获取模型输出logits results model(batch_tokens) logits results[logits] # (batch_size, seq_len, vocab_size) # 计算在突变位置模型分配给野生型和突变型氨基酸的分数 # 注意token和序列位置的偏移因为加了cls token_pos position 1 # 因为序列前面加了cls wt_token_id alphabet.tok_to_idx[wildtype_aa] mt_token_id alphabet.tok_to_idx[mutant_aa] wt_score logits[0, token_pos, wt_token_id].item() # 野生型序列突变位置野生型氨基酸的分数 mt_score logits[1, token_pos, mt_token_id].item() # 突变型序列突变位置突变型氨基酸的分数 # 一个简单的差异度量 score_diff mt_score - wt_score print(f野生型分数: {wt_score:.3f}, 突变型分数: {mt_score:.3f}, 差异: {score_diff:.3f}) if score_diff -2: # 这是一个非常粗略的经验阈值 print(预测该突变可能有害。) else: print(预测该突变可能中性或有益。) # 使用示例 seq MKTVRQERLKS predict_mutation_effect(seq, position3, wildtype_aaT, mutant_aaA, modelmodel, alphabetalphabet)重要提示这只是一个非常简化的演示。真正的ESM-1v使用了更严谨的伪似然计算方式一次掩码一个token计算所有可能token的概率。对于严肃的研究请务必使用官方提供的ESM-1v专用接口和评估流程。6.4 使用ESMFold预测结构对于结构预测ESM提供了独立的esm.pretrained.esmfold_v1模型。使用起来同样直接但结构预测计算量较大对GPU内存要求高。import esm model esm.pretrained.esmfold_v1() model model.eval().cuda() # 如果有GPU放到GPU上 # 准备序列 sequence MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG # 预测结构 with torch.no_grad(): output model.infer(sequence) # output包含预测结果 predicted_pdb output[pdb] # PDB格式的字符串可以直接保存为.pdb文件用PyMOL等软件查看 print(output[mean_plddt]) # 预测置信度分数越高越好 # 将预测结果保存到文件 with open(predicted_structure.pdb, w) as f: f.write(predicted_pdb) print(结构已保存至 predicted_structure.pdb)运行这段代码你就能得到一个PDB格式的结构文件。用PyMOL、ChimeraX或者在线工具如Mol*打开它就能看到你的蛋白质序列折叠成的3D模型了。第一次看到一条抽象的序列变成具体的、可以旋转缩放的结构时那种感觉还是非常奇妙的。7. 经验之谈避坑指南与最佳实践玩了这么久ESM模型我也踩过不少坑这里分享几点实战经验希望能帮你少走弯路。1. 模型选择不是越大越好。ESM2有从8M到15B的多个版本。15B参数模型能力最强但需要大量的GPU内存40GB推理速度也慢。对于大多数提取表征的任务ESM2的650M或3B参数版本已经能提供非常好的效果。对于快速原型验证或处理大量序列小模型是更实际的选择。我的建议是先在小模型上跑通流程确认任务有效再考虑上大模型追求极致精度。2. 注意序列长度限制。每个预训练模型都有最大序列长度限制比如ESM2通常是1024或2048个token。你的序列长度加上特殊符号不能超过这个限制。对于超长蛋白质常见的处理方法是截断取关键结构域或者滑动窗口分段处理然后再整合结果。ESMFold对长度更敏感超过其训练长度约1000后精度会下降。3. 理解输入输出的细节。这是最容易出错的地方。模型的分词器Tokenizer不是简单按字符切分它有一个词汇表。不常见的氨基酸组合可能会被拆分成子词subword。batch_converter会自动添加cls、eos和pad。因此你提取表征时一定要搞清楚token索引和原始序列位置的对应关系就像上面代码里做的token_pos position 1那样。一个调试技巧是打印出batch_strs处理后的字符串和batch_tokens的对应关系确保你理解数据是如何被转换的。4. 下游任务需要微调。ESM模型提供的预训练表征是强大的通用特征但对于特定的下游任务比如预测某个特定家族的酶活性直接在预训练表征上接一个简单的分类器如MLP可能不够。如果数据允许对ESM模型进行微调Fine-tuning让模型参数根据你的任务数据进行小幅调整通常能获得显著的性能提升。Hugging Face的Transformers库已经支持ESM模型可以很方便地接入其训练流程。5. 计算资源管理。大模型推理非常吃内存。如果遇到CUDA out of memory错误可以尝试减小batch_size使用混合精度推理torch.cuda.amp只输出你需要的层用repr_layers参数指定而不是所有层对于非常大的任务考虑在CPU上推理虽然慢但内存大。使用torch.no_grad()和model.eval()是必须的这能禁用梯度计算和Dropout等训练层节省大量资源。蛋白质语言模型正在快速改变我们探索生命密码的方式。从ESM-1b到ESM2这条进化之路清晰地展示了一个趋势模型从理解序列的“语义”正在越来越接近揭示其背后的“物理结构”。虽然目前它还无法完全替代湿实验但作为一个强大的先导工具和假设生成器它已经极大地加速了蛋白质工程、药物发现和基础生物学的研究。

相关新闻

清音刻墨在科研协作落地:课题组共享字幕平台+版本对比功能实录

清音刻墨在科研协作落地:课题组共享字幕平台+版本对比功能实录

清音刻墨在科研协作落地:课题组共享字幕平台版本对比功能实录 1. 引言:从个人工具到团队协作的跨越 如果你在科研团队里待过,一定遇到过这样的场景:每周的组会录音、学术讲座录像、实验过程的口述记录……这些宝贵的音频资料&am…

2026/7/4 17:38:17 阅读更多 →
QMCDecode:解放你的音乐收藏,突破格式限制的开源解决方案

QMCDecode:解放你的音乐收藏,突破格式限制的开源解决方案

QMCDecode:解放你的音乐收藏,突破格式限制的开源解决方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录&am…

2026/7/5 2:31:23 阅读更多 →
一键部署cv_unet抠图WebUI:复杂背景人像抠图,边缘处理更自然

一键部署cv_unet抠图WebUI:复杂背景人像抠图,边缘处理更自然

一键部署cv_unet抠图WebUI:复杂背景人像抠图,边缘处理更自然 你是不是也遇到过这样的烦恼?精心拍摄的人像照片,背景却杂乱无章,想换个干净的背景,用传统工具抠图总是处理不好头发丝、半透明婚纱这些细节&a…

2026/7/4 1:02:03 阅读更多 →

最新新闻

YOLO目标检测实战指南:从原理到部署的完整路径

YOLO目标检测实战指南:从原理到部署的完整路径

在实际计算机视觉项目中,目标检测是连接图像理解与下游任务的核心桥梁。从自动驾驶的车辆行人识别,到工业质检的缺陷定位,再到安防监控的异常行为分析,一个高效、准确的检测模型是系统成功的关键。YOLO(You Only Look …

2026/7/5 12:41:53 阅读更多 →
莫比乌斯反演学习笔记

莫比乌斯反演学习笔记

积性函数 一说数论函数, 我个人认为积性函数这个叫法更好 对于一个函数 �(�)f(x), 如果满足对于任意的 $(a, b) | ���(�,�)1,�∈�,�∈�gcd(a,b)…

2026/7/5 12:41:53 阅读更多 →
OpenCV形态学实战:从腐蚀膨胀到开闭运算,解锁图像处理核心技能

OpenCV形态学实战:从腐蚀膨胀到开闭运算,解锁图像处理核心技能

1. 形态学操作:图像处理的"外科手术刀"第一次接触OpenCV的形态学操作时,我正处理一批医学显微图像。那些粘连在一起的血细胞就像煮过头的饺子,完全分不清个数。导师当时说:"试试形态学操作吧,这是图像处…

2026/7/5 12:39:52 阅读更多 →
目标检测实战:从理论到实践攻克小目标与遮挡难题

目标检测实战:从理论到实践攻克小目标与遮挡难题

1. 小目标检测的挑战与核心问题小目标检测一直是计算机视觉领域的难点问题。在实际项目中,我们经常会遇到无人机航拍图像中的车辆、工厂流水线上的微小零件,或是监控摄像头中远距离的行人。这些目标在图像中往往只占据几十甚至几个像素,给检测…

2026/7/5 12:39:52 阅读更多 →
YOLOv8结合PointRend提升小目标分割精度实战

YOLOv8结合PointRend提升小目标分割精度实战

1. 项目概述:当YOLOv8遇上小目标分割难题在计算机视觉的实际工程应用中,小目标分割一直是个令人头疼的问题。想象一下在卫星图像中识别车辆、在工业质检中检测微小缺陷,或者在医学影像中分割细胞核——这些场景中的目标往往只占图像的几十甚至…

2026/7/5 12:37:52 阅读更多 →
模特ai图如何高效生成?多平台快速制作技巧分享

模特ai图如何高效生成?多平台快速制作技巧分享

在电商行业,模特ai图的高效生成已成为商品展示的核心环节。随着AI技术的发展,各类平台助力模特图自动化处理,让从业者效率显著提升。 本文将系统介绍多款相关平台的主要功能与适配优势,帮助你深入了解模特ai图制作的实际场景与选…

2026/7/5 12:35:51 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻