모델 매개변수 이해 및 구성

모델에 보낸 각 셀에는 모델의 응답 생성 방식을 제어하는 매개변수 값이 포함되어 있습니다. 모델은 서로 다른 매개변수 값에 대해 서로 다른 결과를 생성할 수 있습니다. 이 작업에서는 최상의 값을 얻을 수 있도록 다양한 매개변수 값으로 실험해 봅니다. 모델별로 사용 가능한 매개변수가 다를 수 있습니다.

구성은 초기화된 Vertex AI 서비스 및 모델 인스턴스의 수명 동안 유지됩니다. 모델 구성을 업데이트하려면 모델 인스턴스를 다시 초기화해야 합니다.

이 페이지의 뒷부분에서 모델 매개변수를 구성하는 방법을 알아볼 수 있습니다.

각 매개변수에 대한 설명

가장 일반적인 매개변수는 다음과 같습니다.

이 페이지의 다음 섹션에서 이러한 각 매개변수에 대해 알아보세요.

최대 출력 토큰

응답에서 생성될 수 있는 토큰의 최대 개수입니다. 토큰은 약 4자(영문 기준)입니다. 토큰 100개는 단어 약 20개에 해당합니다.

응답이 짧을수록 낮은 값을 지정하고 응답이 길면 높은 값을 지정합니다.

강도

강도는 응답 생성 중 샘플링에 사용되며 topPtopK가 적용될 때 발생합니다. 강도는 토큰 선택의 무작위성 수준을 제어합니다. 강도가 낮을수록 보다 결정적이고 덜 개방적인 또는 창의적인 응답이 필요한 프롬프트에 적합하고, 강도가 높을수록 다양하거나 창의적인 결과로 이어질 수 있습니다. 0의 강도는 결정적입니다. 즉, 가능성이 가장 높은 응답이 항상 선택됩니다.

대부분의 사용 사례에서는 강도 0.2로 시작해 보세요. 모델이 너무 일반적이거나, 너무 짧은 응답을 반환하거나 모델이 대체 응답을 제공할 경우에는 강도를 늘려보세요.

최상위 K

Top-K는 모델이 출력용 토큰을 선택하는 방식을 변경합니다. Top-K가 1이면 선택된 토큰이 모델의 어휘에 포함된 모든 토큰 중에서 가장 확률이 높다는 의미입니다(그리디 디코딩이라고도 함). 반면에 Top-K가 3이면 온도를 사용하여 가장 확률이 높은 3개 토큰 중에서 다음 토큰이 선택된다는 의미입니다.

각 토큰 선택 단계에서 확률이 가장 높은 Top-K 토큰이 샘플링됩니다. 그런 다음 Top-P를 기준으로 토큰을 추가로 필터링하고 온도 샘플링을 사용하여 최종 토큰을 선택합니다.

임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다. 기본 최상위 K는 40입니다.

최상위 P

Top-P는 모델이 출력용 토큰을 선택하는 방식을 변경합니다. 토큰은 확률의 합이 Top-P 값과 같아질 때까지 확률이 가장 높은 것부터(Top-K 참조) 가장 낮은 것까지 선택됩니다. 예를 들어 토큰 A, B, C의 확률이 0.3, 0.2, 0.1이고 Top-P 값이 0.5이면 모델이 온도를 사용해서 다음 토큰으로 A 또는 B를 선택하고 C는 후보에서 제외합니다.

임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다. 기본 최상위 P는 0.95입니다.

모델 파라미터 구성


모델 초기화 중에 generationConfig에서 모델 매개변수를 구성합니다. 다음은 기본 예입니다.

Kotlin+KTX

// ...

val config = generationConfig {
    maxOutputTokens = 200
    stopSequences = listOf("red")
    temperature = 0.9f
    topK = 16
    topP = 0.1f
}

val generativeModel = Firebase.vertexAI.generativeModel(
    modelName = "MODEL_NAME",
    generationConfig = config
)

// ...

Java

// ...

GenerationConfig.Builder configBuilder = new GenerationConfig.Builder();
configBuilder.maxOutputTokens = 200;
configBuilder.stopSequences = List.of("red");
configBuilder.temperature = 0.9f;
configBuilder.topK = 16;
configBuilder.topP = 0.1f;

GenerationConfig generationConfig = configBuilder.build();

GenerativeModel gm = FirebaseVertexAI.getInstance().generativeModel(
    "MODEL_NAME",
    generationConfig
);

GenerativeModelFutures model = GenerativeModelFutures.from(gm);

// ...

콘텐츠 생성을 제어하는 기타 옵션

  • 모델에 영향을 주어 필요에 맞는 결과물을 생성할 수 있도록 프롬프트 디자인에 대해 자세히 알아보세요.
  • 안전 설정을 사용하여 증오심 표현 및 성적으로 노골적인 콘텐츠 등 유해하다고 간주될 수 있는 대답을 받을 가능성을 조정합니다.
  • 시스템 안내를 설정하여 모델의 동작을 조정합니다. 이 기능은 모델이 최종 사용자의 추가 안내에 노출되기 전에 추가하는 '프롤로그'와 같습니다.
  • 프롬프트와 함께 응답 스키마를 전달하여 특정 출력 스키마를 지정합니다. 이 기능은 가장 일반적으로 JSON 출력을 생성할 때 사용되지만 분류 작업(예: 모델이 특정 라벨이나 태그를 사용하도록 하려는 경우)에도 사용할 수 있습니다.