WandB 가입 및 사용방법

Eunbin Park·2022년 10월 30일
0
post-custom-banner

Price

Free ! 라고 봐도 무방할 만큼 개인에게 100GB의 넉넉한 용량을 제공해준다. cloud나 private hosting 둘 다
Cloud-Hosted

가입

wandb.ai 로 진입해 sign up을 진행한다.

Project 생성

create_new_proj

설치

일단 사용하는 가상환경 안에 설치를 해준다.

pip install wandb

설치 후 터미널 환경에서 wandb login 을 진행해 가입 시 받았던 발급받았던 key를 넣어준다.
로그인이 완료되면 아무런 출력 없이 끝난다

wandb 코드 예제

일전에 짜두었던 코드 에 심어보아야겠다.

wandb에서 제공하는 한국어 SDK Ref 가 있으며, wandb에서 상세한 예제 코드도 제공하고 있다.

main.py

wandb 호출 및 로그인

import wandb
from dotenv import load_dotenv  # pip install python-dotenv

load_dotenv()
WANDB_AUTH_KEY = os.getenv('WANDB_AUTH_KEY')
wandb.login(key=WANDB_AUTH_KEY)

init
호출 이후 init을 호출해 인자를 넣어준다.

wandb.init(entity=config.entity_name, project=config.project_name)

project: wandb에 기제작한 project 이름을 넣어준다.
entity: 사용자 이름
etc.

configuration update
나는 yaml로 관리하고 있어서 TrainingArguments 호출 안 하고 직접 넣어주었다.

import yaml

with open("config.yaml", "r") as f:
    saved_config = yaml.load(f,Loader=yaml.FullLoader)
    config = EasyDict(saved_config["CFG"])

wandb.config.update(config)

## or 
from transformers import TrainingArguments
args = TrainingArguments(..., report_to="wandb")

end
wandb.finish() 로 끝내준다.

logging

wandb.log({"loss": loss}, step=step})

def f1_pre_rec(labels, preds):
    results = {
        "precision": precision_score(labels, preds, suffix=True),
        "recall": recall_score(labels, preds, suffix=True),
        "f1": f1_score(labels, preds, suffix=True)
    }
    wandb.log(results)
    return results

이런 식으로 로그를 찍어주면 확인이 가능하다.

실행

main.py 을 실행하면 이제 wandb가 나온다 !

곧바로 wandb.ai의 내 프로젝트로 들어가보면 서서히 지표가 뜨기 시작하는 걸 확인할 수 있다.

또한 현재 내 서버 정와 모델 상태도 나온다.

post-custom-banner

0개의 댓글