피드로 돌아가기
Graph Classification with Transformers
Hugging Face BlogHugging Face Blog
AI/ML

Hugging Face Transformers 라이브러리가 Graphormer 모델을 통합하여 그래프 분류 작업을 Transformers 프레임워크로 수행 가능하게 구현

Graph Classification with Transformers

2023년 4월 14일9intermediate

Context

그래프 데이터의 기계학습 처리는 특수한 모델과 전처리가 필요했으며, 통일된 프레임워크 내에서 그래프 분류를 수행할 방법이 부족했다.

Technical Solution

  • Microsoft의 Graphormer 모델을 Transformers 라이브러리에 통합: GraphormerForGraphClassification 클래스로 제공
  • 표준화된 그래프 데이터 포맷 정의: edge_index(간선 인덱스), num_nodes(노드 수), y(레이블), node_feat(노드 특성), edge_attr(간선 특성)으로 구성
  • 자동 전처리 파이프라인 적용: 그래프의 차수(in/out degree) 정보, 노드 간 최단 경로 행렬 생성 via preprocess_item 함수
  • 온더플라이(on-the-fly) 전처리 옵션 제공: on_the_fly_processing=True로 설정하여 대규모 그래프의 메모리 오버헤드 감소
  • GraphormerDataCollator를 통한 배치 처리: 개별 그래프를 훈련용 배치로 변환
  • 사전학습 모델 미세조정: clefourrier/pcqm4mv2_graphormer_base 체크포인트에서 로드 후 num_classes 파라미터로 이진 분류 헤드 커스터마이징
  • Trainer API로 통일된 훈련 루프: TrainingArguments로 배치 크기(64), 경사 누적 스텝(10), 에포크(20) 등 설정

Impact

Ogbg-molhiv 데이터셋 기준 Intel Core i7 CPU에서 20 에포크 훈련에 약 1일 소요.

Key Takeaway

Transformers 생태계의 표준화된 데이터 포맷과 공통 API를 통해 그래프 도메인의 모델을 다른 모달리티와 동일한 방식으로 활용할 수 있으며, Hub를 통한 체크포인트 공유로 커뮤니티 재사용성을 극대화할 수 있다.


그래프 분류 문제를 다루는 머신러닝 팀에서 datasets와 transformers 라이브러리(>=

4.

2

7.2)를 활용하면, 데이터 로딩부터 모델 훈련, Hub 배포까지 일관된 API로 처리할 수 있으며, batch_size와 gradient_accumulation_steps를 그래프 크기에 맞게 조정하여 OOM 에러를 방지하면서 훈련 안정성을 확보할 수 있다.

원문 읽기