π LV.2 NLP νλ‘μ νΈ : 'μ£Όμ λΆλ₯ νλ‘μ νΈ'
νΉμ§
μ€λͺ
λν μ£Όμ
λ°μ΄ν° μ€μ¬ μμ°μ΄μ²λ¦¬ λν - λ°μ΄ν° νμ§ κ°μ μ ν΅ν μ±λ₯ ν₯μ
λν μ€λͺ
λͺ¨λΈ ꡬ쑰 λ³κ²½ μμ΄ λ°μ΄ν° νμ§ κ°μ λ§μΌλ‘ λΆλ₯ μ±λ₯μ ν₯μμν€λ λν
λ°μ΄ν° ꡬμ±
μλ³Έ λ°μ΄ν°: 2,800κ° (λ
Έμ΄μ¦ 1,600κ°, μ€λΌλ²¨λ§ 1,000κ°, μ μ λ°μ΄ν° 200κ°)
νκ° μ§ν
Macro F1 Score
π₯ Public Leader Board (1μ)
π₯ Private Leader Board (1μ)
π¨βπ» 15μ‘°κ°μμ€μ‘° λ©€λ²
κΉμ§μ¬
λ°κ·ν
μ€μ μ
μ΄μ λ―Ό
μνν
νμ
μν
κΉμ§μ¬
Clusteringβ, Data Augmentationβ, LLM Relabeling
λ°κ·ν
EDAβ, Data Denoiseβ, Data Augmentationβ, LLM Relabelingβ
μ€μ μ
Data Augmentationβ, Clusteringβ, LLM Relabeling
μ΄μ λ―Ό
Data Denoiseβ, Noun Removalβ, Clusteringβ
μνν
Data Denoiseβ, Back Translationβ, Data Augmentation
π₯οΈ νλ‘μ νΈ κ°μ
κ°μ
μ€λͺ
μ£Όμ
λ°μ΄ν° νμ§ κ°μ μ ν΅ν λ΄μ€ κΈ°μ¬ μ£Όμ λΆλ₯ μ±λ₯ ν₯μ
λͺ©ν
λ
Έμ΄μ¦ μ κ±°, λ°μ΄ν° μ¦κ° λ±μ ν΅ν F1 Score κ°μ
νκ° μ§ν
Macro F1 Score
κ°λ° νκ²½
Python 3.10, PyTorch, Transformers
νμ
νκ²½
GitHub, Notion, Slack, W&B
π
νλ‘μ νΈ νμλΌμΈ
νλ‘μ νΈλ 2024.10.28 - 2024.11.07 (μ΄ 11μΌ)
π΅οΈ νλ‘μ νΈ μ§ν
νλ‘μ νΈλ₯Ό μ§ννλ©° λ¨κ³λ³λ‘ μ€ννμ¬ μ μ©ν λ΄μ©λ€μ μλμ κ°μ΅λλ€.
νλ‘μΈμ€
μ€λͺ
EDA
λ
Έμ΄μ¦/λΉ-λ
Έμ΄μ¦ λ°μ΄ν° λΆμ, λΌλ²¨ λΆν¬ λΆμ
μ μ²λ¦¬
LLM κΈ°λ° λ
Έμ΄μ¦ μ κ±°, λͺ
μ¬ κΈ°λ° μ€λ³΅ λ°μ΄ν° μ κ±°
μ¦κ°
LLMμ νμ©ν λ°μ΄ν° μ¦κ°, DeepL APIλ₯Ό νμ©ν μλ²μ
ν΄λ¬μ€ν°λ§
GMM, K-Means νμ©ν μ€λΌλ²¨ λ°μ΄ν° 보μ
LLM μ μ
1. EXAONE-3.0-7.8B-Instruct (KoMT λ²€μΉλ§ν¬ κ³ μ±λ₯) 2. aya-expanse-8b (m-ArenaHard λ²€μΉλ§ν¬ κ³ μ±λ₯) 3. ko-gemma-2-9b-it (Horangi Leaderboard κ³ μ±λ₯)
λ°μ΄ν° μ¦κ° λ° μ μ κ³Όμ μ ν΅ν΄ μλ³Έ λ°μ΄ν°μμ κ³ νμ§μ μ΅μ’
λ°μ΄ν°μ
μ ꡬμΆνμ΅λλ€.
λ¨κ³
μ€λͺ
ν¬κΈ°
Raw Data
μλ³Έ λ°μ΄ν° (λ
Έμ΄μ¦ 1,600κ° ν¬ν¨)
2,800κ°
Final Dataset
LLM κΈ°λ° λ
Έμ΄μ¦ μ κ±°, λ°μ΄ν° μ¦κ°, μλ²μ, ν΄λ¬μ€ν°λ§ 보μ μ ν΅ν΄ ꡬμΆλ μ΅μ’
λ°μ΄ν°
15,780κ°
νλ‘μ νΈ ν΄λ ꡬ쑰λ λ€μκ³Ό κ°μ΅λλ€.
level2-datacentric-nlp-15
βββ data
β βββ test_dataset
β βββ train_dataset
βββ models
βββ output
βββ README.md
βββ requirements.txt
βββ run.py
βββ src
βββarguments.py
βββmain.py
βββmodel.py
ββback_translation
β βββ back_translation.ipynb
β
ββclustering
β βββ clustering.ipynb
β
ββLLM_noise_tasks
β βββ char_filter.py
β βββ LLM_aug.ipynb
β βββ LLM_cleaning_noise.ipynb
β βββ LLM_label_filtering.ipynb
β
ββnoun_removal
β βββ noun_analysis.py
β
ββpost_processing_cleanlab
βββ post_processing.ipynb
π¦ src ν΄λ ꡬ쑰 μ€λͺ
β’ arguments.py : λ°μ΄ν° μ¦κ°μ νλ νμΌ
β’ main.py : λͺ¨λΈ train, eval, prediction μ μννλ νμΌ
β’ model.py : μ
λ ₯ ν
μ€νΈμ λ μ΄λΈ λ°μ΄ν°λ₯Ό BERT λͺ¨λΈ νμ΅μ λ§κ² ν ν¬λμ΄μ¦νκ³ ν
μ νμμΌλ‘ λ³νν΄μ£Όλ PyTorch Dataset ꡬνν νμΌ
β’ back_translation.ipynb : μλ²μ ν
μ€ν¬μ μννλ νμΌ
β’ clustering.ipynb : ν΄λ¬μ€ν°λ§ ν
μ€ν¬λ₯Ό μννλ νμΌ
β’ char_filter.py : λΆνμν noise λ°μ΄ν°λ₯Ό μ /ν μ²λ¦¬νλ νμΌ
β’ LLM_aug.ipynb : LLM μ νμ©ν λ°μ΄ν° μμ±, μ¦κ°μ μννλ νμΌ
β’ LLM_cleaning_noise.ipynb : LLM μ νμ©ν noiseλ₯Ό νλ³νκ³ denoiseμ μννλ νμΌ
β’ LLM_label_filtering.ipynb : LLM μ νμ©ν΄μ ν
μ€νΈλ€μ μ£Όμ λ₯Ό λ½κ³ μ¬-λΌλ²¨λ§, μμ±μ μννλ νμΌ
β’ noun_analysis.py : λ¨μ΄μ λΉλλ₯Ό λΆμνμ¬μ λ°μ΄ν°λ₯Ό μ μ νμ¬ κ°μ μ μννλ νμΌ
β’ post_processing.ipynb : cleanlab μ νμ©νμ¬μ λ°μ΄ν°λ₯Ό μ μ , μ κ±°λ₯Ό μννλ νμΌ
- python=3.10 νκ²½μμ requirements.txtλ₯Ό pipλ‘ install ν©λλ€. (pip install -r requirements.txt)
- python run.pyλ₯Ό μ
λ ₯νμ¬ νλ‘κ·Έλ¨μ μ€νν©λλ€.