|
--- |
|
license: cc-by-nc-4.0 |
|
--- |
|
|
|
# **TinyWand-SFT** |
|
<p align="left"> |
|
<img src="./TinyWand.png" width="150"/> |
|
<p> |
|
|
|
# **ํ๊ตญ์ด ๋ชจ๋ธ ์ค๋ช
** |
|
|
|
**1.63B, ํ์ฐฎ์ ํฌ๊ธฐ์ SLM์ ์ด๋จ๊น์?** |
|
|
|
## **๋ชจ๋ธ ์๊ฐ** |
|
**TinyWand-SFT**๋ 1.63B์ SLM ๋ชจ๋ธ์
๋๋ค. ์ด ๋ชจ๋ธ์ 1.63B๋ผ๋ ์์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง์ผ๋ก์จ ์ํ๊ธฐ๊ธฐ์์ ๊ตฌ๋๋๊ฑฐ๋ ํฐ toks/s๋ฅผ ๊ฐ์ง ์ ์์๊ณผ ๋์์ ๊ฐ๋ ฅํ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค. |
|
|
|
## **๋ชจ๋ธ ๋ผ์ด์ผ์ค** |
|
ํ์ฌ ๋ชจ๋ธ์ ์์
์ ์ด์ฉ ๋ถ๊ฐ์ธ cc-by-nc-4.0์ ๋ผ์ด์ผ์ค๋ฅผ ์ ์ฉ๋ฐ๊ณ ์์ผ๋ฉฐ, ์ด๋ ํด๋น ๋ชจ๋ธ์ weight๋ฅผ ์ด์ฉํ ํ์ธํ๋, Continual-์ฌ์ ํ์ต ๋ชจ๋ธ์๋ ๋์ผํ๊ฒ ์ ์ฉ๋ฉ๋๋ค. |
|
|
|
๋ผ์ด์ผ์ค๋ ๋ฌด๋ฃ ํน์ ์กฐ๊ฑด๋ถ๋ก ๋ฉฐ์น ํ ์์ ๋ ์์ ์
๋๋ค. |
|
|
|
## **๋ชจ๋ธ ์ฑ๋ฅ** |
|
TBD |
|
|
|
### ํ๊ณ |
|
์์ ํฌ๊ธฐ๋ก ์ธํ์ฌ Insturct ํ์ธํ๋ ํ ํด๋น ํ
ํ๋ฆฟ์ด ์๋๊ฒฝ์ฐ ์ ๋๋ก ์๋ตํ์ง ์๋ ๋ชจ์ต์ ๋ณด์. ํน์ task์ ์ฌ์ฉํ๋ค๋ฉด ํ๋กฌํํ
๋ณด๋ค๋ ํ์ธํ๋์ ๊ถ์ฅํจ. |
|
|
|
๊ฐ์ ์ด์ ๋ก ์ผ๋ฐ์ ์ธ ๋ฒค์น๋งํฌ์์๋ ์๋นํ ๋ฎ์ ์ ์๋ฅผ ๋ณด์. |
|
|
|
## **ํ์ต ๊ณผ์ ** |
|
TBD |
|
|
|
## **์ฌ์ฉ ์๋ด** |
|
|
|
**์ถ๋ก ์ ํ์ํ VRAM** |
|
| ์์ํ | ์
๋ ฅ ํ ํฐ ์ | ์ถ๋ ฅ ํ ํฐ ์ | ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ | |
|
|---|---|---|---| |
|
| bf16(base) | 64 | 256 | 3,888 MiB | |
|
| q4_K_M | 64 | 256 | 1,788 MiB | |
|
|
|
**ํ๋กฌํํธ ํ
ํ๋ฆฟ** |
|
|
|
๋ณธ ๋ชจ๋ธ์ Alpaca ํ๋กฌํํธ ํ
ํ๋ฆฟ์ ์ฌ์ฉํฉ๋๋ค. |
|
|
|
ํด๋น ํ
ํ๋ฆฟ์ `apply_chat_template()`๋ฅผ ํตํด [ํ๊น
ํ์ด์ค ํ
ํ๋ฆฟ](https://huggingface.co/docs/transformers/main/chat_templating)์์ ํ์ธ ํ์ค ์ ์์ต๋๋ค. |
|
|
|
**์๋ ํ์ด์ฌ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ก๋ ๋ฐ ์ฌ์ฉ ํ ์ ์์ต๋๋ค.** |
|
*transformers, torch๊ฐ ์ฌ์ ์ค์น๋์ด์ผํจ* |
|
|
|
```python |
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
|
device = "cuda" # nvidia ๊ทธ๋ํฝ์นด๋ ๊ธฐ์ค |
|
|
|
tokenizer = AutoTokenizer.from_pretrained("maywell/TinyWand-SFT") |
|
model = AutoModelForCausalLM.from_pretrained( |
|
"maywell/TinyWand-SFT", |
|
device_map="auto", |
|
torch_dtype=torch.bfloat16, # ์ฌ์ฉํ๋ ์ฅ๋น๊ฐ bfloat16์ ์ง์ํ์ง ์๋ ๊ฒฝ์ฐ torch.float16์ผ๋ก ๋ฐ๊ฟ์ฃผ์ธ์. |
|
) |
|
|
|
messages = [ |
|
{"role": "system", "content": "Below is an instruction that describes a task. Write a response that appropriately completes the request."}, # ๋น์ธ ๊ฒฝ์ฐ์๋ ๋์ผํ๊ฒ ์ ์ฉ ๋จ. |
|
{"role": "user", "content": "์ธ์ด๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ ์๊ฐ ์์ผ๋ฉด ์ด๋ค ์ด์ ์ด ์์ด?"}, |
|
] |
|
|
|
encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt") |
|
|
|
model_inputs = encodeds.to(device) |
|
model.to(device) |
|
|
|
generated_ids = model.generate(model_inputs, max_new_tokens=1000, do_sample=True) |
|
decoded = tokenizer.batch_decode(generated_ids) |
|
print(decoded[0]) |
|
``` |