Views
No views yet
meta-llama/Llama-3.2-3B-Instruct를 기반으로 한국 민사법 도메인 지식에 특화되도록 Fine-tuning(LoRA)된 모델입니다.
사용자의 법률적 질의에 대해 전문적인 답변을 제공하며, 관련 법령, 판례, 관할 법원 등의 법률 개체(Legal Entities)를 추출하여 함께 제시할 수 있도록 학습되었습니다.meta-llama/Llama-3.2-3B-Instructsystem-user-assistant) 구조로 변환하여 학습을 진행했습니다.peft, trl (SFTTrainer) 라이브러리를 사용하여 진행되었습니다.r: 16lora_alpha: 32target_modules: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_projlora_dropout: 0.05learning_rate: 2e-4num_train_epochs: 1per_device_train_batch_size: 4gradient_accumulation_steps: 4optimizer: adamw_torchfp16 / bfloat16: Enabled1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer
3
4# 허깅페이스에 업로드한 모델 경로
5model_name = "rudalson/Llama-3.2-3B-Instruct-Legal-Chatbot"
6
7# 1. 모델 및 토크나이저 로드
8tokenizer = AutoTokenizer.from_pretrained(model_name)
9model = AutoModelForCausalLM.from_pretrained(
10 model_name,
11 torch_dtype=torch.bfloat16,
12 device_map="auto",
13 low_cpu_mem_usage=True
14)
15
16# 2. 추론 테스트
17prompt = "계약 해제 시 손해배상을 청구할 수 있나요?"
18messages = [
19 {"role": "system", "content": "당신은 한국 법률 전문가 AI 어시스턴트입니다. 사용자의 질문에 대해 정확하고 전문적인 답변을 제공하세요."},
20 {"role": "user", "content": prompt}
21]
22
23# 채팅 템플릿 적용
24formatted_prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
25inputs = tokenizer(formatted_prompt, return_tensors="pt").to(model.device)
26
27# 답변 생성
28with torch.no_grad():
29 outputs = model.generate(
30 **inputs,
31 max_new_tokens=512,
32 temperature=0.7,
33 top_p=0.9,
34 repetition_penalty=1.1,
35 do_sample=True
36 )
37
38response = tokenizer.decode(outputs[0][inputs['input_ids'].shape[1]:], skip_special_tokens=True)
39print(f"질문: {prompt}")
40print(f"답변: {response.strip()}")