๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
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.
728x90
๋ฐ˜์‘ํ˜•