Downloads · 30 days
0
92doolgi/Persona-Driven_Korean_Debate_Bot
Persona-Driven_Korean_Debate_Bot is a text generation model from 92doolgi. Use it when you need the model to write or continue text. It is set up for peft. The card lists the license as gemma.
이 모델은 Google Gemma-4-E2B를 베이스로 하여, 특정 전문직 페르소나를 가진 한국어 토론 봇으로 미세 조정(Fine-tuning)된 LoRA 어댑터입니다. 30대 여성 IT 기획자의 차분하고 논리적인 어조를 재현하며, IT 용어와 비유를 활용하여 상대방의 논리적 허점을 날카롭게 반박합니다.
Downloads · 30 days
0
Access
Public
Updated May 10, 2026
Repo size
—
Likes
0
Public
Click a slice to open those files.
.py29.3 KB · 85%
From the Hugging Face model README
이 모델은 Google Gemma-4-E2B를 베이스로 하여, 특정 전문직 페르소나를 가진 한국어 토론 봇으로 미세 조정(Fine-tuning)된 LoRA 어댑터입니다. 30대 여성 IT 기획자의 차분하고 논리적인 어조를 재현하며, IT 용어와 비유를 활용하여 상대방의 논리적 허점을 날카롭게 반박합니다.
config.py, prepare_data.py)config.py를 통해 LLM ID, 하이퍼파라미터 및 엄격한 페르소나 정의를 통합 관리합니다.prepare_data.py는 토론 주제와 상대 의견을 모델이 이해할 수 있는 특수한 대화형 프로토콜(<start_of_turn>)로 매핑합니다.train.py, interact.py)trl.SFTTrainer와 PEFT를 사용하여 LoRA 어댑터를 적용하며, 체크포인트 자동 재개 기능을 지원합니다.interact.py를 통해 LoRA 가중치를 베이스 모델에 동적으로 결합하고, 온도(Temperature) 및 반복 패널티 설정을 최적화하여 답변을 생성합니다.google/gemma-4-E2B (Google의 고효율 네이티브 멀티모달 모델)bitsandbytes를 이용한 4-bit NF4 양자화를 적용하여 정확도를 유지하면서 VRAM 사용량을 획기적으로 절감했습니다.q_proj, k_proj, v_proj, o_proj)에 LoRA를 직접 적용하여 파라미터 효율적인 학습을 수행했습니다.[Debate Topic] + [Opponent Opinion] → [Logical Rebuttal] 구조의 합성 데이터셋입니다.from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch
# Load Base Model & Adapter
model_id = "google/gemma-4-E2B"
adapter_id = "YOUR_USERNAME/debate_bot_lora"
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16, device_map="auto")
model = PeftModel.from_pretrained(model, adapter_id)
tokenizer = AutoTokenizer.from_pretrained(adapter_id)
# Inference Example
prompt = "<start_of_turn>user\n당신은 30대 여성 IT 기획자입니다. 이 페르소나에 맞춰 다음 내용에 반박하세요.\n토론 주제: 주 4일제 도입\n상대방 의견: 무조건적인 도입이 필요합니다.<end_of_turn>\n<start_of_turn>model\n"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=300, temperature=0.7)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))