Anthropic의 Claude 3 모델 사용

Vertex AI의 Anthropic Claude 3 모델은 완전 관리형 서버리스 모델을 API로 제공합니다. Vertex AI에서 Claude 모델을 사용하려면 Vertex AI API 엔드포인트로 직접 요청을 보냅니다. Anthropic Cllaude 3 모델은 관리형 API를 사용하므로 인프라를 프로비저닝하거나 관리할 필요가 없습니다.

Claude 응답을 스트리밍하면 최종 사용자의 지연 시간 인식을 줄일 수 있습니다. 스트리밍된 응답은 서버 전송 이벤트(SSE)를 사용하여 응답을 점진적으로 스트리밍합니다.

Claude 모델은 사용한 만큼 비용을 지불합니다. 자세한 내용은 Vertex AI 가격 책정 페이지의 Anthropic Claude 모델 섹션을 참조하세요.

사용 가능한 Anthropic Claude 모델

Anthropic Claude 모델에 액세스하려면 Model Garden으로 이동하고 Claude를 검색한 후 사용할 Claude 모델을 선택합니다. 모든 Claude 3 모델은 이미지를 처리하고 텍스트 출력을 반환하며 컨텍스트 윈도우는 200k입니다. 다음 링크를 사용하여 Vertex AI에서 사용할 수 있는 Claude 모델 카드로 이동할 수도 있습니다.

Claude 3 Sonnet

Anthropic Claude 3 Sonnet은 엔터프라이즈 워크로드의 인텔리전스와 속도 사이의 균형을 제공합니다. 저렴한 가격으로 제공되는 확장 가능한 AI를 위한 고성능 모델입니다. Claude 3 Sonnet은 다음과 같은 사용 사례에 최적화되어 있습니다.

  • 검색 증강 생성(RAG) 및 검색 검색을 포함한 데이터 처리

  • 제품 추천, 예측, 타겟팅된 마케팅과 같은 영업 작업

  • 이미지의 코드 생성, 품질 관리, 광학 문자 인식(OCR)과 같은 시간 절약 작업

  • 텍스트 출력을 반환하는 이미지 처리와 같은 Vision 작업. 또한 차트, 그래프, 기술 다이어그램, 보고서, 기타 시각적 콘텐츠에 대한 분석도 있음

Claude 3 Haiku

Anthropic Claude 3 Haiku는 Anthropic에서 사용할 수 있는 가장 빠르고 간결한 모델입니다. 쿼리와 요청에 빠르게 응답하도록 설계되었습니다. 이를 사용하여 인간 상호작용을 모방하는 AI 환경을 빌드할 수 있습니다. Claude 3 Haiku는 다음과 같은 사용 사례에 최적화되어 있습니다.

  • 실시간 고객 상호작용 및 번역

  • 의심스러운 행동이나 고객 요청을 포착하기 위한 콘텐츠 검토

  • 인벤토리 관리, 구조화되지 않은 데이터에서 지식 추출과 같은 비용 절약 작업

  • 텍스트 출력 반환을 위한 이미지 처리, 차트, 그래프, 기술 다이어그램, 보고서, 기타 시각적 콘텐츠 등의 비전 태스크

Claude 모델 사용

Anthropic SDK 또는 curl 명령어를 사용하면 다음 모델 이름으로 Vertex AI 엔드포인트에 요청을 전송할 수 있습니다.

  • Claude 3 Sonnet: claude-3-sonnet@20240229 사용
  • Claude 3 Haiku: claude-3-haiku@20240307 사용

@ 기호(claude-3-sonnet 또는 claude-3-haiku)로 시작하는 서픽스가 포함되지 않은 Anthropic Claude 3 모델 버전은 사용하지 않는 것이 좋습니다.

시작하기 전에

Vertex AI에서 Anthropic Claude 3 모델을 사용하려면 다음 단계를 수행해야 합니다. Vertex AI를 사용하려면 Vertex AI API(aiplatform.googleapis.com)를 사용 설정해야 합니다. Vertex AI API가 사용 설정된 기존 프로젝트가 이미 있는 경우 새 프로젝트를 만드는 대신 해당 프로젝트를 사용할 수 있습니다.

Anthropic Claude 3 모델을 사용 설정하는 데 필요한 권한이 있는지 확인합니다. 자세한 내용은 필요한 권한 부여를 참조하세요.

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Vertex AI API 사용 설정

    API 사용 설정

  5. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  6. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  7. Vertex AI API 사용 설정

    API 사용 설정

  8. Anthropic Claude 모델을 사용 설정하고 프롬프트를 전송할 권한이 있는지 확인합니다. 자세한 내용은 Claude 모델 사용 설정 및 프롬프트 전송에 필요한 권한 설정을 참조하세요.
  9. 다음 Model Garden 모델 카드 중 하나로 이동한 다음 enable을 클릭합니다.

Anthropic SDK 사용

Anthropic Claude SDK를 사용하여 Anthropic Claude 모델에 API 요청을 수행할 수 있습니다. 자세한 내용은 다음을 참조하세요.

Anthropic Vertex SDK를 사용하여 Claude 3 모델에 스트리밍 호출

다음 코드 샘플은 Anthropic Vertex SDK를 사용하여 Anthropic Claude 3 모델에 대한 스트리밍 호출을 수행합니다.

Python

Python을 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python API 참고 문서를 참조하세요.

# TODO(developer): Vertex AI SDK - uncomment below & run
# pip3 install --upgrade --user google-cloud-aiplatform
# gcloud auth application-default login
# pip3 install -U 'anthropic[vertex]'

from anthropic import AnthropicVertex

def generate_text_streaming(project_id: str, region: str) -> str:
    client = AnthropicVertex(region=region, project_id=project_id)
    result = []

    with client.messages.stream(
        model="claude-3-sonnet@20240229",
        max_tokens=1024,
        messages=[
            {
                "role": "user",
                "content": "Send me a recipe for banana bread.",
            }
        ],
    ) as stream:
        for text in stream.text_stream:
            print(text, end="", flush=True)
            result.append(text)

    return "".join(result)

Anthropic Vertex SDK를 사용하여 Claude 3 모델에 단항 호출 수행

다음 코드 샘플은 Anthropic Vertex SDK를 사용하여 Anthropic Claude 3 모델에 단항 호출을 수행합니다.

Python

Python을 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python API 참고 문서를 참조하세요.

# TODO(developer): Vertex AI SDK - uncomment below & run
# pip3 install --upgrade --user google-cloud-aiplatform
# gcloud auth application-default login
# pip3 install -U 'anthropic[vertex]'

from anthropic import AnthropicVertex

def generate_text(project_id: str, region: str) -> object:
    client = AnthropicVertex(region=region, project_id=project_id)
    message = client.messages.create(
        model="claude-3-sonnet@20240229",
        max_tokens=1024,
        messages=[
            {
                "role": "user",
                "content": "Send me a recipe for banana bread.",
            }
        ],
    )
    print(message.model_dump_json(indent=2))
    return message

curl 명령어 사용

curl 명령어를 사용하여 Vertex AI 엔드포인트에 요청할 수 있습니다. curl 명령어는 사용하려는 지원되는 Anthropic Claude 모델을 지정합니다.

  • Claude 3 Sonnet: claude-3-sonnet@20240229 사용
  • Claude 3 Haiku: claude-3-haiku@20240307 사용

@ 기호(claude-3-sonnet 또는 claude-3-haiku)로 시작하는 서픽스가 포함되지 않은 Anthropic Claude 3 모델 버전은 사용하지 않는 것이 좋습니다.

다음 주제에서는 curl 명령어를 만드는 방법과 샘플 curl 명령어를 보여줍니다. 샘플 curl 명령어는 Claude 3 Sonnet 모델을 사용합니다.

REST

Vertex AI API를 사용하여 텍스트 프롬프트를 테스트하려면 POST 요청을 게시자 모델 엔드포인트로 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION: Anthropic Claude 모델을 지원하는 리전. Claude 3 Sonnet은 다음 리전에서 사용할 수 있습니다.
    • us-central1 (Iowa)
    • asia-southeast1 (Singapore)
    Claude 3 Haiku는 다음 리전에서 사용할 수 있습니다.
    • us-central1 (Iowa)
    • europe-west4 (Netherlands)
  • MODEL: 사용할 모델 이름. Claude 3 Haiku의 경우 claude-3-haiku@20240307을 사용합니다. Claude 3 Sonnet의 경우 claude-3-sonnet@20240229를 사용합니다.
  • ROLE: 메시지와 연결된 역할. user 또는 assistant를 지정할 수 있습니다. 첫 번째 메시지는 user 역할을 사용해야 합니다. Claude 모델은 userassistant 차례가 교대로 작동합니다. 최종 메시지에서 assistant 역할을 사용하는 경우 응답 콘텐츠는 해당 메시지의 콘텐츠에서 즉시 계속됩니다. 이 값을 사용하여 모델 응답의 일부를 제한할 수 있습니다.
  • STREAM: 응답 스트리밍 여부를 지정하는 불리언. 응답을 스트리밍하여 최종 사용 지연 시간 인식을 줄입니다. 응답을 스트리밍하려면 true로 설정하고 응답을 한 번에 반환하려면 false로 설정합니다.
  • CONTENT: user 또는 assistant 메시지의 콘텐츠(예: 텍스트)
  • MAX_OUTPUT_TOKENS: 응답에서 생성될 수 있는 토큰의 최대 개수. 토큰은 약 3.5자입니다. 토큰 100개는 단어 약 60~80개에 해당합니다.

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

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

    임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다.

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

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

    임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다.

HTTP 메서드 및 URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/anthropic/models/MODEL:streamRawPredict

JSON 요청 본문:

{
  "anthropic_version": "vertex-2023-10-16",
  "messages": [
   {
    "role": "ROLE",
    "content": "CONTENT"
   }],
  "max_tokens": MAX_TOKENS,
  "stream": STREAM
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/anthropic/models/MODEL:streamRawPredict"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/anthropic/models/MODEL:streamRawPredict" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 수신됩니다.

curl 명령어 예시

MODEL_ID="claude-3-sonnet@20240229"
LOCATION="us-central1"
PROJECT_ID="PROJECT_ID"

curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/${LOCATION}/publishers/anthropic/models/${MODEL_ID}:streamRawPredict -d \
'{
  "anthropic_version": "vertex-2023-10-16",
  "messages": [{
    "role": "user",
    "content": "Hello!"
  }],
  "max_tokens": 50,
  "stream": true}'

Anthropic Claude 리전 가용성

Claude 3 Sonnet은 다음 리전에서 사용할 수 있습니다.

  • us-central1 (Iowa)
  • asia-southeast1 (Singapore)
Claude 3 Haiku는 다음 리전에서 사용할 수 있습니다.
  • us-central1 (Iowa)
  • europe-west4 (Netherlands)

Anthropic Claude 할당량 및 지원되는 컨텍스트 길이

Claude 3 Sonnet 및 Claude 3 Haiku의 경우 사용 가능한 리전마다 하나씩 두 개의 할당량이 있습니다. 할당량은 분당 쿼리 수(QPM) 및 분당 토큰 수(TPM)로 지정됩니다. TPM에는 입력 및 출력 토큰이 모두 포함됩니다.

Claude 3 Sonnet의 기본 할당량 한도 및 지원되는 컨텍스트 길이는 다음과 같습니다.

리전 기본 할당량 한도 지원되는 컨텍스트 길이
us-central1 (Iowa) 60 QPM, 50,000 TPM 200,000 토큰
asia-southeast1 (Singapore) 60 QPM, 50,000 TPM 200,000 토큰

Claude 3 Haiku의 기본 할당량 한도 및 지원되는 컨텍스트 길이는 다음과 같습니다.

리전 기본 할당량 한도 지원되는 컨텍스트 길이
us-central1 (Iowa) 60 QPM, 50,000 TPM 200,000 토큰
europe-west4 (Netherlands) 60 QPM, 50,000 TPM 200,000 토큰

Vertex AI의 생성형 AI 할당량을 상향 조정하려면 Google Cloud 콘솔을 사용해 할당량 상향을 요청하면 됩니다. 할당량에 대한 자세한 내용은 할당량 작업을 참조하세요.

Claude 모델을 사용 설정하고 프롬프트를 보내는 데 필요한 권한 설정

사용자가 Anthropic Claude 모델을 사용 설정하려면 관리자가 해당 사용자에게 소비자 조달 자격 관리자 Identity and Access Management(IAM) 역할을 부여해야 합니다. 이 역할이 부여된 모든 사용자는 Model Garden에서 Anthropic Claude 모델을 사용 설정할 수 있습니다.

사용자가 Vertex AI에서 프롬프트 요청을 하려면 관리자가 해당 사용자에게 aiplatform.endpoints.predict 권한을 부여해야 합니다. 이 권한은 Vertex AI 사용자 IAM 역할에 포함되어 있습니다. 자세한 내용은 Vertex AI 사용자액세스 제어를 참조하세요.

콘솔

  1. 사용자에게 소비자 조달 자격 관리자 IAM 역할을 부여하려면 IAM 페이지로 이동합니다.

    IAM으로 이동

  2. 주 구성원 열에서 Anthropic Claude 모델에 대한 액세스를 사용 설정하려는 사용자 주 구성원을 찾은 후 을 클릭합니다. 그런 다음 해당 행에서 주 구성원을 수정합니다.

  3. 액세스 수정 창에서 다른 역할 추가를 클릭합니다.

  4. 역할 선택에서 소비자 조달 자격 관리자를 선택합니다.

  5. 액세스 수정 창에서 다른 역할 추가를 클릭합니다.

  6. 역할 선택에서 Vertex AI 사용자를 선택합니다.

  7. 저장을 클릭합니다.

gcloud

  1. Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.

    Cloud Shell 활성화

  2. Model Garden에서 Anthropic Claude 모델을 사용 설정하는 데 필요한 소비자 조달 자격 관리자 역할을 부여합니다.

    gcloud projects add-iam-policy-binding  PROJECT_ID \
    --member=PRINCIPAL --role=roles/consumerprocurement.entitlementManager
    
  3. 프롬프트 요청을 수행하는 데 필요한 aiplatform.endpoints.predict 권한이 포함된 Vertex AI 사용자 역할을 부여합니다.

    gcloud projects add-iam-policy-binding  PROJECT_ID \
    --member=PRINCIPAL --role=roles/aiplatform.user
    

    PRINCIPAL을 주 구성원 식별자로 바꿉니다. 식별자는 user|group|serviceAccount:email 또는domain:domain 형식을 취합니다(예:user:cloudysanfrancisco@gmail.com, group:admins@example.com, serviceAccount:test123@example.domain.com 또는 domain:example.domain.com).

    다음을 포함하는 정책 바인딩 목록이 출력됩니다.

    - members:
      - user:PRINCIPAL
      role: roles/roles/consumerprocurement.entitlementManager
    

    자세한 내용은 단일 역할 부여gcloud projects add-iam-policy-binding을 참조하세요.