메모리에 대해..
·
AI
현재 AWQ로 opt모델을 양자화해서 평가하기까지의 실험을 진행중이기에 예시를 이로 들어서 서술함. 딥러닝 하드웨어와 메모리 계층 구조 (Memory Hierarchy)컴퓨터 시스템은 속도와 용량의 트레이드오프(Trade-off)에 따라 계층적으로 데이터를 저장하고 처리한다. 딥러닝 연산은 이 계층 간의 데이터 이동과 연산 장치의 상호작용으로 이루어진다.1. 스토리지 (Storage: HDD/SSD)정의: 데이터를 영구적으로 저장하는 비휘발성(Non-volatile) 메모리 공간이다.딥러닝에서의 역할:모델 파일 저장: 학습된 모델의 Weight파일(.pt, .bin, .safetensors 등)이 저장되는 곳이다.데이터셋 저장: 학습이나 평가에 사용할 원본 데이터(텍스트, 이미지 등)가 저장된다.코드 ..
lm_eval 사용방법
·
AI
0. 공통 사전 작업 (Prerequisites)모든 평가를 실행하기 전에 필수적으로 갖춰야 할 환경이다.lm-evaluation-harness 설치: 제공된 스크립트의 lm_eval 명령어를 쓰기 위해 필요하다.모델 경로 및 토크나이저: 양자화된 모델(MODEL_PATH) 안에 tokenizer.json이나 tokenizer_config.json이 반드시 있어야 한다. (스크립트는 없으면 원본에서 복사해오도록 잘 짜여 있다.)1. PPL (WikiText-2) 평가PPL 은 모델의 성능을 측정하는 지표이지 특정 데이터셋의 이름은 아니다. 하지만 NLP 벤치마크에서 PPL 을 측정한다고 하면 통상적으로 WikiText-2 (또는 WikiText-103) 데이터셋을 사용하여 측정한다.사전 작업:특별한 로그..
[PTQ] 1-bit AI Infra: Part 1.1, Fast and LosslessBitNet b1.58 Inference on CPUs 논문 리뷰
·
AI
서론인공지능 분야에서 대용량 언어 모델(Large Language Models, LLMs)의 발전은 놀라운 성과를 보여주고 있다. 그러나 이러한 모델들의 크기가 급격히 증가함에 따라 계산 비용, 메모리 사용량, 에너지 소비 등의 문제가 심각한 도전 과제로 대두되고 있다. 특히 모바일 디바이스나 엣지 컴퓨팅 환경에서 대용량 언어 모델을 실행하는 것은 하드웨어 제약으로 인해 거의 불가능한 상황이다. 이러한 문제를 해결하기 위해 최근 1비트 대용량 언어 모델에 대한 연구가 활발히 진행되고 있다. BitNet과 BitNet b1.58과 같은 혁신적인 접근법들은 모델의 속도와 에너지 효율성을 크게 향상시키는 동시에 다양한 디바이스에서의 로컬 LLM 배포를 가능하게 하는 유망한 방법을 제시하고 있다. 이러한 발전은..
nn.Linear
·
AI
코드 예시: RNN에서의 히든 스테이트 구현다음은 PyTorch를 사용한 RNN 클래스 구현 예시입니다:import torch.nn as nnimport torch.nn.functional as Fclass RNN(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(RNN, self).__init__() self.hidden_size = hidden_size self.i2h = nn.Linear(input_size, hidden_size) # 입력->히든 변환 self.h2h = nn.Linear(hidden_size, hidden_size) # 이전 히든->현재..
[Pytorch] 반지도 학습 구현해보기 - PyTorch 주요 함수 이해하기
·
AI
구현해볼 모델 반지도 학습 아키텍처반지도학습(Semi-Supervised Learning)의 핵심지도학습(Supervised Learning): 라벨이 있는 데이터(inputs_l)에 대해 Cross Entropy Loss를 사용하여 학습비지도 학습(Consistency Loss 적용): 라벨이 없는 데이터(inputs_u)에 대해 Teacher 모델의 출력을 정답처럼 학습EMA(Exponential Moving Average) 방식: Teacher 모델이 Student 모델보다 더 안정적인 가중치를 유지하면서 업데이트PyTorch를 활용한 CNN 기반 이미지 분류 모델 구현CNN(Convolutional Neural Network) 모델 정의CNN을 활용하여 32×32 크기의 RGB 이미지(3채널)를 ..
[인최기] Semi-supervised learning (준지도학습)
·
AI
MOTIVATION딥러닝의 가장 대표적인 방법론은 supervised learning (지도학습)이다. 하지만 supservised learning은 어쩌면 학습 데이터의 패턴을 외우는 학습법에 불과하다. 그러므로 한번도 보지 않은 데이터에 대해서는 맞추기 쉽지 않다. 일반화가 잘되기 위해서는 필연적으로 더 많은 labeled data가 요구된다. 성공적으로 딥러닝을 도입한 이미지 분야의 경우도 역시 대용량 labeled 이미지를 확보했기 때문에 좋은 성능을 얻을 수 있었다고 볼 수 있다. 하지만 labeled data를 확보하기 어려운 분야들도 존재한다. labeling에 전문성이 필요하거나 labeling에 걸리는 프로세스가 긴 분야의 경우 대용량의 labeled data를 얻기 힘들 수 있다. 또한..
[Transformer] Attention과 Self-Attention 차이
·
AI/DL
다음 그림이 트랜스포머 모델 구조인데, 어텐션은 총 세 군데서 사용된다.인코더의 Self-Attention : Query = Key = Value디코더의 Maked Self-Attention : Query = Key = Value디코더의 Encoder-Decoder Attention : Query : 디코더 벡터 / Key = Value : 인코더 벡터1, 2는 Q, K, V가 동일하기 때문에 Self-Attention이고 3은 Q는 디코더에서 K, V는 인코더에서 가져오니 그냥 Attention이다.-> query와 key, 그리고 value가 동일한 부분에 있을 때 셀프 어텐션이 되고, 디코더와 인코더에 나누어져 있으면 그냥 어텐션이 된다. 정확히는 다음과 같다. 출처 : https://wikidoc..
Residual Block 이해하기
·
AI
1. Residual Block이란?Residual Block(잔차 블록)은 딥러닝 모델에서 입력을 그대로 다음 레이어로 전달하는 Skip Connection을 포함한 블록이다.기본 아이디어는 "출력값을 바로 다음 레이어에 넣는 것뿐만 아니라, 원래 입력값도 더해주자!" 이다.즉, 일반적인 네트워크는 H(x)라는 함수를 학습하지만, Residual Block은 잔차(residual) F(x)를 학습하고, 이를 입력 x와 더해서 최종 출력 H(x)을 만든다. 점선으로 둘러싸인 residual block의 입장에서 보면, 들어오는 인풋 x가 있다고 할 때, 이 x를 그 블럭 내 레이어들을 통과시켜서 얻은 결과값 f(x)에다가 인풋 x를 그대로 더해준 것이 그 블럭의 최종 아웃풋이 된다.H(x) = F(x) ..
Batch, Step, Epoch 이해하기
·
AI
참고 링크 : 실험으로 알아보는 LLM 파인튜닝 최적화 가이드 Part 1. devocean.sk.com 1. Batch, Step, EpochBatch, Step 그리고 Epoch은 LLM 학습 과정에서 데이터 처리를 정의 하는 단위로, 학습 효율성과 성능에 직접적인 영향을 미칩니다.또한 학습 과정을 효과적으로 모니터링하려면 어떤 지표를 중심으로 관찰 할지 명확히 이해 하는 것도 중요합니다. 1.1 BatchBatch 크기는 한 번의 학습 단계(Training Step)에서 모델이 처리하는 데이터 샘플의 개수를 의미한다.그림 1에서 볼 수 있듯이, 학습을 위해 데이터셋에서 선택된 데이터 묶음이 바로 Batch이다.예를 들어, Batch 크기가 10이라면, 한 번의 Training Step에서 모델은 1..
[논문] A Survey of Resource-efficient LLM and Multimodal Foundation Models
·
AI
2.3 멀티모달 기초 모델(Multimodal Foundation Models)멀티모달리티(Multimodality)는 현재 기초 모델(FM, Foundation Model) 연구에서 중요한 연구 방향 중 하나이다. 대형 기초 모델은 다양한 모달 간 이해, 변환(translation), 생성(generation) 능력이 강력한 특징을 보인다.일반적으로 멀티모달 기초 모델 연구는 두 가지 방향으로 나뉜다.다양한 모달 데이터를 동일한 잠재 공간(latent space)으로 인코딩하는 방법주로 트랜스포머(Transformer) 기반 인코더를 사용한다.다양한 모달 데이터를 생성하는 방법주로 트랜스포머 디코더(Transformer Decoder)를 활용한다.특히, 텍스트를 기반으로 이미지를 생성(text-to-i..
doocong22
두콩이의 코딩일기