728x90 반응형 SMALL EC225 [MLops] 모델 추론 src/main.py 모델 확장 파일을 pth로 지정한다. model_ext = "pth"python src/main.py train --model_name movie_predictor --optimizer adam --num_epochs 20 --lr 0.002 src/utils/utils.py torch.save는 내부적으로 pickle을 사용해 직렬화 (마샬링) 후 저장하게 된다. 이는 보안적 취약점으로 작용하게 된다. 따라서, 최소한의 검증 절차인는 sha256 해시 알고리즘을 통해 변조 여부를 최소한으로 확인한다. import osimport randomimport hashlibfrom datetime import datetimeimport numpy as npimport torchdef pa.. 2024. 8. 13. [MLops] 모델 학습 및 평가 디렉토리 설정 docker exec -it my-mlops bash opt 디렉토리에서 mlops-movie-predictor 디렉토리를 생성한다. mkdir mlops-movie-predictor 그 다음, mlops-movie-predictor 디렉토리로 이동하고 dataset과 src 디렉토리를 생성한다. 또, src 디렉토리에서 utils, dataset, model, train, evaluate 디렉토리를 생성한다. 라이브러리 설치 pip install torch numpy==1.26.4 pandas scikit-learn tqdm src/utils/utils.py import osimport randomimport numpy as npimport torchdef init_seed(): n.. 2024. 8. 12. [Hadoop] SSH 및 호스트 이름 설정 로컬 PC SSH 설정 배포된 6개의 인스턴스끼리 SSH 통신이 가능하도록 설정하고 각 서버의 호스트 이름을 설정한다. # config 편집vim ~/.ssh/configHost master1 HostName 100.100.100.101 User ubuntu IdentityFile ~/hadoop-keypair.pemHost master2 HostName 100.100.100.102 User ubuntu IdentityFile ~/hadoop-keypair.pemHost master3 HostName 100.100.100.103 User ubuntu IdentityFile ~/hadoop-ke.. 2024. 6. 21. [Hadoop] AMI 생성 및 인스턴스 복제 AMI 설정 앞서 설정한 인스턴스를 AMI로 생성하고 클러스터에 필요한만큼 인스턴스를 복제한다. 인스턴스 대시보드에서 master1 인스턴스를 선택하고 화면 우측 상단의 Actions (작업)을 클릭 후 Image and templates (이미지 및 템플릿)에서 이미지 생성을 클릭한다. 이미지 이름을 hadoop-eco-base라고 지정하고 화면 하단의 Create image을 클릭하여 AMI를 생성한다. 대시보드 화면 좌측 이미지 메뉴의 AMI를 클릭하여 AMI 대시보드를 확인한다. 그리고 시간이 지난 후 hadoop-eco-base의 상태가 사용 가능으로 변경되면 AMI로 인스턴스 시작을 클릭한다. Instance type (인스턴스 유형)은 이미지를 생성했던 t3.large를 선택한다. Ne.. 2024. 6. 21. [Hadoop] 플럼 및 하이브 설정 플럼 설정 flume-env.sh 파일을 설정한다. cd /usr/local/flume/confcp flume-env.sh.template flume-env.shvim flume-env.shexport JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64export JAVA_OPTS="-Xms100m -Xmx2000m -Dcom.sun.management.jmxremote" log4j2.xml 파일을 설정한다. vim log4j2.xml /usr/local/flume/logs 그 다음, 로그 디렉토리을 생성한다. mkdir -p /usr/local/flume/logs 하이브 설정 hive-env.sh 파일을 편집한다. cd $HIVE_HOME/confcp hive-e.. 2024. 6. 21. [Docker] Package 'docker-ce' has no installation candidate Package 'docker-ce' has no installation candidate 우분투 환경에서 docker 커맨드를 찾지 못하는 경우에 다음 명령어를 실행한다. $ sudo apt-get update$ sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"$ apt-get u.. 2024. 6. 19. [Apache Airflow] Postgre DB 추가 Postgre 인스턴스 추가 로컬에서 docker-compose.yaml 파일을 다음과 같이 수정한다. services: postgres_custom: image: postgres:13 environment: POSTGRES_USER: 이름 POSTGRES_PASSWORD: 비밀번호 POSGRES_DB: 데이터베이스 TZ: Asia/Seoul volumes: - postgres-custom-db-volume:/var/lib/postgresql/data ports: - 5432:5432 # 외부에서 접속할 수 있도록 포트 노출volumes: postgres-db-volume: postgres-custom-db-volume: #.. 2024. 6. 18. [Apache Airflow] Python 오퍼레이터 Python 오퍼레이터 파이썬 함수를 실행시킬수 있는 오퍼레이터이며, 가장 많이 사용되는 오퍼레이터 중 하나이다. dags 디렉토리를 기본적으로 sys.path에 추가해주고 있기 때문에 dags 디렉토리에 dag 파일을 가져다 놓기만 해도 airflow는 DAG 인식이 가능하다. 뿐만 아니라 config, plugins 디렉토리도 sys.path에 추가해 주고 있으므로 파이썬 공통 모듈이나 설정 파일은 plugins 디렉토리 또는 config 디렉토리 안에 만들어 놓으면 dag에서 import하여 사용 가능하다. dags_python_operator.py from airflow import DAGimport pendulumfrom airflow.operators.python import PythonOp.. 2024. 6. 17. [Git] GitHub Action GitHub Action GitHub Action은 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 및 지속적 배포 (CI/CD) 플랫폼이다. secrets 설정 Github Action을 사용하여 ssh 접속할 때, 민감한 정보나 환경 설정들을 직접 코드에 포함시키지 않고 안전하게 workflow에서 사용할 수 있게 secrets을 설정한다. secrets는 다음과 같이 추가한다. EC2_HOST EC2 : Public IP 주소EC2_USER : ubuntuEC2_SSH_KEY : EC2 키 페어 값 Github Actions Workflow 작성 로컬 환경에서 Github 레포지토리에 push한 commit을 EC2에서 확인할 수 있도록 워크플로우인 yml파일을 작성한다. #.. 2024. 6. 16. [AWS] 도커 PostgreSQL 배포 PostgreSQL 이미지 docker image pull postgresdocker image ls PostgreSQL 컨테이너 실행 docker container run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres docker container ls PostgreSQL 컨테이너 내부 docker container exec -it {컨테이너 ID} /bin/bashpsql -U postgresALTER USER postgres WITH PASSWORD 'postgres';CREATE DATABASE ml; \listpostgres=# \qexit 데이터 보관 docker container stop {컨테이너 ID}do.. 2024. 6. 11. 이전 1 2 3 다음 728x90 반응형 LIST