본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 21. 09:50

ljaiverson/pFedMoAP

요약

ICLR 2025에 채택된 pFedMoAP 논문의 공식 구현 코드로, MoE(Mixture of Experts) 관점을 적용하여 연합 학습 환경에서 시각-언어 모델의 프롬프트를 개인화하는 프레임워크를 제안합니다.

핵심 포인트

  • MoE를 활용해 클라이언트별로 최적화된 적응형 프롬프트 전문가 제공
  • 로컬 어텐션 기반 게이팅 네트워크로 로컬 데이터와 텍스트 특징 정렬 강화
  • 기존의 단일 전역 모델 집계 방식에서 벗어난 개인화된 연합 프롬프트 학습
  • 9개 데이터셋을 통한 실험으로 알고리즘의 효능 입증

이 저장소는 ICLR 2025 논문인 'Mixture of Experts Made Personalized: Federated Prompt Learning for Vision-Language Models (프로젝트 페이지 참조)'를 위한 코드와 실험을 포함하고 있습니다. 이 구현은 FedOTP 저장소에서 큰 영감을 받았습니다. 해당 기여자들에게 감사를 표합니다!

Figure 1: pFedMoAP의 글로벌 파이프라인

Figure 2: pFedMoAP의 클라이언트 워크플로

연합 프롬프트 학습 (Federated prompt learning)은 CLIP과 같은 시각-언어 모델 (Vision-Language Model, VLM)의 강력한 표현 학습 (representation learning) 능력을 프롬프트 학습 (prompt learning)을 통해 연합 학습 (Federated Learning, FL)에 이점을 제공합니다. 그러나 현재의 연합 프롬프트 학습 방법들은 일반적으로 참여하는 클라이언트가 서버로부터 단일하게 전역적으로 집계된 모델만을 다운로드할 수 있도록 허용되는 전통적인 FL 패러다임에 관습적으로 국한되어 있습니다. 연합 설정 하에서 전체 크기의 모델을 학습시키는 데에는 정당할 수 있으나, 본 연구에서는 이러한 패러다임이 경량화된 프롬프트 (prompts)에는 부적합하다고 주장합니다. 클라이언트가 고정된 비로컬 전문가 (non-local experts)로서 사전 집계된 여러 프롬프트를 다운로드할 수 있도록 함으로써, 우리는 전문가 혼합 (Mixture of Experts, MoE)의 관점을 통해 프롬프트 학습 과정을 개인화하는 새로운 FL 프레임워크인 Personalized Federated Mixture of Adaptive Prompts (pFedMoAP)를 제안합니다. pFedMoAP는 로컬 어텐션 (local attention) 기반의 게이팅 네트워크 (gating network)를 구현하여, 로컬 이미지 데이터와 더 나은 정렬 (alignment)을 위해 향상된 텍스트 특징 (text features)을 생성하도록 학습하며, 로컬 및 다운로드된 비로컬 적응형 프롬프트 전문가 (non-local adaptive prompt experts) 모두로부터 이점을 얻습니다. 다양한 연합 설정 하에서 9개의 데이터셋을 대상으로 진행한 광범위한 실험은 제안된 pFedMoAP 알고리즘의 효능을 입증합니다.

이 구현은 Python>=3.10.6 환경을 기반으로 합니다. Python 3.10.6 환경을 위한 이 구현의 종속 패키지를 설치하려면 다음을 실행하십시오.

pip install -r requirements.txt

모든 데이터셋은 dataset 폴더에 다운로드하는 것을 권장합니다.

Caltech101, OxfordPets, Flowers102, Food101, DTD와 같은 CLIP 데이터셋의 경우, 데이터셋 설정을 위해 dataset.md의 지침을 참조하십시오.

CIFAR10 및 CIFAR100의 경우, 실험을 실행할 때 데이터셋이 자동으로 다운로드됩니다.

DomainNet 및 office-caltech10 데이터셋의 경우, 여기서 전처리된 Office-Caltech10을 다운로드하고, 여기서 DomainNet을 다운로드하십시오 (FedBN 리포지토리 참조).

실험을 실행하기 위한 예시로, 아래 명령어를 (기본 인자값으로) 실행하면 food101 데이터셋에 대한 퓨샷 학습 (few-shot learning) 실험이 시작됩니다.

python federated_main.py

federated_main.py 스크립트는 특정 플래그 (flags)를 사용하여 학습을 시작할 수 있습니다. 가장 중요한 플래그들은 train.sh에 나열되어 있습니다. 실험은 bash에서 다음과 같이 수행할 수도 있습니다.

sh train.sh

데이터셋을 변경하려면 train.shDATASET 변수를 변경하십시오. 그러면 파이썬 스크립트를 실행할 때 --dataset-config-file 플래그와 함께 configs/datasets/oxford_pets.yaml을 데이터셋 설정 파일로 자동으로 포함하게 됩니다. configs/datasets/에 포함되지 않은 데이터셋으로 실험을 수행하려면, 이 디렉토리에 직접 설정 파일을 생성하십시오.

알고리즘 및 모델별 플래그(예: ResNet50을 사용한 pFedMoAP)의 경우, config/trainers/PFEDMOAP/rn50.yaml에서 변경하십시오. 만약 동일한 플래그가 서로 다른 값을 가질 경우, 트레이너 설정 (trainer config)이 데이터셋 설정 (dataset config)을 덮어쓰며, 이 두 가지 모두 파이썬 인자 (python args)보다 우선순위가 높습니다.

저희의 연구가 귀하의 연구에 유용하다면, 다음을 인용해 주시기 바랍니다:

@article{luo2024mixture,
title={Mixture of Experts Made Personalized: Federated Prompt Learning for Vision-Language Models},
author={Luo, Jun and Chen, Chen and Wu, Shandong},
...

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0