Vertex AI에서 Claude 3.5 Sonnet: Python 빠른 시작
Anthropic의 최신 모델을 빠르게 시작하는 방법
이 글은 AI로 번역되었습니다. 오역이 의심되는 부분이 있으면 댓글로 알려주세요.
Created on September 12|Last edited on September 12
Comment
이 튜토리얼은 Python을 사용해 Google Cloud의 Vertex AI에서 Claude 3.5 Sonnet 모델을 시작하는 데 도움이 되도록 설계되었습니다. 환경 설정, 필수 API 활성화, 그리고 Anthropic Python SDK와 W&B Weave를 사용한 로깅과 함께 Claude 3.5 Sonnet API를 사용하는 방법을 안내합니다.
시작해 봅시다.

다룰 내용
Claude 3.5 Sonnet란 무엇인가요?Claude 3.5 Sonnet을 위한 Vertex AI 설정1단계: Google Cloud 프로젝트 만들기2단계: Vertex AI API 활성화3단계: Google Cloud CLI 설정4단계: IAM 역할 구성5단계: Google Cloud에서 Claude 3.5 Sonnet 사용 설정 W&B Weave와 함께 Claude 3.5 Sonnet API 사용하기 Claude 3.5 Sonnet API로 이미지 분석하기또 다른 “스마트” 모델결론
Claude 3.5 Sonnet란 무엇인가요?
Claude 3.5 Sonnet, Anthropic의 최신 모델은 텍스트 생성, 코딩, 시각 처리와 같은 작업에서 탁월한 성능을 보여 두드러집니다. 200K 토큰 컨텍스트 윈도우를 제공해 크고 복잡한 입력을 효과적으로 처리할 수 있는 충분한 용량을 갖추고 있습니다.
Google Cloud에서 액세스 가능 Vertex AI, Anthropic API, Amazon Bedrock, 그리고 Claude 플랫폼까지, Claude 3.5 Sonnet은 다양한 워크플로에 매끄럽게 통합됩니다. 입력 토큰 100만 개당 $3, 출력 토큰 100만 개당 $15의 경쟁력 있는 가격으로, 다양한 AI 애플리케이션을 위한 비용 효율적인 솔루션을 제공합니다.
이 모델은 이전 버전인 Claude 3 Opus보다 두 배 빠르게 동작하여, 맥락을 고려한 고객 지원이나 다단계 워크플로 오케스트레이션 같은 복잡한 작업에 최적입니다. 또한 여러 언어를 지원하므로 Claude 3.5 Sonnet은 매우 범용적이며 폭넓게 활용할 수 있습니다.
Claude 3.5 Sonnet을 위한 Vertex AI 설정
먼저 Google Cloud 프로젝트를 생성하고 필요한 API를 활성화한 뒤 Google Cloud CLI를 구성하는 순서로 Vertex AI 설정을 다룹니다. 이 기반을 통해 Vertex AI의 기능을 온전히 활용하는 데 필요한 도구와 권한을 갖추게 됩니다. 이후 Vertex AI 플랫폼을 통해 Claude 3.5 Sonnet 모델에 접근하고 사용하는 방법을 살펴보겠습니다. 여기에는 인증 설정, API 요청 전송, 그리고 모델 응답 처리 과정이 포함됩니다.
이 빠른 시작 가이드를 마치면 Claude 3.5 Sonnet을 워크플로에 매끄럽게 통합하는 데 필요한 지식을 갖추게 되며, 다양한 애플리케이션에서 뛰어난 성능을 온전히 활용할 수 있습니다. 코드 작성 프로세스를 개선하든, 고객 상호작용을 향상하든, 데이터에서 더 깊은 인사이트를 얻고자 하든, 이 안내서는 오늘날 사용 가능한 가장 진보된 AI 모델 중 하나의 역량을 효과적으로 활용하도록 도와줄 것입니다.
Google Cloud에서 Vertex AI를 설정하려면 필요한 인프라와 권한을 갖추기 위한 몇 가지 핵심 단계를 거쳐야 합니다.
다음과 같이 시작하면 됩니다:
1단계: Google Cloud 프로젝트 만들기
먼저 새 프로젝트를 만들면서 시작하세요 Google Cloud 콘솔프로젝트 선택기 페이지로 이동하여 기존 프로젝트를 선택하거나 새 프로젝트를 생성하세요. Vertex AI 서비스를 사용하려면 프로젝트에 결제가 활성화되어 있어야 하므로 반드시 결제를 활성화하세요. 아직 프로젝트를 만들지 않았다면 Google Cloud 상단 검색창에 ‘create project’를 검색한 뒤, 첫 번째 결과를 클릭하면 안내에 따라 손쉽게 프로젝트를 생성할 수 있습니다.

2단계: Vertex AI API 활성화
다음으로, 프로젝트에서 Vertex AI API를 활성화하세요. Google Cloud 콘솔의 검색창에 “Vertex AI”를 입력합니다. 검색 결과에서 Vertex AI를 선택하면 Vertex AI 대시보드로 이동합니다. “권장 API 모두 활성화” Vertex AI에 필요한 API를 활성화합니다. 이 과정은 완료까지 몇 분 정도 소요될 수 있습니다.

3단계: Google Cloud CLI 설정
로컬 개발 환경에서 Google Cloud 서비스를 사용하려면 Google Cloud CLI를 설치해야 합니다. Google Cloud 문서에서 CLI를 다운로드하여 설치하세요설치가 완료되면 다음 명령으로 CLI를 초기화하세요 gcloud init 터미널에서 실행하세요. 이 명령은 프로젝트 선택과 설정 구성을 단계별로 안내합니다.
다음 명령�� 실행하여 최신 도구와 기능을 사용할 수 있도록 CLI 구성 요소를 업데이트할 수 있습니다:
gcloud components updategcloud components install beta
4단계: IAM 역할 구성
관리자는 적절한 IAM 역할이 할당되었는지 확인해야 합니다. 이러한 역할에는 다음이 포함됩니다:
- Vertex AI 사용자 또는 Vertex AI 관리자, 및
- 서비스 계정 사용자
사용자의 구체적인 요구 사항과 Vertex AI 활용 목적에 따라 달라질 수 있습니다. 이 튜토리얼에서는 Vertex AI 관리자와 서비스 계정 사용자 권한을 권장합니다.
이를 위해 Google Cloud 검색창에서 “IAM”을 검색하면 다음을 수행할 수 있습니다.

그다음에는 사용자 계정 옆에 있는 편집 버튼을 선택합니다. 버튼은 다음과 같이 표시됩니다:

그리고 적절한 역할을 할당합니다:

5단계: Google Cloud에서 Claude 3.5 Sonnet 사용 설정
이제 다음으로 이동할 수 있습니다 페이지, 이를 통해 사용하려는 모델을 사용 설정할 수 있습니다. 페이지를 아래로 스크롤하면 다음과 같은 섹션이 보입니다: 번역할 원문 텍스트를 제공해 주세요.

간단히 파란색 모델 카드 버튼을 클릭하면 Vertex에서 Claude 3.5 Sonnet을 사용 설정할 수 있는 페이지로 이동합니다. 다음으로 “Enable” 버튼을 클릭하세요.

이제 Claude 3.5 Sonnet 모델을 사용할 수 있어야 합니다. 위 단계를 따른 뒤 오류가 발생한다면, Google의 서버에서 변경 사항이 완전히 적용되는 데 몇 분이 걸릴 수 있으므로 잠시 기다리는 것이 가장 좋은 방법일 수 있습니다.
W&B Weave와 함께 Claude 3.5 Sonnet API 사용하기
이제 재미있는 부분을 시작할 준비가 되었습니다! Python에서 Claude 3.5 Sonnet API를 사용할 것입니다. 추가로, 우리는 사용할 예정입니다 W&B Weave 우리 모델의 입력과 출력을 추적하기 위해 사용합니다. Weave는 Weights & Biases가 제공하는 강력한 도구로, 생성형 AI 모델의 로깅과 모니터링을 간소화하도록 설계되었습니다. 다양한 지표 추적, 데이터 시각화, 실시간 성능 점검을 위한 쉬운 인터페이스를 제공하며, 어떤 머신러닝 프로젝트에도 Weave를 통합하면 모델의 내부 동작을 모니터링하고 평가하는 역량을 강화할 수 있습니다.
Weave를 사용하려면 다음으로 초기화하는 것부터 시작하세요 weave.init('your_project_name')다음으로, the @weave.op() 추적하려는 모든 함수에 데코레이터를 추가하세요. 이 데코레이터는 함수의 모든 입력과 출력을 자동으로 기록하여 동작에 대한 상세한 정보를 캡처합니다.
먼저 다음 명령어로 Weave와 Vertex를 설치하세요:
python -m pip install -U 'anthropic[vertex]'python -m pip install -U Weave
다음으로, Claude API를 호출하고 결과를 Weave에 기록할 수 있는 아래 스크립트를 작성해 보겠습니다. 참고로 다음 항목들을 교체해야 합니다 your_project_name 원하는 Weave 프로젝트 이름과 함께, 또한 your-gcp-project-id Google Cloud 프로젝트 ID로 바꾸세요.
import base64from anthropic import AnthropicVerteximport weave# Initialize Weave for loggingweave.init('your_project_name')# Set up the Anthropic clientLOCATION = "us-east5"PROJECT_ID = "your-gcp-project-id"client = AnthropicVertex(region=LOCATION, project_id=PROJECT_ID)@weave.op()def get_response_from_anthropic(query):response = client.messages.create(max_tokens=1024,messages=[{"role": "user","content": query}],model="claude-3-5-sonnet@20240620",)return response.model_dump_json(indent=2)# Define the queryquery = "How can I improve my eating habits?"# Call the function and log the responseresponse = get_response_from_anthropic(query)print(response)
이 스크립트는 Claude 3.5 Sonnet API를 호출하여 쿼리에 대한 응답을 생성합니다. 또한 우리는 이미 를 추가했기 때문에 응답은 자동으로 Weave에 기록됩니다. @weave.op() 함수 위에 데코레이터를 추가하세요. Weights & Biases의 프로젝트 대시보드에서 Weave 섹션으로 이동하면 우리의 응답을 확인할 수 있습니다.
Weave는 함수 호출마다 입력과 출력을 포함해 모두 기록합니다:

Claude 3.5 Sonnet API로 이미지 분석하기
이제 Claude 3.5 Sonnet을 사용해 이미지를 분석해 보겠습니다. Python과 Weave를 함께 연동하여 효과적으로 추적하고 로깅합니다. 이 과정에서는 이미지를 Claude API에 적합한 형식으로 변환하는 방법과 Weave를 사용해 응답을 기록하는 방법을 단계별로 안내합니다.
필요한 모든 단계를 포함한 종합적인 스크립트는 다음과 같습니다:
import base64import requestsfrom pathlib import Pathfrom anthropic import AnthropicVerteximport weaveimport httpx# Initialize Weave for loggingweave.init('claude_sonnet')# Set up the Anthropic clientLOCATION = "us-east5"PROJECT_ID = "your-gcp-project-id"client = AnthropicVertex(region=LOCATION, project_id=PROJECT_ID)def image_to_data_url(file_path_or_url):EXT_TO_MIMETYPE = {'.jpg': 'image/jpeg','.png': 'image/png','.svg': 'image/svg+xml',}if file_path_or_url.startswith('http://') or file_path_or_url.startswith('https://'):response = requests.get(file_path_or_url)if response.status_code != 200:raise ValueError(f"Unable to fetch image from URL: {file_path_or_url}")content_type = response.headers['Content-Type']mimetype = content_type if content_type in EXT_TO_MIMETYPE.values() else Noneimage_data = response.contentelse:ext = Path(file_path_or_url).suffixmimetype = EXT_TO_MIMETYPE.get(ext)if not mimetype:raise ValueError(f"Unsupported file extension: {ext}")with open(file_path_or_url, 'rb') as image_file:image_data = image_file.read()if not mimetype:raise ValueError(f"Unsupported mime type: {mimetype}")encoded_string = base64.b64encode(image_data).decode('utf-8')data_url = f"data:{mimetype};base64,{encoded_string}"return data_url@weave.op()def analyze_image(image_data, prompt, wv_img): # wv_image added for trackingresponse = client.messages.create(max_tokens=1024,messages=[{"role": "user","content": [{"type": "image","source": {"type": "base64","data": image_data,"media_type": "image/jpeg" # Add the media type here},},{"type": "text","text": prompt,},]}],model="claude-3-5-sonnet@20240620",)return response.model_dump_json(indent=2)image_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"image_b64 = base64.b64encode(httpx.get(image_url).content).decode("utf-8")weave_img = image_to_data_url(image_url)# Call the function and log the responseimage_analysis_response = analyze_image(image_b64, "describe this image", weave_img)print(image_analysis_response)
이 스크립트에서는 Claude 3.5 Sonnet을 사용해 이미지를 분석하는 데 필요한 모든 단계를 다룹니다.
먼저 로깅을 위해 Weave를 초기화하고, 필요한 Google Cloud 프로젝트 정보를 지정하여 Anthropic 클라이언트를 설정해 Weave와 Claude API 모두와 매끄럽게 상호작용하도록 합니다. The image_to_data_url 그다음 함수는 URL이든 로컬 파일이든 이미지를 Claude API의 처리 요건에 필수적인 base64 인코딩 데이터 URL로 변환합니다. The analyze_image 함수는 이 base64로 인코딩된 이미지를 분석을 위해 Claude API로 보내고, Weave를 사용해 응답을 기록합니다.
이 함수에는 두 개의 문자열을 전달합니다: image_data (베이스64로 인코딩된 이미지) 및 wv_img (같은 이미지이지만 Weave와 호환되는 형식). 마지막으로, URL에서 이미지를 가져와 base64 문자열로 변환한 뒤, 해당 함수를 호출합니다. analyze_image 응답을 가져와 출력하는 함수로, 전체 설정을 활용해 이미지를 분석하고 상호작용을 기록하는 방법을 시연합니다. 이러한 통합 접근 방식은 고급 기능을 갖춘 Claude 3.5 Sonnet을 이미지 분석에 효과적으로 활용하도록 하며, Weave와 통합해 결과를 종합적으로 추적하고 모니터링할 수 있게 합니다.

여기에서 Weave가 우리의 프롬프트, 이미지, 그리고 모델의 응답을 자동으로 기록한 것을 확인할 수 있습니다. 이는 프로덕션에서 모델을 추적할 뿐 아니라 디버깅과 성능 개선에도 매우 유용합니다. 입력과 출력을 시각화함으로써 모델이 이미지를 어떻게 해석하고 처리하는지 더 깊이 이해할 수 있으며, 조정이나 추가 튜닝이 필요한 부분을 식별하는 데 도움이 됩니다.
이 통합은 워크플로를 간소화하여 모델의 성능을 실시간으로 모니터링하기 쉽게 만들고, 문제 발생 시 신속히 대응할 수 있도록 보장합니다. 나아가, 상세한 로그와 시각화는 향후 모델의 개발과 학습에 참고가 되어, 무엇이 잘 작동하고 어떤 부분을 개선할 수 있는지에 대한 인사이트를 제공합니다. 전반적으로, Claude 3.5 Sonnet과 Weave를 함께 사용하면 이미지 분석 작업을 관리, 최적화, 고도화하는 우리의 역량이 크게 향상됩니다.
또 다른 “스마트” 모델
고성능 분야에서 이렇게 치열한 경쟁이 벌어지는 모습을 보니 정말 반갑습니다. 대규모 언어 모델 공간. 사람마다 고유한 능력이 있듯이, 다양한 모델도 각기 다른 영역에서 뛰어날 가능성이 큽니다. 200K 토큰 컨텍스트 윈도우와 경쟁력 있는 가격을 갖춘 Claude 3.5 Sonnet은 주목할 만한 모델입니다. 복잡한 입력을 더 낮은 비용으로 처리할 수 있어 다양한 애플리케이션에 활용 가능한 다재다능한 도구입니다. 단독으로 사용하든 GPT-4 같은 다른 모델과 함께 활용하든, Claude 3.5 Sonnet의 역량은 워크플로를 강화하여 여러 고급 AI 시스템의 강점을 결합한 맞춤형 솔루션을 제공할 수 있습니다.
GPT-4o와 비교하면, Claude 3.5 Sonnet은 1M 입력 토큰당 비용이 약간 더 저렴합니다($5 대비 $3). 또한 컨텍스트 윈도우도 더 깁니다(128k 토큰 대비 200k 토큰). 다만 지연 시간 측면에서는 Sonnet이 여전히 GPT-4o보다 약 두 배 정도 느리므로, 빠른 응답이 애플리케이션에 핵심 요소라면 이 점을 염두에 두어야 합니다.
결론
Python을 사용해 Google Cloud의 Vertex AI에 Claude 3.5 Sonnet 모델을 통합하면, 200k 토큰 컨텍스트 윈도우와 경쟁력 있는 가격을 바탕으로 복잡하고 대용량 입력을 처리하는 실용성이 돋보입니다. Google Cloud Vertex AI의 매끄러운 설정에 Weave를 결합해 실시간 모니터링을 수행하면, 신속한 이슈 해결에 유용한 인사이트를 얻을 수 있습니다. 이 모델은 단독으로든 GPT-4 같은 다른 모델과 함께든 유연하게 활용 가능해 고성능 LLM 분야에서 강력한 경쟁력을 갖추며, 다양한 애플리케이션에 맞춘 맞춤형 솔루션을 제공합니다. 이러한 경쟁 환경은 지속적인 개선을 촉진하며, Claude 3.5 Sonnet을 워크플로 최적화와 업무 향상을 위한 효과적인 도구로 만들어 줍니다.
How to fine-tune Phi-3 Vision on a custom dataset
Here's how to fine tune a state of the art multimodal LLM on a custom dataset
6 "gotchas" in machine learning—and how to avoid them
ML is hard and you can't plan for everything. Here are a few things I've learned and a few tips to avoid common missteps
Grokking: Improved generalization through over-overfitting
One of the most mysterious phenomena in deep learning; Grokking is the tendency of neural networks to improve generalization by sustained overfitting.
Building a RAG-Based Digital Restaurant Menu with LlamaIndex and W&B Weave
Powered by RAG, we will transform the traditional restaurant PDF menu into an AI powered interactive menu!
Claude 3.5 Vertex AI 문서:https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude
Add a comment