Ko-En Translation

๋ฐ์ดํ„ฐ ์ค€๋น„

๋ฐ์ดํ„ฐ์…‹

AI Hub์˜ ํ•œ๊ตญ์–ด-์˜์–ด ๋ฒˆ์—ญ ๋ง๋ญ‰์น˜(๋ณ‘๋ ฌ) ์‚ฌ์šฉํ•œ๋‹ค.

1_๊ตฌ์–ด์ฒด(1).xlsx์˜ 200,000๊ฐœ์˜ ํ•œ๊ตญ์–ด-์˜์–ด ์Œ์„ ์ด์šฉํ•ด ์–ดํœ˜๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํ•™์Šตํ•œ๋‹ค.

์ด ์™ธ์—๋„ ๋งŽ์€ ์…‹์ด ์žˆ๋‹ค.

ํŒŒ์‹ฑ

xlsx ํŒŒ์ผ์ด๋ฏ€๋กœ pandas์™€ openpyxl์„ ์„ค์น˜ํ•ด ํŒŒ์‹ฑํ•˜๊ณ , ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ์ €์žฅํ•œ๋‹ค. ์ €์žฅํ•  ๋•Œ ๋ฏธ๋ฆฌ ์ „์ฒ˜๋ฆฌ ๋ฐ tokenize ํ›„ ์ €์žฅํ•œ๋‹ค.

๋ฌธ์žฅํ•ด ์กด์žฌํ•˜๋Š” ๋ฌธ์žฅ๋ถ€ํ˜ธ ์•ž์— ๊ณต๋ฐฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํ•œ๊ธ€/์˜์–ด์™€ ํ•„์š”ํ•œ ๋ฌธ์žฅ๋ถ€ํ˜ธ๋งŒ ๋‚จ๊ธด๋‹ค. ์ง€์šฐ๋ฉฐ ์ƒ๊ธด ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ณต๋ฐฑ์„ ํ•˜๋‚˜์˜ ๊ณต๋ฐฑ์œผ๋กœ ๋ฐ”๊พผ๋‹ค. ๊ทธ ํ›„ tokenizeํ•œ๋‹ค.

์–ดํœ˜์ง‘ / ํ† ํฌ๋‚˜์ด์ €

Sentencepiece๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. konlpy์˜ Okt์™€ SpaCy๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ๊ฐ ํ•œ๊ตญ์–ด์™€ ์˜์–ด๋ฅผ tokenizeํ•œ๋‹ค. vocab ์ œ์ž‘์€ torchtext๋ฅผ ์ด์šฉํ•œ๋‹ค.

ํŠน์ˆ˜ ๊ธฐํ˜ธ๋Š” <pad>, <unk>, <s>, <\s>๊ฐ€ ์žˆ๊ณ  ๊ฐ๊ฐ 0, 1, 2, 3๋ฒˆ์ด๋‹ค. <s>๋Š” ๋ฌธ์žฅ์˜ ์‹œ์ž‘, <\s>๋Š” ๋ฌธ์žฅ์˜ ๋ ํ† ํฐ์ด๋ฉฐ <pad>๋Š” ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๋ฌธ์žฅ์„ ๋ณ‘๋ ฌํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋นˆ ๊ณต๊ฐ„์„ ์ฑ„์šฐ๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.

kor.txt์™€ eng.txt๋ฅผ ์ด์šฉํ•ด ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ ๋‹ค์Œ ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค.

๋ชจ๋ธ ๋งŒ๋“ค๊ธฐ

์–‘๋ฐฉํ–ฅ ์ธ์ฝ”๋”์™€ ์–ดํ…์…˜์„ ์‚ฌ์šฉํ•œ multilayer Seq2seq๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค.

multilayer์ด๋ฏ€๋กœ ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๊ฐ€ ๋‚˜์˜จ๋‹ค.

์ธ์ฝ”๋”๊ฐ€ ์–‘๋ฐฉํ–ฅ์ด๋ฏ€๋กœ ๋””์ฝ”๋”๋กœ hidden state๋ฅผ ๋„˜๊ธธ ๋•Œ ๋ฐ˜๋“œ์‹œ ์ฐจ์›์„ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

์ธ์ฝ”๋”

GRU Cell์„ ์ด์šฉํ•œ RNN์„ ๋งŒ๋“ ๋‹ค. ์€๋‹‰์ธต๊ณผ ์ž„๋ฒ ๋”ฉ ์ฐจ์›์ด ๊ฐ™๋‹ค๊ณ  ์„ค์ •ํ–ˆ๋‹ค.

(20, 22๋ฒˆ ์ค„)nn.utils.rnn.pack_padded_sequence(x, lengths) ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ, ์ด๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐฐ์น˜๋ฅผ ํ•œ๋ฒˆ์— ์—ฐ์‚ฐํ•  ๋•Œ, <pad> ํ† ํฐ์€ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๋„๋ก ๋งŒ๋“ค์–ด์ค€๋‹ค. ๋‹จ, ์ž…๋ ฅ ๋ฐฐ์น˜์˜ ๊ธธ์ด๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด ์ค„ ํ•„์š”๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ, train ์‹œ ์ฒ˜๋ฆฌํ•œ๋‹ค.

(24๋ฒˆ ์ค„) GRU cell์€ ์ถœ๋ ฅ์œผ๋กœ ๊ทธ timestep์˜ hidden state๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ด ์ฐจ์›์€ (L,N,2ร—H)(L,N,2\times H)์ด๋‹ค. ํ›„์— ๋””์ฝ”๋”์—์„œ attention์„ ์‹คํ–‰ํ•  ๋•Œ ์ฐจ์›์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด concatํ•˜๊ณ  ํ†ตํ•ฉํ•œ๋‹ค.

๋งˆ์ง€๋ง‰ hidden state๋Š” ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

๋””์ฝ”๋”

(26๋ฒˆ ์ค„) Bahdanau Attention์„ ์‚ฌ์šฉํ•œ๋‹ค. Dot attention๊ณผ๋Š” ๋‹ฌ๋ฆฌ t-1 ์‹œ์ ์˜ hidden state๋ฅผ attention์— ๋จผ์ € ์‚ฌ์šฉํ•œ ๋’ค ์ž„๋ฒ ๋”ฉ ์ถœ๋ ฅ๊ณผ ํ•ฉ์ณ GRU์— ๋„ฃ๋Š”๋‹ค. Bahdanau Attention์˜ score ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. j๋ฒˆ์งธ (๋งˆ์ง€๋ง‰ layer) ์ธ์ฝ”๋” hidden state์— ๋Œ€ํ•œ score์ด๋‹ค.

score(stโˆ’1,hj)=Wctanhโก(Wa[stโˆ’1;hj])=Wctanhโก(Wqstโˆ’1+Wkhj)score(s_{t-1},h_j)=W_c\tanh (W_a[s_{t-1};h_j]) = W_c\tanh (W_q s_{t-1}+W_k h_j)

(28๋ฒˆ ์ค„) ๋ฐฐ์น˜๋งˆ๋‹ค ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๋ฏ€๋กœ, ์œ ํšจํ•œ ๋ชจ๋“  j์— ๋Œ€ํ•ด ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  softmax์ทจํ•œ๋‹ค. ์œ ํšจํ•œ j๋งŒ ๊ณจ๋ผ๋‚ด๊ธฐ ์œ„ํ•ด mask๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ๊ฐ’์„ ์Œ์˜ ๋ฌดํ•œ๋Œ€๋กœ ๋‘๋ฉด softmax ์‹œ 0์ด ๋œ๋‹ค.

(30-34๋ฒˆ ์ค„) ์ด ๊ฐ’๋“ค๊ณผ ์ธ์ฝ”๋” hidden state์— ๊ณฑํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ž„๋ฒ ๋”ฉ ๊ฒฐ๊ณผ์™€ ํ•ฉ์ณ GRU Cell์— ๋„ฃ๋Š”๋‹ค.

(35๋ฒˆ ์ค„) ์ตœ์ข… ์ถœ๋ ฅ์€ ์–ดํ…์…˜ ๊ฒฐ๊ณผ, RNN ์ถœ๋ ฅ, ์ž„๋ฒ ๋”ฉ ์ถœ๋ ฅ์„ ๋ชจ๋‘ ํ•ฉ์ณ ๊ณ„์‚ฐํ•œ๋‹ค.

Seq2Seq ํ†ตํ•ฉ

**(19-24๋ฒˆ ์ค„) **์ธ์ฝ”๋”์˜ ์ดˆ๊ธฐ hidden state์™€ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ํ…์„œ๋ฅผ ๋งŒ๋“ ๋‹ค. ์ธ์ฝ”๋”์˜ ์œ ํšจํ•œ ํ† ํฐ ์œ„์น˜๋งŒ์„ ๋งˆ์Šคํ‚นํ•˜๊ธฐ ์œ„ํ•œ mask๋„ ์ƒ์„ฑํ•œ๋‹ค.

**(27๋ฒˆ ์ค„) **์ธ์ฝ”๋”๋ฅผ ๊ฑฐ์ณ ์ธ์ฝ”๋”์˜ ๋งˆ์ง€๋ง‰ layer์˜ hidden state๋“ค๊ณผ, decoder๋กœ ๋„˜๊ฒจ์ค„ ๋งˆ์ง€๋ง‰ hidden state๋ฅผ ์ €์žฅํ•œ๋‹ค.

(28๋ฒˆ ์ค„) ์–‘๋ฐฉํ–ฅ ์ธ์ฝ”๋”์˜ ๋งˆ์ง€๋ง‰ hidden state๋Š” (2ร—layers,N,H)(2\times layers,N,H) ์ด๋ฏ€๋กœ ์ฒซ๋ฒˆ์งธ ์ฐจ์›์„ ์„ธ ๋ฒˆ์งธ ์ฐจ์›์œผ๋กœ concatํ•ด์„œ (layers,N,H)(layers,N,H)์˜ ์ฐจ์›์œผ๋กœ ํ†ตํ•ฉํ•ด ์ค€๋‹ค. ์ด๋ฅผ ๋””์ฝ”๋”์˜ ์ฒซ ๋ฒˆ์งธ hidden state๋กœ ๋„˜๊ธด๋‹ค.

(32๋ฒˆ ์ค„) ๋””์ฝ”๋”์˜ ์ฒซ ์ž…๋ ฅ์€ ๋ฌธ์žฅ์˜ ์‹œ์ž‘์„ ๋‚˜ํƒ€๋‚ด์•ผ ํ•˜๋ฏ€๋กœ ํ•ญ์ƒ <s>์ด๋‹ค.

(34๋ฒˆ ์ค„) target ๋ฌธ์žฅ์˜ ์ตœ๋Œ€ ๊ธธ์ด๊นŒ์ง€ timestep์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

(35-37๋ฒˆ ์ค„) ๋””์ฝ”๋”์— ์ž…๋ ฅ ํ›„ ์ถœ๋ ฅ์„ ๊ฐ€์ ธ์˜จ๋‹ค. ์ถœ๋ ฅ๋œ hidden state๋Š” ๋‹ค์Œ timestep์œผ๋กœ ๋„˜๊ธฐ๊ธฐ ์œ„ํ•ด h_dec์— ๋‹ค์‹œ ์ €์žฅํ•œ๋‹ค. ์ถœ๋ ฅ์„ ์ €์žฅํ•˜๊ณ  ์ตœ๋Œ€ ํ™•๋ฅ ์„ ๊ฐ€์ง€๋Š” ๋‹จ์–ด์˜ index๋ฅผ argmax์— ์ €์žฅํ•œ๋‹ค.

**(39-43๋ฒˆ ์ค„) **๊ต์‚ฌ ๊ฐ•์š”(Teacher Forcing)์„ ํ™•๋ฅ ์ ์œผ๋กœ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑํ•œ 0~1 ๋žœ๋ค ์ˆ˜์— ๋”ฐ๋ผ ์ง„ํ–‰ํ•œ๋‹ค. ๋งŒ์•ฝ ๊ต์‚ฌ ๊ฐ•์š”๋ฅผ ํ•  ๊ฒฝ์šฐ, ๋‹ค์Œ ๋””์ฝ”๋” ์ž…๋ ฅ์œผ๋กœ ์ •๋‹ต ๋‹จ์–ด๋ฅผ ๋‹ค์Œ ์ž…๋ ฅ์œผ๋กœ ๋„˜๊ธฐ๊ณ , ์•„๋‹ ๊ฒฝ์šฐ ํ˜„์žฌ ์ถœ๋ ฅ์„ ๋‹ค์Œ ์ž…๋ ฅ์œผ๋กœ ๋„˜๊ธด๋‹ค.

Last updated

Was this helpful?