/KR-Conversation-Inference_Refined

[πŸ†κΈˆμƒ(ꡭ립ꡭ어원μž₯상)] 2024 인곡지λŠ₯의 ν•œκ΅­μ–΄ λŠ₯λ ₯ 평가 (AI말평) - λŒ€ν™” λ§₯락 μΆ”λ‘ 

Primary LanguagePythonApache License 2.0Apache-2.0

2024λ…„ 인곡지λŠ₯의 ν•œκ΅­μ–΄ λŠ₯λ ₯ 평가 경진 λŒ€νšŒ
- λŒ€ν™” λ§₯락 μΆ”λ‘  (λ‚˜ μœ ν˜•) πŸ€–πŸ’¬

ꡭ립ꡭ어원 인곡지λŠ₯(AI)말평 - 2024λ…„ 인곡지λŠ₯의 ν•œκ΅­μ–΄ λŠ₯λ ₯ 평가 경진 λŒ€νšŒ πŸ† κΈˆμƒ(ꡭ립ꡭ어원μž₯상) μˆ˜μƒ


λ³Έ λ¦¬ν¬μ§€ν† λ¦¬λŠ” ꡭ립ꡭ어원 '2024λ…„ 인곡지λŠ₯의 ν•œκ΅­μ–΄ λŠ₯λ ₯ 평가' 경진 λŒ€νšŒ 과제 쀑 'λŒ€ν™” λ§₯락 μΆ”λ‘  (λ‚˜ μœ ν˜•)'에 λŒ€ν•œ 제좜 λͺ¨λΈμ˜ ν•™μŠ΅ 및 좔둠을 μž¬ν˜„ν•˜κΈ° μœ„ν•œ μ½”λ“œλ₯Ό ν¬ν•¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

'λŒ€ν™” λ§₯락 μΆ”λ‘ ' κ³Όμ œλŠ” AI λͺ¨λΈμ΄ 주어진 λŒ€ν™” λ‚΄μš©μ„ μ΄ν•΄ν•˜κ³ , 주어진 λ°œν™”μ— λŒ€ν•œ 5가지 μΆ”λ‘  μœ ν˜• (원인, ν›„ν–‰ 사건, μ „μ œ 쑰건, 내적 동기, 감정 λ°˜μ‘) 쀑 κ°€μž₯ μ ν•©ν•œ 것을 μ„ νƒν•˜λŠ” λŠ₯λ ₯을 ν‰κ°€ν•©λ‹ˆλ‹€.
(κ°€ μœ ν˜•μ€ μ™ΈλΆ€ 데이터λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ 데이터 증강이 λΆˆκ°€λŠ₯ν•œ μœ ν˜•μ΄κ³ , λ‚˜ μœ ν˜•μ€ μ™ΈλΆ€ 데이터λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ 데이터λ₯Ό μ¦κ°•ν•˜μ—¬ μ‚¬μš© κ°€λŠ₯ν•œ μœ ν˜•μž…λ‹ˆλ‹€.)

μƒμ„Έν•œ λ‚΄μš©μ€ λͺ¨λΈ κΈ°μˆ μ„œμ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.


Table of Contents


Solution

λŒ€ν™” λ§₯락 μΆ”λ‘  과제λ₯Ό μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄, λ‹€μ–‘ν•œ λ°©λ²•μœΌλ‘œ 데이터셋을 κ΅¬μ„±ν•˜κ³ , μ‚¬μ „ν•™μŠ΅λœ LLM듀을 λ―Έμ„Έμ‘°μ •ν•˜μ—¬, 앙상블을 톡해 μΌλ°˜ν™”ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

μƒμ„Έν•œ λ‚΄μš©μ€ λͺ¨λΈ κΈ°μˆ μ„œμ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ€ν™” λ§₯락 μΆ”λ‘  λ§λ­‰μΉ˜ 데이터셋

ꡭ립ꡭ어원 인곡지λŠ₯(AI)λ§ν‰μ—μ„œ μ œκ³΅λ˜λŠ” λŒ€ν™” λ§₯락 μΆ”λ‘  λ§λ­‰μΉ˜ λ°μ΄ν„°μ…‹μ˜ μ˜ˆμ‹œλŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.


EDA (Exploratory Data Analysis) 뢄석 κ²°κ³ΌλŠ” resource/EDAλ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”.

데이터셋 μ „μ²˜λ¦¬ 및 μ •μ œ μ „λž΅

  1. κ°œν–‰λ¬Έμžλ‚˜ 곡백의 λ°˜λ³΅μ„ μΆ•μ•½ ('\n' β†’ ' ', ' ' β†’ ' ')
  2. νŠΉμ • μ΄ˆμ„±μ²΄λ₯Ό 본래의 의미둜 λŒ€μ²΄ ('γ…‡γ…‡γ…‡' β†’ '응')
  3. '.', '?' λ“±μ˜ 특수문자 λ°˜λ³΅μ„ μΆ•μ•½ ('.......' β†’ '...', '?????' β†’ '??')
  4. 의미 μ—†λŠ” 특수문자λ₯Ό μ‚­μ œ ('~', '@', '_', '/', '-', ':', ';', '(', ')', '^' λ“±)
  5. λŒ€ν™” λ‚΄μš©κ³Ό κ΄€λ ¨ μ—†λŠ” 인사말듀을 μ‚­μ œ ('μ•ˆλ…•ν•˜μ„Έμš”' β†’ '', 'λ°˜κ°‘μŠ΅λ‹ˆλ‹Ή' β†’ '')
  6. 읡λͺ…ν™” ν‘œκΈ° λ³€κ²½ ('name1' β†’ 'ν™”μž1', 'name2' β†’ 'ν™”μž2')
  7. 자음 및 λͺ¨μŒλ§Œ μžˆλŠ” 경우 제거 ('γ… γ…‘γ… ' β†’ '', 'γ…‹γ„±γ…‹γ„²γ…‹' β†’ '')
  8. ν•œ λ°œν™”μ— ν•œκΈ€μ΄ μ—†κ³ , 특수문자만 μžˆλŠ” κ²½μš°μ—λŠ” λ°œν™” 전체λ₯Ό μ‚­μ œ
  9. λ™μΌν•œ ν™”μžμ˜ 연속 λ°œν™”λ₯Ό 병합

데이터셋 μ „μ²˜λ¦¬ 및 μ •μ œ κ³Όμ •κ³Ό κ΄€λ ¨ν•˜μ—¬ μ„ΈλΆ€ κ΅¬ν˜„ μ½”λ“œλŠ” run/refine.py μ°Έμ‘°ν•΄μ£Όμ„Έμš”.

ν”„λ‘¬ν”„νŒ… μ „λž΅

λͺ¨λΈμ˜ μ„±λŠ₯을 높이기 μœ„ν•΄, λ‹€μ–‘ν•œ ν”„λ‘¬ν”„νŠΈλ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터셋을 κ΅¬μ„±ν•˜μ˜€μœΌλ©°, ν”„λ‘¬ν”„νŒ…μ΄ 적용된 λ°μ΄ν„°μ…‹μ˜ μ’…λ₯˜λŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

  • CustomRefDataset: λŒ€ν™”μ™€ νŠΉμ • λ°œν™”(Utterance References)λ₯Ό ν”„λ‘¬ν”„νŠΈμ— μ œκ³΅ν•˜λŠ” κΈ°λ³Έ 데이터셋
  • CustomRefOfficialTermDataset: CustomRefDatasetμ—μ„œ μ‚¬μš©λœ μΆ•μ•½λœ μΆ”λ‘ λ¬Έ μœ ν˜•μ˜ ν‘œν˜„μ„ 곡식 μš©μ–΄λ‘œ λŒ€μ²΄ν•˜μ—¬ ν”„λ‘¬ν”„νŠΈλ₯Ό κ΅¬μ„±ν•œ 데이터셋
  • CustomRefDefinitionDataset: CustomRefDatasetμ—μ„œ μ‚¬μš©λœ μΆ•μ•½λœ μΆ”λ‘ λ¬Έ μœ ν˜•μ˜ ν‘œν˜„ λŒ€μ‹  각 μΆ”λ‘ λ¬Έ μœ ν˜•μ˜ μ •μ˜λ₯Ό ν”„λ‘¬ν”„νŠΈμ— μ œκ³΅ν•œ 데이터셋
  • CustomRefInstructionDataset: CustomRefDefinitionDatasetμ—μ„œ μ‚¬μš©λœ Question λŒ€μ‹  Instruction을 ν”„λ‘¬ν”„νŠΈμ— μ œκ³΅ν•œ 데이터셋
  • SystemRefOfficialTermDataset: CustomRefOfficialTermDatasetμ—μ„œ μ‚¬μš©λœ λ‹¨μˆœν•œ System Prompt λŒ€μ‹ , ν”„λ‘¬ν”„νŠΈ μ—”μ§€λ‹ˆμ–΄λ§μ„ 톡해 더 ꡬ체적인 System Promptλ₯Ό μ œκ³΅ν•œ 데이터셋

λͺ¨λΈ 선택 μ „λž΅

λŒ€ν™” λ§₯락 μΆ”λ‘  과제λ₯Ό μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λœ λͺ¨λΈμ˜ μ’…λ₯˜λŠ” 4μ’…λ₯˜λ‘œ μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

μœ„ λͺ¨λΈλ“€μ€ μ•„λž˜μ™€ 같은 기쀀듀을 거쳐 μ„ μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

  1. LLM의 ν•œκ΅­μ–΄ μ„±λŠ₯ λ¦¬λ”λ³΄λ“œμΈ Open Ko-LLM Leaderboardμ—μ„œ 높은 점수λ₯Ό κΈ°λ‘ν•œ λͺ¨λΈ
  2. μΆ”λ‘  μ‹œμ—λŠ” λŒ€νšŒ κ·œμ •μ— 따라 RTX 4090 (24GB) GPU 1λŒ€λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•˜λ―€λ‘œ, μ μ ˆν•œ νŒŒλΌλ―Έν„° μ‚¬μ΄μ¦ˆλ₯Ό κ°–λŠ” λͺ¨λΈμ„ μ„ μ •
  3. λŒ€νšŒ κ·œμ •μ— 따라 ’24. 7. 1. 이후에 곡개된 λͺ¨λΈμ€ μ œμ™Έ
  4. μ˜€ν”ˆ μ†ŒμŠ€λ‘œ 곡개된 λͺ¨λΈ 쀑 λΌμ΄μ„ μŠ€ λ¬Έμ œκ°€ μ—†λŠ” λͺ¨λΈ
    • μ‚¬μš©ν•œ λͺ¨λΈλ“€μ€ λͺ¨λ‘ "Apache License 2.0"을 λ”°λ¦…λ‹ˆλ‹€.

λͺ¨λΈ ν•™μŠ΅ μ „λž΅: Parameter Efficient Fine Tuning

λͺ¨λΈμ˜ Weightλ₯Ό λͺ¨λ‘ ν›ˆλ ¨μ‹œν‚€λŠ” 것은 λΉ„νš¨μœ¨μ μ΄λ―€λ‘œ, Parameter Efficient Fine Tuning 기법인 LoRA와 QLoRAλ₯Ό μ‚¬μš©ν•˜μ—¬ λ©”λͺ¨λ¦¬ μš©λŸ‰κ³Ό 계산 λ¦¬μ†ŒμŠ€λ₯Ό λ”μš± 효율적으둜 μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. LoRAλŠ” "Low-Rank Adaptation"의 μ•½μžλ‘œ, μ„ ν˜• λ³€ν™˜μ„ μœ„ν•œ 저차원 λŒ€μ²΄ λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ LLM을 효율적으둜 λ―Έμ„Έ μ‘°μ •ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. QLoRAλŠ” "Quantized Low-Rank Adaptation"의 μ•½μžλ‘œ, μ΄λŠ” LoRA와 μœ μ‚¬ν•˜μ§€λ§Œ μ–‘μžν™”λœ 저차원 λŒ€μ²΄ λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν›ˆλ ¨μ„ λ”μš± 효율적으둜 λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€.

λͺ¨λΈ ν•™μŠ΅ μ „λž΅: ν•˜μ΄νΌ νŒŒλΌλ―Έν„°

곡톡 ν•˜μ΄νΌ νŒŒλΌλ―Έν„°
  • torch_dtype: bfloat16
  • seed: 42
  • SFTConfig
    • epoch: 4
    • per_device_train_batch_size: 1
    • per_device_eval_batch_size: 1
    • weight_decay: 0.1
    • lr_scheduler_type: "cosine"
    • warmup_steps: 20
    • neftune_noise_alpha: None
    • gradient_accumulation_steps: 64
    • gradient_checkpointing: True
    • gradient_checkpointing_kwargs: {"use_reentrant": False}
    • max_seq_length: 1024
  • LoraConfig
    • r: 16
    • lora_alpha: 32
    • lora_dropout: 0.01
    • target_modules: ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj", "lm_head"]
Backbone Model Fine-tuning Method Learning Rate Dataset Type Refinement
x2bee/POLAR-14B-v0.2 QLoRA 2e-4 CustomRefOfficialTermDataset X
x2bee/POLAR-14B-v0.5 QLoRA 2e-4 SystemRefOfficialTermDataset O
x2bee/POLAR-14B-v0.5 QLoRA 2e-4 CustomRefDefinitionDataset X
x2bee/POLAR-14B-v0.5 QLoRA 1e-4 CustomRefInstructionDataset X
beomi/Solar-Ko-Recovery-11B LoRA 2e-4 CustomRefDataset O
beomi/Solar-Ko-Recovery-11B LoRA 2e-4 CustomRefDataset X
beomi/Solar-Ko-Recovery-11B LoRA 1e-4 CustomRefDataset X
beomi/Solar-Ko-Recovery-11B LoRA 1e-4 CustomRefInstructionDataset X
beomi/Solar-Ko-Recovery-11B LoRA 1e-4 CustomRefDefinitionDataset X
beomi/Solar-Ko-Recovery-11B LoRA 1e-4 SystemRefOfficialTermDataset X
chihoonlee10/T3Q-ko-solar-dpo-v7.0 LoRA 2e-4 CustomRefInstructionDataset X

앙상블

λͺ¨λΈμ˜ μΆ”λ‘  κ²°κ³Όλ₯Ό μΌλ°˜ν™” ν•˜κΈ° μœ„ν•΄, λ‹€μ–‘ν•œ λ°©μ‹μœΌλ‘œ λ―Έμ„Έμ‘°μ •ν•œ λͺ¨λΈλ“€μ˜ μΆ”λ‘  κ²°κ³Όλ₯Ό Hard Voting λ°©μ‹μœΌλ‘œ μ•™μƒλΈ”ν•˜μ—¬ μ΅œμ’… κ²°κ³Όλ₯Ό λ„μΆœν•©λ‹ˆλ‹€.


디렉토리 ꡬ쑰

KR-Conversation-Inference_Refined
β”œβ”€β”€ resource # ν•™μŠ΅μ— ν•„μš”ν•œ λ¦¬μ†ŒμŠ€λ“€μ„ λ³΄κ΄€ν•˜λŠ” 디렉토리
β”‚   β”œβ”€β”€ EDA # 데이터 뢄석 κ²°κ³Όλ₯Ό λ³΄κ΄€ν•˜λŠ” 디렉토리
β”‚   β”œβ”€β”€ data # 데이터셋을 λ³΄κ΄€ν•˜λŠ” 디렉토리
β”‚   β”‚   └── λŒ€ν™”λ§₯락좔둠_데이터.zip
β”‚   β”œβ”€β”€ refined_data # μ „μ²˜λ¦¬λœ 데이터셋을 λ³΄κ΄€ν•˜λŠ” 디렉토리
β”‚   └── results # ν•™μŠ΅λœ λͺ¨λΈμ΄ μ €μž₯될 디렉토리
β”‚       └── predictions # μΆ”λ‘  κ²°κ³Όλ₯Ό λ³΄κ΄€ν•˜λŠ” 디렉토리
β”œβ”€β”€ run # μ‹€ν–‰ κ°€λŠ₯ν•œ python 슀크립트λ₯Ό λ³΄κ΄€ν•˜λŠ” 디렉토리
β”‚   β”œβ”€β”€ refine.py
β”‚   β”œβ”€β”€ EDA.py
β”‚   β”œβ”€β”€ train.py
β”‚   └── test.py
β”œβ”€β”€ scripts # ν•™μŠ΅ 및 좔둠을 μ‹€ν–‰ν•˜κΈ° μœ„ν•œ bash 슀크립트λ₯Ό λ³΄κ΄€ν•˜λŠ” 디렉토리
β”‚   β”œβ”€β”€ train_model_1.sh
β”‚   β”œβ”€β”€ ...
β”‚   β”œβ”€β”€ train_model_11.sh
β”‚   β”œβ”€β”€ train.sh # ν•™μŠ΅μ„ μ‹€ν–‰ν•˜κΈ° μœ„ν•œ bash 슀크립트
β”‚   β”œβ”€β”€ test_model_1.sh
β”‚   β”œβ”€β”€ ...
β”‚   β”œβ”€β”€ test_model_11.sh
β”‚   β”œβ”€β”€ hard_voting.sh # 앙상블을 μœ„ν•œ bash 슀크립트
β”‚   └── test.sh # 좔둠을 μ‹€ν–‰ν•˜κΈ° μœ„ν•œ bash 슀크립트
└── src # ν•™μŠ΅μ— μ‚¬μš©λ  ν•¨μˆ˜λ“€μ„ λ³΄κ΄€ν•˜λŠ” 디렉토리
    └── data.py

μ‹€ν–‰ 방법

Requirements

μ½”λ“œ 싀행을 μœ„ν•΄ μ•„λž˜μ™€ 같은 ν™˜κ²½μ΄ ν•„μš”ν•©λ‹ˆλ‹€.

  • Ubuntu 20.04.5 LTS
  • Python 3.9.19
  • Miniconda 24.1.2
  • git

condaκ°€ μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•Šμ€ 경우 μ•„λž˜λ₯Ό μ°Έκ³ ν•˜μ—¬ μ„€μΉ˜ν•΄μ£Όμ„Έμš”.

Miniconda μ„€μΉ˜

$ cd ~ # μ„€μΉ˜ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•  경둜둜 이동 (to home directory)
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh # Miniconda μ„€μΉ˜ 파일 λ‹€μš΄λ‘œλ“œ
$ bash Miniconda3-latest-Linux-x86_64.sh # μ„€μΉ˜ 파일 μ‹€ν–‰
$ export PATH=~/miniconda3/bin:$PATH # ν™˜κ²½ λ³€μˆ˜ μ„€μ •
$ source ~/.bashrc # Anaconda μ„€μΉ˜ ν›„ bash shell ν™˜κ²½ μž¬μ„€μ •
$ conda init # conda μ΄ˆκΈ°ν™”
$ conda --version # conda 버전 확인

ν™˜κ²½ μ„€μ •

개발 ν™˜κ²½ μ„€μ •

$ git clone https://github.com/oneonlee/KR-Conversation-Inference_Refined.git
$ cd KR-Conversation-Inference_Refined
$ conda create -n KR-Conversation-Inference python=3.9.19 # κ°€,λ‚˜ μœ ν˜• λͺ¨λ‘ 동일
$ conda activate KR-Conversation-Inference # κ°€,λ‚˜ μœ ν˜• λͺ¨λ‘ 동일
$ pip install -r requirements.txt # κ°€,λ‚˜ μœ ν˜• λͺ¨λ‘ 동일

ν•œκΈ€ 폰트 μ„€μΉ˜ (EDA μ‹œ ν•„μš”)

$ curl -o nanumfont.zip http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFont_TTF_ALL.zip
$ sudo unzip -d /usr/share/fonts/nanum nanumfont.zip
$ sudo fc-cache -f -v
$ fc-list | grep Nanum
$ rm ~/.cache/matplotlib/fontlist*

데이터셋 μ€€λΉ„

인곡지λŠ₯(AI)말평 과제 νŽ˜μ΄μ§€μ—μ„œ λŒ€ν™” λ§₯락 μΆ”λ‘  λ§λ­‰μΉ˜λ₯Ό λ‹€μš΄λ‘œλ“œ λ°›μ•„ resource/data 디렉토리에 μœ„μΉ˜μ‹œν‚΅λ‹ˆλ‹€.

# 데이터셋 μ••μΆ• ν•΄μ œ
$ cd resource/data
$ unzip λŒ€ν™”λ§₯락좔둠_데이터.zip
$ mv λŒ€ν™”λ§₯락좔둠_데이터/λŒ€ν™”λ§₯락좔둠_train.json train.json
$ mv λŒ€ν™”λ§₯락좔둠_데이터/λŒ€ν™”λ§₯락좔둠_dev.json dev.json
$ mv λŒ€ν™”λ§₯락좔둠_데이터/λŒ€ν™”λ§₯락좔둠_test.json test.json
$ rm -r λŒ€ν™”λ§₯락좔둠_데이터

# train.jsonκ³Ό dev.json을 합쳐 train+dev.json 파일 생성
$ head -n -1  train.json > temp.json
$ truncate -s -2 temp.json
$ echo "," >> temp.json
$ tail -n +2 dev.json >> temp.json
$ mv temp.json train+dev.json
$ cd ../../

# 데이터셋 μ „μ²˜λ¦¬ 및 μ •μ œ
$ python run/refine.py

EDA (Exploratory Data Analysis)

데이터셋을 λΆ„μ„ν•˜κΈ° μœ„ν•΄ μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.

$ python run/EDA.py
$ python run/EDA.py --refined

뢄석 κ²°κ³ΌλŠ” resource/EDA 디렉토리에 μ €μž₯되며, μ•„λž˜μ™€ 같은 νŒŒμΌλ“€μ΄ μƒμ„±λ©λ‹ˆλ‹€.

  • category_distribution.png : μΆ”λ‘ λ¬Έ μœ ν˜•λ³„ 뢄포
  • conversation_length_distribution.png : λŒ€ν™” ν„΄ 수 뢄포
  • output_distribution.png : μ •λ‹΅ μΆ”λ‘ λ¬Έ μœ ν˜•μ˜ 뢄포
  • total_utterance_length_distribution.png : λŒ€ν™” 전체 길이 뢄포
  • total_utterance_lengths.csv : λŒ€ν™” 별 전체 길이 데이터
  • wordcloud.png : λŒ€ν™” λ‚΄μš© μ›Œλ“œν΄λΌμš°λ“œ

ν•™μŠ΅ (Train)

ν•™μŠ΅μ—λŠ” A100-PCIe-40GB GPU 1λŒ€κ°€ μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λΈμ„ ν•™μŠ΅ν•˜λ €λ©΄ μ•„λž˜μ™€ 같이 μ‹€ν–‰ν•©λ‹ˆλ‹€.

$ sh scripts/train.sh

μΆ”λ‘  (Inference)

μΆ”λ‘ μ—λŠ” RTX 4090 (24GB) GPU 1λŒ€κ°€ μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λΈμ„ μΆ”λ‘ ν•˜λ €λ©΄ μ•„λž˜μ™€ 같이 μ‹€ν–‰ν•©λ‹ˆλ‹€.

$ sh scripts/test.sh

μ΅œμ’… κ²°κ³ΌλŠ” resource/results/predictions λ””λ ‰ν† λ¦¬μ˜ final-result.json νŒŒμΌμ— μ €μž₯λ©λ‹ˆλ‹€.

평가 κ²°κ³Ό

μ΅œμ’… κ²°κ³ΌλŠ” μ•½ 98.01%의 μ •ν™•λ„λ‘œ λ¦¬λ”λ³΄λ“œ 1μœ„λ₯Ό λ‹¬μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

License

λ³Έ λ¦¬ν¬μ§€ν† λ¦¬λŠ” Apache License 2.0을 λ”°λ¦…λ‹ˆλ‹€.

References