AWS(9)
-
[AWS Summit Seoul 2024] LLM의 프롬프트 엔지니어링
후기선 후기 - 후 정리를 하자면, 웬만한 내용들은 나를 포함하여 LLM에 관심이 있는 사람이라면 이미 다 알고 있거나 실제로 적용 중인 내용들이었다. 다만 나는 주로 OpenAI의 API를 써왔고 AWS의 내용은 Bedrock의 Claude 모델에 대한 내용이었기 때문에 모델에 의한 차이는 존재했다. 지금은 압도적인 성능을 가진 GPT-4o가 나오면서 OpenAI API를 사용하고 있지만 나중에는 결국 모델의 성능은 비슷하지만 요금에서 차이가 나거나, 편의성 면에서 AWS의 모델이 더 우수할 가능성이 있기 때문에 AWS에서 들은 세션 내용을 정리해본다. 내용 정리1. Persona를 적용하라.OpenAI API로 보자면 [System] 메시지를 적용하는 것이다. OpenAI에서는 기본값으로 "You ..
2024.06.03 -
AWS Lambda와 API Gateway를 통해 입력 받은 이미지 처리하기
0. 목적s3에 저장되어 있는 이미지가 아닌 외부 이미지를 받아서 SageMaker의 딥러닝 모델 엔드포인트로 다루고자 함(public API) 1. lambda 함수 작성- `pillow`, `numpy`, `requests-toolbelt` 라이브러리 필요- 라이브러리 설치 방법:from PIL import Imageimport numpy as npimport boto3import ioimport jsonimport base64from requests_toolbelt.multipart import decoderfrom urllib.parse import parse_qss3_client = boto3.client('s3')runtime = boto3.client("sagemaker-runtime")ep..
2024.05.02 -
AWS Lambda만을 이용해서 날씨알림봇 만들기
2024.03.07 - [AWS] - AWS Lambda와 selenium을 이용해서 날씨알림봇 만들기 AWS Lambda와 selenium을 이용해서 날씨알림봇 만들기0. 배경 매일 아침 일어나면 오늘은 비가 올 것인지, 기온은 어떤지를 확인해본다. 그런데 이상하다. 제공사마다 강수확률과 기온이 다르다. 네이버에서는 제공사를 선택할 수 있도록 되어있지boksup.tistory.com 이전에 Lambda와 Selenium을 이용하여 네이버 날씨에서 여러 제공사의 날씨를 수집하는 봇을 만들었다. 근데 언제 생겼는지, 네이버에서 예보 비교가 가능했다. 생각보다 꽤 된 것 같은데 모르고 있었다. 그래서 해당 페이지를 활용하여 selenium 없이 날씨 데이터를 수집해보기로 했다. ..
2024.04.22 -
AWS Lambda, API Gateway로 대화형 질답봇 만들기 (Feat. 야구)
전편: 2024.03.07 - [AWS] - AWS Lambda와 selenium을 이용해서 날씨알림봇 만들기 0. 배경 이전에 AWS Lambda와 텔레그램을 이용하여 날씨알림봇을 만들었다. 또 만들만한 봇이 뭐가 있을까 고민하다 평소 관심이 많은 야구와 관련된 봇을 만들고 싶어졌다. 제일 먼저 떠오른 건 실시간 경기 알림봇이었다. 내가 응원하는 팀이 앞서가는 득점 혹은 역전을 했거나 이겼을 때 나에게 알림을 주는 걸 생각했다. 하지만 몇 가지 현실적인 문제에 부딪혔다. 첫째로, 실시간으로 알림을 받는 서비스를 구축하는데 있어 Lambda 같은 서버리스 서비스보다 EC2처럼 24시간 돌아가는 서비스가 오히려 더 유리하다는 것이었다. 둘째로, KBO, 네이버, 다음 등 문자 중계를 해주는 제공처 모두 A..
2024.04.02 -
AWS Lambda와 selenium을 이용해서 날씨알림봇 만들기
2024.04.22 - [AWS] - AWS Lambda만을 이용해서 날씨알림봇 만들기 0. 배경매일 아침 일어나면 오늘은 비가 올 것인지, 기온은 어떤지를 확인해본다. 그런데 이상하다. 제공사마다 강수확률과 기온이 다르다. 네이버에서는 제공사를 선택할 수 있도록 되어있지만 한눈에 파악하기는 어렵다.여러 제공사의 기상 정보를 한데 모아서 볼 수는 없을까 생각하다 데이터를 스크랩하여 테이블로 만들고 메일로 보내면 어떨까 싶었다. 첫 아이디어는 이랬다.날씨 데이터를 스크랩한 후 테이블을 만들어 이미지로 떨구는 `script.py`를 만들고 이를 실행하는 `bat` 파일을 만들어 윈도우 작업 스케줄러에 매일 아침에 실행하도록 설정해둔다. 그렇게 이미지가 생성되면 그걸 이벤트로 받아 power au..
2024.03.07 -
AWS Cloud9과 ECR을 이용하여 Lambda Container 배포하기
0. 상황 AWS의 서버리스 컴퓨팅 서비스인 Lambda를 이용하면 사용한 만큼만 요금이 나가기 때문에 EC2처럼 서버를 24시간 돌리는 것보다 훨씬 저렴하다. 그래서 Lambda를 많이 이용하게 되는데 단점은 EC2만큼의 자유도는 없다는 점이다. 2024.02.14 - [AWS] - AWS Lambda에 layer 추가하기 (추가 Package 설치) 그래서 layer를 추가하여 필요한 패키지를 설치하게 되는데 이것도 한계가 있다. 총 250MB라는 제한이 있어 여러 패키지를 동시에 설치하거나 무거운 패키지를 설치하는 데 제한적이다. 이를 해결하기 위한 방법이 ECR(Elastic Container Registry)에 Docker 환경을 올려놓고 Lambda 컨테이너로 사용하는 것이다. 그리고 ECR에..
2024.02.23 -
SageMaker Studio에서 영구적 가상환경 만들기
0. 상황 대표적인 SageMaker의 단점 중 하나는 인스턴스를 껐다 켜면 `pip install`로 설치했던 패키지들이 다 초기화된다는 점이다. 그래서 라이프사이클(수명 주기)로 인스턴스를 켤 때마다 자동으로 실행되게 해야했다. 근데 SageMaker Studio에서는 그렇게 관리할 필요 없이 영구적 가상환경을 만들어 패키지 삭제가 되지 않도록 설정할 수 있게 되었다. 1. 방법 1. Sagemaker Studio의 jupyterlab에 접속한다. 2. Terminal을 연다. 3. 아래 명령어를 차례대로 입력한다. mkdir -p ~/.conda/envs conda create --yes -p ~/.conda/envs/{가상환경명} python=3.9 conda activate ~/.conda/en..
2024.02.18 -
AWS Lambda에 layer 추가하기 (추가 Package 설치)
0. 왜 필요해? AWS의 Lambda를 이용하여 API를 만들곤 하는데, Lambda 안에서 데이터 전처리 혹은 후처리를 하기 위해 pandas나 numpy, 혹은 그 외 라이브러리를 필요로 한다. 하지만 Lambda에는 그런 패키지가 설치되어 있지 않기 때문에 별도 layer를 추가하여 패키지를 설치해주어야 한다. 0. 외부 layer가 있는지 확인한다. 0-1. AWS 제공 layer pandas의 경우 AWS에서 제공하고 있다. 때문에 하위 패키지인 numpy도 사용할 수 있다. 0-2. 외부 layer 이용 일부 layer를 제공해주는 곳이 있다. 그곳에서 맞는 python 버전과 지역, 패키지를 검색하여 ARN 지정을 하고 입력해준다. - Klayers 외부 레이어가 없는 경우 아래 과정을 거..
2024.02.14 -
SageMaker 개요
SageMaker란? 완전관리형 기계 학습 서비스로 데이터 전처리부터 학습, 배포까지 수행할 수 있도록 지원하고 있다. 서울 리전 SageMaker 콘솔: Amazon SageMaker | ap-northeast-2 개발자 안내서: Amazon SageMaker란? - Amazon SageMaker SageMaker에서 분석하기 SageMaker에서는 jupyter lab용 EC2를 생성할 수 있으며 크게 두 가지 방법이 있다. 노트북 인스턴스 생성 SageMaker Studio에서 JupyterLab Space 생성 (참고) EC2: 일종의 가상 컴퓨터로 사용자가 메모리, CPU 등 사양을 지정할 수 있다. (참고) 인스턴스: 사양이 정해진 한 대의 가상 컴퓨터(EC2) 클라우드 컴퓨팅에서 인스턴스란 ..
2024.02.01