Developers 공간 [Basic](23)
-
[PyTorch] Optimizer & LR Scheduler 정리
이번 글에서는 학습에 활용되는 Optimizer와 Learning Rate Scheduler를 살펴보고자 합니다. 보통 PyTorch를 활용해 학습을 하는 경우 epoch와 step에 따라서 아래 코드와 같이 구현을 하곤합니다.** Pytorch Tutorial : https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate** Pytorch Lightning : https://lightning.ai/docs/pytorch/stable/common/optimization.html#automatic-optimizationfrom torch import optimfrom torch.optim.lr_scheduler import Exponent..
2024.08.17 -
[Generative] Stable Diffusion 그 이후
이번 글에서는 StabilityAI에서 공개한 SD(Stable Diffusion)이 LDM기반으로 등장한 이후에, 개선된 다양한 모델의 히스토리를 살펴보고자합니다. 이런 다양한 SD들을 활용하기 위해서는 보통 Diffusers라는 라이브러리를 활용해 구현합니다. 따라서 다양한 모델들의 버전별 큰 특징들을 먼저 살펴보고, Diffusers라는 라이브러리를 활용해 구현할 때 성능 개선을 위해 사용하는 다양한 옵션에 대해서도 논문과 함께 살펴보고자 합니다.1. Core Models a. Stable Diffusion 2.0 b. Stable Diffusion XL c. Stable Diffusion 3.0 d. Stable Diffusion Turbo 2. Optional Imp..
2024.06.06 -
[NLP] GPT 기초 정리
GPT(Generative pre-trained transformers)는 OpenAI에서 개발된 LLM(Large Language Model)입니다. 정확하게는 PLM(Pre-trained LM, PTM)이라고 할 수 있는데, 최근 잘알려진 모델로는 GPT-4, LLaMA2, PaLM2 등이 있습니다. 이 중 GPT-Based의 모델들의 특징은 Decoder 기반으로 설계되었다는 것이고, 이들은 생성 task에 매우 강해 다른 NLP 데이터를 만드는 데에도 쓰이기도 합니다. 또한 이들이 사용하는 데이터는 주로 인터넷에서 크롤링 되었기 때문에, 결과물에 적절하지 않은 언어도 포함되기도 합니다.이들은 아래와 같은 NLP의 다양한 분야에서 뛰어난 성능을 보여줍니다.텍스트 생성(Text Generation..
2024.06.06 -
[Python] Multi-process와 Multi-thread 구현하기
프로젝트를 구성할 때 다양한 프레임워크를 활용해서 구현하시는 경우, 하나의 프로세스를 통해 실행하는 경우가 많습니다. 하지만 이번 글에서는 Python으로 여러개의 프로세스(Process)와 쓰레드(Thread)를 통해 프로젝트를 효율적으로 구성하고 싶은 경우에 대해 정리해 보고자 합니다. 1. Concept a. Process & Thread b. Multi-Process c. Multi-Thread 2. Inter-Process Communication a. Message Queue b. Shared Memory c. Memory Map d. Socket 3. Synchronization a. Mutex b. Semaphore c. Conditional Variable 4. Example a. Ser..
2024.01.21 -
[Server] grpc stream 서버 및 webRTC 서버 구축하기
어플리케이션을 설계하다보면 Client간의 P2P(Peer To Peer) 연결이 필요할 수도있고, 서버와의 streaming 연결이 필요할 수도 있는 등 다양한 Communication이 필요합니다. 이럴때 최근 많이 사용되는 Communication Protocol에는 HTTP, WebSocket, gRPC, WebRTC 등이 있고, 이중에 gRPC와 WebRTC를 위한 서버를 이번 글에서 구축해보고자 합니다. 개념을 먼저 살펴 본 뒤에, 직접 gRPC를 활용한 streaming서버를 구축해보고, WebRTC를 활용하기 위한 서버를 직접 구현해보고자 합니다.1. 개념정리 a. gRPC란? b. WebRTC란? 2. gRPC를 활용한 서버 구축 a. 환경 구축 b. exam..
2023.12.30 -
[Nvidia] TensorRT 구현하기 (Python)
TensorRT(TRT)는 Nvidia에서 제공되는 Deep Learning Inference를 위한 SDK입니다. PyTorch, Caffe, Tensorflow 등의 Deep Learning Framework를 활용해 학습된 모델을, 여러 플랫폼에 가장 적합한 Kernel을 선택하며, 각 제품 각 아키텍쳐에 맞는 가속을 자동으로 도와 최적의 GPU 자원을 활용해 Performance를 낼 수 있도록 도와주는 엔진이라고 볼 수 있습니다. ** Kernel : GPU에서 병렬 실행되는 명령의 모음 TensorRT를 이용하지 않고, 직접 CUDA 를 활용해 Custom한 로직으로 최적화할 수도 있으나, Nvidia에서 제공하는 API를 활용하는 것이 작업에 유용하기도 합니다. 이번엔 onnx파일을 활용해 ..
2023.12.08