[KT 에이블스쿨] 7차 미니프로젝트

Choi·2024년 1월 23일
0

KT에이블스쿨

목록 보기
11/12
post-thumbnail

🚗 7차 미니 프로젝트

미션: 수어를 통한 챗봇 웹피이지 만들기

Framework

Django

목표

  • Django를 활용한 웹 페이지 만들기.
  • 수어 번역 AI 모델링
  • ChatGPT API 연동
  • 웹서비스 데모 구현

활용기술

  • ML-FLOW,
  • ChatGPT API
  • AWS 클라우드

MLFLOW 활용 모델관리

mlflow란?

모델의 실행을 추적(tracking), 모델링 결과를 저장, 관리, 배포 관리하도록 돕는 오픈 소스 도구

운영중인 모델 로딩하기 --> model uri 지정하여 불러옴

mlflow.sklearn.log_model(model, "model", registerd_model_name="RF_Model")

# 버전으로 가져오기
model_uri = "models:/RF_model/6"
model = mlflow.sklearn.load_model(model_url)

# 최신 버전으로 가져오기
model_uri = "models:/RF_model/latest"
model = mlflow.sklearn.load_model(model_url)

# 운영 중인 버전으로 가져오기
model_uri = "models:/RF_model/production"
model = mlflow.sklearn.load_model(model_url)

서버 세팅

(1) 클라우드 환경 구축(Django 서버 구축하여 AWS로 배포)

  • Django 서버 구축

① 장고 프로젝트 준비

② 가상환경 만들기

$conda create -n <가상환경명> python=3.10 -y

$conda activate <가상환경명>

$conda env list

③ 필요 라이브러리 설치

$pip install -r requirements.txt

④ 장고 구동

$python manage.py runserver

⑤ 서버 접속 및 화면 확인 (http://127.0.0.1:8000/))

  • AWS 서버 구축

① VPC 생성

② 서브넷 생성

③ ec2 인스턴스 생성

  • 배포(로컬 소스를 서버로 이동)

ssh 접속을 위한 putty 설정(콘솔 명령어 수행)

① putty 설치 링크

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

② putty 접속 후 ppk 설정(계정은 ubuntu)

③ private key 등록 후 오픈

④ ssh 접속 성공

  • 접속 후 폴더 하나 생성

$ mkdir deploy

  • 폴더 목록 확인(소문자 L 두개)

$ ll

sftp 접속을 위한 winscp 설정(파일 전송 수행)

① winscp 설치 링크

https://winscp.net/eng/index.php

WinSCP
WinSCP is a popular free SFTP and FTP client for Windows, a powerful file manager that will improve your productivity. It supports also local-local mode and FTPS, S3, SCP and WebDAV protocols. Power users can automate WinSCP using .NET assembly.
winscp.net

https://dthumb-phinf.pstatic.net/?src=%22https%3A%2F%2Fwinscp.net%2Fassets%2Fimages%2Flogos%2Flogo%40240.jpg%22&type=ff120

② 로그인>고급>private key 인증

③ 접속

④ 로컬 파일 영역에서 장고 소스를 찾아 서버로 드래그(전송)

  • 패키지 설치

① putty에서 anaconda 다운로드

$wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh

② anaconda 파일 유효성 검증

$shasum -a 256 /home/ubuntu/Anaconda3-2022.10-Linux-x86_64.sh

③ anaconda 설치

$bash ./Anaconda3-2022.10-Linux-x86_64.sh

yes/no가 나올 때까지 스페이스바 후 yes 입력

④ 설치 후 putty 재접속하면 콘다 가상환경이 기본 설정됨

⑤ 파이썬 버전을 맞추기 위해 파이썬 3.10 기반의 가상환경 생성

$conda create -n <가상환경명> python=3.10 -y

가상환경 접속!

⑥ 장고 소스가 있는 폴더로 이동 후 패키지, 추가 라이브러리 설치

$cd deploy/<폴더명>

$pip install -r requirements_linux.txt

$sudo apt install libgl1-mesa-glx

  • 구동

$sudo /home/ubuntu/anaconda3/envs/mini7/bin/python manage.py runserver 0:80

  • 터미널을 꺼도 웹이 구동 되도록 하는 법 --> nohup 명령어 사용

$nohup sudo /home/ubuntu/anaconda3/envs/mini7/bin/python manage.py runserve r 0:80&

  • 서버 중단

$sudo fuser -k -n tcp 80






🚩7차 미니 프로젝트를 마치며

벌써 마지막 미니 프로젝트가 끝났다. 이번 프로젝트는 Django를 통한 웹 서비스 구현으로 수어 서비스를 진행했다. openai api키를 활용하여 서비스를 하니, 세상이 많이 바뀌었다는 것을 몸소 체험할 수 있었다. 또한 mlflow로 효과적인 모델 관리를 하고 AWS를 통한 배포까지 경험을 해보며 하나의 서비스를 완성할 수 있었던 경험이였다. 다음은 빅프로젝트! 가보자고👊

profile
느려도 내 것으로 만드는게 좋잖아?

0개의 댓글