ChatGPT 맞춤 지침과 Weights & Biases로 실험 추적 자동화하기
ChatGPT는 코드 작성에 매우 뛰어납니다. 사용자 지정 프롬프트와 Weights & Biases를 함께 사용하면 자동화를 한층 더 강화할 수 있습니다! 이 글은 AI 번역본입니다. 오역이 있을 수 있으니 댓글로 알려주세요.
Created on September 12|Last edited on September 12
Comment
소개
머신 러닝 실험의 결과를 기록하고 추적하는 일은 번거로울 수 있습니다. Weights & Biases(wandb)와 사용자 지정 지시를 활용하면 이 과정을 간소화하고 자동화하여 시간을 절약하는 동시에 일관성과 정확성을 보장할 수 있습니다.
이 글은 Weights & Biases를 사용해 실험 결과를 기록하도록 ChatGPT를 설정하는 방법을 설명하는 짧은 튜토리얼이며, 익숙한 MNIST 학습 예제를 포함합니다.
사용자 지정 지시 추가 전
튜토리얼의 다음 내용을 진행하기 전에, 다음 프롬프트로 ChatGPT가 MNIST 데이터셋에 대한 간단한 학습 예제를 어떻게 작성하는지 살펴보겠습니다. “torch를 사용해 MNIST 데이터셋에서 컨브넷을 학습시키는 짧은 스크립트를 작성해 줘.”
참고: 이는 사용자 지정 프롬프트 지시 없이 작성된 예시입니다.

간결함을 위해 모델 및 데이터 로딩 코드는 생략했습니다

사용자 지정 지시 없이 얻은 결과
보시다시피 출력문 외에는 어떤 로깅도 없습니다. 그다지 바람직하지 않죠!
제 생각에는 모든 ML 학습 루프에는 결과를 확인할 수 있는 형태로 데이터를 저장하는 로깅 방식이 반드시 있어야 합니다. 게다가 저는 보통 학습 루프 안에 검증 루프를 두는 편입니다(프롬프트에서 명시할 수도 있었지만, 보통 학습 루프 내부에 검증 루프를 넣는 형식을 따릅니다. 그래서 이 부분도 사용자 지정 지시에 포함하겠습니다).
이제 ChatGPT가 실험 결과를 Weights & Biases(wandb)에 자동으로 기록하도록, 항상 적용되는 사용자 지정 프롬프트를 추가하는 방법을 살펴보겠습니다.
프롬프트
GPT-4에서 잘 작동하는 프롬프트를 만들었습니다. 이를 추가하려면 설정의 “Custom instructions”로 이동하세요.

프롬프트는 다음과 같습니다:
When writing a machine learning training loop, always log results using wandb. Or perhaps if I ask you to add logging to it, you can use the following instructions. I usually like to log loss and accuracy for the training and validation loops (you will need to add the calculation of accuracy if it is not currently used), and if you see other metrics that may be useful to log, ask me about them. Also if you are unsure about calculating the accuracy, please ask me to confirm your work.
for example "" run = wandb.init(project='{exp_name}', entity='byyoung3', name=experiment_name) "" where exp_name will be an experiment name that you come up with based on the code I give you.
참고로, 저는 몇 가지 지시 사항과 제 Weights & Biases 사용자명을 제공했습니다. 직접 시도해 보려면 사용자명을 여러분의 계정명이 아닌 제 계정명(byyoung3)으로 바꿔 넣어야 합니다.
결과

앞에서 사용한 동일한 프롬프트를 사용하기
앞서와 같은 작업을 다시 요청했을 때 ChatGPT가 어떻게 응답하는지 확인해 봅시다!
앞서 추가한 지시문 덕분에, 프롬프트가 실험 이름을 지정하고 Weights & Biases에 초기화하는 작업까지 처리해 줍니다!

우리의 맞춤 지시문을 적용해 ChatGPT가 작성한 코드
아래에서 ChatGPT가 정확도 계산과 오류 로깅 기능을 모두 추가한 것을 확인할 수 있습니다.

로깅을 포함한 ChatGPT의 응답!
여기 제공한 맞춤 프롬프트는 출발점에 불과할 수 있습니다. 프로젝트와 워크플로에 따라 요구 사항이 다를 수 있으므로, 필요에 맞게 프롬프트를 수정해야 할 수도 있습니다.
다양한 지표를 추적하거나 여러 데이터 전처리 단계와 통합하고, 서로 다른 프레임워크와 데이터셋에 맞게 적용하는 등, 맞춤 지시문은 필요에 맞춰 유연하게 조정할 수 있습니다. 이는 학습 루프를 처음부터 작성할 때뿐만 아니라, 기존 루프를 수정해 Weights & Biases 로깅을 추가할 때에도 매우 유용합니다.
Add a comment