Developers 공간 [Basic](26)
-
[Flutter] DB 기초와 Firebase
데이터베이스(Database)란 정보를 수집하고 보관하기 위한 시스템 혹은 그 데이터의 묶음을 의미하며, 다양한 종류가 있습니다. 이 중 서비스에 최근 많이 활용되는 NoSQL 데이터베이스를 포함해 다양한 기능을 제공하는 Google의 플랫폼인 Firebase는 백엔드 기능까지 클라우드 서비스 형태로 제공하기 때문에 모바일 앱/웹을 개발하기 위해 활용되기도 합니다. 이번 글에서는 데이터베이스에 대한 기본적인 내용을 살펴보고, Flutter에 Firebase를 적용하는 과정을 살펴보려고 합니다. 1. Database and Firebase a. SQL vs NoSQL b. Firesbase DB2. Flutter with Firebase a. Firebase에 Firestore 셋팅하..
2025.01.30 -
[PyTorch] Multi-Loss 그리고 Huggingface Accelerator
모델을 구축하다 보면, 네트워크의 부분적 구조마다 Loss를 다르게 적용하고 싶은 경우가 생깁니다. 이번 글에서는 이런 상황일 때, PyTorch에서 Multi-Loss를 구현하는 방법을 전반적으로 살펴보겠습니다. 또한 LLM이나 Generative Model을 다루는 경우 분산 컴퓨팅을 위한 Huggingface 라이브러리의 Accelerator를 활용하기도 합니다. 따라서 기존에 존재하는 PyTorch의 코드를 Accelerator로 적용하는 방법을 살펴보고, 이 때도 Multi-Loss를 구현하면서 어떤 것을 주의해야하는지도 살펴보려고합니다.1. PyTorch a. 기본 구조 b. Multi-Loss 2. Accelerate a. PyTorch에서 Accelerate로 ..
2025.01.02 -
[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 -
[PyTorch] PyTorch Lightning 그리고 Distributed Computing
PyTorch Lightning은 PyTorch 코드를 구조화하고 간결하게 만들어주는 라이브러리로, 모델 학습 & 검증을 관리하기 쉽게 해줍니다. 이번 글에서는 PyTorch Lightning을 사용하는 방법과 Multi-Node를 포함한 Distributed Computing 방법들을 살펴보려고합니다. 그리고 마지막엔 PyTorch Lightning을 Multi-node distributed computing을 위해 사용하는 과정을 간단히 보이겠습니다.1. PyTorch Lightning2. Distributed Computing a. 다양한 Distributed Computing b. Multi Node Setting c. Horovod d. OpenMPI e...
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