본문 바로가기

전체 글129

[Multimodal Large Language Model - Part 3] 모델구조 ✓ MLLM 구조 MLLM이라는 것은 Multimodal Large Language Model의 약자이다.멀티모달 이라는 것은 단일 입력이 아닌 2개 이상의 입력이 들어갈때 표현하는 언어이다.Large Language Model 이라는 것은 대형언어모델 이라는 뜻이다.기본적으로 MLLM의 모델에서는 2가지의 입력이 들어간다. 바로 텍스트와 이미지.텍스트 - 토크나이징이 된상태로 모델의 입력으로 들어감. 즉, LLM이라고 그냥 생각하면 된다.이미지 - 다양한 비전모델을 보면 알겠지만, 이미지를 인코딩을 수행함(CLIP-ViT와 같이) Vision - encoder를 통과한 이미지는 Multimodal Projector 로 들어감.이유 : LLM의 입력에 들어가기 위해 Text입력의 Dimension 과 맞.. 2024. 11. 10.
[Multimodal Large Language Model - Part 2] LOSS 계산 ✓ LOSS 문제점 :일반적으로 LLM, MLLM이 아닌 모델을 다루다 보면 LOSS계산하는 부분을 모델 class의 외부에서 선언해서 활용하는 것을 직관적으로 쉽게 알 수 있다. 이해하기도 어렵지도 않고. 하지만 MLLM을 다루어본 결과 LOSS 선언은 모델 내부에서 되어있다는 점이 독특하였다.   ✓ LOSS 분석 : 2024. 11. 9.
[Multimodal Large Language Model - Part 1] 서막 시작 이유 : Multimodal Large Language Model 에 대해 관심이 많았다. 하지만, LLM의 생태계는 많이 구축이 되어있으나(huggingface) MLLM에 대한 생태계는 구축이 많이 되어있지가 않았다. 물론 연구자라면 당연히 논문과 Github를 보면서 이해하는 것이 맞다. 하지만 나는 내가 배터리 관련하여 제출하던 논문이 수 많은 reject 이슈로 인해 연구하고 있던 MLLM이 상당히 중단이 되어왔다. 도저히 나는 이러한 상태를 보고도 못있겠다고 생각이 들고 어영부영 있다가 빠르게 발전해가는 기술에 의해 내 연구가 망가질 것이라는 생각이 비수에 꽂혔다, 파편처럼 흩어져있는 연구내용을 하나로 통합하여 진행하려 한다.   이참에 티스토리에서 블로그 글을 써서 올리는 챌린지도 진행.. 2024. 11. 8.
[wandB 사용법] wandb사용으로 파라미터 최적화 ► wandb 사용 목적 : 모델 (하이퍼)파라미터 최적화 용도 = MLOps ► 본 글에서 사용 목적 : Transformer 모델의 Attention head와 Encoder block 수에 따른 최적화를 찾기 위한 용도  공식 docs: https://docs.wandb.ai/guides/sweeps/sweep-config-keys(여기에 들어가면 더 필요한 세부적인 파라미터를 확인 할 수 있음) ✓ 아래의 사진은 Sweep 를 위한 기본적인 옵션이다.      - Sweep : 하이퍼 파라미터를 최적화하는 도구→ 위의 파라미터를 보면 required와 아닌것으로 구분할 수 있다.method : 아래 3가지를 지원한다. 각각의 정의와 필요한것을 선택하는 기준은 타 블로그에서 개념을 찾아보면 좋을듯하.. 2024. 11. 7.
[Huggingface Trainer, SFTTrainer, TrainingArguments 설명 및 코드] LLM,MLLM,LMM 등의 모델등의 발달로 인해 Training을 좀더 편하게 할 수 있는 Trainer, SFTTrainer 방법이 주로 사용된다.  ► Trainer와 SFTTrainner 는 Transformers 모듈 내부의 학습하는 class이다.FeatureTrainerSFTTrainer(Supervised fine-tuning of pre-trained models)PurposeGeneral –purpose training from scratchSupervised fine-tuning of pre-trained modelsCustomizationHighly customizableSimpler interface with fewer optionsTraining workflowHandles co.. 2024. 10. 23.
[Multi GPU] MultiGPU를 통한 학습 1.  핵심 코드import torch.nn.parallel# deivce_ids : 학습에 사용할 GPU# oudput_device : 출력이 모이는 GPU, 즉 loss 계산과정을 output_device에서 하겠다는 의미.resnet_model = nn.DataParallel(resnet_model, device_ids=[0,1,2],output_device=2)  - 작동원리.        1. 매 iteration마다 Batch를 GPU의 개수만큼 나눈다. (scatter)    2. 모델을 각 GPU에 복사함. (replicate)    3. 각 GPU에서 forward 진행.    4. 각 GPU에서의 출력을 하나의 GPU로 모음 (gather)          1. 하나의 GPU에서 out.. 2024. 8. 27.