Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기

전체 글62

ChatGPT API 비용 감축하기 팀 프로젝트에서 ChatGPT를 사용해 여러 사이트에서 모은 강의 데이터를 하나의 카테고리 상에 매핑하는 작업을 하려 했습니다. 이 과정에서 ChatGPT API 비용을 최적화한 과정을 정리해보려 합니다.현재 LLM 에 제공할 강의 데이터는 다음과 같습니다. (이 중 None으로 존재하는 데이터는 제거)lecture_namedescriptionwhatdoilearntags 하지만 이때 기존 Category 300개에 달하는 방식으로는 ChatGPT 4o 모델을 한번 Inference 시 대략 0.05.(1.2K,1K0.005라고 함)이 토큰을 줄이기 위하여 기존의 한글 카테고리 목록을 영어로 번역해 이 둘의 토큰 수 비교를 하기로 하였습니다. 1. 한글-영어 .. 2024. 7. 29.
EC2 실행시 RDS & Airflow 자동 실행 개인 프로젝트 도중 비용 문제 때문에 개발 도중 EC2가 자주 내려가는 상황에서 EC2를 매번 실행하고 RDS와 Airflow를 따로 접속하여 실행해주는 과정이 매우 귀찮기 때문에 이를 자동화하는 과정을 정리하였습니다. Systemd먼저 Linux 환경에는 systemd라는 것이 존재합니다. systemd는 시스템 및 서비스 관리자로 저희가 원하는 부팅시 할 작업에 대해 정의할 수도 있습니다.Systemd는 "유닛"이라는 개념을 사용하여 서비스를 관리합니다. 유닛 파일은 .service, .socket, .mount 등 여러 유형이 있으며, 각 유닛 파일은 서비스를 어떻게 관리할지에 대한 정보를 담고 있습니다.예를 들어, nginx.service 유닛 파일은 Nginx 웹 서버의 설정과 동작을 정의합니다.. 2024. 7. 29.
Private RDS에 Local Airflow에서 접근하기 프로젝트를 하다보니 Private Subnet에 생성한 RDS에 Local Airflow에서 테스트를 하고 싶은 일이 경우가 자주 발생했습니다.이를 위해 먼저 SSH 터널링을 사용해 Local 포트와 RDS 포트(3306)를 연결합니다.ssh -i ./BastionHostKey.pem -L 3307:[RDS 엔드포인트]:3306 ubuntu@[BastionHost IP]이를 통하여 로컬 3307 포트가 RDS의 3306 포트로 포트포워딩 되었습니다.이를 확인하기 위해 lsof -i :3307 명령을 통해 포트가 열려있는지 확인할 수 있습니다. 이후 Airflow를 Docker를 통하여 올린 후 Connections에 아래와 같이 추가합니다.Connection ID: 마음대로 만드셔도 상관 없습니다.Con.. 2024. 7. 24.
Github Actions를 사용한 꺼진 AWS Instance에도 CI/CD하기 프로젝트 중 AWS의 EC2가 꺼져있는 상태에서 Main에 Push를 하게 된다면 문제가 발생할 것입니다. 이를 멘토 성준님께서 말씀주셨고, CI/CD를 하기 전 먼저 Instance에 취할 적절한 작업을 생각해보라 말씀하셨습니다.이를 위해서는 AWS에서 생성한 인스턴스에 대한 정보(public IP)를 얻고, 조작할 수 있어야 합니다.https://repost.aws/ko/knowledge-center/start-stop-lambda-eventbridge Lambda 함수를 사용하여 정기적으로 EC2 인스턴스 중지 및 시작Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 자동으로 중지 및 시작하여 Amazon EC2 사용량을 줄이려고 합니다.repost.aws 먼저 다.. 2024. 7. 23.
AWS EMR을 활용한 Spark 클러스터 서버 구축 Spark에 대해 공부하던 도중 AWS의 EMR을 활용하여 Spark 클러스터 서버를 구축해보며, 이를 구축하는 방법에 대해 간단히 정리해보려 한다. EMR이란?먼저 EMR에 대해서 간단히 알아보자.빅 데이터 플랫폼 - Amazon EMR - Amazon Web Services AWS 공식 홈페이지에 따르면 EMR은 Elastic Map Reduce의 약자로 Spark, Hive, Presto등과 같은 오픈소스 빅 데이터 처리 프레임 워크를 사용할 수 있는 솔루션을 의미한다.또한 추가적 애플리케이션으로 HBase, Hadoop 등을 제공할 수 있다고한다.이를 통해 아래 사항들을 처리 가능하다.빅 데이터 분석확장 가능한 데이터 파이프라인 구축실시간 데이터 스트림 처리데이터 과학 및 기계학습 채택 가속화즉,.. 2024. 6. 24.
Github Action을 통해 좋아하는 블로그의 새 포스팅 자동 알림 만들기 저는 평소 좋아하던 블로그들이 있습니다.하지만 개인 블로그다보니 자주 글은 올라오지 않아 생각 날때마다 블로그를 찾으며 새 글이 올라오는지 체크합니다.물론 Tistory 같은 경우 구독을 하면 알림이 오지만(구독 자체가 안되는 경우도 있는것 같지만) Github 블로그나 개인 블로그 같은 경우에는 알림 기능을 블로그에서 제공하지 않으면 새로운 글이 올라왔는지 자주 체크해야하는 불편함이 존재했습니다.이때 Github Action이라는 녀석을 발견했습니다. Github ActionGithub Action은 Github에서 제공하는 CI/CD(Continuous Integration/Continuous Deployment) 도구로 코드를 자동으로 빌드, 테스트 및 배포할 수 있게 도와주는 툴입니다.갑자기 CI.. 2024. 5. 29.