File size: 3,950 Bytes
87e2f2c fe7adc5 87e2f2c fe7adc5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
---
language: ko
license: apache-2.0
base_model: unsloth/Llama-3.2-3B-Instruct
tags:
- financial
- credit-rating
- korean
- llama
- unsloth
- fine-tuned
model_name: FinCreditLlama-3.2-3B
pipeline_tag: text-generation
---
# FinCreditLlama-3.2-3B
## ๋ชจ๋ธ ๊ฐ์
FinCreditLlama-3.2-3B๋ ๊ธ์ต ์ ์ฉ ํ๊ฐ๋ฅผ ์ํด ํน๋ณํ ์ค๊ณ๋ ํ๊ตญ์ด ์ธ์ด ๋ชจ๋ธ์
๋๋ค.
**๋ฒ ์ด์ค ๋ชจ๋ธ**: unsloth/Llama-3.2-3B-Instruct
**๋ฐ์ดํฐ์
**: himedia/financial_dummy_data_v4
**ํ์ต ๋ฐฉ๋ฒ**: LoRA (Low-Rank Adaptation) - **๋ณํฉ๋ ์ ์ฒด ๋ชจ๋ธ**
**ํ์ต ์ผ์**: 20250702_181705
## ๐ ํ์ต ๊ฒฐ๊ณผ
- **Final Training Loss**: 0.8515
- **Final Validation Loss**: 0.7593
- **Best Validation Loss**: 0.7593 (step 10)
- **Overall Improvement**: 62.7%
- **Training Time**: 0.64 minutes
## ํ์ดํผํ๋ผ๋ฏธํฐ
- **Learning Rate**: 0.0002
- **Max Steps**: 10
- **Batch Size**: 2
- **Gradient Accumulation**: 8
- **LoRA r**: 64
- **LoRA alpha**: 64
- **Max Sequence Length**: 2048
- **Warmup Steps**: 5
## ๐ง ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋
- **GPU**: NVIDIA A100-SXM4-40GB
- **Peak Memory**: 6.674 GB
- **Memory Usage**: 16.9%
## ์ฌ์ฉ ๋ฐฉ๋ฒ
### ์ผ๋ฐ์ ์ธ ์ฌ์ฉ (Transformers)
```python
from transformers import AutoTokenizer, AutoModelForCausalLM
# ๋ชจ๋ธ๊ณผ ํ ํฌ๋์ด์ ๋ก๋
tokenizer = AutoTokenizer.from_pretrained("himedia/fincredit-lamma-3.2-3b-lr2e04-bs16-r64-steps10-20250702_181705")
model = AutoModelForCausalLM.from_pretrained("himedia/fincredit-lamma-3.2-3b-lr2e04-bs16-r64-steps10-20250702_181705")
# ๊ฐ๋จํ ์ถ๋ก ์์
prompt = "๊ณ ๊ฐ์ ์ ์ฉ๋ฑ๊ธ์ ํ๊ฐํด์ฃผ์ธ์:"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_length=200)
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(result)
```
### vLLM ์ฌ์ฉ (๊ณ ์ฑ๋ฅ ์ถ๋ก )
```python
from vllm import LLM, SamplingParams
# vLLM ๋ก๋ (๋ณํฉ๋ ๋ชจ๋ธ์ด๋ฏ๋ก ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅ)
llm = LLM(
model="himedia/fincredit-lamma-3.2-3b-lr2e04-bs16-r64-steps10-20250702_181705",
max_model_len=2048,
gpu_memory_utilization=0.85
)
# ์ํ๋ง ํ๋ผ๋ฏธํฐ ์ค์
sampling_params = SamplingParams(
temperature=0.7,
top_p=0.9,
max_tokens=200
)
# ์ถ๋ก
prompts = ["๊ณ ๊ฐ์ ์ ์ฉ๋ฑ๊ธ์ ํ๊ฐํด์ฃผ์ธ์:"]
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}")
print(f"Generated text: {generated_text!r}")
```
### Unsloth ํ
์คํธ ํ๊ฒฝ์์ ์ฌ์ฉ
```python
from unsloth import FastLanguageModel
# ์๋ณธ LoRA ์ด๋ํฐ๋ก ํ
์คํธ
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "himedia/fincredit-Llama-3.2-3B-lr2e04-bs16-r64-steps1000-20250623_060351", # LoRA ์ด๋ํฐ
max_seq_length = 2048,
dtype = None,
load_in_4bit = True,
)
```
## ๐ ํ์ต ๋ฐ์ดํฐ ํ์ผ
์ด ๋ ํฌ์งํ ๋ฆฌ์๋ ๋ค์ ํ์ต ๊ด๋ จ ํ์ผ๋ค์ด ํฌํจ๋์ด ์์ต๋๋ค:
- `training_log.json`: ์ ์ฒด ํ์ต ๋ก๊ทธ (JSON ํ์)
- `FinCreditLlama-3.2-3B_20250702_181705_training_curves.png`: ํ์ต ๊ณก์ ์๊ฐํ ์ด๋ฏธ์ง
## ๋ ํฌ์งํ ๋ฆฌ๋ช
๊ตฌ์ฑ
```
fincredit-lamma-3.2-3b-lr2e04-bs16-r64-steps10-20250702_181705 = fincredit-lamma3-4b-lr2e04-bs2-r64-steps10-20250702_181705
```
- `fincredit-lamma3-4b`: ๋ชจ๋ธ ๊ธฐ๋ณธ๋ช
- `lr2e04`: Learning Rate
- `bs2`: Batch Size
- `r64`: LoRA rank
- `steps10`: ํ์ต ์คํ
- `20250702_181705`: ํ์ต ์๊ฐ
## ๋ฐฐํฌ ์ ๋ณด
- **๋ชจ๋ธ ํ์
**: ๋ณํฉ๋ ์ ์ฒด ๋ชจ๋ธ (LoRA ์ด๋ํฐ๊ฐ ๋ฒ ์ด์ค ๋ชจ๋ธ์ ๋ณํฉ๋จ)
- **vLLM ํธํ**: โ
์์ ํธํ
- **RunPod ๋ฐฐํฌ**: โ
์ง์
- **์๋ณธ LoRA ์ด๋ํฐ**: `himedia/fincredit-Llama-3.2-3B-lr2e04-bs16-r64-steps1000-20250623_060351`
## ์ฑ๋ฅ
์ด ๋ชจ๋ธ์ ํ๊ตญ์ด ๊ธ์ต ํ
์คํธ์ ๋ํด ํ์ธํ๋๋์ด ์ ์ฉ ํ๊ฐ ๊ด๋ จ ์ง์์๋ต์ ํนํ๋์ด ์์ต๋๋ค.
## ๋ผ์ด์ ์ค
Apache 2.0
|