공학, 음악 부스러기
Published on

AWS bedrock 찍먹해보기

Authors
  • avatar
    Name
    치우

안녕하세요,

얼마전, 이 글을 쓰는 시각 기준으로 5 일 전까지 aws 리인벤트 행사가 있었는데요. 이러니까 무슨 최전선 현업 개발자같이 보이지만 자영업 찌끄러기라 뉴스로 지나가듯 보고 말았습니다.

공홈요약캡쳐

2024 리인벤트 주요소식 보러가기

어찌됐든 영세 스타트업이나 개인 개발자들에게 도움 되는 정보가 없나 매일같이 인터넷을 떠도는 저같은 입장에서는 도움 되는 내용이 많았습니다. 다들 한 번씩 훑어보세요

다시 본론으로, 오늘 포스팅은 터미널에서 bedrock 을 어떻게 사용하는지

전체적으로 가볍게 쉘 명령 예시를 곁들여서 살펴보는 리딩 시간이 되겠습니다.

명령줄 도구 설치 관련 :

공식홈페이지 또는,

AWS CLI 설치 가이드 를 참고하셔서 설치와 관련 설정을 완료하시고 돌아와주세요

1. Amazon Bedrock 엔드포인트 확인

먼저, Amazon Bedrock 서비스와 상호작용할 준비가 되었는지 확인합니다.

aws bedrock describe-models

명령줄 도구에 인증한 계정에 베드록 접근 권한이 있는지 확인합니다.

접근 권한이 있다면 사용 가능한 생성형 모델들의 정보를 json 또는 테이블 텍스트로 반환합니다.

조회가 되지 않는다면 웹 콘솔에서 베드록 접근 권한을 설정하고 돌아와야겠죠?

2. 모델 정보 조회

특정 모델의 세부 정보를 조회합니다

aws bedrock describe-model --model-id <MODEL_ID>

3. 생성형 모델 사용해보기

주의사항* bedrock. 의 생성형 모델을 사용하면 사용량에 따라 요금이 부과됩니다, 아래 명령어를 따라하는 경우 웹 콘솔 모델 카탈로그를 확인하고 계획적으로 유의해서 사용하시기 바랍니다.

아래는 텍스트 생성 모델을 사용하는 명령어예시입니다.

aws bedrock invoke-model \
    --model-id <MODEL_ID> \
    --input-text "Generate a creative introduction for a website about AI" \
    --output-text

텍스트 요약

긴 텍스트를 입력하고 요약 결과를 받아오는 예시입니다.

aws bedrock invoke-model \
    --model-id <MODEL_ID> \
    --input-text "This is a long text about the history of artificial intelligence. It covers the evolution of AI from the 1950s to present..." \
    --task-type "summarize" \
    --output-text

3. 모델 미세 조정 및 커스터마이징

미세 조정, (파인튠) 예시입니다.

s3 버킷에 학습 데이터셋이 있어야 하고 데이터 인덱싱 후처리 등등ds 우리가 건들기 힘드므로 여느 사람들이 다들 하듯이 어디서오픈 데이터셋을 가져와서 s3 에 넣어주고 실행해봅시다.

주의사항 왠만하면 따라하지 마십시오

aws bedrock 은 입력/출력 토큰 갯수 기준으로 모델별 과금량이 정해집니다. 토큰 단위의 기준은 모델별로 다르고, 가격 단위도 다르지만 파인튠에 필요한 토큰이 적지는 않습니다.

그냥 '이런게 있나보다' 하고 지나가는게 좋을 것 같네요

aws bedrock fine-tune-model \
    --model-id <MODEL_ID> \
    --training-data <S3_BUCKET_PATH> \
    --validation-data <S3_BUCKET_PATH> \
    --hyperparameters <PARAMETERS>

모델별로 파인튠 가능여부가 다릅니다.

웹 관리 콘솔에서 모델 카탈로그에서 사용하려는 모델의 미세 조정 지원 여부를 확인하세요

학습상태 모니터링

aws bedrock describe-fine-tune-job --job-id <JOB_ID>

모델 종료하기

aws ec2 terminate-instances --instance-ids <bedrock인스턴스  아디> 

다른 여러 완전 관리형 서비스들과 마찬가지로, 베도록 또한 ec2 에 종속성을 가지고 있습니다.

베드록에서 생성된 인스턴스의 아이디를 ec2 사용과 마찬가지로 터미널에서도 종료시킬 수 있습니다.

혹시라도 실습을 해보신 분들은 꼭 꼼꼼히 종료를 해주셔서 불필요한 과금을 방지하시기 바랍니다.

장점으로도 볼 수 있는게, ui 기반이 아니고 모두 스크립트로 제어할 수 있으니 젠킨스, 또는 다른 ci 도구에 마이그레이션하기도 좋겠죠? 스케줄링이나 다른 앱/웹 서버에 적용하는것도 편합니다.

다음에 기회가 되면 api gateway 를 통해 직접 rest 요청, 앱에 연동까지 하는 과정을 포스팅해 보겠습니다.