์ „์ฒด ๊ธ€ 203

[์ฝ”๋“œ ๋ฆฌ๋ทฐ] ๋…ธ๋…„์ธต ๋Œ€ํ™” ๊ฐ์„ฑ ๋ถ„๋ฅ˜ ๋ชจ๋ธ ๊ตฌํ˜„ (1) : CNN

์ด๋ฒˆ ํ•™๊ธฐ ํ•˜๋‚˜ ์žˆ๋˜ ํ…€ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚œ ํ›„ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋ณต์Šต ๋ชฉ์ ์œผ๋กœ ๊ธ€์„ ์ž‘์„ฑํ•œ๋‹ค. ๋ชจ๋ธ์€ ์ด 3๊ฐœ์ธ๋ฐ CNN, RNN, Transformer ์ˆœ์œผ๋กœ ์ •๋ฆฌํ•  ์˜ˆ์ •์ด๋‹ค. ๐Ÿ‘ฉ‍๐Ÿซ ๋ชจ๋ธ ํด๋ž˜์Šค class CNN(nn.Module): def __init__(self, vocab_size, embed_dim, n_filters, filter_size, dropout, num_class): super(CNN, self).__init__() self.embedding = nn.Embedding(vocab_size, embed_dim) self.conv1d_layers = nn.ModuleList([nn.Conv1d(in_channels=embed_dim, out_channels=n_filters[i], ke..

[Programmers] ๋ฌธ์ž์—ด ๋‚˜๋ˆ„๊ธฐ

๋ฌธ์ œ ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ ๊ฐœ์ธ์ ์œผ๋กœ๋Š” '์ž…์ถœ๋ ฅ ์˜ˆ #2'๊ฐ€ ๊นŒ๋‹ค๋กœ์› ๋‹ค ๐Ÿฅฒ ํ’€์ด์ฒ˜์Œ์—๋Š” x=s[0]์œผ๋กœ ๋ฏธ๋ฆฌ ํ• ๋‹นํ•ด๋†“๊ณ  s[1:]์„ for๋ฌธ ๋Œ๋ฆฌ๋ฉด์„œ ๋ฌธ์ž ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ x์™€ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์„ ์ผ๋‹ค. ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ํ•˜๋‹ˆ๊นŒ s ๊ธธ์ด๊ฐ€ 1์ผ ๋•Œ ์ธ๋ฑ์Šค ์—๋Ÿฌ๊ฐ€ ๊ณ„์† ๋–ด๋Š”๋ฐ, ์ธ๋ฑ์Šค ์—๋Ÿฌ๊ฐ€ ๋„์ €ํžˆ ์•ˆ ์žกํ˜€์„œ ์•„์˜ˆ ์ƒ๊ฐ์„ ๋‹ค์‹œ ํ–ˆ๋‹ค. ํ•ต์‹ฌ์€ '์‹œ์ž‘ ๋ฌธ์ž๋ฅผ ์ •ํ•ด์ฃผ์ง€ ์•Š๋Š” ๊ฒƒ'์ด์—ˆ๋‹ค. for๋ฌธ ์•ˆ์—์„œ x, x_cnt, not_x_cnt ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ถ€๋ถ„์ด ํ•œ ๋ฒˆ ๋” ๋‚˜์˜ค๋Š” ๊ฒŒ ๋ถˆํŽธํ•˜์ง€๋งŒ ์ด๊ฑด ๋” ์ค„์ผ ์ˆ˜๊ฐ€ ์—†๋Š” ๋ถ€๋ถ„์ด๋ผ์„œ ์–ด์ฉ” ์ˆ˜ ์—†์—ˆ๋‹ค. def solution(s): answer = 0 x_cnt = 0 not_x_cnt = 0 x = '' for alphabet in s: i..

[Programmers] ๋‘ ํ ํ•ฉ ๊ฐ™๊ฒŒ ๋งŒ๋“ค๊ธฐ

๋ฌธ์ œ ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ ํ’€์ดํ•ต์‹ฌ์€ ์–‘์ชฝ์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” deque์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜์˜ค๋Š” ์‹œ์ ์„ ์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ ํƒˆ์ถœ ์กฐ๊ฑด์„ ๋†“์น˜๋ฉด ๋ฌด์กฐ๊ฑด ์˜ค๋‹ต์ด ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ! โ€ป ๊ธฐ๋ณธ ์•„์ด๋””์–ด: ์›์†Œ ์ด ํ•ฉ์ด ํฐ ๋ฆฌ์ŠคํŠธ์—์„œ ์ž‘์€ ๋ฆฌ์ŠคํŠธ๋กœ ์›์†Œ๋ฅผ ์˜ฎ๊น€ 1๏ธโƒฃ ํŠน์ • TC์—์„œ ์‹คํŒจํ•œ ์ฝ”๋“œ(11๋ฒˆ, 28๋ฒˆ) 1. ๊ฐ queue๋ฅผ deque์œผ๋กœ ๋ฐ”๊พธ๊ณ  ๋ฆฌ์ŠคํŠธ ์ด ํ•ฉ์„ ๋ฏธ๋ฆฌ ๊ตฌํ•ด๋‘”๋‹ค. 2. sum(queue1), sum(queue2)์„ ๋น„๊ตํ•˜๋ฉด์„œ ํฐ ๊ณณ์—์„œ ์ž‘์€ ๊ณณ์œผ๋กœ ๊ฐ’ ์ด๋™ → ํฐ ๊ณณ์—์„œ popleft()3. ๊ฐ’์ด ์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค cnt += 14. ๋‘ ๋ฆฌ์ŠคํŠธ์˜ ํ•ฉ์ด ๊ฐ™์•„์ง€๋ฉด break ์œ„์˜ ๋กœ์ง๋Œ€๋กœ ํ–ˆ๊ณ  ํฌ๊ฒŒ ์ž˜๋ชป๋œ ๋ถ€๋ถ„์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ํŠน์ • TC์—์„œ ๊ณ„์† ์‹คํŒจํ•˜๊ธธ๋ž˜ ๊ณ ๋ฏผ์„ ๊ฝค๋‚˜ ํ–ˆ๋‹ค. '์งˆ๋ฌธํ•˜๊ธฐ'์—..

[PLM] IndexError: Target X is out of bounds.

PyTorch+KoELECTRA ๋ถ„๋ฅ˜ ๋ชจ๋ธ ์‚ฌ์šฉ ์ค‘์— ๋œฌ ์—๋Ÿฌ ๋ฌธ๊ตฌ์ด๋‹ค. 1. ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜จ ๋ฐฉ์‹(์—๋Ÿฌ ๋ฐœ์ƒ) ๋ถ„๋ฅ˜๋ฅผ ์œ„ํ•œ KoELECTRA ๋ชจ๋ธ์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ์ฒ˜์Œ์—๋Š” ํ•„์š”ํ•œ ๋ ˆ์ด๋ธ” ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์•˜๋‹ค. 2. ์ˆ˜์ • ๋ถ„๋ฅ˜ํ•ด์•ผ ํ•˜๋Š” ๋ ˆ์ด๋ธ” ์ˆ˜๋งŒํผ num_labels ์ธ์ž๋กœ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค. kcBERT ๊นƒํ—ˆ๋ธŒ์—์„œ ๋˜‘๊ฐ™์€ ์งˆ๋ฌธ์„ ๋ฐœ๊ฒฌํ–ˆ๋Š”๋ฐ ๊ฐœ๋ฐœ์ž ๋ถ„๊ป˜์„œ ~ForSequenceClassification ๋ชจ๋ธ์€ ๊ธฐ๋ณธ์ด ์ด์ง„ ๋ถ„๋ฅ˜๋ผ๊ณ  ๋‹ต๋ณ€ํ•ด์ฃผ์‹  ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ–ˆ๋‹ค. KoELECTRA ๋ชจ๋ธ๋„ BERT ๊ธฐ๋ฐ˜์ด๋‹ˆ๊นŒ ์ € ๋ฐฉ๋ฒ•์ด ๋ ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค ์‹ถ์—ˆ๊ณ  ์ ์šฉํ•˜๋‹ˆ๊นŒ ์—๋Ÿฌ ํ•ด๊ฒฐ ๐Ÿ™‚ ์ฐธ๊ณ  ์‚ฌ์ดํŠธ https://github.com/Beomi/KcBERT/issues/3

EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks

๐Ÿ’ฌ ๋…ผ๋ฌธ ๋‚ด์šฉ๊ณผ ์ด ๊ธ€์— ๋Œ€ํ•œ ์˜๊ฒฌ ๊ณต์œ , ์˜คํƒˆ์ž ์ง€์  ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ํŽธํ•˜๊ฒŒ ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š” ! ์›๋ฌธ: https://aclanthology.org/D19-1670.pdf 1 Introduction โ–ช๏ธ ๋จธ์‹ ๋Ÿฌ๋‹๊ณผ ๋”ฅ๋Ÿฌ๋‹์€ ๊ฐ์„ฑ๋ถ„์„๋ถ€ํ„ฐ ํ† ํ”ฝ ๋ถ„๋ฅ˜๊นŒ์ง€ NLP ๋ถ„์•ผ์—์„œ ๋†’์€ ์ •ํ™•๋„๋ฅผ ๋‹ฌ์„ฑํ–ˆ์ง€๋งŒ, ๋†’์€ ์„ฑ๋Šฅ์€ ์ข…์ข… ํ•™์Šต ๋ฐ์ดํ„ฐ์˜ ์–‘๊ณผ ํ€„๋ฆฌํ‹ฐ์— ๋‹ฌ๋ ค ์žˆ์Œ โ–ช๏ธ ์ž๋™ ๋ฐ์ดํ„ฐ ์ฆ๊ฐ•(Automatica data augmentation)์€ ์ปดํ“จํ„ฐ ๋น„์ „๊ณผ ์Œ์„ฑ ๋ถ„์•ผ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜์ง€๋งŒ ์–ธ์–ด ๋ณ€ํ™˜์„ ์œ„ํ•œ ์ผ๋ฐ˜์ ์ธ ๊ทœ์น™์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— NLP ๋ถ„์•ผ์—์„œ ์ผ๋ฐ˜์ ์ธ ๋ฐ์ดํ„ฐ ์ฆ๊ฐ• ๊ธฐ๋ฒ•์€ ์™„์ „ํžˆ ์—ฐ๊ตฌ๋œ ์ ์ด ์—†์Œ โ–ช๏ธ ๋…ผ๋ฌธ์„ ํ†ตํ•ด EDA(Easy Data Augmentation)๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฐ„๋‹จํ•œ NLP ๋ฐ์ดํ„ฐ ์ฆ๊ฐ• ๊ธฐ๋ฒ•..

2022/10์›”ํ˜ธ

๐Ÿ‘ฉ‍๐Ÿ’ป ์•„์นจ ๊ธฐ์ƒ ์Šคํ„ฐ๋””๋ฅผ 3์ฃผ ๊ฐ„ ์ฐธ์—ฌํ–ˆ๋‹ค. ์›๋ž˜ ๋ชฉํ‘œ๋Š” ์ž์—ฐ์–ด์ฒ˜๋ฆฌ ๊ณต๋ถ€์˜€๋Š”๋ฐ ์ค‘๊ฐ„์ค‘๊ฐ„ ํ•™๊ต ์‹œํ—˜์ด๋‚˜ ํ€ด์ฆˆ๊ฐ€ ์žˆ์„ ๋•Œ๋Š” ๊ทธ๊ฑฐ ํ•œ๋‹ค๊ณ  ์ž์—ฐ์–ด์ฒ˜๋ฆฌ ๊ณต๋ถ€๋ฅผ ๋ชปํ•œ ๊ฒŒ ์•„์‰ฝ๋‹ค. ์‹œ๊ฐ„ ๊ด€๋ฆฌ๋ฅผ ์ž˜ํ–ˆ๋‹ค๋ฉด ๋ชฉํ‘œํ–ˆ๋˜ ๊ณต๋ถ€๋ฅผ ํ•  ์ˆ˜ ์žˆ์—ˆ๊ฒ ์ง€ ๋‚ด ์ž์‹ ์•„! ์–ด๋Š ์ˆœ๊ฐ„๋ถ€ํ„ฐ NLP ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋˜๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ๋จธ๋ฆฟ์†์—๋Š” ์ž์—ฐ์–ด์ฒ˜๋ฆฌ ๋ถ„์•ผ๋ฅผ ์ž˜ํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ ๋ฟ ๐Ÿ“’ ๋Œ€ํ•™์›์ƒ๋„ ํ”ผํ•  ์ˆ˜ ์—†๋Š” ์ค‘๊ฐ„๊ณ ์‚ฌ..! ์ด๋ฒˆ ํ•™๊ธฐ๋Š” ์„ธ ๊ณผ๋ชฉ์„ ๋“ฃ๊ณ  ์žˆ๋Š”๋ฐ, ์ค‘๊ฐ„๊ณ ์‚ฌ๋ฅผ ์น˜๋Š” ๊ณผ๋ชฉ์€ ๋‘ ๊ณผ๋ชฉ๋ฟ์ด์—ˆ๋‹ค. ํ•™๋ถ€ ๋ง‰ ํ•™๋…„ ๋•Œ 1๋…„ ๋‚ด๋‚ด ๋น„๋Œ€๋ฉด ์‹œํ—˜์ด๊ฑฐ๋‚˜ ์‹œํ—˜ ๋Œ€์ฒด ๊ณผ์ œ๋ฅผ ์ œ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ค‘๊ฐ„/๊ธฐ๋ง์„ ๋ณด๋ƒˆ์–ด์„œ ๋Œ€๋ฉด ์‹œํ—˜์ด ๋„ˆ๋ฌด ์˜ค๋žœ๋งŒ์ด์—ˆ๋‹ค. ๊ณผ์—ฐ ํ•œ ํ•™๊ธฐ๊ฐ€ ๋๋‚ฌ์„ ๋•Œ ๋‚ด ์„ฑ์ ์€ ์–ด๋–ป๊ฒŒ ๋‚˜์˜ฌ ๊ฒƒ์ธ์ง€ To be continued.. / 10์›” ์ดˆ..

Windows+Docker ์—๋Ÿฌ ๋ชจ์Œ์ง‘

์—ฐ๊ตฌ์‹ค GPU ์„œ๋ฒ„์—์„œ ์ž‘์—…ํ•˜๋‹ค๊ฐ€ ๋กœ์ปฌ ์œˆ๋„์šฐ+WSL2 ์กฐํ•ฉ์œผ๋กœ Docker ์“ฐ๋ ค๊ณ  ํ–ˆ๋”๋‹ˆ ์—๋Ÿฌ๊ฐ€ ์šฐ์ˆ˜์ˆ˜ ๐Ÿ™‚ ํ•œ๊ธ€๋กœ ๋œ ์ž๋ฃŒ๋„ ์ž˜ ์—†์–ด์„œ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ๋Š” ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ ๋งˆ์ฃผ์นœ ์—๋Ÿฌ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋‘”๋‹ค. โ€ป ํ™˜๊ฒฝ: Windows 10 Pro, Ubuntu 20.04 # 1 ์—๋Ÿฌ ๋ฌธ๊ตฌ - Release file for http://archive.ubuntu.com/ubuntu/dists/focal-backports/InRelease is not valid yet (invalid for another 8h 29min 28s). Updates for this repository will not be applied. ์—๋Ÿฌ ์›์ธ - sudo apt-get update ์ปค๋งจ๋“œ ์‚ฌ์šฉ ์‹œ ๋กœ์ปฌ ์‹œ์Šคํ…œ๊ณผ ์šฐ๋ถ„ํˆฌ ..

๐Ÿง 2022.11.01

[NLP ๊ธฐ์ดˆ] ์ž„๋ฒ ๋”ฉ(Embedding)

๊ฐœ๋… ๋‹จ์–ด ์ง‘ํ•ฉ(vocab)์— ์žˆ๋Š” ๋‹จ์–ด ๊ฐ๊ฐ์„ ์‹ค์ˆ˜(real number)๋กœ ์ด๋ฃจ์–ด์ง„ dense vector๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ ๋ฐฉ๋ฒ• โ€ป PyTorch ๊ธฐ์ค€ 1) Embedding layer ์ƒ์„ฑ: nn.Embedding ์‚ฌ์šฉ 2) Pre-trained word embedding: ์‚ฌ์ „ ํ•™์Šต๋œ ์›Œ๋“œ ์ž„๋ฒ ๋”ฉ(Word2Vec, GloVe ๋“ฑ)์„ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉ ์˜ˆ์‹œ 1) Embedding layer ์ƒ์„ฑ โ‘  nn.Embedding layer ์—†์ด ์ง์ ‘ ๊ตฌํ˜„(์…€ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰๋จ) import torch train_data = 'I want to be a AI engineer' # ๋‹จ์–ด ์ง‘ํ•ฉ ์ƒ์„ฑ(์ค‘๋ณต ์ œ๊ฑฐ) word_set = set(train_data.split()) # ๊ฐ ๋‹จ์–ด์— ๊ณ ์œ ํ•œ ์ •์ˆ˜ ๋ถ€์—ฌ vocab =..

2022/9์›”ํ˜ธ

๐Ÿ‘ฉ‍๐Ÿ’ป ๋Œ€ํ•™์› ์ž…ํ•™ ํ›„ ํ•œ ๋‹ฌ์ด ์ง€๋‚ฌ๋‹ค. ์—ฐ๊ตฌ์‹ค ๋‚˜์˜จ ๊ธฐ๊ฐ„์— ๋น„ํ•ด ์ž…ํ•™์ด ๋Šฆ์€ ์ผ€์ด์Šค์—ฌ์„œ ์ด์ œ ๋Œ€ํ•™์› ์ž…ํ•™ํ–ˆ๋‹ค๊ณ  ํ•˜๋ฉด ๋‹ค๋“ค ๋†€๋ž€๋‹ค ใ…‹ใ…‹ใ…‹ ํ•œ ๋‹ฌ ์ฒดํ—˜ ์†Œ๊ฐ์€.. ์ผ๋‹จ ์—ฐ๊ตฌ์‹ค ์ƒํ™œ์ด์•ผ ๋ญ ๊ธฐ์กด๊ณผ ํฐ ์ฐจ์ด๊ฐ€ ์—†์ง€๋งŒ ์ˆ˜์—…์„ ๋“ฃ๋Š”๋‹ค๋Š” ๊ฒŒ ๊ต‰์žฅํžˆ ํฐ ๋น„์ค‘์„ ์ฐจ์ง€ํ•œ๋‹ค. ๋ชจ๋“  ๊ณผ๋ชฉ์ด ํ•œ ์ฃผ์— ํ•œ ๋ฒˆ ์ˆ˜์—…์ด๋ผ ์ˆ˜์—… ์‹œ๊ฐ„์ด ๊ธด๋ฐ, ์ด๋ฒˆ ํ•™๊ธฐ๋Š” ๋‹ค ์˜คํ›„ ์•„๋‹ˆ๋ฉด ์ €๋… ์ˆ˜์—…์„ ๋“ฃ๊ณ  ์žˆ์–ด์„œ ์ˆ˜์—…์ด ์žˆ๋Š” ๋‚ ์€ ํ•˜๋ฃจ๊ฐ€ ๋„ˆ๋ฌด ๋น ๋ฅด๋‹ค ๐Ÿฅฒ ์ด๋Ÿฌ๋‹ค๊ฐ€ ์ •์‹  ์ฐจ๋ฆฌ๋ฉด 12์›” ์ข…๊ฐ• ์‹œ์ฆŒ์ผ ๋“ฏ ~ ์•„ ์ž…ํ•™ํ•˜๊ณ  ๋‚˜์„œ ์ฒ˜์Œ์œผ๋กœ ๋…ผ๋ฌธ์„ ํˆฌ๊ณ ํ–ˆ๋‹ค! ๋™ํ–ฅ ์กฐ์‚ฌ๋ผ์„œ ์•ž์œผ๋กœ ์“ฐ๊ฒŒ ๋  ๋…ผ๋ฌธ์€ ์•Œ์ฐฌ ๋‚ด์šฉ์œผ๋กœ ์ค€๋น„ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ๋‹ค์งํ–ˆ๋‹ค. ๐Ÿ“’ 10์›” 1์ผ์— ๋น…๋ฐ์ดํ„ฐ๋ถ„์„๊ธฐ์‚ฌ ํ•„๊ธฐ ์‹œํ—˜์ด์—ˆ์–ด์„œ 9์›” ๋ง ํ•œ ์ฃผ๋Š” ์ •๋ง ๊ทธ๊ฑฐ๋งŒ ๋ดค๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ํ–ˆ๋˜ ์ž๊ฒฉ์ฆ ๊ณต๋ถ€๊ฐ€ ์ดˆ๋“ฑํ•™์ƒ ๋•Œ..

[PyTorch] RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!

์—ฌํƒœ๊นŒ์ง€ PyTorch ์‚ฌ์šฉํ•œ ๋ฐฉ์‹๊ณผ ์ฐจ์ด๊ฐ€ ์—†์—ˆ๋˜ ๊ฑฐ ๊ฐ™์€๋ฐ ์ €๋Ÿฐ ๋ฌธ๊ตฌ๊ฐ€ ๋– ์„œ ์กฐ๊ธˆ ๋‹นํ™ฉ์Šค๋Ÿฌ์› ๋‹ค. BERT ์‹ค์Šต ์ค‘์— ๋งŒ๋‚œ ๊ฑฐ์˜€๊ณ  ์ผ๋‹จ ํ•ด๊ฒฐํ•˜๊ธด ํ–ˆ๋Š”๋ฐ ๊น”๋”ํ•œ ๋ฐฉ์‹์€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™๋‹ค. ๋นจ๊ฐ„์ƒ‰ ์ฒดํฌ ํ‘œ์‹œ๋ฅผ ํ•ด๋‘” ๊ณณ์—์„œ RuntimeError: ~ ๊ฐ€ ๋–ด๊ณ  ๋ชจ๋“  ํ…์„œ๊ฐ€ cuda:0์— ์˜ฌ๋ผ๊ฐ€์•ผ ํ•˜๋Š”๋ฐ cpu์— ์˜ฌ๋ผ๊ฐ„ ๊ฒŒ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ๋นจ๊ฐ„์ƒ‰ ์ฒดํฌ ์ „์— print()๋กœ ๊ฐ ํ…์„œ๊ฐ€ ์–ด๋”” ์˜ฌ๋ผ๊ฐ€์žˆ๋Š”์ง€ device๋ฅผ ์ฐ์–ด๋ณด์•˜๋‹ค. input_ids, attention_mask, token_type_ids๋Š” custom torch dataset, collate_fn, dataloader๋ฅผ ๊ฑฐ์ณ ์ตœ์ข…์ ์œผ๋กœ ๋ชจ๋ธ ํ•™์Šต ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— collate_fn์˜ ๋ฆฌํ„ด ๊ฒฐ๊ณผ์— ๋ชจ๋‘ .to(device)๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค. ๋ชจ๋‘ ..