0 / 0
영어 버전 문서로 돌아가기

foundation model 를 프로그래밍 방식으로 조정하기( Python )

마지막 업데이트 날짜: 2025년 2월 21일
foundation model 를 프로그래밍 방식으로 조정하기( Python )

Python 라이브러리를 사용하여 프로그래밍 방식으로 IBM watsonx.ai 의 기초 모델을 조정할 수 있습니다.

foundation model 신속하게 조정하려면 사용자가 제공한 훈련 데이터를 사용하여 실험을 실행합니다. foundation model 이 실험은 기계 학습 과정으로, 모델이 입력한 프롬프트에 대해 예상되는 결과를 보여줍니다. 튜닝 프로세스는 복잡하며 데이터 자산, 훈련 자산 및 배치 자산을 포함합니다.

python 라이브러리에는 기본 모델을 튜닝하기 위한 메소드 및 헬퍼 클래스가 있습니다. 라이브러리에 대한 자세한 정보는 튜닝을 참고하세요.

watsonx.ai 의 노트북에서 watsonx.ai Python 라이브러리에서 사용 가능한 함수를 사용하여 기초 모델을 프롬프트 조정하십시오.

신속한 조정을 위한 샘플 노트

watsonx를 사용하여 자동차 렌털 회사 고객 만족 문서 샘플 Python 노트북을 watsonx 하여 IBM granite-13b-instruct-v2 모델을 조정하는 방법에 대한 내용 은 watsonx.ai 의 기초 모델을 신속하게 조정하기 위한 코드를 포함합니다.

샘플 노트북은 튜닝의 두 가지 기본 단계를 수행하는 데 도움이 됩니다.

샘플 노트북은 granite-13b-instruct-v2 모델을 프롬프트 조정하도록 설계되었습니다. 그러나 다른 기초 모델을 조정하는 데 사용할 수도 있습니다. 이를 수행하려면 다음과 같이 base_model 참조를 바꾸십시오.

  • base_model='google/flan-t5-xl'

foundation model 변경하면 학습 데이터도 교체해야 합니다. 노트북의 데이터 로딩 섹션에서 파일 경로를 바꾸십시오.

url = "{path to your file}"
if not os.path.isfile(filename): 
    wget.download(url)

또한 신속하게 조정할 수 있는 다른 기초 모델을 조정하는 샘플 노트북을 사용할 수도 있습니다.

샘플 노트북을 사용하여 튜닝 매개변수 값 최적화

샘플 노트북에는 learning_rate 매개변수 값을 최적화하는 코드가 있습니다. 샘플 노트북은 학습 비율 값을 체계적으로 변경하고 실험을 10번다시 실행하므로 10개의 실행에서 손실을 비교할 수 있습니다. 샘플 노트북은 최적의 학습 비율 값을 계산합니다.

샘플 노트북은 10개의 개별 실험을 생성합니다. 동일한 실험을 10번실행하지 않습니다.

최적화할 매개변수는 노트북의 검색 공간 및 최적화 섹션에 정의되어 있습니다.

샘플 노트북을 편집하거나 샘플 노트북에 추가하여 학습 비율 외에 다음 매개변수를 최적화하도록 자동화된 코드를 실행할 수 있습니다.

  • accumulate_steps
  • batch_size
  • num_epochs

여러 매개변수의 최적 값을 한 번에 확인하기 위해 다음과 같은 코드를 사용하도록 샘플 노트북을 변경할 수 있습니다. 예를 들어, 다음과 같습니다.

SPACE = [
    skopt.space.Real(0.001, 0.09, name='learning_rate', prior='log-uniform'),
    skopt.space.Integer(1, 50, name='num_epochs', prior='uniform'),
    skopt.space.Integer(1, 16, name='batch_size', prior='uniform')
]

한 번에 여러 매개변수를 최적화하면 매개변수가 함께 작동하므로 시간을 절약할 수 있습니다. 해당 값은 서로 영향을 주며 이들 사이의 올바른 값 밸런스는 최상의 결과를 가져옵니다.

샘플 노트북은 scikit-optimize 라이브러리의 메소드를 사용합니다. 자세한 내용은 scikit-optimize API 참조를 확인하세요.

샘플 노트북을 사용하여 튜닝된 모델 평가

샘플 노트북에는 튜닝된 모델을 배치하고 튜닝된 모델을 추론한 후 튜닝된 모델 출력의 정확도를 계산하는 코드가 있습니다. 또한 foundation model 추론하고 기본 모델 출력의 정확도를 계산하여 비교할 수 있습니다.

샘플 노트북을 사용하여 다른 모델을 조정하고 평가하려는 경우 다음 코드에서 model_id 매개변수의 값을 바꿀 수 있습니다.

base_model = ModelInference(
    model_id='ibm/granite-13b-instruct-v2',
    params=generate_params,
    api_client=client
)

예를 들어, google/flan-t5-xl 항목을 지정하십시오.

또한 프롬프트 텍스트를 자체 훈련 데이터 세트의 프롬프트로 바꿔야 합니다.

response = tuned_model.generate_text(prompt="{your text here}")

튜닝된 모델의 정확도 점수가 낮은 경우 튜닝된 모델 출력에서 데이터 품질 문제점 처리에서 훈련 데이터를 개선하는 방법에 대한 몇 가지 아이디어를 검토하십시오.

튜닝 매개변수의 최적화는 사용 중인 모델 및 훈련 데이터에 따라 다릅니다. 모델 또는 훈련 데이터를 변경하는 경우 튜닝 실험을 재평가해야 합니다. 조정 매개변수를 다시 조정하여 기능 보강된 데이터 세트에 맞게 최적화하십시오.

상위 주제: Python 라이브러리