0 / 0
영어 버전 문서로 돌아가기
프로그래밍 방식으로 foundation model 추론하기
마지막 업데이트 날짜: 2024년 11월 28일
프로그래밍 방식으로 foundation model 추론하기

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

프롬프트 랩에서 프롬프트를 작성한 후 프롬프트를 노트북으로 저장하고 노트북을 편집할 수 있습니다. 생성된 노트북을 시작점으로 사용하면 신임 정보 및 프로젝트 ID 정보 가져오기와 같은 초기 설정 단계를 처리하므로 유용합니다.

또는 watsonx.ai Python 라이브러리를 사용하여 watsonx.ai 의 노트북에서 직접 기초 모델에 대해 작업할 수 있습니다. 자세한 내용은 watsonx 라이브러리를 참조하세요.

샘플 노트북

watsonx.ai에서 사용 가능한 다양한 기초 모델을 프롬프트하는 샘플 노트북을 찾으려면 Python 샘플 노트북을 참조하십시오. 이러한 노트북의 대부분은 자원 허브에서도 사용 가능합니다.

예를 들어, ' ' watsonx '을 사용하여 렌터카 리뷰 분석하기 '은 ' watsonx.ai'에서 ' foundation model '를 추론하는 단계를 학습하기 위해 실행할 수 있는 샘플 노트북입니다.

foundation model 프롬프트

foundation model 묻기 전에 watsonx.ai 추론에 사용할 수 있는 기초 모델 목록을 가져옵니다. 자세한 정보는 사용 가능한 기초 모델에 대한 정보 가져오기를 참조하십시오.

다음 샘플 코드는 각 메소드에서 생성되는 출력 유형을 비교할 수 있도록 다른 메소드를 사용하여 flan-t5-xxl-11b 모델을 프롬프트하는 방법을 보여줍니다.

텍스트 스트림을 생성하는 방법을 보여주는 예제에만 프롬프트를 위한 모델 매개변수가 포함되어 있지만 모든 메소드에 대해 매개변수를 지정할 수 있습니다.

foundation model 프롬프트용 Python 코드 샘플

import json
from ibm_watsonx_ai import APIClient
from ibm_watsonx_ai.foundation_models import ModelInference
from ibm_watsonx_ai.metanames import GenTextParamsMetaNames as GenParams
from ibm_watsonx_ai.foundation_models.utils.enums import DecodingMethods

my_credentials = {
  "url": "https://{region}.ml.cloud.ibm.com",
  "apikey": {my-IBM-Cloud-API-key},
}

client = APIClient(my_credentials)

gen_parms = {
    GenParams.DECODING_METHOD: DecodingMethods.SAMPLE,
    GenParams.MAX_NEW_TOKENS: 100
}
model_id = client.foundation_models.TextModels.FLAN_T5_XXL
project_id = {my-project-ID}
space_id = None
verify = False

model = ModelInference(
  model_id=model_id,
  credentials=my_credentials,
  params=gen_parms,
  project_id=project_id,
  space_id=space_id,
  verify=verify,
)

prompt_txt = "In today's sales meeting, we "
gen_parms_override = gen_parms = {
    GenParams.DECODING_METHOD: DecodingMethods.SAMPLE,
    GenParams.MAX_NEW_TOKENS: 50
}

# GENERATE

generated_response = model.generate(prompt=prompt_txt, params=gen_parms_override)

print("Output from generate() method:")
print(json.dumps(generated_response, indent=2))

# GENERATE TEXT

generated_text_response = model.generate_text(prompt=prompt_txt, params=gen_parms_override)

print("Output from generate_text() method:")
print(generated_text_response)

# GENERATE STREAM

gen_stream_params = {
  GenParams.DECODING_METHOD: DecodingMethods.GREEDY,
  GenParams.TEMPERATURE: 0.5,
  GenParams.MIN_NEW_TOKENS: 10,
  GenParams.MAX_NEW_TOKENS: 20
}

print("Output from generate_text_stream() method:")
stream_response = model.generate_text_stream(prompt=prompt_txt, params=gen_stream_params)

for chunk in stream_response:
  print(chunk, end='')
참고:

샘플 코드를 사용하려면 {region}, {my-IBM-Cloud-API-key}{my-project-ID} 를 사용자 환경에 올바른 값으로 대체해야 합니다.

generate () 메소드의 출력:

{
  "model_id": "google/flan-t5-xxl",
  "created_at": "2023-07-27T03:40:17.575Z",
  "results": [
    {
      "generated_text": "will discuss the new product line.",
      "generated_token_count": 8,
      "input_token_count": 10,
      "stop_reason": "EOS_TOKEN"
    }
  ],
  ...
}

generate_text () 메소드의 출력:

will discuss the new product line.

generate_text_stream () 메소드의 출력:

will discuss the new product line. Let's start with marketing plans

유해한 컨텐츠 제거

foundation model 프롬프트를 제출하면 기본적으로 혐오, 욕설 및 비속어(HAP) 필터와 개인 식별 정보(PII) 필터가 비활성화됩니다. 이를 사용으로 설정하고 API의 modifications 필드를 사용하여 HAP 필터의 민감도를 지정할 수 있습니다.

필터 작동 방법에 대한 자세한 정보는 모델 입력 및 출력에서 유해한 언어 제거를 참조하십시오.

Python 라이브러리를 사용할 때 기본 설정이 적용된 필터를 사용으로 설정하려면 요청에 다음 매개변수를 포함하십시오.

response = model.generate(prompt,guardrails=True)

다음 코드 예제는 필터를 사용으로 설정하고 구성하는 방법을 보여줍니다.

guardrails_hap_params = {
  GenTextModerationsMetaNames.INPUT: False,
  GenTextModerationsMetaNames.THRESHOLD: 0.45
}
guardrails_pii_params = {
  GenTextModerationsMetaNames.INPUT: False,
  GenTextModerationsMetaNames.OUTPUT: True,
  GenTextModerationsMetaNames.MASK: {"remove_entity_value": True}
}

response = model.generate(prompt,
  guardrails=True,
  guardrails_hap_params=guardrails_hap_params,
  guardrails_pii_params=guardrails_pii_params)

상위 주제: Python 라이브러리

일반적인 AI 검색 및 응답
이러한 응답은 제품 문서의 컨텐츠를 기반으로 하는 watsonx.ai 의 대형 언어 모델에 의해 생성됩니다. 자세히 알아보기