Instructions to use junho908/caution-smart-assistant-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use junho908/caution-smart-assistant-v1 with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-0.6B") model = PeftModel.from_pretrained(base_model, "junho908/caution-smart-assistant-v1") - Notebooks
- Google Colab
- Kaggle
μ½μ μ€λ§νΈ AI v1 Β· μΉμΈ κ΅μ μΌλ‘ λ°°μ΄ μ 무 νλ¨ μμ ν
νμ₯μμ μ§μ κ³ μΉ κΈ°μ€μ μμ μΈμ΄ λͺ¨λΈμ΄ λ°°μΈ μ μλμ§ νμΈν κ³΅κ° μ€νμ λλ€. μ€μ Qwen3-0.6B λͺ¨λΈμ LoRA μ§λνμ΅μ μνν PEFT μ΄λν°λ₯Ό μ 곡ν©λλ€.
νκΉ νμ΄μ€μμ μ§μ 체ννκΈ°
무μμ νλ λͺ¨λΈμΈκ°μ?
μλμ°¨ μμ
μ¬μ§μ μ€λͺ
Β·κΈ°λ‘·촬μ μμ μ κ΄ν κΈμ μ½κ³ , νλ¨, κ·Όκ±°, μΆκ°νμΈμ νκ΅μ΄ JSONμΌλ‘ μμ±ν©λλ€.
μ
κ³ μ μμ± μ¬μ§ ꡬλΆ, κΈ°ν κΈ°λ‘ μ¬μ§, μ§μ 곡μ κ·Όκ±° μ°μ , μμ μΆκ³ μ μ€μ μΈλ ꡬλΆ,
λμΌ μ°¨λμ λ€λ₯Έ λ°©λ¬Έ ꡬλΆ, νμΈλ μ¬μ€μ κ·Όκ±°ν λΈλ‘κ·Έ μ€λͺ
μ μ°μ΅νμ΅λλ€.
μ¬μ§μ μ§μ μ½λ λͺ¨λΈ, μ΄μ μ½μ λΉμ μ 체, μμ¨μ μΈ μΆκ³ Β·λΈλ‘κ·Έ μ€ν μμ€ν μ μλλλ€. μ€μ κ³ κ° λ°μ΄ν°Β·μ¬μ§Β·μ°¨λλ²νΈΒ·μ°λ½μ²Β·μ΄μ μλ²μ μ°κ²°λμ§ μμ΅λλ€.
μ΄λ€ μλ£λ‘ νμ΅νλμ?
μ§μ μΉμΈλ κ΅μ 5κ°μ λͺ
μμ μ΄μ κΈ°μ€ 4κ°, ν©κ³ 9κ°λ₯Ό μ¬μ©νμ΅λλ€.
κ²ν μ μ΄μ 36κ°μ μΆ©λ νλͺ© 1κ°λ μ μΈνμ΅λλ€.
source_corrections.jsonμ κ°μΈ μλ³ μ λ³΄κ° μλ ν΄λΉ κΈ°μ€λ§ λ΄κ³ μμ΅λλ€.
| κ΅¬λΆ | λ¬Έμ₯ μ | μ©λ |
|---|---|---|
| νμ΅ | 121 | μλ³Έ κΈ°μ€ λ¬Έμ₯κ³Ό κΈ°μ€μμ νμν κ°μ μ°μ΅λ¬Έμ |
| κ²μ¦ | 18 | λ³λ ννμ κ°μ λ¬Έμ , 체ν¬ν¬μΈνΈ μ ν |
| μν | 30 | λ³λ ννμ κ°μ λ¬Έμ 27κ° + μ 무 λ²μ μΈ 3κ° |
9κ° κ΅μ μ 121κ°μ μ€μ μ¬λ κ΅μ μΌλ‘ λλ Έλ€λ λ»μ΄ μλλλ€. λ¬Έμ₯κ³Ό κ°μ μ¬λ‘ κ·Έλ£Ήμ λΆλ¦¬νμ§λ§ κ°μ μμ² κΈ°μ€μ 곡μ ν©λλ€. λ 립λ μ€μ κ³ κ° μ¬λ‘μ λν μΌλ°νλ μ¬μ§ μ νλλ₯Ό μ μ¦νμ§ μμ΅λλ€. μμ± λ¬Έμ₯κ³Ό μ λ΅μ μμμ μΌλ‘ ꡬμ±ν νμ κ΅μ¬μ΄λ©° μ€μ νμ₯ κ²°κ³Όκ° μλλλ€.
μ€μ νμ΅κ³Ό κ²μ¦
κΈ°λ° λͺ¨λΈ: Qwen/Qwen3-0.6B, 리λΉμ c1899de289a04d12100db370d81485cdf75e47ca.
Apple Silicon MLXμμ μ λ μ΄μ΄ LoRA, rank 8, scale 2, λ°°μΉ 2, νμ΅λ₯ 0.0001λ‘ 180ν νμ΅νμ΅λλ€.
μλ΅ ν ν°λ§ μ§λνμ΅νλ©° λΉμ¬κ³ λͺ¨λλ₯Ό μ¬μ©νμ΅λλ€. κ°ννμ΅μ μννμ§ μμμ΅λλ€.
κ²μ¦ μμ€ μ΅μ μΈ 119ν μ
λ°μ΄νΈ 체ν¬ν¬μΈνΈλ₯Ό μ ννμ΅λλ€.
μ ν κ²μ¦ μμ€μ 0.01067μ΄λ©° μν κ²°κ³Όλ μ νμ μ¬μ©νμ§ μμμ΅λλ€.
MLX κ°μ€μΉλ₯Ό PEFT νμμΌλ‘ λ³ννκ³ , λͺ¨λ μ΄λν°μ μ ν¨κ°Β·0μ΄ μλ κ°μ€μΉ λ³ν,
PEFT μ€μ λ‘λ©, μΈ μ
λ ₯μ MLX/PyTorch μμ ν μ μ¬λμ λ€μ ν ν° μΌμΉλ₯Ό νμΈνμ΅λλ€.
μΈλΆ κ·Όκ±°λ verification.json, μ νμ selection.json, νμ΅ μΆμ΄λ training_history.jsonμ μμ΅λλ€.
νμ΅ μ ν κ²°κ³Ό
μΉμΈ κΈ°μ€ μΆκ° κ²μ μμ΄ λμΌν μμ€ν μ§μμ κ²°μ μ μμ± μ‘°κ±΄μμ κ²μ¬νμ΅λλ€.
| λͺ¨λΈ | JSON νμκ³Ό νλ¨ λΆλ₯κ° ν¨κ» λ§μ λ¬Έμ₯ | μ§μ JSON νμ μ€μ |
|---|---|---|
| νμ΅ μ Qwen3-0.6B | 0/30 (0.0%) | 0/30 |
| μ½μ LoRA νμ΅ ν | 22/30 (73.3%) | 30/30 |
μ΄ μ μλ JSON μΈ λ¬Έμμ΄ νμκ³Ό νλ¨ λΆλ₯μ μ ν μΌμΉλ§ κ²μ¬ν©λλ€.
κ·Όκ±°μ μΆκ°νμΈ μ 체λ₯Ό μ¬λμ΄ μ±μ ν λ΅λ³ μ νλκ° μλλλ€.
νμ΅ μ 0μ μλ μ§μ νμμ μ§ν€μ§ λͺ»ν μν₯μ΄ ν¬ν¨λλ©° λͺ¨λ μ
무 μ΄ν΄κ° 0μ΄λΌλ λ»μ΄ μλλλ€.
μ격ν κΈ°μ€μ ν΅κ³Όνμ§ λͺ»ν 8κ°λ μ¨κΈ°μ§ μκ³ trained_eval_responses.jsonμ 곡κ°νμ΅λλ€.
μ€μ κ³ κ° λ°μ΄ν°λ μ΄λ―Έμ§λ‘ μΈ‘μ ν μ νλ, μ€μ μ΄μ μ΄μ΅μ΄λ λΉμ© κ°μ μμΉκ° μλλλ€.
체νμ κΈ°λ³Έ λͺ¨λλ νμ΅ λͺ¨λΈ μ체μ λ΅λ³μ λλ€. βμΆκ° μ€νβμ μΌλ©΄ μΉμΈ κΈ°μ€ 9κ° μ 체λ₯Ό ν¨κ» μ 곡ν©λλ€. μΆκ° μ°Έκ³ κΈ°λ₯μ μ΄ νμ μ‘°κ±΄μ΄ λ€λ₯΄λ©° μ€λ΅μ΄ μμ΄μ§λ κ²μ 보μ₯νμ§ μμ΅λλ€. 체ν μλ¬Έμ ν΅ν΄ λ΅λ³μ΄ μ€μ λ‘ μμ±λλμ§ νμΈν μ μμ΅λλ€.
νκ³μ μ€ν¨ μ¬λ‘
μλ£κ° 9κ° κΈ°μ€μΌλ‘ λ§€μ° μμ νΉμ ννμ μΈμ°κ³ λ€λ₯Έ λ¬Έμ₯μ νΌλν μ μμ΅λλ€. κ³κΈ°νΒ·μ°¨λλ²νΈλ₯Ό μνμ κ²μΌλ‘ μλͺ» λΆλ₯νκ±°λ, μ±λ₯ μ£Όμ₯ μ§λ¬Έμ μΆκ³ μ§λ¬ΈμΌλ‘ μ€ν΄ν μ¬λ‘κ° μμ΅λλ€. μ 무 λ²μ λ° μ§λ¬Έμ λΆμ μ νκ² λ΅ν μ¬λ‘λ μμ΅λλ€. μ€μ μ 무 μ¬μ© μ μ¬λ νμΈμ΄ νμν©λλ€. μ¬μ§ λΆλ₯μ μ€μ κ³ κ° μΈλλ₯Ό λ°λμ λΆλ¦¬νλ©°, μ€μ μΈλλ λ³λμ νμ₯ νμΈμ΄ νμν©λλ€. κ΅μ κΈ°μ€μ ν¨κ» μ 곡ν΄λ λͺ¨λΈμ νκ°μ΄λ μ€λ΅μ΄ μμ΄μ§λ κ²μ μλλλ€.
μ¬μ© μ
import torch
from peft import PeftModel
from transformers import AutoTokenizer, AutoModelForCausalLM
from huggingface_hub import hf_hub_download
repo = "junho908/caution-smart-assistant-v1"
revision = "c1899de289a04d12100db370d81485cdf75e47ca"
tok = AutoTokenizer.from_pretrained("Qwen/Qwen3-0.6B", revision=revision)
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-0.6B", revision=revision,
dtype=torch.bfloat16, device_map="auto")
model = PeftModel.from_pretrained(base, repo).eval()
with open(hf_hub_download(repo, "system_prompt.txt"), encoding="utf-8") as f:
system = f.read()
messages = [{"role": "system", "content": system},
{"role": "user", "content": "μΆκ³ μμ μΌμ μ§λ¬μ§λ§ μ€μ κ³ κ° μΈλλ νμΈλμ§ μμμ΅λλ€."}]
text = tok.apply_chat_template(messages, tokenize=False,
add_generation_prompt=True, enable_thinking=False)
inputs = tok(text, return_tensors="pt", add_special_tokens=False).to(model.device)
with torch.inference_mode():
out = model.generate(**inputs, max_new_tokens=256, do_sample=False,
pad_token_id=tok.eos_token_id)
print(tok.decode(out[0, inputs.input_ids.shape[1]:], skip_special_tokens=True))
κ²μ¦ νκ²½: mlx-lm 0.31.2, transformers 5.5.3, torch 2.15.0, peft 0.21.2. κ³΅κ° μ²΄νμ Gradioμ λ¬΄λ£ ZeroGPUλ₯Ό μ¬μ©νλ©° λκΈ°μ μ¬μ©λ μ νμ΄ μμ μ μμ΅λλ€.
κ³΅κ° λ²μμ μΆμ²
κ³ κ° μλ³Έ λ°μ΄ν°Β·κ°μΈ λ©λͺ¨Β·ν ν°Β·μ΄μ μμ€ν
μ λΉκ³΅κ° κ²½λ‘λ 곡κ°νμ§ μμ΅λλ€.
μ΄ μ μ₯μλ μ½μ
μ μΉμΈ μ
무 κΈ°μ€κ³Ό κ·Έ νμ μ°μ΅λ¬Έμ , μ΄λν°, μ€μ νκ° κΈ°λ‘λ§ ν¬ν¨ν©λλ€.
κΈ°λ° λͺ¨λΈμ Qwen3-0.6Bμ΄λ©° Apache-2.0μΌλ‘ 곡κ°λΌ μμ΅λλ€.
μ΄ μ€νμ μ΄λν°Β·μ½λΒ·κ°μ μ°μ΅λ¬Έμ λ Apache-2.0μΌλ‘ 곡κ°ν©λλ€.
μ μ: Jeon Junho (junho908) Β· μ½μ
μ€λ§νΈ AI κ³΅κ° νμ΅ μ€ν Β· 2026-11-05.
- Downloads last month
- 5