๐ถ ํ์ต ๋ฒ์
- ์คํ ๋ค๋๋ฐ
- ๊ฐ์ธ ๊ณต๋ถ
๐ถ ํ์ต ๋ด์ฉ
โจ ๊ฐ์ธ ๊ณต๋ถ
โ๏ธ ํ ํฐ ์๋ฒ ๋ฉ1. ์๋ฒ ๋ฉ (embedding) 1) ๊ฐ๋ : ๋ฐ์ดํฐ๋ฅผ ์๋ฏธ๋ฅผ ๋ด์ ์ซ์ ์งํฉ์ผ๋ก ๋ณํํ๋ ๊ฒ 2. ํ ํฐ ์๋ฒ ๋ฉ 1) ๊ฐ๋ : ํ ํฐ์ ์๋ฒ ๋ฉํ๋ ์์ 2) ๋ด์ฉ - ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ด ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ ์ ๋ ฅ์ผ๋ก ๋ค์ด์ค๋ ํ ํฐ๊ณผ ํ ํฐ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๊ณ์ฐํด์ผ ํ๋ค. - ํ ํฐ๊ณผ ํ ํฐ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด์๋ ํ ํฐ์ ์๋ฏธ๋ฅผ ์ซ์๋ก ๋ํ๋ผ ์ ์์ด์ผ ํ๋ค. - ํ ํฐํ์์ ๋ถ์ฌํ ํ ํฐ ์์ด๋๋ ํ๋์ ์ซ์์ผ ๋ฟ์ด๋ฏ๋ก ์ซ์์ ์๋ฏธ๋ฅผ ๋ด์ ์ ์๋ค. - ์๋ฏธ๋ฅผ ๋ด๊ธฐ ์ํด์๋ ์ต์ 2๊ฐ ์ด์์ ์ซ์ ์งํฉ์ธ ๋ฒกํฐ์ฌ์ผ ํ๋ค. ๐ฉ ์์ ๋ด์ฉ์ ๋ง๊ฒ ํ ํฐ์ ์๋ฒ ๋ฉํ๋ ๊ณผ์ ์ด ํ์ํ๋ค. ๐ฉ ํ์ดํ ์น๊ฐ ์ ๊ณตํ๋ nn.Embedding ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ค.
โ๏ธ ํ ํฐํ ์ํ ์ฝ๋# ํ ์คํธ๋ฅผ ์ ์ ํ ๋จ์๋ก ๋๋ (๋์ด์ฐ๊ธฐ ๊ธฐ์ค) input_text = "๋๋ ์ต๊ทผ ํ๋ฆฌ ์ฌํ์ ๋ค๋ ์๋ค" input_text_list = input_text.split() print(input_text_list) # ['๋๋', '์ต๊ทผ', 'ํ๋ฆฌ', '์ฌํ์', '๋ค๋ ์๋ค'] # ํ ํฐ (์ซ์ID ๋ถ์ฌ) # ์์ด๋ ๋์ ๋๋ฆฌ์ ์์ด๋ str2idx = {word:idx for idx, word in enumerate(input_text_list)} # ํ ํฐ ๋์ ๋๋ฆฌ ๋ง๋ค๊ธฐ idx2str = {idx:word for idx, word in enumerate(input_text_list)} print(str2idx) # {'๋๋': 0, '์ต๊ทผ': 1, 'ํ๋ฆฌ': 2, '์ฌํ์': 3, '๋ค๋ ์๋ค': 4} print(idx2str) # {0: '๋๋', 1: '์ต๊ทผ', 2: 'ํ๋ฆฌ', 3: '์ฌํ์', 4: '๋ค๋ ์๋ค'} # ํ ํฐ์ ํ ํฐ ์์ด๋๋ก ๋ณํ input_ids = [str2idx[word] for word in input_text_list] print(input_ids) # [0, 1, 2, 3, 4]
โ๏ธ ํ ํฐ ์๋ฒ ๋ฉ ์ํ ์ฝ๋
import torch import torch.nn as nn # 1. ์๋ฒ ๋ฉ ๋ ์ด์ด ์์ฑ # len(str2idx) ํฌ๊ธฐ์ ๋จ์ด ์ฌ์ ๊ณผ ๊ฐ ๋จ์ด์ ๋ํด 16์ฐจ์์ ๋ฒกํฐ๋ฅผ ์ถ๋ ฅ embedding_dim = 16 embed_layer = nn.Embedding(len(str2idx), embedding_dim) # 2. ์๋ฒ ๋ฉ ๋ณํ # embed_layer๋ฅผ ํตํด ๊ฐ ๋จ์ด์ ์๋ฒ ๋ฉ์ ์กฐํ # ๊ฒฐ๊ณผ์ ์ผ๋ก, ๊ฐ ๋จ์ด๋ 16์ฐจ์์ ๋ฒกํฐ๋ก ํํ # ์ฌ๊ธฐ์ 5๋ ๋ฌธ์ฅ์ ๋จ์ด ์, 16์ ์๋ฒ ๋ฉ ์ฐจ์ input_embeddings = embed_layer(torch.tensor(input_ids)) # (5, 16) # 3. ์๋ฒ ๋ฉ ํ ์ ์กฐ์ # unsqueeze(0)๋ฅผ ํธ์ถํ์ฌ ์๋ฒ ๋ฉ ํ ์์ ์ฐจ์์ (1, 5, 16)์ผ๋ก ์กฐ์ # ์ผ๋ฐ์ ์ผ๋ก ๋ฐฐ์น ํฌ๊ธฐ๋ฅผ ๋ํ๋ # โป ๋ฐฐ์น ํฌ๊ธฐ(batch size) # - ๋จธ์ ๋ฌ๋์์ ๋ชจ๋ธ์ ํ์ต์ํฌ ๋ ํ ๋ฒ์ ๋คํธ์ํฌ์ ์ฃผ์ ๋๋ ๋ฐ์ดํฐ ์ํ์ ์ input_embeddings = input_embeddings.unsqueeze(0) # (1, 5, 16) # 4. ์๋ฒ ๋ฉ ํ ์์ ํํ ํ์ธ input_embeddings.shape
๐ถ ๋๋์
1. ๋์ ์ง์ค๋ ฅ ๋ ธ๋ต
'๊ต์ก > ์คํ๋ฅดํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [TIL] ๋ด์ผ๋ฐฐ์์บ ํ AI 9๊ธฐ - 23ํ (3) | 2025.02.06 |
|---|---|
| [TIL] ๋ด์ผ๋ฐฐ์์บ ํ AI 9๊ธฐ - 21ํ (4) | 2025.02.04 |
| [TIL] ๋ด์ผ๋ฐฐ์์บ ํ AI 9๊ธฐ - 20ํ (0) | 2025.02.03 |
| [TIL] ๋ด์ผ๋ฐฐ์์บ ํ AI 9๊ธฐ - 19ํ (0) | 2025.01.31 |
| [TIL] ๋ด์ผ๋ฐฐ์์บ ํ AI 9๊ธฐ - 18ํ (2) | 2025.01.09 |