diff --git a/klue_re.ipynb b/klue_re.ipynb
index a0d909f..e44ff05 100644
--- a/klue_re.ipynb
+++ b/klue_re.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "markdown",
- "id": "concerned-regulation",
+ "id": "alternative-artwork",
"metadata": {},
"source": [
"# BERT를 활용한 관계추출(Relation Extraction, RE)\n",
@@ -29,7 +29,7 @@
},
{
"cell_type": "markdown",
- "id": "lightweight-application",
+ "id": "innocent-symbol",
"metadata": {},
"source": [
"# 필요한 라이브러리를 설치합니다.\n",
@@ -39,7 +39,7 @@
{
"cell_type": "code",
"execution_count": 1,
- "id": "inner-crime",
+ "id": "alternate-solid",
"metadata": {},
"outputs": [
{
@@ -86,7 +86,7 @@
},
{
"cell_type": "markdown",
- "id": "critical-trading",
+ "id": "antique-display",
"metadata": {},
"source": [
"# 필요한 라이브러리를 import 합니다."
@@ -95,7 +95,7 @@
{
"cell_type": "code",
"execution_count": 2,
- "id": "regulated-musician",
+ "id": "funny-monster",
"metadata": {},
"outputs": [],
"source": [
@@ -112,7 +112,7 @@
},
{
"cell_type": "markdown",
- "id": "mineral-justice",
+ "id": "relative-founder",
"metadata": {},
"source": [
"# GPU 사용을 위해 device를 설정합니다."
@@ -121,7 +121,7 @@
{
"cell_type": "code",
"execution_count": 3,
- "id": "pediatric-monday",
+ "id": "removed-combining",
"metadata": {},
"outputs": [],
"source": [
@@ -130,7 +130,7 @@
},
{
"cell_type": "markdown",
- "id": "earned-thirty",
+ "id": "confident-advance",
"metadata": {},
"source": [
"# KLUE RE 데이터셋을 가져옵니다."
@@ -139,7 +139,7 @@
{
"cell_type": "code",
"execution_count": 4,
- "id": "proprietary-pioneer",
+ "id": "functional-devices",
"metadata": {},
"outputs": [
{
@@ -156,7 +156,7 @@
},
{
"cell_type": "markdown",
- "id": "modern-rendering",
+ "id": "adaptive-familiar",
"metadata": {},
"source": [
"# 데이터셋은 train과 validation 데이터로 구성되어 있습니다. \n",
@@ -168,7 +168,7 @@
{
"cell_type": "code",
"execution_count": 5,
- "id": "dried-fellowship",
+ "id": "jewish-graphics",
"metadata": {},
"outputs": [
{
@@ -197,7 +197,7 @@
},
{
"cell_type": "markdown",
- "id": "geological-engagement",
+ "id": "broad-venezuela",
"metadata": {},
"source": [
"# 데이터 구성\n",
@@ -207,7 +207,7 @@
{
"cell_type": "code",
"execution_count": 6,
- "id": "bearing-budapest",
+ "id": "aging-lingerie",
"metadata": {},
"outputs": [
{
@@ -238,7 +238,7 @@
},
{
"cell_type": "markdown",
- "id": "irish-shoulder",
+ "id": "naked-mineral",
"metadata": {},
"source": [
"# train데이터에서 각 label의 수를 살펴보겠습니다.\n",
@@ -255,7 +255,7 @@
{
"cell_type": "code",
"execution_count": 7,
- "id": "miniature-token",
+ "id": "compact-serial",
"metadata": {},
"outputs": [
{
@@ -314,11 +314,11 @@
},
{
"cell_type": "markdown",
- "id": "broke-basket",
+ "id": "starting-boating",
"metadata": {},
"source": [
"# 개체 양 끝에 special token을 추가합니다.\n",
- "KLUE 논문에 따르면 object 개체의 양 끝에는 \\, \\을, subject 개체의 양 끝에는 \\, \\ 토큰을 추가하여 개체의 위치를 표시한 후에 모델의 입력으로 주어집니다.\n",
+ "KLUE 논문에 따르면 object 개체의 양 끝에는 , 을, subject 개체의 양 끝에는 , 토큰을 추가하여 개체의 위치를 표시한 후에 모델의 입력으로 주어집니다.\n",
"\n",
"따라서 데이터에 있는 entity index를 이용해서 해당 토큰을 추가해줍니다.\n",
"\n",
@@ -332,7 +332,7 @@
{
"cell_type": "code",
"execution_count": 8,
- "id": "creative-asbestos",
+ "id": "directed-direction",
"metadata": {},
"outputs": [],
"source": [
@@ -368,7 +368,7 @@
{
"cell_type": "code",
"execution_count": 9,
- "id": "threaded-client",
+ "id": "valuable-nightmare",
"metadata": {},
"outputs": [],
"source": [
@@ -380,7 +380,7 @@
{
"cell_type": "code",
"execution_count": 10,
- "id": "bored-replication",
+ "id": "intellectual-conflict",
"metadata": {},
"outputs": [
{
@@ -408,7 +408,7 @@
},
{
"cell_type": "markdown",
- "id": "auburn-logic",
+ "id": "labeled-division",
"metadata": {},
"source": [
"# klue/bert-base 모델을 사용할 예정이므로 모델에 맞는 tokenizer를 가져옵니다."
@@ -417,7 +417,7 @@
{
"cell_type": "code",
"execution_count": 11,
- "id": "beginning-penetration",
+ "id": "minus-leisure",
"metadata": {},
"outputs": [],
"source": [
@@ -427,7 +427,7 @@
{
"cell_type": "code",
"execution_count": 12,
- "id": "initial-drawing",
+ "id": "placed-bulgarian",
"metadata": {},
"outputs": [],
"source": [
@@ -436,7 +436,7 @@
},
{
"cell_type": "markdown",
- "id": "opening-links",
+ "id": "shared-absolute",
"metadata": {},
"source": [
"# tokenizer를 이용한 토큰화 결과가 어떻게 나오는지 살펴보도록 하겠습니다.\n",
@@ -446,7 +446,7 @@
{
"cell_type": "code",
"execution_count": 13,
- "id": "french-nitrogen",
+ "id": "exciting-office",
"metadata": {},
"outputs": [],
"source": [
@@ -456,7 +456,7 @@
{
"cell_type": "code",
"execution_count": 14,
- "id": "improved-tourist",
+ "id": "recorded-fighter",
"metadata": {},
"outputs": [
{
@@ -477,7 +477,7 @@
{
"cell_type": "code",
"execution_count": 15,
- "id": "answering-replica",
+ "id": "signal-montreal",
"metadata": {},
"outputs": [],
"source": [
@@ -489,7 +489,7 @@
},
{
"cell_type": "markdown",
- "id": "ranging-reception",
+ "id": "swiss-export",
"metadata": {},
"source": [
"토큰화 결과로 Bert모델의 입력으로 필요한 input_ids, token_type_ids, attention_mask가 나오는 것을 확인할 수 있습니다.\n",
@@ -500,7 +500,7 @@
{
"cell_type": "code",
"execution_count": 16,
- "id": "fixed-heater",
+ "id": "funded-mission",
"metadata": {},
"outputs": [
{
@@ -520,7 +520,7 @@
},
{
"cell_type": "markdown",
- "id": "patent-korea",
+ "id": "textile-party",
"metadata": {},
"source": [
"토큰화 된 문장을 다시 디코딩 해봄으로써 원본 문장을 얻을 수 있는지 확인해봅니다.\n",
@@ -531,7 +531,7 @@
{
"cell_type": "code",
"execution_count": 17,
- "id": "becoming-browser",
+ "id": "opposed-johnston",
"metadata": {},
"outputs": [
{
@@ -551,11 +551,11 @@
},
{
"cell_type": "markdown",
- "id": "sunset-questionnaire",
+ "id": "alien-crack",
"metadata": {},
"source": [
"# Special token 추가\n",
- "위에서 개체에 맞게 4개의 토큰(\\, \\, \\, \\)을 문장에 추가해주었는데, 해당 토큰들을 tokenizer에 special token이라고 알려주지 않으면 추가한 토큰들은 일반 문자로 인식되어서 토큰화될 수 있습니다. \n",
+ "위에서 개체에 맞게 4개의 토큰(, , , )을 문장에 추가해주었는데, 해당 토큰들을 tokenizer에 special token이라고 알려주지 않으면 추가한 토큰들은 일반 문자로 인식되어서 토큰화될 수 있습니다. \n",
"\n",
"따라서 토큰화가 되지 않도록 추가한 4개의 토큰을 tokenizer에 special token으로 추가 해 줍니다."
]
@@ -563,7 +563,7 @@
{
"cell_type": "code",
"execution_count": 18,
- "id": "positive-blame",
+ "id": "prime-weekend",
"metadata": {},
"outputs": [],
"source": [
@@ -573,7 +573,7 @@
},
{
"cell_type": "markdown",
- "id": "unlike-terminology",
+ "id": "assigned-photograph",
"metadata": {},
"source": [
"데이터로더 및 학습에 필요한 값들을 설정합니다."
@@ -582,7 +582,7 @@
{
"cell_type": "code",
"execution_count": 19,
- "id": "assumed-parts",
+ "id": "blessed-albuquerque",
"metadata": {},
"outputs": [],
"source": [
@@ -600,7 +600,7 @@
},
{
"cell_type": "markdown",
- "id": "nearby-packet",
+ "id": "modified-grammar",
"metadata": {},
"source": [
"# 학습에 이용할 데이터셋과 데이터로더를 만들어 줍니다."
@@ -609,7 +609,7 @@
{
"cell_type": "code",
"execution_count": 20,
- "id": "domestic-hampshire",
+ "id": "illegal-cincinnati",
"metadata": {},
"outputs": [],
"source": [
@@ -634,7 +634,7 @@
{
"cell_type": "code",
"execution_count": 21,
- "id": "tracked-regression",
+ "id": "actual-lighting",
"metadata": {},
"outputs": [],
"source": [
@@ -647,7 +647,7 @@
},
{
"cell_type": "markdown",
- "id": "virtual-vertex",
+ "id": "nuclear-thomas",
"metadata": {},
"source": [
"# klue/bert-base 모델을 로드합니다.\n",
@@ -668,7 +668,7 @@
{
"cell_type": "code",
"execution_count": 22,
- "id": "refined-cornell",
+ "id": "recreational-monitoring",
"metadata": {},
"outputs": [
{
@@ -689,7 +689,7 @@
},
{
"cell_type": "markdown",
- "id": "enormous-germany",
+ "id": "iraqi-ebony",
"metadata": {},
"source": [
"모델 구성의 마지막에 있는 classifier 부분을 보시면 출력 차원이 30으로 설정되어 있는 것을 확인할 수 있습니다."
@@ -698,7 +698,7 @@
{
"cell_type": "code",
"execution_count": 23,
- "id": "congressional-south",
+ "id": "loved-puppy",
"metadata": {},
"outputs": [
{
@@ -1014,7 +1014,7 @@
},
{
"cell_type": "markdown",
- "id": "modular-party",
+ "id": "subtle-attachment",
"metadata": {},
"source": [
"# Bert Embedding Layer을 resize합니다.\n",
@@ -1031,7 +1031,7 @@
{
"cell_type": "code",
"execution_count": 24,
- "id": "editorial-johnston",
+ "id": "quality-management",
"metadata": {},
"outputs": [
{
@@ -1051,7 +1051,7 @@
},
{
"cell_type": "markdown",
- "id": "polar-intention",
+ "id": "applied-ethnic",
"metadata": {},
"source": [
"학습 도중 Loss, Accuracy 계산 및 저장을 간단하게 하기 위해 AverageMeter를 클래스를 이용합니다."
@@ -1060,7 +1060,7 @@
{
"cell_type": "code",
"execution_count": 25,
- "id": "numerical-pitch",
+ "id": "general-lawrence",
"metadata": {},
"outputs": [],
"source": [
@@ -1080,7 +1080,7 @@
},
{
"cell_type": "markdown",
- "id": "developed-qatar",
+ "id": "federal-attack",
"metadata": {},
"source": [
"# Model fine-tuning\n",
@@ -1094,7 +1094,7 @@
{
"cell_type": "code",
"execution_count": 26,
- "id": "modern-ancient",
+ "id": "assisted-doctor",
"metadata": {},
"outputs": [
{
@@ -1236,7 +1236,7 @@
},
{
"cell_type": "markdown",
- "id": "steady-climb",
+ "id": "sorted-environment",
"metadata": {},
"source": [
"# 학습된 모델을 저장합니다."
@@ -1245,7 +1245,7 @@
{
"cell_type": "code",
"execution_count": 27,
- "id": "built-petite",
+ "id": "mounted-bearing",
"metadata": {},
"outputs": [],
"source": [
@@ -1255,7 +1255,7 @@
},
{
"cell_type": "markdown",
- "id": "amended-debut",
+ "id": "relevant-freight",
"metadata": {},
"source": [
"# Validation 결과 확인\n",
@@ -1265,7 +1265,7 @@
{
"cell_type": "code",
"execution_count": 28,
- "id": "expanded-shopping",
+ "id": "experienced-somalia",
"metadata": {},
"outputs": [
{
@@ -1288,7 +1288,7 @@
{
"cell_type": "code",
"execution_count": 29,
- "id": "retained-works",
+ "id": "palestinian-essex",
"metadata": {},
"outputs": [],
"source": [
@@ -1302,7 +1302,7 @@
{
"cell_type": "code",
"execution_count": 30,
- "id": "fleet-kidney",
+ "id": "korean-edwards",
"metadata": {},
"outputs": [],
"source": [
@@ -1319,7 +1319,7 @@
},
{
"cell_type": "markdown",
- "id": "configured-chase",
+ "id": "brief-review",
"metadata": {},
"source": [
"0번 라벨은 \"관계 없음\"이므로 해당 문장에 대해서 예측이 정확하게 됐음을 알 수 있습니다."
@@ -1328,7 +1328,7 @@
{
"cell_type": "code",
"execution_count": 31,
- "id": "million-mailing",
+ "id": "sought-cross",
"metadata": {},
"outputs": [
{
@@ -1348,7 +1348,7 @@
},
{
"cell_type": "markdown",
- "id": "educated-receiver",
+ "id": "guided-wallet",
"metadata": {},
"source": [
"다음으로 관계가 있는 문장에 대한 예측 결과를 살펴보겠습니다."
@@ -1357,7 +1357,7 @@
{
"cell_type": "code",
"execution_count": 32,
- "id": "little-showcase",
+ "id": "later-amendment",
"metadata": {},
"outputs": [
{
@@ -1380,7 +1380,7 @@
{
"cell_type": "code",
"execution_count": 33,
- "id": "local-cancer",
+ "id": "dried-dallas",
"metadata": {},
"outputs": [],
"source": [
@@ -1394,7 +1394,7 @@
{
"cell_type": "code",
"execution_count": 34,
- "id": "interpreted-airport",
+ "id": "adjusted-intelligence",
"metadata": {},
"outputs": [],
"source": [
@@ -1411,7 +1411,7 @@
},
{
"cell_type": "markdown",
- "id": "particular-compensation",
+ "id": "mature-olympus",
"metadata": {},
"source": [
"3번 라벨은 \"org:place_of_headquarters\" 이므로 해당 문장에 대해서 예측이 정확하게 됐음을 알 수 있습니다."
@@ -1420,7 +1420,7 @@
{
"cell_type": "code",
"execution_count": 35,
- "id": "domestic-vietnam",
+ "id": "pleased-imperial",
"metadata": {},
"outputs": [
{
@@ -1440,7 +1440,7 @@
},
{
"cell_type": "markdown",
- "id": "wrapped-invite",
+ "id": "spread-wedding",
"metadata": {},
"source": [
"# 모델 평가\n",
@@ -1454,7 +1454,7 @@
{
"cell_type": "code",
"execution_count": 36,
- "id": "wrapped-phoenix",
+ "id": "identical-steps",
"metadata": {},
"outputs": [],
"source": [
@@ -1478,7 +1478,7 @@
{
"cell_type": "code",
"execution_count": 37,
- "id": "metric-cruise",
+ "id": "divided-workstation",
"metadata": {},
"outputs": [
{
@@ -1516,7 +1516,7 @@
},
{
"cell_type": "markdown",
- "id": "theoretical-background",
+ "id": "greenhouse-residence",
"metadata": {},
"source": [
"약 61.93의 F1 score를 기록했습니다. 하이퍼파라미터, 모델 구조 등을 변경시켜 다양한 학습을 시도해보세요!"
@@ -1525,7 +1525,7 @@
{
"cell_type": "code",
"execution_count": 38,
- "id": "imposed-globe",
+ "id": "civilian-costa",
"metadata": {},
"outputs": [
{
@@ -1545,7 +1545,7 @@
},
{
"cell_type": "markdown",
- "id": "local-insulation",
+ "id": "loaded-mother",
"metadata": {},
"source": [
"학습된 모델은 Huggingface Model Hub에 배포되어 있고, 언제든지 다운받아서 활용이 가능합니다.\n",
@@ -1555,7 +1555,7 @@
},
{
"cell_type": "markdown",
- "id": "shared-dating",
+ "id": "challenging-saturday",
"metadata": {},
"source": [
"# Reference"
@@ -1563,7 +1563,7 @@
},
{
"cell_type": "markdown",
- "id": "drawn-trick",
+ "id": "wrong-criterion",
"metadata": {},
"source": [
"### klue-transformers-tutorial\n",