微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 一个会自己改作业的X光分析系统

一个会自己改作业的X光分析系统

2026-11-10 17:26
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-11-10 17:26 • 科技行者

你有没有想过,一个博士生做了十几年的实验技能,能不能被装进一个程序里,让它自己学会越做越好?

这听起来像科幻,但2026年10月,一群来自香港科技大学广州校区、伦敦大学学院和长三角人工智能实验室的研究者真的做出了这么个东西,取名叫甘江(Gan Jiang)。它干的事情是粉末X射线衍射分析,这是材料科学里一个老得不能再老的技术,可偏偏到今天还是个让人头疼的活儿。

先说说这事儿为什么难。

X射线打到晶体上会产生一种独特的衍射花纹,科学家管这个叫衍射指纹,一种只有特定晶体结构才会呈现的信号特征,就像指纹能认出一个人,衍射花纹能认出一种物质的原子排布。

这个指纹里藏着三类信息:峰的位置告诉你晶格间距多大,峰的强度告诉你原子怎么排列,峰的宽度告诉你晶粒大小和内部应变。听起来挺整齐,但现实往往不配合。

如果样品里混了好几种物质,它们的峰会互相压在一起,分不清谁是谁。如果晶体本身有点乱序,或者测量时某些角度没覆盖到,同一组数据可能对应好几种完全不同的解释,谁也说服不了谁。这就是为什么说这是个病态的逆问题。科学家管这种"从结果反推原因,但原因不唯一"的情况叫逆问题,而"病态"说的是这种反推特别不稳定,一点点误差就可能导向完全不同的答案。

过去几年,机器学习已经能帮上不少忙了。从衍射图谱直接分类相、检索数据库结构、甚至生成候选结构,这些都有人做过。自动化精修软件和一些早期的智能体也开始把预测结果和数值验证连起来。但这篇论文的作者们发现了一个被忽略的问题:就算你这一次分析做得再漂亮,下一次遇到新样品,你还是从零开始。

失败的精修尝试、专家手动修正的细节、成功时用过的恢复策略,这些宝贵的经验大多数时候就这么流失了,没人把它们系统地沉淀下来,变成下次能直接复用的本事。

这就是甘江想解决的核心矛盾:怎么让一次分析积累的经验,真正变成下一次分析能用上的本领,而且这个过程得有证据支撑,不能瞎编。

这套系统能做到什么程度,先看几个硬核案例。

研究团队拿它去分析正交晶系的硫酸铅,这种材料的衍射图里有383对严重重叠的布拉格反射,在铜靶辐射下几乎没法靠肉眼单独辨认每个峰。甘江用了一种叫全谱建模的方法来处理,简单说就是不孤立看单个峰,而是把整条衍射曲线当成一个整体来拟合,这样重叠的信息也能被利用上,而不是被扔掉。最后拟合出来的残差指标R_p只有2.753%,R_wp是5.926%,这两个数字越小说明计算出来的谱线和实测谱线吻合得越好。

更有意思的是一个考古案例。研究者拿到一份古埃及化妆品粉末的同步辐射数据,里面混了五种矿物:石膏、角铅矿、白铅矿、方铅矿和羟氯铅矿。甘江不仅把这五种物质都识别出来了,还精确估算出它们各自占的质量比例,分别是12.53%、18.53%、32.02%、9.69%和27.23%。这个结果里铅氯化物的含量相当可观,这和此前有学者提出的"古埃及人有意进行化学加工"的说法对得上。一个现代的AI分析系统,居然能帮我们回应一个几千年前的历史问题,这事儿想想还挺奇妙。

如果没有自动化的多相分解能力会怎样?研究者得靠人工一个个试错组合,五种矿物理论上有成百上千种配比可能,靠人工逐一排查,恐怕几天都出不来一个靠谱的答案。

甘江还被用来追踪一块正在工作中的电池电极材料。这是个O3型的镍钴锰酸锂正极,电压在3.0到4.6伏之间循环。甘江把连续扫描的数据当成一条有连贯性的轨迹来处理,每一次成功的结构解析结果,都会作为下一次解析的起点,背景和衍射参数则针对新的测量重新评估。最终得到的晶格c轴变化曲线,清楚地捕捉到了材料在充放电过程中的膨胀和高压收缩现象,和原始衍射图里观察到的峰位移动完全吻合。

还有一个案例是关于一种钌锰氧化物电催化剂的原子排布问题。这种材料是通过阳离子交换从正交晶系三氧化二锰制备出来的,核心问题是:钌原子到底占据了哪些格点?化学上合理的排布方案有好几种,甘江在一个3×3的超晶胞范围内筛选候选配置,逐一做全谱精修比较,最终选出的模型拟合效果是R_p=1.447%,R_wp=3.129%,这个结构后来还被存入了剑桥晶体数据中心。

接下来是这篇文章最值得细说的部分:甘江到底是怎么"学会变得更好"的。

这里要先解释一个核心机制,叫技能,一套包含操作说明、提示语和可执行代码的组合体,相当于把某种分析流程写成了一份标准作业文档。 甘江维护着一个技能库,每次分析完成后,系统会检查这次操作的痕迹:诊断哪里出了问题,琢磨怎么改进技能的说明文字或者底层代码,改完之后还要先验证一遍才能正式采用,整个过程里底层的语言模型本身是不动的,变的只是外部存储的技能文档和代码。

论文里举了个具体例子。有一次用GSAS-II软件做精修训练,系统发现同时改动好几组参数会让拟合结果变差。于是技能库里的规则被修改了,新规则强调:先从默认设置出发,一次只调整一组参数。这条规则被保留下来,后续遇到类似情况就会被自动调用,而且这个修改不需要重新训练任何神经网络,纯粹是外部知识库的更新。

这就好比一个实习医生每次手术后都会写一份复盘笔记,记下这次哪里做对了、哪里出了岔子、下次该怎么调整。如果没有这份笔记,每个新来的实习医生都得从零摸索,犯过的错误会一遍遍重演。有了笔记,经验才能真正沉淀下来,变成整个团队可以复用的财富。

甘江的技能学习不是在玩具数据上做的,而是真刀真枪地跑了三套主流精修软件:FullProf、GSAS-II和PyWPEM,甘江团队自己开发的全谱分解引擎,通过PyXplore服务对外提供接口。 研究团队设计了一个很严谨的实验流程:先用开发集数据让系统不断尝试改进技能,期间不断用成对比较的方式判断新版本是不是真的比旧版本好,确认有效之后,把这个版本冻结,再拿到完全没见过的留出测试集上检验,看看这种改进是不是真的能迁移到新样本上,而不是只在训练过的样本上表现好看。

结果是三套系统全部实现了提升。FullProf的平均精修得分从46.90涨到72.38,GSAS-II从39.01涨到60.02,PyWPEM从31.74涨到38.33。这三个数字背后代表的改进幅度不一样,这是因为三套实验允许修改的范围不同:FullProf那边是整体工作流重新设计,GSAS-II是技能和精修参数联合优化,PyWPEM则只优化了技能本身。改进幅度小不代表效果差,它恰恰说明了改进空间和具体引擎、初始流程、允许修改的自由度都高度相关。

如果没有这种冻结后留出测试的设计会怎样?那就没法区分"系统真的学聪明了"和"系统只是把训练样本背下来了"这两种完全不同的情况,这正是很多AI系统容易踩的坑。

论文里还给出了具体的技能修订案例,挺值得说道说道。FullProf这边,原本的指令是一套笼统的参数释放顺序,精修后变成了一个有明确边界的搜索策略,专门针对峰形宽度和角度偏移做局部搜索,而且搜索半径还会逐步收窄,从0.008度缩到0.002度这种精细程度。GSAS-II那边,新增了一条规则:要求每次参数修改必须显式传递,并且核实保存的输出结果,这是因为之前出现过请求的修改被系统悄悄忽略、而报告的诊断数据和实际存储结果对不上的问题。PyWPEM那边,技能文档现在会区分"精修一个已知结构"和"从头解出一个未知结构"这两种完全不同的任务,还针对数值发散和超时的情况加了专门的应对策略。

这些细节听起来琐碎,但它们恰恰是专业判断力最真实的体现。好的专家不是记住了一堆大道理,而是在无数次具体操作里攒下了这些"坑我踩过,下次别踩"的小规则。

接下来看看这套系统在标准化测试上的硬核表现。

研究团队专门搭建了一个叫DeltaXRDbench的评测基准,包含62044条衍射图谱,其中12044条是单相样品,50000条是人工混合出来的两相或三相混合样品。评测的时候不是简单比对数据库编号,而是真的拿提交的晶体结构文件去和参考结构做结构层面的匹配,这样避免了"背数据库"这种取巧的作弊可能。

在单相识别任务上,甘江和另外四个方法比较:Uni3DAR、PXRDGen-Flow、XtalNet-HMOF100和AutoXRD。在不提供元素成分信息的纯衍射图谱输入条件下,甘江在三个数据集上的首位命中率分别是96.30%、81.78%和40.83%,而排名第二的AutoXRD只有58.00%、58.47%和26.45%。这个差距有多大?意味着在没有化学成分提示的情况下,甘江对一个模拟结构数据集的识别准确率比第二名高出38.3个百分点,这相当于每十个样品里,甘江能多猜对将近四个。

多相识别任务更能体现这套系统的实用价值,因为现实世界里纯相样品是少数,混合物才是常态。在没有成分信息辅助的情况下,甘江的完全正确识别率在三个数据集上分别是22.80%、15.90%和3.10%,对应的宏平均F1分数是66.98%、56.23%和27.04%,全部领先第二名。提供成分信息之后,甘江的完全正确识别率进一步提升到69.70%、38.20%和8.20%。

值得一提的是,甘江在所有测评条件下都能返回一个非空预测,覆盖率是百分之百。但研究者也很坦诚地指出,覆盖率高不等于答案对,尤其是opXRD这个来自真实实验室的数据集,很多测量角度范围不完整,即使给了成分信息,完全正确识别所有混合物成分依然很困难。这种诚实承认局限的态度,其实挺难得。

说到这里,不得不提一下这套系统的整体架构是怎么把语言模型、专业工具和证据判断三者分开的。

语言模型负责理解分析目标、选择要用的技能,专门的计算引擎负责检索、分解和精修这些硬核数值计算,而一套独立的决策策略负责判断某个结果是否可以被接受、是否需要重新尝试。这种设计的好处在于,每一次分析都会保留输入数据、工具调用记录和当时使用的策略版本,这样任何一个结论都能被追溯回它是怎么产生的。

这就好比一家餐厅的后厨,大厨负责决定做什么菜,配菜师傅负责按标准流程处理食材,品控专员负责在上菜前最后把关。如果这三个角色混在一起,大厨一边炒菜一边自己尝味道决定能不能上桌,出了问题根本说不清是菜谱错了还是火候错了。分开之后,每个环节的责任边界很清楚,出问题也容易找到根源。

系统里有一个专门负责质量把关的模块,叫XRDinspector,一个评估相识别和精修结果证据可信度的审查层,它会给出四个等级的判断:高置信度通过、有保留地可接受、不确定或可能有误、以及错误。前两档可以作为分析结论使用,后两档不会被当作可交付的科学结论。即便在多相模型里某个候选相的拟合贡献是零,系统也只会描述为未检出或低于检测限,而不是直接断言这个候选相不存在。这种措辞上的谨慎,其实反映了对科学不确定性的尊重。

研究团队在论文最后也挺坦率地指出了甘江目前的边界所在。

opXRD数据集里常见的角度范围不完整问题,其实暴露了一个更深层的矛盾:有些结构歧义之所以存在,根本原因是区分不同假设所需要的那部分数据根本没被测量出来。这意味着,光是学会解读已有的测量数据还不够,下一步得学会判断该测什么。

研究者在讨论部分提到,未来的方向是让甘江具备闭环能力:识别出哪些衍射特征是区分几个竞争假设的关键,然后主动指挥衍射仪去采集这部分缺失的数据,拿到新数据后重新评估自己的判断,再把这整个过程的经验也纳入技能库。这个想法挺有意思,相当于让AI不仅会做题,还要学会给自己出下一道该做的题。

Q&A

Q1:甘江(Gan Jiang)是什么?

A:甘江是一套面向粉末X射线衍射分析的自我学习科学智能体,整合了XMatcher、XQueryer、XDecomposer和WPEM等多个分析引擎,能够在不重新训练底层语言模型的前提下,把每次分析积累的经验转化为可复用、可验证的分析技能。

Q2:甘江在识别混合物成分方面表现如何?

A:在不提供化学成分信息的情况下,甘江在模拟数据、矿物数据库和真实实验数据三类数据集上的完全正确识别率分别为22.80%、15.90%和3.10%,均领先同类对比方法;提供成分信息后分别提升到69.70%、38.20%和8.20%。

Q3:甘江是怎么做到自我提升的?

A:甘江通过记录每次分析的执行过程和衍射拟合结果,诊断失败原因,修订技能库中的操作说明和代码,并在正式采用前用开发数据验证效果,确认提升后再冻结版本用留出的测试数据检验是否真正能迁移到新样本,而不是只在训练样本上好看。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-