모델은 그대로, 절차만 고친다: X선 분석 에이전트 Gan Jiang

언어모델을 다시 학습시키지 않고, 분석 실패를 다음 샘플에도 쓸 '절차'로 바꿔 쌓는 X선 회절 에이전트. 조성 정보 없이도 기존 최강 방법을 큰 폭으로 앞섰다.
English  ·  日本語  ·  한국어
← 목록으로
온
온틀 리서치
2026년 10월 10일 수정 2026.10.17 읽기 15분 조회 1

무늬 하나만 보고 물질의 원자 배열을 알아맞히는 일이 있다. 여기서 Gan Jiang이라는 새 에이전트가, 물질을 이루는 원소가 뭔지(조성)조차 알려주지 않은 조건에서 기존 최강 방법을 시뮬레이션 데이터 기준 약 38퍼센트포인트 앞섰다. 실제 광물 데이터에서도 두 자릿수 포인트 차이로 이겼다. 그런데 같은 에이전트가 진짜 실험실에서 측정한 데이터 앞에서는 첫 번째 답을 맞힌 비율이 40.83%에 그쳤다. 절반 이상은 첫 답이 틀렸다는 뜻이다. 압도적인 승리와 냉정한 한계가 한 성적표에 같이 적혀 있다.

흥미로운 건 이 성적을 낸 방법이다. 보통 AI를 더 똑똑하게 만들려면 모델을 다시 학습시킨다. Gan Jiang은 그러지 않았다. 문장을 이해하고 계획을 세우는 언어모델도, 바탕이 되는 물리 모델도 손대지 않았다. 대신 분석이 실패할 때마다 그 실패를 '다음 샘플에도 그대로 실행할 수 있는 절차'로 바꿔 쌓았다. 두뇌는 그대로 두고, 손에 든 작업 매뉴얼만 고쳐 쓰는 셈이다.

왜 이 일이 어려운가

X선 회절(XRD)은 물질에 X선을 쏘아, 튕겨 나온 무늬로 그 속 원자 배열을 읽어내는 분석법이다. 문제는 이 무늬를 거꾸로 읽어 구조를 복원하는 일에 정답이 하나로 딱 떨어지지 않는다는 데 있다. 피크가 서로 겹치고, 원자 배열이 조금 흐트러지거나 결정이 한 방향으로 쏠리면, 서로 다른 구조가 똑같이 그럴듯해 보인다. 수학에서는 이런 걸 '잘 정의되지 않은(ill-posed) 역문제'라 부른다. 답이 여럿일 수 있다는 뜻이다.

그래서 믿을 만한 해석은 단번에 나오지 않는다. 어떤 후보 구조를 쓸지 고르고, 어떤 값을 미세 조정할지 정하고, 남은 오차를 어떻게 볼지 판단하는 '결정의 연쇄'를 거쳐야 한다. 한 번의 선택이 다음 선택을 바꾼다. 바로 이 연쇄가 사람 전문가의 손이 가장 많이 타는 지점이고, 자동화가 가장 자주 미끄러지는 지점이다.

참고로 이 논문이 다루는 건 분말 XRD(PXRD)다. 방향이 제각각인 수많은 미세 결정의 산란을 1차원 무늬 하나로 압축한 것이라, 정보가 겹쳐 더 까다롭다. 피크의 위치는 결정 격자의 간격을, 세기는 원자 배치와 상(phase, 같은 원소라도 원자가 다르게 배열된 상태)의 비율을, 폭은 결정 크기나 측정 장비의 영향을 담는다.

기계학습으로 무늬를 보고 상을 분류하거나 구조를 검색하는 일은 이미 된다. 예측을 수치로 검증해주는 프로그램도 있다. 빈틈은 다른 데 있었다. 한 샘플 분석을 끝냈다고 해서, 그 경험이 '다음 샘플을 다루는 절차'를 더 낫게 만들어주지는 않았다는 것. 실패한 조정, 전문가의 교정, 어쩌다 통한 복구 요령은 재사용할 수 있는 지식으로 바뀌어야 하고, 그 지식은 자기를 낳은 사건 하나를 넘어 다른 샘플에서도 통하는지 검증받아야 한다. 이 전환을 시스템 안에 또렷이 심은 게 Gan Jiang이다.

실패가 절차로 바뀌는 순간

저자들이 든 사례 하나가 이 시스템의 작동을 가장 선명하게 보여준다. 정련(refinement, 후보 구조의 수치를 실제 측정값에 맞게 미세 조정하는 과정) 도구인 GSAS-II로 분석하던 중, 여러 값을 한꺼번에 바꾸자 오히려 측정값과의 적합도가 나빠지는 일이 있었다. 에이전트는 이 실패를 흘려보내지 않았다. 실행 기록을 되짚어 원인을 찾고, '기본값에서 출발해 한 번에 한 묶음씩만 조정하라'는 규칙을 절차에 새겼다. 이 규칙은 모델을 다시 학습시키지 않아도 이후 모든 분석에 그대로 남는다. 한 번의 실패가 다음 샘플의 작업 순서를 바꾼 것이다.

이게 가능하려면 두 층이 맞물려야 한다. 분석하는 손과, 그 손을 고치는 법이다.

분석하는 손은 전문가 팀처럼 역할을 나눈 엔진들이다. 측정 무늬를 기존 자료와 대조해 후보를 추리는 엔진, 원소 정보가 주어지면 학습된 모델로 구조를 검색하는 엔진, 여러 성분이 섞인 시료를 상별로 분해하는 엔진, 물리 법칙을 지키는 선에서 무늬 전체를 한꺼번에 모델링하는 엔진이 있다. 오래 검증된 정련 도구 두 개도 함께 붙는다. 마지막으로 모든 결과를 다시 측정값과 대조하는 심사자(inspector) 계층이 관문처럼 선다. 어떤 엔진이 어떤 답을 내든, 이 관문을 통과한 것만 바깥으로 나간다.

손을 고치는 법이 이 논문의 심장이다. Gan Jiang이 쌓는 기억은 추상적인 교훈이 아니라 '바로 실행할 수 있는 스킬'이다. 스킬 하나에는 무엇을 할지(명령), 언제 꺼낼지(상황), 결과를 어떻게 평가할지(검사 코드)가 함께 담긴다. 지금 상황에 맞는 스킬을 골라 꺼내는 선택기(라우터)가 과제에 맞는 스킬을 실행하고, 그 실행 기록을 되짚어 스킬을 어떻게 고칠지 스스로 제안한다. 검증 체크가 '고쳤더니 오히려 나빠지는' 퇴보를 막는다.

여기서 저자들은 두 가지를 분명히 나눈다. 하나는 이 샘플 하나만 잘 맞추려는 '모델 조정'이다. 격자 상수 하나를 이 시료에 맞게 정련하는 일. 이번 한 번으로 끝난다. 다른 하나는 다음 샘플을 더 잘 다루려고 '절차 자체를 바꾸는' 스킬 학습이다. 격자 상수를 언제 풀어야 하는지, 어떤 진단을 반드시 확인해야 하는지를 바꾸는 일. 이건 다음 샘플로 이어진다. 앞의 비유로 치면, 신입 분석가가 이번 샘플을 잘 풀어낸 것과, 그 경험을 '다음 사람도 그대로 따라 할 체크리스트'로 남긴 것의 차이다.

얼마나, 어떻게 이겼나

성능은 저자들이 만든 벤치마크 DeltaXRDbench로 쟀다. 무늬 62,044개 — 상이 하나인 단일상과 두세 개가 섞인 혼합물로 이뤄진다. 데이터는 세 갈래다. 계산으로 시뮬레이션한 것(MP500), 실제 광물을 측정한 것(RRUFF), 실험으로 얻은 것(opXRD). 뒤로 갈수록 어렵다고 봐도 된다.

채점 방식에 중요한 결정이 하나 있다. 데이터베이스 번호를 맞혔는지가 아니라, 에이전트가 제출한 결정 구조 파일을 정답 구조와 직접 비교한다. 번호가 아니라 구조 자체가 맞아야 정답이다.

무늬만 주고(조성 정보 없이) 가장 유력한 후보 하나를 맞히는 비율(top-1)은 이랬다.

데이터셋 Gan Jiang 기존 최강 AutoXRD 격차
MP500 (시뮬레이션) 96.30% 58.00% +38.30%p
RRUFF (실제 광물) 81.78% 58.47% +23.31%p
opXRD (실험 데이터) 40.83% 26.45% +14.38%p

순위를 봐도 같은 우위다. 정답이 상위 다섯 후보 중 몇 번째에 오는지를 점수로 매긴 MRR@5에서도 세 데이터셋 모두 AutoXRD를 앞섰다. 여기에 참조 조성까지 함께 넣어주면 top-1은 더 올라, 가장 쉬운 MP500에서는 99.90%에 닿는다.

이 격차가 말해주는 게 있다. 생성 기반 비교군들은 원소 정보에 크게 기댄다. 조성을 빼면 성능이 사실상 무너진다(자세한 설명은 아래 FAQ). Gan Jiang은 조성 없이도 큰 격차로 앞섰다. 더구나 AutoXRD와는 후보를 구성하는 출발선을 똑같이 공유하는데도 벌어진 차이다. 다만 이 식별 정확도 격차를 두고 심사자 관문이나 스킬 학습의 효과라고 단정할 수는 없다. 출발선을 공유한다는 사실만으로는, 격차가 그 뒤에 얹은 전체 공정에서 비롯됐다는 데까지만 말할 수 있을 뿐, 그중 무엇이 얼마나 기여했는지를 이 표가 가르지는 않는다. 스킬 학습의 효과는 아래에서 보는 정련 점수 실험에서 따로 측정된 것으로, 이 식별 정확도 비교와는 별개의 실험이다.

절차의 자기개선은 처음 보는 데이터(held-out, 절차를 배우는 데는 전혀 쓰지 않고 평가에만 남겨둔 데이터)에서 이렇게 나타났다.

정련 엔진 학습 전 학습 후
FullProf 46.90 72.38
GSAS-II 39.01 60.02
PyWPEM 31.74 38.33

이 점수는 조심해서 읽어야 한다. 측정 무늬와 얼마나 잘 맞는지를 요약한 값이지 '구조를 맞게 식별한 비율'이 아니고, 실패하거나 시간이 초과된 경우를 0점으로 포함한다. 게다가 세 엔진은 고치는 방식이 서로 다르다. 하나는 워크플로를, 하나는 스킬과 설정을, 하나는 스킬만 손본다. 그래서 세 숫자를 '같은 개입이 낸 효과'로 나란히 비교하면 안 된다. PyWPEM의 상승폭이 작은 건 개선 효과가 조건에 따라 달라진다는 신호다.

성능표 바깥에서, 네 건의 실제 분석이 쓸모를 보여준다.

  • 피크가 심하게 겹치는 어떤 사방정계(가로·세로·높이가 다 다른 직육면체꼴 결정) 화합물에서는, 383쌍이나 겹친 회절선을 무늬 전체를 통째로 모델링해 풀어냈다.
  • 고대 이집트 화장분 시료에서는 다섯 개 상을 분해하고 각 질량 비율까지 추정했다. 석고 12.53%, 포스게나이트 18.53%, 세루사이트 32.02%, 방연석 9.69%, 라우리오나이트 27.23%. 상당한 납-염화물 성분은 '의도적 화학 처리가 있었다'는 선행 연구와 맞아떨어졌다.
  • 작동 중(operando, 전지를 실제로 충방전하며 측정)인 양극을 연속 촬영한 무늬는 '이어진 궤적'으로 다뤘다. 한 상태의 분석 결과를 다음 분석의 출발값으로 넘겨, 분석이 쌓일수록 경험이 이어지게 했다. 이 글의 주제가 그대로 데이터에서 재현된 사례다.
  • Ru-Mn 산화물 촉매에서는 초격자(기본 결정 격자가 더 큰 주기로 규칙적으로 겹쳐 쌓인 구조) 속 원자 자리 배치 후보들을 비교해 하나를 골랐다. 에이전트가 고른 모델은 후속 연구가 참조할 공개 구조 가설로 결정 구조 데이터베이스에 등록됐다(CCDC 2530452).

아직 남은 거리

저자들이 스스로 밝힌 한계가 분명하다. 이번 실험은 '통제된 수정 뒤 동결'을 거친 전이를 입증한 것이지, 실제로 오래 쓰는 동안 계속 나아지는지를 끝까지 지켜본 건 아니다. 가능성의 토대를 보인 것이지, 전 과정을 증명한 건 아니다. 성능 우위도 '이 논문이 정한 벤치마크 조건에서 평가된 방법들 사이의' 최고라는 범위로 못 박았다. 실험 무늬로 합성한 혼합물이 실제로 가루를 섞은 시료의 모든 효과를 재현하지 못한다는 점도 명시했다.

여기에 내가 덧붙이고 싶은 관찰이 하나 있다. 기준이 된 스킬 자체가 '전문가가 설계한' 절차였다. 그러니 이 시스템의 성과는 심사자와 정책 설계에 녹아든 사람의 전문성에 상당 부분 기댄다. 자기학습이 그 토대를 대체한다기보다 증폭한다고 읽는 편이 정확하다. 사람이 깔아둔 토대가 아직 닿지 못한 실측 데이터 — opXRD가 그 자리다 — 에서는, 우위를 지키고도 절대 성적이 겸손했다. 이 분야가 근본적으로 어렵고, 갈 길이 멀다는 뜻이다.

온틀에 옮기면

온틀은 고객 프로젝트마다 AI PM을 붙인다. 그 PM이 어느 고객의 배포 요청을 처리하다 늘 같은 지점에서 막힌다고 하자. 흔한 대응은 그 건만 급히 수습하고 넘어가는 것이다. 그러면 다음 고객에게서 같은 실패가 되풀이된다.

Gan Jiang의 규율을 옮기면 이렇게 된다. 고객 A의 배포 실패 기록에서 '배포 전 미리보기를 먼저 생성한다'는 절차 하나를 뽑아낸다. 이걸 곧장 공식 절차에 넣지 않는다. 그 실패를 낳은 고객 A가 아니라, 분리된 다른 고객 B·C의 상황에서 이 절차가 실제로 통하는지 먼저 시험한다. 거기서 옛 방식을 이겨야만 채택한다. 모델이 아니라 절차를 고치는 것, 이게 핵심이다.

무엇을 고치느냐가 왜 중요한가. 언어모델의 가중치가 아니라 바깥의 절차·지시문·코드를 고치기 때문에, 바뀐 내용을 버전으로 남기고, 누가 언제 왜 바꿨는지 감사하고, 문제가 생기면 되돌릴 수 있다. 모델 속 숫자를 직접 바꾸면 이 셋이 전부 어려워진다.

물론 X선 무늬를 푸는 일과 고객 배포를 관리하는 일은 다르다. 같은 건 구현이 아니라 원칙이다. 실패를 일회성 수습으로 끝내지 말고 검증을 거친 절차로 바꿔 쌓을 것, 그리고 그 개선이 쌓이는 축을 모델 바깥에 둘 것. 온틀이 PM을 다시 설계하며 실제로 택한 방향도 여기였다. 말과 행동이 어긋나던 PM을 고치는 길은 모델에게 '더 잘하라'고 비는 게 아니라, 실행을 규칙으로 돌아가는 별도 서비스로 떼어내고 통과 여부를 정책으로 잠그는 데 있었다.

작은 디테일 하나가 특히 쓸모 있다. Gan Jiang은 '도구 호출이 실패했다'는 사실만으로 '이 샘플은 여러 상이 섞인 것'이라고 결론 내지 않는다. 계산이 실패한 것과, 가설이 틀렸다는 증거를 구분한다. AI PM도 실행 에러 하나를 곧장 잘못된 에스컬레이션의 방아쇠로 삼으면 안 된다. 실패의 원인부터 짚어라. 그다음에 경로를 골라라. 그리고 통과 판정은 모델이 '잘된 것 같다'고 말하는지가 아니라, 미리 정한 규칙이 기계적으로 가르게 하라.

FAQ

Gan Jiang을 직접 써볼 수 있나?

논문 부록은 Gan Jiang의 API를 설명한다. 에이전트 모드와 직접 CLI 접근, 아티팩트로 데이터를 주고받는 방식, 구조 기반 회절 계산·정련 예시가 담겨 있다. 다만 이 발췌에는 공개 저장소 주소가 URL로 적혀 있지 않다. 구체적인 접근 방법은 원문과 부속 자료에서 확인하는 편이 정확하다.

생성 기반 비교군은 왜 조성 정보 없이는 거의 못 맞히나?

이들은 공개된 사전학습 버전으로 평가됐고, 하류 모델이 요구하는 원소 정보에 크게 의존한다. 무늬만 주는 조건에서는 Uni3DAR가 원소를 먼저 예측해 다른 방법들의 입력까지 공급하는 구조라, 이 예측이 흔들리면 전체가 사실상 무너진다. 참조 조성을 넣어주면 상당 부분 회복하지만, 조성 없이도 큰 격차로 앞선 Gan Jiang과는 대비되는 지점이다.

이 자기학습 방식을 XRD가 아닌 다른 과학 분야에도 그대로 쓸 수 있나?

이 논문의 실험과 평가는 분말 XRD에 특화돼 있다. 개선 효과도 회절 오차·실행 결과·정련 모델의 물리적 타당성에 스킬 수정을 묶는 식으로 이 분야에 맞춰져 있다. 읽고-고치고-되짚는 학습의 뼈대 자체는 일반적이지만, 다른 분야로의 전이는 이 발췌가 입증하는 범위 밖이다. 같은 성능을 단정하긴 이르다.

참고자료

  • 논문: Gan Jiang: A self-learning scientific agent for X-ray diffraction
  • 저자: Bin Cao, Huichi Zhou, Runyu Yang, Jingsong Li, Shuchen Sun, Yan Song, Hanyu Gao, Zhongwei Yu, Tong-Yi Zhang, Jun Wang (HKUST-Guangzhou, UCL, AI Lab of the Yangtze River Delta, Institute of Automation CAS)
  • arXiv: https://arxiv.org/abs/2610.07862
  • HuggingFace: https://huggingface.co/papers/2610.07862