Free ! 라고 봐도 무방할 만큼 개인에게 100GB의 넉넉한 용량을 제공해준다. cloud나 private hosting 둘 다
wandb.ai 로 진입해 sign up을 진행한다.
일단 사용하는 가상환경 안에 설치를 해준다.
pip install wandb
설치 후 터미널 환경에서 wandb login
을 진행해 가입 시 받았던 발급받았던 key를 넣어준다.
로그인이 완료되면 아무런 출력 없이 끝난다
일전에 짜두었던 코드 에 심어보아야겠다.
wandb에서 제공하는 한국어 SDK Ref 가 있으며, wandb에서 상세한 예제 코드도 제공하고 있다.
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의 내 프로젝트로 들어가보면 서서히 지표가 뜨기 시작하는 걸 확인할 수 있다.
또한 현재 내 서버 정와 모델 상태도 나온다.