728x90 반응형 Deep Learning78 LLM의 모든 것 3 [PEFT-Parameter-efficient fine Tuning] PEFT(Parameter-efficient fine Tuning) : 기존의 경우, 사전 학습된 LLM을 다운스트림 데이터셋에 따라 파인 튜닝하면 사전학습된 모델을 그대로 사용하는 것보다 확실한 성능 향상을 보여준다. : 하지만, 모델이 점점 커짐에 따라 모델 전체를 Fine tuning 하는 것은 불가능! : 메모리 저장 공간 및 계산 비용에 대한 문제점도 존재 ⇒ 해당 문제들을 해결하기 위해 나온 것이 PEFT 이다. 💡 PEFT의 역할 : 대부분의 파라미터를 프리징하고 일부의 파라미터만을 파인튜닝함으로써 저장공간과 계산능력을 대폭 줄인다. catastrophic forgetting(파국적 망각)의 극복 : Fine tuning 시 발생되는 문제로 새로운 테스크를 학습함에 따라 기존 테스크에 대한 .. 2024. 3. 22. LLM의 모든 것 2 [RAG-Retrieval Augmented Generation] LangChain(랭체인) : 대규모 언어 모델과 어플리케이션의 통합을 간소화하는 SDK(소프트웨어 개발 키트 - 개발 도구의 집합체) : 대규모 언어 모델(LLM)을 기반으로 애플리케이션을 구축하기 위한 오픈 소스 프레임워크 : 쉽게 말하면 LLM 밀키트라고 생각하는 것이 편하다. : LLM을 구성하기 위한 모듈들이 존재 모델 I/O : 언어 모델과의 인터페이스 프롬프트를 관리하고 공통 인터페이스를 통해 언어 모델을 호출하고 모델 출력에서 정보 추출 데이터 연결 : 애플리케이션별 데이터와의 인터페이스 데이터를 로드, 변환, 저장 및 쿼리하기 위한 빌딩 블록을 제공 체인 : 호출 시퀀스 구축 복잡한 애플리케이션은 LLM을 상호, 또는 다른 구성요소와 체인으로 연결해야 한다. 랭체인은 이렇게 ‘체인으로 연.. 2024. 3. 22. LLM의 모든 것 1 [RAG-Retrieval Augmented Generation] 1. RAG - Retrieval Augmented Generation : 검색 증강 생성 : 새로운 지식에 관한 텍스트 데이터 소스를 Embedding해서 Vector stores에 저장하고, 프롬프트 구성을 진행할 때 외부 데이터 소스로부터 가져온 텍스트 데이터를 함께 이용해서 프롬프트를 구성한 뒤 LLM으로부터 답변을 얻어낸다. 사용자 질문 질문 임베딩 및 내 데이터도 임베딩 진행 이후, 벡터 DB(저장소)에 임베딩된 데이터를 저장 질문을 이용해 저장해놓은 DB 저장소에서 검색 지시 프롬프트 구성 + 질문(query 재생성) + 검색 결과 n개 > 언어모델 GPT에게 제공 언어 모델이 답변 생성 답변 출력 2-2) 임베딩 모델 : AI가 사람의 언어를 이해하기 위한 방법으로 숫자로 변환 해주는 AI.. 2024. 3. 5. [Transformer] train.py, dataset.py, config.py, Mask 구현하기 - 2 (Pytorch) 지난 시간에 이어, 오늘은 나머지 train.py, config.py, dataset.py 파일을 구현했다. https://www.youtube.com/watch?v=ISNdQcPhsts 이 분 코드를 바탕으로 구현하였습니다. 1. Dataset.py 구현 1-1. Bilingual Dataset 사용한 데이터셋은 Hugging Face에서 제공하는 opus_books Dataset을 활용하였다. https://huggingface.co/datasets/opus_books/viewer/en-it opus_books · Datasets at Hugging Face { "en": "Nor could I pass unnoticed the suggestion of the bleak shores of Laplan.. 2024. 2. 21. [Transformer] 아키텍처 구현하기 - 1 (Pytorch) Transformer는 논문으로만 읽어봤지, 코드로 뜯어보는 것은 처음이다. 논문 저자들은 정말 천재가 맞는 것 같다. 유튜브를 참고해서 코드를 구현하였으며, 이번 포스팅은 오로지 아키텍처에만 초점을 맞췄다. 데이터 부분은 다음주에 올릴 예정. 1. Input Embedding 구현하기 import torch import torch.nn as nn import math #Input embedding class InputEmbeddings(nn.Module): #d 차원 설정, vocab size 설정(얼마나 많은 단어 넣을건지) def __init__(self,d_model : int, vocab_size : int): super().__init__() self.d_model = d_model self... 2024. 2. 17. [UNet] copy and crop 코드 구현 및 아키텍처 구현하기 (Pytorch) 다른 블로그들에서는 padding을 2로 맞춰서, 따로 copy and crop을 하진 않았지만, 해당 논문의 그림을 보고 재현하기 위해 padding=0으로 설정해서 본 아키텍처를 새로 구축하였다. import torch.nn as nn import torch.nn.functional as F import torch import os import numpy as np from torchvision import transforms #https://sd118687.tistory.com/8 (Mirroring extrapolate) class UNet(nn.Module): #copy and crop 함수 정의 #batch_size, channels, height, width def copy_and_crop(.. 2024. 2. 8. 이전 1 2 3 4 ··· 13 다음 728x90 반응형