프롬프트 튜닝
프롬프트 튜닝은 모델에 전달되는 프롬프트의 내용을 조정하여 모델이 사용자가 지정한 패턴에 맞는 출력을 생성하도록 유도합니다. 기본 모델과 그 매개 변수 가중치는 변경되지 않습니다. 입력 프롬프트만 변경됩니다.
프로모션의 작동 방식
기초 모델은 입력에 민감합니다. 입력 내용 또는 모델 에 메시지를 보내는 방식은 모델이 생성된 출력을 조정하는 데 사용할 컨텍스트를 도입할 수 있습니다. 프 롬프트를 잘 찾아주는 엔지니어링은 종종 잘 작동합니다. 그러나 시간이 많이 걸리고 오류가 발생하기 쉬우며, 기본 모델에서 허용하는 컨텍스트 창 길이에 의해 효율성이 제한될 수 있습니다.
Tuning Studio 의 프롬프트 튜닝은 기계 학습을 프롬프트 엔지니어링 작업에 적용합니다. 입력 자체에 단어를 추가하는 대신, 프롬프트 튜닝은 입력 텍스트에 접두사로 추가될 때 원하는 출력을 생성하는 모델의 능력을 향상시키는 일련의 값을 찾는 방법입니다. 이 값의 순서를 프롬프트 벡터 라고 합니다.
일반적으로, 프롬프트에 있는 단어는 모델에 의해 벡터화됩니다. 벡터화는 텍스트를 토큰으로 변환한 다음, 토큰을 식별하기 위해 모델의 토크나이저가 정의한 숫자로 변환하는 과정입니다. 마지막으로, 토큰 ID가 인코딩됩니다. 즉, 모델의 임베딩 레이어에서 기대하는 입력 형식인 벡터 표현으로 변환됩니다. 프롬프트 튜닝은 모델의 텍스트 벡터화 과정을 건너뛰고, 대신 프롬프트 벡터를 직접 만듭니다. 이 변경 가능한 프롬프트 벡터는 벡터화된 입력 텍스트에 연결되고, 이 두 개는 모델의 임베딩 레이어에 하나의 입력으로 전달됩니다. 이 벡터에 담긴 값은 모델이 설정한 단어 임베딩 가중치에 영향을 미치고, 모델이 출력에 추가하기로 선택한 단어에 영향을 미칩니다.
프롬프트 벡터에 가장 적합한 값을 찾기 위해 튜닝 실험을 실행합니다. 훈련 데이터에서 모델에 입력 및 출력 예제 쌍을 제공함으로써 해당 입력에 대해 원하는 출력 유형을 보여줍니다. 실험의 각 훈련 실행에서, 생성된 출력은 훈련 데이터 출력과 비교됩니다. 이 실험은 두 가지의 차이에서 배운 것을 바탕으로 프롬프트 벡터의 값을 조정합니다. 훈련 데이터를 여러 번 실행한 후, 모델은 가장 잘 작동하는 프롬프트 벡터를 찾습니다.
실험을 통해 벡터화된 텍스트를 제공함으로써 훈련 과정을 시작할 수 있습니다. 또는 실험에서 프롬프트 벡터에 임의의 값을 사용하도록 할 수 있습니다. 어느 쪽이든, 초기 값이 정확히 맞지 않으면 훈련 과정의 일부로 반복적으로 변경됩니다. 직접 초기화 텍스트를 제공하면 실험이 더 빨리 좋은 결과를 얻을 수 있습니다.
실험의 결과는 기본 모델의 조정된 버전입니다. 추론하기 위해 조정된 모델에 입력을 제출하면, 모델은 조정된 패턴에 따라 출력을 생성합니다.
Tuning Studio 에서 사용되는 프롬프트 조정 프로세스에 대한 자세한 내용은 프롬프트 조정 워크플로를 참고하세요.
프롬프트 튜닝 워크플로
실험을 하는 동안, 튜닝 모델은 시간이 지남에 따라 예측이 더 좋아질 수 있도록 프롬프트의 구조를 반복적으로 조정합니다.
다음 도표는 프롬프트 조정 실험을 실행하는 동안 발생하는 단계를 보여줍니다.
실험 흐름의 구성 가능한 부분은 사용자 아이콘 으로 강조 표시됩니다. 이러한 결정 포인트는 사용자가 조정하는 실험 조정 매개변수와 일치합니다. 기초 모델 튜닝을 위한 매개변수를 참조하십시오.
이 도표는 실험의 다음 단계를 보여줍니다
프롬프트를 초기화하기 위해 선택한 초기화 방법부터 시작합니다.
초기화 방법 매개변수가
text
로 설정되어 있다면, 초기화 텍스트를 추가해야 합니다.지정된 경우, 초기화 텍스트를 토큰화하고 프롬프트 벡터로 변환합니다.
훈련 데이터를 읽고 토큰화한 다음, 일괄 처리합니다.
배치 크기는 배치 크기 파라미터에 의해 결정됩니다.
일괄 처리된 예제의 입력을 기초 모델로 보내면, 기초 모델이 이를 처리하고 결과를 생성합니다.
모델의 출력을 제출된 훈련 데이터 입력에 해당하는 훈련 데이터의 출력과 비교합니다. 그런 다음, 손실 기울기(loss gradient)를 계산합니다. 손실 기울기는 훈련 데이터의 예측 결과와 실제 결과의 차이입니다.
이 실험은 모델의 계산된 손실에 따라 입력에 추가되는 프롬프트 벡터를 조정합니다. 이 조정이 이루어지는 시점은 누적 단계 매개변수가 어떻게 구성되어 있는지에 따라 달라집니다.
2단계에서 초기화된 프롬프트 벡터에 조정이 적용됩니다. 벡터가 변화하는 정도는 학습률 매개변수에 의해 제어됩니다. 편집된 프롬프트 벡터는 훈련 데이터의 다음 예제에서 입력의 접두사로 추가되고, 입력으로 모델에 제출됩니다.
모든 배치의 모든 예제가 처리될 때까지 이 과정이 반복됩니다.
배치 전체가 에포크 수 매개변수에 지정된 횟수만큼 다시 처리됩니다.
자세히 알아보기
상위 주제: 기초 모델 튜닝 방법