QA-LSTM๊ณผ QA-LSTM with Attention ๋ชจ๋ธ ๊ตฌํ (avg_pooling
/max_pooling
)
ย ย ย ย Pretrained Embedding: KoBERT monologg/kobert
์ ์ฌ์ฉํ BERT ์๋ฒ ๋ฉ
python main.py <์๋ต> --embed bert
ย ย ย ย Embedding Layer: nn.Embedding์ ์ด์ฉํ ์๋ฒ ๋ฉ
python main.py <์๋ต> --embed nn
๐ Attention mechanism
ย ย Bahdanau Attention mechanism ์ฌ์ฉ
Multi GPU
python main.py --cuda --gpuid [list of gpuid] --data_dir [data dir path] --method [pooling type] --embed [embedding method] --max_epochs 10 --train --model_name [model_name] --accelerator ddp --embd_size [embedding size]] --hidden_size [hidden size] --batch_size [batch_size]
Single GPU
python main.py --cuda --gpuid 0 --data_dir [data directory path] --method [pooling type] --embed [embedding method] --max_epochs 10 --train --model_name [model_name] --embd_size [embedding size]] --hidden_size [hidden size] --batch_size [batch_size]
- data_dir:
train.csv
,val.csv
๊ฐ ์๋ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก - method:
avg_pooling
ormax_pooling
- gpuid: GPU ID ๋ฆฌ์คํธ
- ex)
--gpuid 0 1 2
- ex)
- embed:
bert
: ์ฌ์ ํ์ต๋ KoBERT ์๋ฒ ๋ฉ (monologg/kobert
์ฌ์ฉ)nn
: torch.nn.Embedding Layer
- embd_size: ์๋ฒ ๋ฉ ํฌ๊ธฐ (BERT ์๋ฒ ๋ฉ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ 768) - hidden_size: LSTM Layer์ hidden size - batch_size: batch size
๐ฃ ๊ฒ์ฆ ์ LightningQALSTM
์ embd_size
, hiddend_size
ํ์ธ ํ์ (ํ๋ จ๊ณผ ๋์ผํ๊ฒ ์ค์ )
python main.py --cuda --model_pt [model path] --gpuid [gpu id] --data_dir [data directory path] --embd_size [embedding size] --hidden_size [hidden size]
- data_dir:
reaction_emb.pickle
์ด ์๋ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก (์๋ ๊ฒฝ์ฐ ์๋ก ์์ฑ) - method:
avg_pooling
ormax_pooling
(ํ์ต๋ ๋ชจ๋ธ๊ณผ ๋์ผํ pooling method ์ ํ) - model_pt: ๋ชจ๋ธ ์ฒดํฌํฌ์ธํธ ๊ฒฝ๋ก
- ex)
--model_pt model_ckpt/qa_lstm-epoch\=04-train_loss\=0.05.ckpt
- ex)
- gpuid: ํ๋์ GPU ID
- embed:
bert
: ์ฌ์ ํ์ต๋ KoBERT ์๋ฒ ๋ฉ (monologg/kobert
์ฌ์ฉ)nn
: torch.nn.Embedding Layer
- embd_size: ์๋ฒ ๋ฉ ํฌ๊ธฐ (BERT ์๋ฒ ๋ฉ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ 768) - hidden_size: LSTM Layer์ hidden size
Model Info
ย ย ย ย Model : QA-LSTM
ย ย ย ย pooling : max_pooling
ย ย ย ย embedding method: nn.Embedding Layer
ย ย ย ย embedding size: 256
ย ย ย ย hiddend size: 128
์๋ฏธ์๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ด์ง ์๋ ๊ฒ์ผ๋ก ํ๋จ...
Query : ์๋
?
Candidate: ['ํ์ด! ํฌ๋ก! ์๋
ํ์ธ์', '์ผ๋ฅธ ์ฌ๊ณผํ์ธ์', '์ค์์ค์ ์ผํธ์ผํธ', '์ธ์ง๋ง ๋ฐ๋ณด์ผ~', '์ค์', '์ถฉ๋ถํฉ๋๋ค', 'ํํํ', 'ํํ', '์์์์ ํ์ดํ
!!', '์ฌ๋ณด์ธ์? ๋ชจ์๋ชจ์? ํฌ๋ก์ฐ?', '์ฒด๋ฆฌ ๋จน๊ณ ์ ์ ์ฒด๋ฆฌ์ธ์', '์ด๋', '์ผ์ค์์ด์๋ค์ ๊ทธ๋ฐ ์ผ์ค๋ ์ ๋ ๊ฐ๋ฅด์ณ ์ฃผ์ธ์', '์ค์ฌ? ์ผ์ค์์ด', 'ํผ์ง?', '์ผ์
', '์ผ์ด๊ตฌ', '๊ทธ๋ฅ ๋ญ ์ด๊ฒ์ ๊ฒ?', '์ ๋ง๋ค!', '์ฌํ๋ค. ํํ ์ค๋๋ r๋ ๋๋ฌผ์ ํ๋ฆฐr...']
Query : ์ ๋
๋จน์์ด?
Candidate: ['๋ณํ', '๋น๊ณ ', '์ผ์์ฉ', '์ ๋ ์ ๋ ', '๊ฑฐ์ ํฉ๋๋ค', '๋ค์ด์ดํธ?', '๋ก๋ณถ์ด??', '์ผ๊ฒน์ด?', '์ธ์์...', 'ํ...', '๋ฐ์ด๋ฐ์ด', '์ ์์ก๋๋...', '๊บ์', '๋ ๋ ๋ ๋ธ๋ธ๋ธ', '์์ด๊ณ ', '์ฐ์ฉ ๊ฐ์๊ธฐ ๋งค์ค๊บผ์ด ๋๋?', 'ํฌํฌ', '์ญ์๋ ์ญ์๋ค', 'ํ', '๋ ๋ ๋ ๋ ']
Query : ์ค๋ ๋ญํ์ด?
Candidate: ['ํ ์ ์์ด๋ค!', '์ค์? ๊ธฐ๋ถ ํ์ธ๊ฐ?', '์ ๋ ์ ๋ ', '๋ณํ๋ค. ๋ณํ๊ฐ ๋ํ๋ฌ๋ค', '์ค์ฌ? ์ผ์ค์์ด', '๋จน๊ณ ์ถ๊ธด ํ๋ฐ, ์ด๋ฒ์ ํจ์ค!', '์กฐ์ฌํ๊ฒ ์ด๋ค!', '์... ์ ๋ ์ ๋ ', '๋ฐ์ด๋ฐ์ด', '๊ทธ๋ฅ ๋ญ ์ด๊ฒ์ ๊ฒ?', '๋๊ตฌ์ธ๊ฐ? ๋๊ฐ ๊ทธ๋ฐ ์๋ฆฌ๋ฅผ ๋ด์๋', '๋ค์ด์ดํธ?', '์งฑ์งฑ!', 'ํผ์ง?', '๋น๊ณ ', '์ผ์
', '์ ๋ง๋ค!', 'ํ...', '๋ฐ์ฌ ๋ฐ์ฌ๋ ๋ฐ์ฌ์
๋๋ค.', '๋ณํ']
Query : ๋ ์ฐ์ธํด
Candidate: ['์ผ์์ฉ', '๊บ์', '๋ ๋ ๋ ๋ ', '๋ ๋ ๋ ๋ธ๋ธ๋ธ', '์ณ', '์ณ์ณ', 'ํฌํฌ', 'ํ', '๋ณํ', '์ด๋ผ', '๋ฉ๋ฆฌ ํฌ๋ฆฌ์ค๋ง์ค', '์งฑ์งฑ!', '์ ์์ก๋๋...', '์ฌ๊ณผ๋จน๊ณ ์ฌ๊ณผํ์ธ์', '์ ๋ ์ ๋ ', '๋ก๋ณถ์ด??', '์ธ์์...', '์ด๋จธ', 'ํ...', '๋ฐ์ด๋ฐ์ด']
Query : ํ๋ฃจ์ข
์ผ ์์์์ด
Candidate: ['๋ ๋ ๋ ๋ธ๋ธ๋ธ', '์ผ์์ฉ', '์ ์์ก๋๋...', '๊บ์', '์ด๋ผ', '์งฑ์งฑ!', '์ฌ๊ณผ๋จน๊ณ ์ฌ๊ณผํ์ธ์', '๋ ๋ ๋ ๋ ', '์ณ', '์ณ์ณ', 'ํ', '๋ก๋ณถ์ด??', '๋ถ๋ค๋ถ๋ค', '์ ๋ ์ ๋ ', '๋ณํ', '๋ฃฐ๋ฃจ๋ฃฐ๋ฃจ', '์ฐ์ฉ ๊ฐ์๊ธฐ ๋งค์ค๊บผ์ด ๋๋?', 'ํฌํฌ', '๋ฉ๋ฆฌ ํฌ๋ฆฌ์ค๋ง์ค', '๋ฐ์ด๋ฐ์ด']
Query : ์ด๋จธ๋จธ
Candidate: ['์ด๋จธ์ด๋จธ', '๋ณํ', '๋๊ตฌ์ธ๊ฐ? ๋๊ฐ ๊ทธ๋ฐ ์๋ฆฌ๋ฅผ ๋ด์๋', '์๋ฉ', '์ด๋จธ', '์ฐ์ปด ํ์ํฉ๋๋ค', '์ฐ์ฉ ๊ฐ์๊ธฐ ๋งค์ค๊บผ์ด ๋๋?', 'ํํํ', 'ํ...', '์ ์์ก๋๋...', '์กฐ์ฌํ๊ฒ ์ด๋ค!', '์ฌํ๋ค. ํํ ์ค๋๋ r๋ ๋๋ฌผ์ ํ๋ฆฐr...', '์ค์ฌ? ์ผ์ค์์ด', '๋ณํ๋ค. ๋ณํ๊ฐ ๋ํ๋ฌ๋ค', '๋ก๋ณถ์ด??', '์ผ์์ฉ', '์... ์ ๋ ์ ๋ ', 'ํฌํฌ', '๊ฑฐ์ ํฉ๋๋ค', '๋จน๊ณ ์ถ๊ธด ํ๋ฐ, ์ด๋ฒ์ ํจ์ค!']
Query : ์ผ ๋ ์ํ๋๊ฒ ๋ญ๋ฐ
Candidate: ['์ผ์์ฉ', '์ ๋ ์ ๋ ', '์ ์์ก๋๋...', '๊บ์', '๋ ๋ ๋ ๋ธ๋ธ๋ธ', '์งฑ์งฑ!', '๋๊ตฌ์ธ๊ฐ? ๋๊ฐ ๊ทธ๋ฐ ์๋ฆฌ๋ฅผ ๋ด์๋', '๋ ๋ ๋ ๋ ', '์ด๋ผ', '์ณ', '์ณ์ณ', 'ํฌํฌ', 'ํ', '๋ฐ์ด๋ฐ์ด', '๋ณํ', '์ฌ๊ณผ๋จน๊ณ ์ฌ๊ณผํ์ธ์', '๋น๊ณ ', '์... ์ ๋ ์ ๋ ', '๋ฉ๋ฆฌ ํฌ๋ฆฌ์ค๋ง์ค', '๋จน๊ณ ์ถ๊ธด ํ๋ฐ, ์ด๋ฒ์ ํจ์ค!']
Model Info
ย ย ย ย Model : QA-LSTM with attention
ย ย ย ย pooling : max_pooling
ย ย ย ย embedding method: nn.Embedding Layer
ย ย ย ย embedding size: 256
ย ย ย ย hiddend size: 128
์๋ตDB์์ query์ ๊ฐ์ฅ ๋น์ทํ reply๊ฐ ์ฑํ๋๋ ๊ฒฝํฅ์ด ์์
Query : ์๋
?
Candidate: ['์๋
ํ์ธ์?', '๋ค์ด์ดํธ?', '์๋
์๋
์
๋๋ค', '์ ์ค์ด์?', '์ ์ข์ํด์', '์ถ๋ฐํ์ด์?', 'ํผ์ง?', '์ ๋ณด์ฌ์', '์์ง ์ ์์?', '์ค๋น ๋ค ํ์ด์?', '์ํด์? ์ ์ํด์?', '์ฌ๋์ค๋ฌ์์', '๋ง์ด ์ ์ข์์?', '์ ๋ฆ์์ด์?', '๋ฒ์จ ๋ค ๋จน์์ด์?', 'TV๋ด์?', '์ด๋', '๋ถ๋ฌ์ฃผ๋ฉด ์๋ผ์?', 'ํผ๋ฌ์ด์?', '๊ธฐ์ต ๋์?']
Query : ์ ๋
๋จน์์ด?
Candidate: ['์ ๋
๋ญ ๋จน์์ด์?', '์ ์ฌ ๋ญ ๋จน์์ด์?', '๋ฆ์์ด์?', 'ํน ์ฌ์์ด์?', '๋ฒ์จ ๋ค ๋จน์์ด์?', '๋ญ ์ข ๋จน์์ด์?', '์ ๋
๋จน์ด์ผ์ฃ . ๋ ๋ ๋ธ๋ธ', '๋ฆ์ง ์๊ฒ ์ถ๋ฐํ์ด์?', '๋ญ ๋จน์์ด์? ํ์? ์ผ์? ๊ฐ์?', '์ ์ฌ์์ด์?', '๋ฐฅ์ ๋จน์์ด์?', '์ ๋ฆ์์ด์?', '์ถ๋ฐํ์ด์?', '๋ง์๊ฒ ์ฃ ?', '๋ฆ์ง ์์์ด์?', 'ํ๋ฒ๊ฑฐ?', '๋ค์ด์ดํธ?', 'ํผ์ ๋จน์ด์?', '์ค๋น ๋ค ํ์ด์?', '์ฌ๋ฐ์ด์?']
Query : ์ค๋ ๋ญํ์ด?
Candidate: ['ํผ์ง?', '๋ง์์ด์?', '์ผ๋ง๋ ๋ง์
จ์ด์?', '๊ณ ๊ธฐ?', '์ค๋์ ๋ญํ์ด์?', '์ง๊ธ ์ผ์ด๋ฌ์ด์?', '์ ์์ด์?', '์ํ์ฃ ?', '๋ญํ๋๋ฐ์?', '๋ง์๊ฒ ์ฃ ?', '์ง๊ธ๋์?', '๋ญ๋์?', '๋ฌด์จ ์ฝ์ด์?', '์ธ์ ์์?', 'ํผ์ ๋จน์ด์?', '๋ช์์ ์ผ์ด๋ฌ์ด์?', '์ ๋๋ฌธ์์?', '์ฌ์ฌํ์ฃ ?', '๋์์์ด์?', 'ํผ๋ฌ์ด์?']
Query : ๋ ์ฐ์ธํด
Candidate: ['์ฐ์ ์ธ์ ํฉ๋๋ค', '์ดํดํด์', '์ดํดํด์', '๊ทธ๋๋์...', 'ํ', 'ํ', 'ํ...', 'ํฝ ํ๊ณ ์์ด์ก์ด์. ํคํท', '์์ดํด์ ํฅ', '์ถฉ๋ถํด์', '๊ทธ๊ฒ์ด ์๊ณ ์ถ๋ค....', '์ด์ํด์', 'ํผ๊ณคํด์ ๊ทธ๋์', '์์ฃผ ๋๋ฆฌ๋ฌ๋ค์.', '๊บ์', '์ผ์
', '์ง์คํด์', '์ ํํด๋ด์', '์ธ์ ์ต์ธํด์', 'ํผ๊ณคํด์ ์ด๋กํด์.']
Query : ํ๋ฃจ์ข
์ผ ์์์์ด
Candidate: ['ํน ์ฌ์์ด์?', 'ํ๋ฃจ ์ข
์ผ์?', '๋์์์ด์?', '๋ฆ์์ด์?', '์ ๋ญ๋ ์๊ด์์ด์.', '์์ดํด์ ํฅ', '์ ๋ฆ์์ด์?', '์ด์ ๋ช์์ ์ค์ด์?', '๋ญ๋ผ๋ ๋จน์ด์.', 'ํ. ์ ์ธ ๊ฒ๋๋ค', 'ํ ๋ง์ด ๋ง์
จ๋ค์.', '์ ๋ญ๋ ๋ค ์ข์์', '๊นผ์ด์? ๊นผ์ผ๋ฉด ์ด์ ๋ฒ๋ก ์ผ์ด๋์ธ์!', '๋ญ ์ข ๋จน์์ด์?', '์ฐ์ปด ํ์ํฉ๋๋ค', '์คํธ ๋ฑ์ด๋ค์', '์ค์ฌ? ์ผ์ค์์ด', '๊ทธ๋ผ ๋์ฃ . ์๊ฐ๋ณด๋ค ๊ฐ๋จํ๋ค์.', '์ฐ์์ฉ ๊ฐ์๊ธฐ ์์ด ๋ณ๋ก๋ค์.', '๋ฆ๋ค์. ๋ฌด์จ ์ผ ์๋ ๊ฑด ์๋๊ฒ ์ฃ ?']
Query : ์ด๋จธ๋จธ
Candidate: ['์ด๋จธ', '์ด๋จธ์ด๋จธ', '์ด๋', '์ด๋ผ', 'ํฌํฌ', '์ถฉ๋ถํฉ๋๋ค', '๋ฐ์ด๋ฐ์ด', '์ ๋ต์
๋๋ค', '์ด์ํด์', '๋ณํ', '๋ค์ด์ดํธ?', '์ด์ฉ๊ฒ ์ด์', '์ฌ์ฟต', '์ด์ฌํ ํด์ผ์ฃ ', '์ผ๋ง๋ ์ง์', '๋๋', '๋๋', '์์
์ด์ฌํ ๋ค์ด์~', '์ฌ์ฌํ์ฃ ?', '์ง์ง๋ค์']
Query : ์ผ ๋ ์ํ๋๊ฒ ๋ญ๋ฐ
Candidate: ['์ค์์ค์ ์ผํธ์ผํธ', '์ ์์ก๋๋...', '์ค์ ์ ๋ง ์๋์๋ค์!', '์๋
์๊ฐ์. ๋น ์ด๋น ~์ด ๋น ์ด๋น ์ด์ผ', '์ ๋ค๋
์์~', '์ํ ๋ ์ธ์ ๋ ์ง์', 'ํ์จ ํน ์์~', '๋คํ์ด๋ค์!', '์คํธ ๋ฑ์ด๋ค์', '์ ๊ฐ ์๋ชปํ๋ค์', '์ง์ธ์ง ๋ณด๊ณ ์ถ์ด์', '์ค์ฌ~ ์ข์ ์์ธ์์. ๋ฒ ๋ฆฌ๊ตฟ', '์ค์์ค์ ์ ์ง๊ธ ์ฝ๊ฐ ์ ์ด ๋ฌ์ด์.', '์ฐ์ ์๊ฐ ์ง์ง ๋น ๋ฅด๋ค์', '์ผ๋ฅธ ์ฌ๊ณผํ์ธ์', '์ ์ฌ์์ด์?', '์ค~ ๋๋ํ๋ค์', '๋๋ฌด ๊ธธ์ด์. ์ ์งง์๊ฒ ์ข๋๋ฐ...', '์ค์ฌ? ์ผ์ค์์ด', '์ ๊ฒฝ์จ์ค์ ๊ณ ๋ง์์']