license: cc-by-nc-4.0
TinyWand-SFT
ํ๊ตญ์ด ๋ชจ๋ธ ์ค๋ช
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()
๋ฅผ ํตํด ํ๊น
ํ์ด์ค ํ
ํ๋ฆฟ์์ ํ์ธ ํ์ค ์ ์์ต๋๋ค.
์๋ ํ์ด์ฌ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ก๋ ๋ฐ ์ฌ์ฉ ํ ์ ์์ต๋๋ค. transformers, torch๊ฐ ์ฌ์ ์ค์น๋์ด์ผํจ
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])