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 라이브러리