모델 추론
추론 기능을 활용하면 파운데이션 모델과 상호작용하고, 애플리케이션에 대한 AI 기반 응답을 평가할 수 있습니다. 추론 기능은 대화형 AI 기능을 워크플로에 통합하고, 모델 동작을 테스트하며, 지능형 애플리케이션을 구축할 수 있도록 지원하는, 실제 운영 환경에 바로 적용 가능한 API를 제공합니다.
Inference는 친숙한 업계 표준 API를 통해 파운데이션 모델에 즉시 접근할 수 있도록 함으로써, AI 모델의 배포 및 확장이라는 과제를 해결합니다. 챗봇 프로토타입을 제작하든, AI 어시스턴트를 구축하든, 아니면 애플리케이션에 자연어 이해 기능을 통합하든, 추론 기능을 활용하면 모델 호스팅의 복잡성을 해소하고 사용자에게 가치를 창출하는 데 집중할 수 있습니다.
시작하기 전에
-
IBM Cloud 계정을 종량제 또는 구독형으로 생성하세요. 체험 계정은 지원되지 않습니다. 자세한 내용을 확인하거나 계정을 업그레이드하려면 ‘계정 유형’을 참조하세요.
-
Red Hat AI Inference 프로젝트를 생성합니다.
-
Red Hat AI Inference 서비스에서 ‘Writer’ 역할 이상을 보유하고 있는지 확인하십시오. 자세한 내용은 ‘IAM 액세스 관리’를 참조하십시오.
콘솔을 사용하여 모델을 추론하기
이 콘솔은 다양한 모델을 실험하고, 프롬프트를 테스트하며, 애플리케이션에 통합하기 전에 AI 상호작용을 다듬을 수 있는 대화형 테스트 환경을 제공합니다.
-
콘솔에서 ‘ Red Hat AI Inference ’ 서비스를 열고, 프로젝트 이름을 클릭하여 해당 프로젝트를 엽니다.
-
프로젝트 페이지에서 ‘Playground’를 클릭하여 추론 플레이그라운드를 엽니다.
-
채팅 세션을 시작하세요. 다음 옵션을 사용하여 채팅 세션을 사용자 지정할 수 있습니다:
- 모델 선택
- 기본 모델 목록에서 원하는 것을 선택할 수 있습니다.
- 시스템 프롬프트
- 시스템 프롬프트는 대화 상자를 수행하는 방법에 대해 모델에 지시합니다.
- 추론 설정
- 무작위성, 반복 횟수 및 응답 제한 을 조정하십시오.
- 대화 내역
- 채팅 내역을 모델이나 날짜 범위로 필터링할 수 있습니다.
API를 사용하여 모델을 추론합니다
이 API를 사용하면 업계 표준인 OpenAI-compatible 엔드포인트를 통해 애플리케이션에 AI 기능을 프로그래밍 방식으로 통합할 수 있습니다. 이 접근 방식은 AI 상호 작용을 자동화하거나, 대량의 요청을 처리하거나, 대화형 AI를 기존 시스템에 통합해야 하는 프로덕션 환경에 필수적입니다. 이 API는 모델 동작을 맞춤 설정하고, 대화 내역을 관리하며, 애플리케이션과 함께 AI 기반 기능을 확장할 수 있는 유연성을 제공합니다.
현재 다음과 같은 API가 지원됩니다:
- 채팅 자동 완성
/v1/chat/completions - 만들기 - OpenAI 문서
- Get - OpenAI 문서
- 목록 - OpenAI 문서
- 삭제 - OpenAI 문서
- 모델
/v1/models - Get - OpenAI 문서
- 목록 - OpenAI 문서
API를 사용하여 일반적인 추론 작업을 수행하는 방법에 대한 예시는 다음 섹션을 참고하십시오.
API 엔드포인트
모든 API 요청은 다음과 같은 기본 형식 URL 을 따릅니다:
https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference
<project_id> 을 여러분의 프로젝트 ID로 대체하세요. 이를 찾으려면 Red Hat AI Inference projects로 이동하여 해당 프로젝트를 열어보세요.
API에 대한 인증
API 호출을 수행하기 전에 요청에 대한 인증을 완료해야 합니다. 베어러 토큰이나 IBM Cloud API 키 중 하나를 사용하여 인증할 수 있습니다.
베어러 토큰을 사용한 인증
베어러 토큰은 프로젝트의 추론 기능에 대한 안전한 접근을 보장하며, IBM Cloud API 키를 통해 생성됩니다. 무기명 토큰은 정해진 기간이 지나면 만료되므로, 주기적으로 갱신해야 합니다.
다음 예제는 베어러 토큰을 가져오는 방법을 보여줍니다.
curl -X POST "https://iam.cloud.ibm.com/identity/token" --header "Content-Type: application/x-www-form-urlencoded" --header "Accept: application/json" --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" --data-urlencode "apikey=$<IBM_CLOUD_API_KEY>"
반환된 응답에 포함된 ‘ access_token ’가 바로 베어러 토큰입니다. 이 토큰에는 유효 기간이 있으므로 주기적으로 갱신해야 합니다.
{"access_token":"xxxxx","refresh_token":"not_supported","token_type":"Bearer","expires_in":3600,"expiration":1770058324,"scope":"ibm openid"}
API 키를 사용하여 인증하기
API 키를 사용하여 인증하는 방법에는 두 가지가 있습니다. 서비스 ID를 생성할 수 있는데, 이는 액세스 권한 및 제어 기능을 분배하는 데 권장되는 방법입니다. 서비스 ID를 생성하는 경우, 인증에 사용하는 서비스 ID 및 API 키 생성 도 함께 생성해야 합니다. ' Red Hat AI Inference 시작하기'에서는 프로그래밍 방식으로 인증하기 위해 서비스 ID와 API 키를 생성하는 방법을 설명합니다.
서비스 ID API 키 대신 사용자 API 키를 사용하여 인증할 수도 있습니다. 자세한 정보는 사용자 API 키 관리를 참조하십시오.
채팅 자동 완성 생성
채팅 자동 완성 기능은 추론의 핵심입니다. 이를 통해 기초 모델에 메시지를 전송하고 AI가 생성한 응답을 받을 수 있습니다. 이것이 바로 대화형 경험을 구축하고, 질문에 대한 답변을 얻으며, 콘텐츠를 생성하거나, 자연어 입력을 처리하는 방법입니다. 모델의 동작을 정의하는 시스템 프롬프트를 제공하고, 맥락을 고려한 상호작용을 위해 메시지 이력을 관리함으로써 대화 흐름을 제어할 수 있습니다.
다음 예제는 채팅 자동 완성 기능을 생성하는 방법을 보여줍니다. 사용 가능한 매개변수의 전체 목록을 보려면 OpenAI 채팅 자동 완성 문서를 참조하십시오.
curl https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer <bearer_token>" -d '{
"model": "granite-4-0-h-small",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Hello! Tell me about yourself"
}
]
}'
from openai import OpenAI
client = OpenAI(
api_key="<bearer_token>",
base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completion = client.chat.completions.create(
model="granite-4-0-h-small",
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello! Tell me about yourself"}
]
)
print(completion.choices[0].message)
ID를 통해 채팅 내용 자동 완성하기
ID를 통해 특정 채팅 완료 내역을 조회하는 기능은 감사, 디버깅 또는 과거 상호작용 분석에 유용합니다.
다음 예제는 ID를 사용하여 채팅 자동 완성 결과를 가져오는 방법을 보여줍니다. 사용 가능한 매개변수의 전체 목록을 보려면 ‘채팅 자동 완성 가져오기’를 참조하세요.
curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions/<completion_id>' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
api_key="<bearer_token>",
base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completion = client.chat.completions.retrieve(completion_id="<completion_id>")
print(completion)
채팅 자동 완성 목록
채팅 자동 완성 내역을 나열하면 모든 추론 활동에 대한 개요를 확인할 수 있으므로, 사용 패턴을 모니터링하고 비용을 추적하며, 애플리케이션이 파운데이션 모델과 어떻게 상호작용하는지 분석할 수 있습니다. 이는 사용자 행동을 이해하고, 널리 사용되는 활용 사례를 파악하며, AI 통합 전략을 최적화하는 데 특히 유용합니다.
다음 예제는 채팅 자동 완성 항목을 나열하는 방법을 보여줍니다. 사용 가능한 매개변수의 전체 목록을 보려면 ‘채팅 자동 완성 목록’을 참조하십시오.
curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
api_key="<bearer_token>",
base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completions = client.chat.completions.list()
print(completions)
채팅 자동 완성 삭제하기
채팅 자동 완성 항목을 삭제하면 테스트 데이터를 정리하고 개인정보 보호 요건을 준수하는 데 도움이 됩니다.
다음 예제는 채팅 자동 완성 항목을 삭제하는 방법을 보여줍니다. 사용 가능한 매개변수의 전체 목록을 보려면 ‘채팅 자동 완성 삭제’를 참조하세요.
curl -X DELETE https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions/<completion_id> \
-H "Content-Type: application/json" -H "Authorization: Bearer <bearer_token>"
모델 나열
프로젝트에서 사용할 수 있는 파운데이션 모델이 무엇인지 파악하고 각 모델의 기능을 이해함으로써, 특정 사용 사례에 가장 적합한 모델을 선택하고 응답 품질, 속도, 비용 등의 요소를 최적화할 수 있습니다.
다음 예제는 모델을 나열하는 방법을 보여줍니다. 사용 가능한 매개변수의 전체 목록을 보려면 OpenAI List Models를 참조하십시오.
curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/models' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
api_key="<bearer_token>",
base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
models = client.models.list()
print(models)
ID로 모델 가져오기
특정 모델에 대한 상세 정보를 확인하면, 애플리케이션에서 해당 모델을 사용하기 전에 그 특성, 기능 및 한계를 파악하는 데 도움이 됩니다.
다음 예제는 ID를 사용하여 모델을 가져오는 방법을 보여줍니다. 사용 가능한 매개변수의 전체 목록을 보려면 ‘모델 가져오기’를 참조하십시오.
curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/models/<model>' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
api_key="<bearer_token>",
base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
model = client.models.retrieve("<model>") # for example, "granite-4-0-h-small"
print(model)