본문 바로가기

책/파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터비전 심층학습

(41)
11 모델 배포 (5) 데모 애플리케이션 데모 애플리케이션이란 기술이나 제품의 동작 및 기능을 보여주는 작은 규모의 응용 프로그램을 의미한다. 주로 웹 기반 인터페이스의 형태로 제공되는데, 예를 들어 자연어 처리 모델의 데모 애플리케이션은 사용자가 입력 문장을 제공하면 모델이 문장을 이해하고 응답을 생성하는 등의 기능을 제공할 수 있다. 데모 애플리케이션은 모델의 성능 평가 및 피드백 수집에도 중요한 역할을 한다. 사용자는 모델을 직접 사용하면서 발생하는 문제점이나 개선 사항을 제공할 수 있으며, 이는 모델의 품질 향상과 개선에 도움을 준다. 스트림릿(Streamlit) 스트림릿을 사용해 데모 애플리케이션을 구현해 본다. 스트림릿은 넘파이, 판다스, 이미지 라이브러리 등 다른 파이썬 패키지들과 호환되며 인터랙티브한 웹 애플리케이션을 만들 수 있..
11 모델 배포 (4) 도커(Docker), VSCode 실습 1. 도커란? 도커(Docker)는 컨테이너 기반의 가상화 플랫폼으로 애플리케이션을 구축, 배포, 실행하기 위한 오픈소스 플랫폼이다. 도커는 애플리케이션과 해당 종속성(라이브러리, 프레임워크, 환경 설정 등)을 격리된 환경으로 패키징하여 실행 가능한 단위인 컨테이너(Container)를 생성한다. 도커의 핵심 개념과 기능 컨테이너 도커의 핵심 요소로, 격리된 실행 환경을 제공한다. 컨테이너는 애플리케이션과 그에 필요한 종속성을 포함하며, 호스트 시스템과는 독립적으로 실행된다. 이미지 컨테이너 실행에 필요한 파일과 설정을 포함하는 읽기 전용 템플릿이다. 이미지는 컨테이너를 만들기 위한 기반이 되며, 도커 파일(Dockerfile)에 정의된 내용을 바탕으로 생성된다. 이미지는 여러 개의 컨테이너를 생성할 때..
11 모델 배포 (3) 모델 서빙 모델 서빙(Model Serving)은 훈련된 머신러닝 모델을 실제 운영 환경에서 사용할 수 있도록 프로세스 또는 시스템을 구축하는 것을 의미한다. 이는 클라이언트의 요청에 따라 서버에서 모델을 호출하고, 예측 결과를 반환하는 인터페이스를 구축하는 과정을 포함한다. 클라이언트 : 서버에 서비스를 요청하는 주체. 서비스를 요청하는 PC, 스마트폰, 웹브라우저 등 서버 : 클라이언트에게 요청을 받고 요청에 따라 서비스를 제공하는 컴퓨터 시스템 인터페이스 : 사용자와 서비스 사이의 상호작용을 가능하게 하는 방법을 의미. UI/UX, API, 데이터 형식 등 서비스에 접근하고 상호작용할 수 있는 모든 요소를 포함 1. 모델 서빙 웹 프레임워크 모델 서빙 웹 프레임워크는 머신러닝 모델을 웹 서비스로 제공하고 관리..
11 모델 배포 (2) 모델 경량화 1. Knowledge Distillation 지식 증류(Knowledge Distillation)는 복잡한 신경망은 교사 신경망의 지식을 학습하는 단순한 신경망인 학생 신경망에 전달하여 성능을 개선하는 방법이다. 응답 기반 지식 증류(Response-based) 교사 신경망의 출력값을 활용해 학생 신경망을 학습시키는 방법이다. 교사 신경망의 출력값을 soft label(각 클래스에 대한 확률분포)로 사용하요 학생 신경망이 해당 확률 분포를 모방하도록 학습한다. 확률분포는 소프트맥스로 구하는데 이때 온도 매개변수 T를 추가한다. T는 소프트맥스 출력 분포를 변화시키는 용도인데, T가 크면 출력 분포가 넓어지고, T가 작으면 출력 분포가 좁아진다. 손실 함수를 코드로 보면 다음과 같다. def distil..
11 모델 배포 (1) 모델 경량화 모델 경량화(Model Compression)란 모델 크기와 연산량을 줄여서 작은 메모리 공간과 적은 연산량으로도 효율적으로 작동할 수 있게 만드는 프로세스를 의미한다. 모바일이나 임베디드 환경에서는 제한된 메모리 및 연산 능력을 가지고 있으므로 모델 경량화가 중요하다. 임베디드 환경(Embedded Environment)은 늑정한 기능이나 작업을 수행하기 위해 설계된 전용 시스템이나 장치를 가리킨다. 이러한 임베디드 시스템은 주로 특정한 작업에 중점을 둔 하드웨어와 소프트웨어의 조합으로 이루어져 있다. 예를 들면 웨어러블 기기, 자율 주행 차량 등이 있다. 모델 경량화의 주요 이점은 다음과 같다. 모델 크기 감소 : 작은 모델은 메모리 요구사항이 적어 메모리 용량 제약이 있는 모바일 장치나 임베디드 시..
10 비전 트랜스포머 (3) CvT pytorch 실습 CvT(Convolutional Vision Transformer)의 이론적인 내용은 이전 포스팅에서 확인할 수 있다. 2024.03.12 - [논문 리뷰] - [논문 리뷰] CvT: Introducing Convolutions to Vision Transformers ViT, Swin Transformer와 마찬가지로 허깅페이스 라이브러리로 사전 학습된 CvT 모델을 FashionMNIST 데이터셋으로 간단한 fine tuning 실습을 진행한다. 코드가 거의 동일하기 때문에 변경점과 모델 구조 등을 알아보고 평가 결과만 확인한다. 이미지 프로세서 "microsoft/cvt-21" 모델은 이미지 크기를 조절할 때 shortest_edge 키를 사용해 전처리를 진행한다. shortest_edge는 이미지..
10 비전 트랜스포머 (2) Swin Transformer pytorch 실습 Swin Transformer의 이론적인 내용은 이전 포스팅을 참고 바랍니다. 2024.03.09 - [논문 리뷰] - Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 허깅페이스 라이브러리로 사전학습된 Swin 모델을 FashionMNIST 데이터셋에 미세 조정하는 실습을 해본다. 학습 전에 patch embedding 출력과 patch merging 출력 등을 확인하여 논문에서 배운것과 동일한지 확인해보고 모델 학습을 진행한다. 사전 학습된 Swin 모델 불러오기 "microsoft/swin-tiny-patch4-window7-224" 모델을 사용한다. ImageNet-1K 데이터셋으로 224x224, 패치 해상도 4x4,..
10 비전 트랜스포머 (1) ViT 이전 포스팅에서 ViT 논문을 리뷰한 적이 있어서 여기서는 책의 내용을 몇 가지만 요약하고 파이토치 실습을 진행한다. 2024.01.23 - [논문 리뷰] - An Image Is Worth 16x16 Words : Transformers For Image Recognition At Scale 1. 합성곱 모델과 ViT 모델 비교 ViT는 이미지 시퀀스의 순서를 왼쪽에서 오른쪽 그리고 위에서 아래로 정하기 때문에 왼쪽 위의 패치를 1, 오른쪽 아래를 9라고 할 수 있다. 예를 들어 강아지의 오른쪽 귀에 대한 특징을 얻고 싶을 때 ViT는 셀프 어텐션으로 모든 이미지 패치가 서로에게 주는 영향을 고려해 이미지의 특징을 추출한다. 반면 CNN은 오른쪽 귀에 대한 특징을 2, 3, 5, 9 패치만 관여한다. ..