본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 29. 16:22

W&B iOS App는 보는 것만이 아니다: 스마트폰에서 Run을 중지하고, 파라미터를 변경하여 재실행하기

요약

W&B iOS App과 W&B Launch를 활용하여 스마트폰에서 딥러닝 실험을 모니터링하고 제어하는 방법을 소개합니다. 외부에서도 실험 상태를 확인하고, 필요 시 Run을 중지하거나 파라미터를 변경하여 재실행함으로써 실험 자원 낭비를 방지할 수 있습니다.

핵심 포인트

  • W&B iOS App을 통한 실시간 학습 지표(Loss, Validation) 모니터링
  • 스마트폰에서 진행 중인 Run을 즉시 중지하여 자원 낭비 방지
  • W&B Launch를 연동하여 파라미터 변경 및 실험 재투입 프로세스 구축
  • 이동 중에도 실험 운용의 효율성을 높이는 워크플로우 제안

저는 기계지능 연구실에 소속되어 CV (Computer Vision) 분야의 연구를 수행하고 있습니다. 기계지능 연구실에서는 로봇의 시각 기능이나 자율적으로 행동하기 위한 지능 시스템에 관한 연구가 진행되고 있습니다.

연구실의 상세 내용은 아래를 참조해 주세요.

심층 학습 (Deep Learning) 실험에서는 GPU 서버 상에서 장시간 학습을 돌리는 경우가 있습니다.

하지만, PC를 열어보지 않는 사이에 학습이 멈춰 있거나, 명백히 제대로 학습되지 않는 설정인 채로 계산 자원을 계속 사용하고 있는 경우가 있습니다.

특히 외출 중이나 이동 중 등 즉시 PC를 열 수 없는 상황에서는, "지금의 Run이 제대로 작동하고 있는가", "이대로 계속 진행해도 좋은가"를 스마트폰에서 확인할 수 있다면 편리합니다.

필요하다면 그 자리에서 Run을 중지하거나, 다음에 시도할 설정을 생각할 수 있다면 실험 운용의 낭비를 조금 줄일 수 있을 것 같습니다.

Weights & Biases (W&B)를 활용하면 학습 중인 손실 (Loss)이나 검증 (Validation) 결과를 Web 상에서 확인할 수 있습니다. W&B에는 iOS App도 있어, 스마트폰에서 Run의 상태나 그래프를 확인할 수 있습니다.

이번에는 W&B iOS App을 단순히 "보기 위한 앱"으로 사용하는 것뿐만 아니라, 실험의 확인 및 중지, 나아가 재실행 흐름까지 시도해 보겠습니다.

  • 서론
  • 이번에 수행할 내용
  • W&B iOS App 설치
  • 학습 코드에 W&B 통합
  • iOS App에서 실행 결과 확인
  • W&B Launch로 파라미터 변경 및 재실행 메커니즘 구축
  • 스마트폰에서 파라미터를 변경한 Run을 재투입
  • iOS App에서 재실행 결과 확인
  • 요약

본 기사에서는 다음과 같은 흐름으로 W&B iOS App과 W&B Launch를 시도합니다.

  • W&B iOS App을 설치한다
  • 학습 코드에 W&B를 통합한다
  • iOS App에서 Project, Run, Loss, config 등을 확인한다
  • 제대로 학습되지 않는 Run을 스마트폰에서 중지한다
  • W&B Launch로 Job, Queue, Agent를 준비한다
  • 파라미터를 변경한 Run을 Queue에 재투입한다
  • 재실행된 Run을 iOS App에서 확인한다

참고로, W&B iOS App 단독으로 파라미터 변경과 재실행이 완결되는 것은 아닙니다. 파라미터 변경 후의 재실행에는 W&B Launch를 사용합니다.

W&B iOS App은 App Store에서 설치할 수 있습니다.

설치 후 W&B 계정으로 로그인하면 자신의 Project나 Run을 스마트폰에서 확인할 수 있습니다.

등록 방법 등은 Qiita에 정리해 두신 분이 계시므로, 그쪽을 확인해 주세요.

학습 코드에는 다음과 같이 통합했습니다. 이번에는 Qiita 검증용으로 작성한 Project를 사용합니다.

import wandb
wandb.init(
project="qiita-wandb-ios-demo",
...

학습 중에는 확인하고 싶은 값만 기록합니다.

wandb.log({
"progress/epoch": epoch,
"progress/step_in_epoch": step + 1,
...

epoch 종료 후에는 validation 결과도 기록합니다.

wandb.log({
"train/loss": avg_total_loss,
"val/score": val_score,
...

학습을 시작하면 W&B iOS App에서 Run을 확인할 수 있습니다.

스마트폰에서도 Run의 상태, 학습 중인 Loss, validation score, 실행 중인 config 등을 확인할 수 있었습니다.

W&B Launch를 사용하여 파라미터를 변경한 Run을 재투입하는 메커니즘을 만듭니다.

Launch 도입 방법은 아래에서 확인할 수 있습니다.

W&B Launch에서는 다음 세 가지를 사용합니다.

  • Job: 실행할 학습 코드의 템플릿
  • Queue: 실행 대기 중인 Job을 나열해 두는 장소
  • Agent: Queue를 감시하며 실제로 학습을 실행하는 프로세스

GPU 서버 측에서는 미리 Launch Agent를 기동해 둡니다.

wandb launch-agent -q Queue의이름 --max-jobs 1

학습 코드를 Job으로 등록하고 Queue에 투입합니다.

이를 통해 Agent가 추가된 Job을 순차적으로 취득·실행하며, 동일한 학습 코드를 서로 다른 파라미터로 재투입할 수 있게 됩니다.

Run을 투입하면, GPU 서버 측에서 구동 중인 Agent가 Queue에서 Job을 취득하여 학습이 시작됩니다.

시작된 Run은 W&B iOS App에서도 확인할 수 있습니다.

loss의 추이를 확인한 결과, 이 Run은 계속 진행하기보다 설정을 재검토하여 재실행하는 것이 좋겠다고 판단했습니다.

그래서 iOS App에서 Run을 중지합니다.

이를 통해 PC를 열지 않고도 외출 중인 상태에서 불필요한 Run을 중지할 수 있음을 확인했습니다.

다만, iOS App으로 할 수 있는 것은 Run의 확인 및 중지까지입니다.

파라미터를 변경하여 재실행하려면, W&B Launch를 사용하여 동일한 Job을 다시 투입해야 합니다.

다음으로, 중지한 Run의 Config를 참고하면서 Launch의 Overrides를 통해 파라미터를 변경하고, 새로운 Run으로서 재실행합니다.

스마트폰 브라우저에서 W&B Launch를 엽니다.

이번에는 사전에 생성해 둔 동일한 Job을 사용하여, Launch 시의 Overrides만 변경합니다.

Job이나 Queue를 새로 만들지 않고, 실행 시의 파라미터만 변경하여 재투입합니다.

변경 후, Job을 Queue에 투입합니다.

GPU 서버 측에서 구동 중인 Agent가 Queue를 모니터링하고 있기 때문에, 투입된 Job을 취득하여 새로운 Run으로서 학습을 시작합니다.

Launch 시 Overrides로 값을 변경하더라도, 학습 코드 측에서 해당 값을 참조하고 있지 않다면 실제 학습 설정에는 반영되지 않습니다.

이번 구현에서는 args도 Overrides로 변경하고, 학습 코드 측에서는 argparse로 받은 값을 사용하도록 했습니다.

예:

args = parser.parse_args()
initial_lr = args.initial_lr
optimizer = optim.Adam(model.parameters(), lr=initial_lr)

Overrides를 사용할 때는 run_config를 변경할 것인지, args를 변경할 것인지에 맞춰 코드 측에서도 해당 값을 참조하도록 해두어야 합니다.

재투입한 Run도 W&B iOS App에서 확인할 수 있었습니다.

이와 같이, iOS App에서 Run을 확인 및 중지하고, 스마트폰 브라우저에서 W&B Launch를 사용하여 파라미터를 변경한 Run을 재투입하는 흐름을 확인할 수 있었습니다.

이번에 시도해 본 결과, 스마트폰 브라우저에서 Launch를 열고 Overrides를 변경하여 Queue에 투입하는 조작 자체는 비교적 간단하다고 느꼈습니다.

반면, W&B Launch를 처음 사용하는 경우에는 Job, Queue, Agent의 역할을 이해하기까지 시간이 조금 걸렸습니다. 또한, Launch Agent를 실행하는 환경 측에서는 학습 코드와 필요한 라이브러리, 데이터셋의 경로가 올바르게 갖춰져 있어야 합니다.

본 기사에서는 W&B iOS App과 W&B Launch를 사용하여, 스마트폰을 기점으로 실험을 확인·중지·재실행하는 흐름을 시도했습니다.

검증(시도)한 결과, W&B iOS App 단독으로는 파라미터 변경과 재실행을 완결 지을 수 없었습니다.

파라미터를 변경한 Run을 투입하려면 W&B Launch를 사용하여 Job Queue에 투입해야 합니다.

하지만 한 번 Job, Queue, Agent를 준비해 두면, 재실행 시에는 Launch 시의 Overrides만 변경하면 되기 때문에 매번 PC에서 명령어를 다시 입력할 필요가 없습니다.

외출 중이나 이동 중에도 다음 Run을 투입할 수 있으므로, 실험 운영이 조금 더 편해질 수 있습니다.

관심 있는 분들은 시도해 보시기 바랍니다.

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0