AI 기반 반도체 소재·공정 ML 파이프라인

Materials Informatics — 소재 스크리닝부터 ALD 공정 최적화까지
Python · XGBoost Materials Project API matminer · Magpie 153,000 화합물 3단계 파이프라인

파이프라인 전체 구조

화학식 하나만 입력하면 밴드갭·유전율을 예측하고, 수천 개 후보 중 DRAM에 적합한 소재를 자동으로 추려줍니다. 선별된 소재의 ALD 공정 조건까지 사전 예측하는 3단계 파이프라인입니다.

Materials Project
153,000 화합물
DFT 계산 데이터
Magpie 특성화
화학식 → 132개
수치 특성 자동 생성
Phase 1
밴드갭 예측
R² = 0.749
Phase 2
유전율 + Pareto
381개 후보 선별
Phase 3
ALD 공정 예측
R² = 0.918
153k
학습 화합물 수
132
Magpie 피처 수
3,914→381
후보 필터링 결과
3
연결된 파이프라인

알고리즘이 어떻게 작동하는가?

이 프로젝트는 세 가지 핵심 기술을 연결해서 동작합니다. 각각을 차례대로 설명합니다.

① Magpie — 화학식을 숫자로 바꾸는 방법

머신러닝 모델은 숫자만 입력받을 수 있습니다. 화학식 "HfO₂"를 바로 넣을 수 없기 때문에, Magpie라는 라이브러리로 화학식을 132개의 수치로 변환합니다.

?
어떻게 변환하나요?

조성 내 각 원소의 성질(d 전자 수, 전기음성도, 이온 반지름 등)을 통계적으로 요약합니다.

HfO₂ 화학식 입력 Magpie Featurizer 각 원소의 성질 추출 → 통계량 계산 (평균, 편차…) → 132개 숫자 생성 132개 숫자 벡터 avg NdValence = 2.67 avg_dev NdValence = 1.33 avg Electronegativity = 2.11 avg IonicRadius = 0.74 avg NsValence = 0.67 … (132개) 결정 구조 정보 없이 화학식만으로 계산 가능
왜 유용한가: 실험 데이터가 없는 신규 소재도, 화학식만 알면 즉시 물성을 예측할 수 있습니다. "Ba₃Ta₂CdO₉"처럼 아무도 합성해본 적 없는 소재도 처리 가능합니다.

② XGBoost — 어떻게 밴드갭을 예측하나?

XGBoost는 수백 개의 결정 트리(Decision Tree)를 연속으로 쌓아 만드는 앙상블 모델입니다. 각 트리는 이전 트리가 틀린 부분을 집중적으로 보완합니다.

트리 1 (첫 번째 예측) avg_dev NdValence < 1.5 ? Electronegativity > 2.0 ? 아니오 IonicRadius < 0.8 ? 4.2 eV 2.8 eV 1.4 eV 3.1 eV + 트리 2 (오류 보완) avg_dev NdUnfilled < 0.8 ? NsValence … Mendeleev … +0.3 eV -0.2 eV +0.1 eV -0.1 eV 트리 500개 최종 예측 = 모든 트리 합산 4.2 + 0.3 + … = 4.1 eV
트리 500개를 쌓는 이유: 트리 하나는 단순하고 오차가 크지만, 500개가 서로 다른 패턴을 학습하고 더하면 정확도가 크게 올라갑니다. learning_rate=0.05는 각 트리가 너무 크게 기여하지 않도록 조절해 과적합을 방지합니다.

③ Feature Importance — AI가 어떤 특성을 중요하게 봤나?

XGBoost는 각 특성이 예측 오류를 얼마나 줄이는 데 기여했는지(Gain) 자동으로 계산합니다. 이 값이 클수록 모델이 그 특성에 더 많이 의존한다는 뜻입니다.

!
이것이 왜 중요한가?

단순 예측 정확도가 아닌, "모델이 무엇을 보고 판단하는가"를 알 수 있습니다. 그 답이 소재 물리 이론과 일치하면 모델이 의미있는 패턴을 학습했다는 증거가 됩니다.

Phase 1 결과: avg_dev NdValence (d 전자 수 편차)가 1위. d⁰인 Hf⁴⁺와 d¹인 Ti³⁺가 섞이면 전하 이동 경로가 생겨 밴드갭이 줄어든다는 물리와 정확히 일치합니다.
Phase 2 결과: avg_dev NdUnfilled (빈 d 오비탈 편차)가 1위. 같은 d 오비탈 공간에서 반대 신호를 포착했습니다. AI가 예측 목적에 따라 스스로 다른 물리를 선택한 것입니다.

④ Pareto Front — 두 목표를 동시에 최대화하는 법

DRAM 소재는 유전율 k ↑ AND 밴드갭 Eg ↑를 동시에 원하지만, 대부분의 소재는 k를 높이면 Eg가 낮아지고 그 반대도 마찬가지입니다. 어느 한 기준으로만 정렬하면 좋은 후보를 놓칩니다.

유전율 k → 밴드갭 Eg → k = 20 Eg = 3.0 eV HfO₂ Al₂O₃ 모든 후보 (3,914개) 381개 산화물 (k>20, Eg>3) Pareto front (최적 경계선) 레퍼런스 (실험값)
Pareto front란: "k를 더 높이려면 Eg를 포기해야 하는" 경계선 위의 점들입니다. 이 선 위의 소재들은 두 목표를 최선으로 동시에 만족합니다. HfO₂가 레퍼런스와 가깝게 예측된다면, 신규 후보들도 신뢰할 수 있다는 검증이 됩니다.

⑤ ALD 공정 예측 — pulse_time이 온도보다 중요한 이유

ALD(Atomic Layer Deposition)는 전구체를 한 층씩 쌓는 박막 증착 공정입니다. GPC(Growth Per Cycle, Å/cycle)는 한 사이클당 증착 두께입니다.

온도 → GPC → 불완전 흡착 ALD Window CVD 영역 T_low T_high pulse_time이 GPC 안정화 결정 왜 pulse_time이 1위인가? pulse_time이 짧으면 전구체가 표면을 다 덮기 전에 끊김 → GPC↓ 충분한 pulse_time → 포화 흡착 완성 → GPC 안정 (자기제한)
자기제한(Self-limiting) 반응: ALD의 핵심 특성으로, 전구체가 표면을 한 층 덮으면 더 이상 반응하지 않습니다. 따라서 pulse 시간이 충분히 길면 GPC가 일정하게 유지됩니다. AI가 데이터에서 이 물리 원리를 스스로 학습한 것입니다.
1

Phase 1 — 밴드갭 예측

노트북: 04_model_training.ipynb05_interpretation.ipynb
0.749
R² (결정계수)
0.287 eV
MAE (평균 오차)
153,000
학습 화합물 수
132
Magpie 피처 수

Feature Importance 상위 8개

avg_dev NdValence
0.2454 ★
avg MendeleevNumber
0.147
range NdUnfilled
0.103
avg Electronegativity
0.086
avg GSmagmom
0.069
avg NsValence
0.054
avg CovalentRadius
0.042
range Electronegativity
0.031
물리 해석: avg_dev NdValence = 조성 내 원소들의 d 전자 수 편차. d⁰ 원소(Hf⁴⁺, Zr⁴⁺)만 있으면 밴드갭이 넓고, d 전자 수가 다른 원소들이 섞이면 전하 이동 경로가 생겨 밴드갭이 줄어드는 패턴을 AI가 학습했습니다. 132개 피처를 비선형적으로 종합해서 R²=0.749를 달성합니다.
2

Phase 2 — 유전율 예측 + Pareto 스크리닝

노트북: 06_dielectric_model.ipynb08_dual_screening.ipynb
0.714
R² (유전율 모델)
7,332
MP k 데이터 수집
624개
조인 결과 (15.9%)
381개
최종 산화물 후보

Feature Importance — k 모델 (1위가 Phase 1과 다름)

avg_dev NdUnfilled
0.1175 ★
avg MendeleevNumber
0.085
avg NdValence
0.065
avg Electronegativity
0.047
avg IonicRadius
0.033
핵심 대비: Phase 1 1위는 avg_dev NdValence(채워진 d 전자 편차)이고, Phase 2 1위는 avg_dev NdUnfilled(빈 d 오비탈 편차)입니다. 빈 d 오비탈이 있을수록 이온 분극이 가능해져 유전율이 높아집니다(Clausius-Mossotti 관계). 같은 d 오비탈에서 AI가 반대 신호를 학습한 것입니다.

Top 10 DRAM High-k 산화물 후보 (k > 20, Eg > 3.0 eV)

FormulaPredicted kPredicted Eg (eV)비고
Ba₃Ta₂CdO₉59.93.46신규 후보 ★
Ba₃CaTa₂O₉56.43.75신규 후보 ★
Ba₃SrTa₂O₉51.93.75신규 후보 ★
CaZrO₃48.73.81신규 후보
Ba₄Ta₂O₉48.43.86신규 후보
CaHfO₃40.74.42높은 Eg ★
BaHfO₃40.73.73신규 후보
HfO₂ (검증용)18.84.10실험값 ≈ 25 eV ✓
Al₂O₃ (검증용)9.75.00실험값 ≈ 9 eV ✓
3

Phase 3 — ALD 공정 파라미터 예측

노트북: 09_process_data.ipynb10_process_model.ipynb11_interpretation_process.ipynb
0.918
R² (더미 데이터)
0.063
MAE (Å/cycle)
pulse_time
#1 피처
0.620
pulse_time 중요도

Feature Importance — GPC 모델

pulse_time
0.620 ★★
material_enc
0.172
temperature
0.110
precursor_enc
0.052
purge_time
0.036
oxidant_enc
0.010
물리 해석: 예상한 temperature가 아닌 pulse_time이 압도적 1위 (0.620). ALD의 자기제한 반응 원리 — 충분한 pulse 시간이 있어야 전구체가 표면을 완전히 덮어 GPC가 안정됩니다. ALD 윈도우(온도 평탄 구간)도 시각화로 확인됐습니다.
⚠️ 현재 더미 데이터 기준 (R²=0.918은 과도하게 높음). 실제 문헌 데이터 교체 후 R² > 0.5 목표.

같은 파이프라인, 세 가지 다른 물리

3단계 모두 동일한 XGBoost 구조를 사용했지만, 예측 목적이 달라지면 AI가 스스로 다른 물리 법칙을 선택합니다.

Phase 1 · 밴드갭 예측
결정장 이론
avg_dev NdValence
d⁰ 혼합 정도
→ 전하이동경로
→ 밴드갭 결정
Phase 2 · 유전율 예측
Clausius-Mossotti
avg_dev NdUnfilled
빈 d 오비탈
→ 이온 분극 허용
→ 유전율 증가
Phase 3 · ALD GPC 예측
자기제한 반응
pulse_time
포화 흡착 완성
→ GPC 안정화
→ ALD 윈도우
결론: AI는 탐색 공간을 빠르게 좁히는 도구이고, 결과에 물리적 의미를 부여하는 것은 도메인 지식입니다. 같은 d 오비탈에서 Phase 1은 "채워진 정도", Phase 2는 "비어있는 정도"를 학습 — 이 차이를 읽을 수 있는 것이 소재 전문가의 역할입니다.

코드 실행 방법

아래 순서대로 노트북을 실행하세요. 각 단계 출력 파일이 다음 단계의 입력이 됩니다.

Phase 1 — 밴드갭

1

데이터 수집 (처음 1회, 수십 분 소요)

MP API → 153k 화합물 → data/mp_data.csv

jupyter notebook notebooks/01_data_collection.ipynb
2

EDA + high-k 필터링

Eg>3 eV 산화물 필터 → data/highk_candidates.csv

jupyter notebook notebooks/02_EDA.ipynb
3

Magpie Feature Engineering

132개 통계량 생성 → data/featurized_highk.csv

jupyter notebook notebooks/03_feature_engineering.ipynb
4

XGBoost 밴드갭 모델 학습

R²=0.749 → data/xgb_bandgap_model.json

jupyter notebook notebooks/04_model_training.ipynb
5

Feature Importance 물리 해석

avg_dev NdValence 분석

jupyter notebook notebooks/05_interpretation.ipynb

Phase 2 — 유전율 + Pareto

6

유전율 데이터 수집 + k 모델

MP k 데이터 624개 조인, R²=0.714 → data/xgb_dielectric_model.json

jupyter notebook notebooks/06_dielectric_model.ipynb
7

k 모델 물리 해석

jupyter notebook notebooks/07_interpretation_k.ipynb
8

Pareto 스크리닝 → 381개 산화물 후보

jupyter notebook notebooks/08_dual_screening.ipynb

Phase 3 — ALD 공정

9

ALD 더미 데이터 생성 + EDA

data/ald_process_data.csv

jupyter notebook notebooks/09_process_data.ipynb
10

XGBoost GPC 모델 학습

data/xgb_process_model.json

jupyter notebook notebooks/10_process_model.ipynb
11

ALD 물리 해석 + 3-Phase 비교

jupyter notebook notebooks/11_interpretation_process.ipynb
💡 실제 ALD 문헌 데이터로 교체하려면: HfO₂·Al₂O₃·ZrO₂ 문헌에서 공정 파라미터를 수집해 data/ald_process_data.csv에 추가하고 doi 컬럼에 DOI를 기록하세요. 이후 노트북 10→11만 재실행하면 자동 갱신됩니다. 상세 가이드: docs/data_collection_guide.md

프로젝트 파일 구조

materials-ml-project/
├── notebooks/
│ ├── 01_data_collection.ipynb # MP API 153k 화합물 수집
│ ├── 02_EDA.ipynb # 탐색적 분석, high-k 필터
│ ├── 03_feature_engineering.ipynb # Magpie 132 피처 생성
│ ├── 04_model_training.ipynb # ★ Phase 1 밴드갭 XGBoost
│ ├── 05_interpretation.ipynb # ★ Phase 1 물리 해석
│ ├── 06_dielectric_model.ipynb # ★ Phase 2 유전율 모델
│ ├── 07_interpretation_k.ipynb # Phase 2 k 물리 해석
│ ├── 08_dual_screening.ipynb # ★ Phase 2 Pareto 스크리닝
│ ├── 09_process_data.ipynb # Phase 3 ALD EDA
│ ├── 10_process_model.ipynb # ★ Phase 3 GPC 예측 모델
│ └── 11_interpretation_process.ipynb # ★ Phase 3 물리 해석
├── data/
│ ├── featurized_highk.csv # 3,914개 / 132 피처
│ ├── dual_predictions.csv # k + Eg 이중 예측값
│ ├── ald_process_data.csv # ALD 더미 데이터 170행
│ ├── xgb_bandgap_model.json # Phase 1 저장 모델
│ ├── xgb_dielectric_model.json # Phase 2 저장 모델
│ └── xgb_process_model.json # Phase 3 저장 모델
├── scripts/
│ └── gen_dummy_ald.py # ALD 더미 데이터 생성
├── docs/
│ └── data_collection_guide.md # 실제 문헌 데이터 수집 가이드
├── .env # MP_API_KEY (git 제외)
└── README.md