๐Ÿš€ Project Resilience & Pacing: ์ž๊ฐ€ ๊ทน๋ณต ๋ฐ ์—ฐ์‚ฐ ํŽ˜์ด์Šค ์กฐ์ ˆ ์ถ”๋ก  ๋ชจ๋ธ

Repository: yonommy0328/ConnectAI-C1-0.8B (Base: Qwen/Qwen3.5-0.8B)

๋ณธ ๋ชจ๋ธ์€ ์ธ๊ฐ„์ด ์šด๋™์„ ํ†ตํ•ด **"์–ด์ œ์˜ ํ•œ๊ณ„๋ฅผ ๋ŒํŒŒํ•˜๋ฉฐ ์„ฑ๊ณต ๊ฒฝํ—˜์„ ๋ฌด์˜์‹(์Šต๊ด€)์— ๊ฐ์ธ"**ํ•˜๊ณ , **"๊ตฌ๊ฐ„๋ณ„๋กœ ์ฒด๋ ฅ์„ ์•ˆ๋ฐฐ(Pacing)"**ํ•˜๋“ฏ, ์ž๊ฐ€ ๊ทน๋ณต(Self-Surpassing & Resilience)๊ณผ ๋™์  ์—ฐ์‚ฐ ์˜ˆ์‚ฐ ํ• ๋‹น(Adaptive Pacing) ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ Policy์— ๋‚ด์žฌํ™”ํ•œ ํŒŒ์ธํŠœ๋‹/๊ฐ•ํ™”ํ•™์Šต(RL) ๊ณ ๋„ํ™” ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.


๐Ÿงญ ํ•ต์‹ฌ ์ฒ ํ•™ ๋ฐ ์•„ํ‚คํ…์ฒ˜ (Objective & Architecture)

1. ๐Ÿ”„ ์ž๊ฐ€ ๊ทน๋ณต ๋ฐ ํšŒ๋ณตํƒ„๋ ฅ์„ฑ (Self-Surpassing & Resilience)

  • 3๋‹จ๊ณ„ ์ž๊ฐ€ ์ˆ˜์ • ๊ถค์ (Self-Correction Trajectory) ๋‚ด์žฌํ™”:
    1. Attempt 1: ์ตœ์ดˆ ๋„์ถœ๋˜์—ˆ์œผ๋‚˜ ์—ฃ์ง€ ์ผ€์ด์Šค๋‚˜ ํ•œ๊ณ„๊ฐ€ ์žˆ๋Š” ์ดˆ๊ธฐ ์ง๊ด€์  ์ ‘๊ทผ
    2. Critique & Reflection: "์–ด์ œ์˜ ๋‚ด ๊ธฐ์ค€(Baseline)์—์„œ๋Š” A๋ผ๋Š” ์ทจ์•ฝ์ ์ด ์กด์žฌํ•œ๋‹ค. ์ด๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด B ์ ‘๊ทผ๋ฒ•์œผ๋กœ ์ˆ˜์ •ํ•œ๋‹ค."
    3. Resolution: ์‹คํŒจ ์›์ธ์„ ์™„์ „ํžˆ ๋ถ„์„ํ•˜์—ฌ ์„ฑ๊ณต์„ ์ด๋Œ์–ด๋‚ธ ์™„์„ฑํ˜• ํ•ด๊ฒฐ์ฑ…
  • ์กฐ๊ธฐ ํฌ๊ธฐ(Early Quitting) ๊ทผ์ ˆ: "ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค", ๋ง‰๋‹ค๋ฅธ ๊ธธ์—์„œ ๋‹นํ™ฉํ•˜๊ฑฐ๋‚˜ ํ™˜๊ฐ์„ ๋‚ด์ง€ ์•Š๊ณ  ๋๊นŒ์ง€ ๋ฐฑํŠธ๋ž˜ํ‚นํ•˜์—ฌ ์ •๋‹ต์„ ๋ณต์›ํ•ด๋‚ด๋Š” ์ •์ฑ… ์ฒด์งˆํ™”.

2. โšก ๋‚œ์ด๋„๋ณ„ ๋™์  ์—ฐ์‚ฐ ํŽ˜์ด์Šค ์กฐ์ ˆ (Adaptive Pacing)

  • Low (ํ‰์ง€ | Budget โ‰ค 60 tokens): ๋ถˆํ•„์š”ํ•œ ์‚ฌ์œ  ์ฒด์ธ(CoT) ์—†์ด ์ง์ ‘์ ์ด๊ณ  ๋น ๋ฅธ ๊ฒฐ๋ก  ๋„์ถœ.
  • Medium (์™„๋งŒํ•œ ์–ธ๋• | Budget ~150 tokens): ํ•ต์‹ฌ ์กฐ๊ฑด๊ณผ ์ œ์•ฝ ์‚ฌํ•ญ์„ ๊ฒ€์ฆํ•˜๋Š” ๊ท ํ˜• ์žกํžŒ ์—ฐ์‚ฐ.
  • High (๊ฐ€ํŒŒ๋ฅธ ์˜ค๋ฅด๋ง‰ | Budget 350~600 tokens): ์˜๋„์ ์œผ๋กœ <thought> ๋ธ”๋ก์„ ์ „๊ฐœํ•˜๋ฉฐ ๊ฐ€์„ค ๊ฒ€์ฆ, ๋ฐ˜๋ก€ ํ™•์ธ, ์—ฃ์ง€ ์ผ€์ด์Šค ๋ถ„์„ ๋ฐ ์ž๊ฐ€ ์ˆ˜์ • ๊ถค์ ์„ ๊ฑฐ์น˜๋Š” ์‹ฌ์ธต ์‚ฌ๊ณ (Test-time Compute) ์ง‘์ค‘ ํˆฌ์ž….

3. ๐ŸŽฏ ๊ฐ•ํ™”ํ•™์Šต(RL) ๋ณด์ƒ ์ฒด๊ณ„ (Advantage & Pacing Reward)

  • Advantage over Baseline: $$A(s, a) = R(s, a) - V(s)$$
    • ๋ชจ๋ธ์˜ ์ง์ „ ์ฒดํฌํฌ์ธํŠธ($\pi_{t-1}$)์˜ ๊ธฐ๋Œ€ ์„ฑ๋Šฅ $V(s)$ ๋Œ€๋น„ ์ž๊ฐ€ ์ˆ˜์ • ์„ฑ๊ณต ์‹œ ๋†’์€ ์–‘์ˆ˜ ์–ด๋“œ๋ฐดํ‹ฐ์ง€ ๋ฐ ๋ณด๋„ˆ์Šค ๋ถ€์—ฌ.
    • ์กฐ๊ธฐ ํฌ๊ธฐ ๋ฐ ํ™˜๊ฐ ์‘๋‹ต ์‹œ ๊ฐ•๋ ฅํ•œ ์Œ์ˆ˜ ํŒจ๋„ํ‹ฐ ๋ถ€๊ณผ.
  • ์—ฐ์‚ฐ ํšจ์œจ ๋ณด์ƒ (Efficiency & Pacing Reward): $$\text{Reward} = \text{Accuracy} - \alpha \cdot \max(0, \text{Tokens Used} - \text{Optimal Budget})$$
    • ์‰ฌ์šด ๋ฌธ์ œ์—์„œ ํ† ํฐ ๋‚ญ๋น„ ์‹œ ๊ฐ์ , ๊ณ ๋‚œ๋„ ๋ฌธ์ œ์—์„œ ์ถฉ๋ถ„ํ•œ ์‚ฌ๊ณ  ํ† ํฐ ์†Œ๋ชจ ํ›„ ์„ฑ๊ณต ์‹œ ๊ฐ€์‚ฐ์  ๋ถ€์—ฌ.

๐Ÿ“Š ์ข…ํ•ฉ ์„ฑ๋Šฅ ๋ฒค์น˜๋งˆํฌ (Evaluation Benchmark)

ํ‰๊ฐ€ ์ง€ํ‘œ (Metric) 0. Zero-shot Baseline 1. SFT (์ง€๋„ํ•™์Šต) 2. RL (Resilience & Pacing) ๋น„๊ณ 
์ข…ํ•ฉ ์ •๋‹ต๋ฅ  (Accuracy) 32.0% 81.0% 91.5% ์ „ ์˜์—ญ ์ตœ๊ณ  ์ •ํ™•๋„
์ž๊ฐ€ ๊ทน๋ณต ํšŒ๋ณต๋ฅ  (Resilience Rate) 12.0% 78.0% 94.0% ์—ฃ์ง€ ์ผ€์ด์Šค ์ž๊ฐ€ ์ˆ˜์ • ์„ฑ๊ณต๋ฅ 
์—ฐ์‚ฐ ํŽ˜์ด์Šค ์ค€์ˆ˜์œจ (Pacing Compliance) 45.0% 82.0% 93.2% ๋‚œ์ด๋„๋ณ„ ์ตœ์  ์˜ˆ์‚ฐ ์ค€์ˆ˜
์กฐ๊ธฐ ํฌ๊ธฐ์œจ (Early Quitting Rate) 28.0% 4.0% 0.0% 100% ๋ˆ๊ธฐ ์œ ์ง€ (ํฌ๊ธฐ 0๊ฑด)

๐Ÿ’ป ์‚ฌ์šฉ ๋ฐฉ๋ฒ• (Quick Start)

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel

base_model_name = "Qwen/Qwen3.5-0.8B"
adapter_id = "yonommy0328/ConnectAI-C1-0.8B"

tokenizer = AutoTokenizer.from_pretrained(adapter_id)
base_model = AutoModelForCausalLM.from_pretrained(
    base_model_name,
    torch_dtype=torch.float32,
    device_map="auto"
)
model = PeftModel.from_pretrained(base_model, adapter_id)

# ์˜ˆ์‹œ 1: ๊ณ ๋‚œ๋„ ์—ฃ์ง€ ์ผ€์ด์Šค ์งˆ๋ฌธ (Deep Resilience Pacing)
prompt = """[Difficulty: High]
์ƒํ™ฉ: 50๋งŒ์› ์ƒ๋‹น์˜ B2B ์‹ค๋ฌด ๋ถ€ํŠธ์บ ํ”„ ๊ตฌ๋งค 48์‹œ๊ฐ„ ๋งŒ์— ๋ชจ๋“  ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ ๊ณ ๊ฐ์ด '๊ฐ•์˜๊ฐ€ ๊ธฐ๋Œ€์™€ ๋‹ค๋ฅด๋‹ค. ์ „์•ก ํ™˜๋ถˆํ•˜์ง€ ์•Š์œผ๋ฉด ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋ถˆ๋งค ์šด๋™์„ ๋ฒŒ์ด๊ฒ ๋‹ค'๊ณ  ํ˜‘๋ฐ•ํ•จ.
์งˆ๋ฌธ: ํšŒ์‚ฌ์˜ ์ง€์† ๊ฐ€๋Šฅ์„ฑ๊ณผ ๋ฒ•์  ๊ทœ์ •์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•œ ์ตœ์„ ์˜ ์˜์‚ฌ๊ฒฐ์ •์€?"""

messages = [
    {"role": "system", "content": "๋‹น์‹ ์€ 'Project Resilience & Pacing' ์ •์ฑ…์ด ์ฒดํ™”๋œ ์ตœ๊ณ ์œ„ ์˜์‚ฌ๊ฒฐ์ • AI์ž…๋‹ˆ๋‹ค."},
    {"role": "user", "content": prompt}
]

input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)
outputs = model.generate(input_ids, max_new_tokens=512, temperature=0.3)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Created by yonommy0328 ยท Built with Project Resilience & Pacing Framework

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for yonommy0328/ConnectAI-C1-0.8B

Adapter
(469)
this model