import os
from google.colab import drive
drive.mount('/drive')
os.chdir("/drive/MyDrive/KSOE/AI_test/2024/study/")
print(os.getcwd())
import random | |
from konlpy.tag import Mecab | |
from typing import List, Set | |
class EDA: | |
""" | |
EDA ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ฆ๊ฐํ๋ ํด๋์ค์ ๋๋ค. | |
๋์์ด ๋์ฒด ๊ธฐ๋ฅ์ ์ ์ธํ ๋ฒ์ ์ ๋๋ค. | |
Args: |
import random | |
from konlpy.tag import Mecab | |
from nltk.corpus import wordnet | |
from sentence_transformers import SentenceTransformer, util | |
from typing import List, Set | |
class EDA: | |
""" | |
EDA ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ฆ๊ฐํ๋ ํด๋์ค์ ๋๋ค. |
import json | |
import random | |
import re | |
import torch | |
from torch.utils.data import Dataset | |
from konlpy.tag import Mecab | |
from sentence_transformers import SentenceTransformer, util | |
from string import punctuation | |
from soynlp.normalizer import repeat_normalize | |
from pykospacing import Spacing |
KLUE STS ํํ ๋ฆฌ์ผ ๋ณด์: Loss Function ์ ์ ๋ฐ Pretrained Model์ ์ฌ์ฉํ STS Model ๊ตฌํ
์ด ํํ ๋ฆฌ์ผ์ ๊ธฐ์กด KLUE STS ํํ ๋ฆฌ์ผ์ ๋ค์ ๋ ๊ฐ์ง ์ฃผ์ ๊ฐ์ ์ฌํญ์ ํตํฉํฉ๋๋ค.
- STS Task ์ํ์ ์ํ Loss Function ์ ์: PyTorch๋ฅผ ์ฌ์ฉํ์ฌ STS task์ ์ ํฉํ loss function์ ์ง์ ์ ์ํ๊ณ ๊ตฌํํฉ๋๋ค.
- Pretrained Model์ ์ฌ์ฉํ STS Model ๊ตฌํ: Hugging Face Transformers ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ๊ณตํ๋ pretrained model์ ๊ธฐ๋ฐ์ผ๋ก STS model์ ๊ตฌํํ๊ณ , low-level PyTorch ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฐ์ฑ๊ณผ ์ ์ด๋ ฅ์ ๋์ ๋๋ค.
STS task๋ ๋ ๋ฌธ์ฅ ๊ฐ์ ์๋ฏธ์ ์ ์ฌ๋๋ฅผ ์์ธกํ๋ regression ๋ฌธ์ ์ ๋๋ค. ๋ฐ๋ผ์, ์์ธก๋ ์ ์ฌ๋์ ์ค์ ์ ์ฌ๋ ๊ฐ์ ์ฐจ์ด๋ฅผ ์ต์ํํ๋ ๋ฐฉํฅ์ผ๋ก ๋ชจ๋ธ์ ํ์ตํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด Mean Squared Error (MSE) loss function์ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
KLUE STS ๋ฐ์ดํฐ์ ๊ณผ DeBERTa๋ฅผ ํ์ฉํ ํ๊ตญ์ด ์๋ฏธ ์ ์ฌ๋(STS) ๋ชจ๋ธ ํ์ต ํํ ๋ฆฌ์ผ (๊ฐ์ ํ)
๋ณธ ํํ ๋ฆฌ์ผ์์๋ huggingface datasets
์์ ์ ๊ณตํ๋ KLUE STS ๋ฐ์ดํฐ์
์ ๋ก๋ํ๊ณ , ํฅ์๋ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๊ธฐ๋ฒ, EDA (Easy Data Augmentation)
๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ์ฆ๊ฐ, KoNLPy
์ Mecab
์ ์ฌ์ฉํ ํ ํฐํ, Microsoft
์ DeBERTa
๋ชจ๋ธ์ ํ์ตํ๊ณ ํ๊ฐํ๋ ์ ์ฒด ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ์์ธํ๊ฒ ์ค๋ช
ํฉ๋๋ค. ํนํ, ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๊ณผ์ ์์๋ URL
, ์ด๋ฉ์ผ
, ์ ํ๋ฒํธ
, ์ซ์
๋ฑ์ ํน์ ํ ํฐ์ผ๋ก ์นํํ๊ณ , HTML
ํ๊ทธ์ ์ด๋ชจ์ง๋ฅผ ์ ๊ฑฐํ๋ฉฐ, ๋ฐ๋ณต๋๋ ๋ฌธ์๋ฅผ ์ ๊ทํํฉ๋๋ค. ๋ํ, Py-Hanspell
๊ณผ PyKoSpacing
์ ์ฌ์ฉํ์ฌ ๋ง์ถค๋ฒ ๋ฐ ๋์ด์ฐ๊ธฐ ๊ต์ ์ ์ํํ์ฌ ๋ฐ์ดํฐ์ ํ์ง์ ๋์
๋๋ค. ๋ฐ์ดํฐ ์ฆ๊ฐ ๊ณผ์ ์์๋ Sentence-BERT
๋ฅผ ํ์ฉํ์ฌ ์์ฑ๋ ๋ฌธ์ฅ๊ณผ ์๋ณธ ๋ฌธ์ฅ ๊ฐ์ ์๋ฏธ์ ์ ์ฌ๋๋ฅผ ์ธก์ ํ์ฌ ์ผ์ ์์ค ์ด์์ ์ ์ฌ๋๋ฅผ ๊ฐ์ง ๋ฌธ์ฅ๋ง ์ฆ๊ฐ์ ํ์ฉํ๋๋ก ์ ์ดํ๊ณ , GPU/CPU ์ฌ์ฉ์ ์ต์
์ผ๋ก ์ ํํ ์ ์๋๋ก ํ์ฌ ํจ์จ์ ์ธ ์คํ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
ํ์ฌ local์ "product_specialist_241118" ์ด๋ผ๋ docker image๋ฅผ ๊ฐ๊ณ ์์ด. ์ด docker image๋ฅผ Google Cloud artifact registry(PATH="asia-northeast3-docker.pkg.dev/pjt-dev-hcecbt-chat/ar-dev-hcecbt-chat-specialist")์ ์
๋ก๋ํ๋ CLI๋?
Google Cloud Artifact Registry์ Docker ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ๊ธฐ ์ํ CLI ๋ช ๋ น์ด๋ค์ ์์๋๋ก ์์ฑํด๋๋ฆฌ๊ฒ ์ต๋๋ค.
# 1. Google Cloud ์ธ์ฆ ์ค์ (์ฒ์ ํ๋ฒ๋ง ์คํ)
gcloud auth configure-docker asia-northeast3-docker.pkg.dev
- Meta characters(๋ฉํ ๋ฌธ์): ๋ณธ๋ ๊ทธ ๋ฌธ์๊ฐ ๊ฐ์ง ๋ป์ด ์๋ ๋ค๋ฅธ ์ฉ๋๋ก ์ฌ์ฉํ๋ ๋ฌธ์
- ์ ๊ทํํ์์ ์๋ ๋ฉํ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ฉด ํน๋ณํ ์ญํ ์ ์ํํจ
.
^
$
*
+
?
{ }
# ์ tmux ์ธ์
์์ฑํ๊ณ ํด๋น ์ธ์
์ผ๋ก ์ด๋ํ๊ธฐ
tmux new-session -s <์ธ์
์ด๋ฆ>
- ctrl+b ํค๋ฅผ ๋๋ฅธ ํ ์์ ๋ผ์๋ค๊ฐ %๋ฅผ ์ ๋ ฅ(shift+5)ํ๋ฉด ๊ฐ๋ก๋ก ํฐ๋ฏธ๋ ํ๋ฉด์ ๋ถํ
- ctrl+b ํค๋ฅผ ๋๋ฅธ ํ ์์ ๋ผ์๋ค๊ฐ "๋ฅผ ์ ๋ ฅ(shift+')ํ๋ฉด ์ธ๋ก๋ก ํฐ๋ฏธ๋ ํ๋ฉด์ ๋ถํ
- ๋ถํ ๋ ์ฐฝ ๋ผ๋ฆฌ ์ปค์ ์ ํ์ ํ๋ ค๋ฉด ctrl+b ํค๋ฅผ ๋๋ฅธ ํ ์์ ๋ ํ ์ด๋ํ๋ ค๋ ๋ฐฉํฅ์ผ๋ก ๋ฐฉํฅํค
# ํ์ฌ ๋์์ค์ธ ์ธ์
๋ชฉ๋ก ํ์ธ
[๋ฌธ์ ํด๊ฒฐ์ ํจํด]
* ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ํ์ด๋ฅผ ์์ ๋จ๊ณ๋ก ๋๋๋ค.
1. "์ด ๋ฌธ์ ์์ ์ด๋ค ์์
์ ์๊ตฌํ๊ณ ์๋ ๊ฐ" ํ์
, ๋์ด
2.