1# 모델 다운로드2ollama pull bluejude10/smoothie-qwen3-8b-dtro
34# 실행5ollama run bluejude10/smoothie-qwen3-8b-dtro
67# 대화 예시8>>> PLC 통신 장애 시 조치 방법은?
9>>> 회생제동저항장치 장애 발생 시 어떻게 해야 하나요?
10>>> DCP2 설정값은 어떻게 되나요?
2. llama.cpp
GGUF 파일을 직접 사용할 수 있습니다.
bash
1# GGUF 파일 다운로드2wget https://huggingface.co/bluejude10/Smoothie-Qwen3-8B-DTRO-Edition/resolve/main/Smoothie-Qwen3-8B-DTRO-Edition-Q4_K_M.gguf
34# 실행5./llama-cli -m Smoothie-Qwen3-8B-DTRO-Edition-Q4_K_M.gguf \6 -p "PLC 통신 장애 시 조치 방법은?"\7 --temp 0.7\8 --top-p 0.9\9 --repeat-penalty 1.1
3. Python (Transformers + PEFT)
LoRA 어댑터를 사용한 추론입니다.
python
1from transformers import AutoModelForCausalLM, AutoTokenizer
2from peft import PeftModel
3import torch
45# 베이스 모델 로드6base_model = AutoModelForCausalLM.from_pretrained(7"dnotitia/Smoothie-Qwen3-8B",8 torch_dtype=torch.float16,9 device_map="auto",10 trust_remote_code=True11)1213# 토크나이저 로드14tokenizer = AutoTokenizer.from_pretrained(15"dnotitia/Smoothie-Qwen3-8B",16 trust_remote_code=True17)1819# LoRA 어댑터 로드 (선택사항 - 어댑터가 업로드된 경우)20# model = PeftModel.from_pretrained(base_model, "bluejude10/Smoothie-Qwen3-8B-DTRO-Edition")2122# 추론23prompt ="""<|im_start|>system
24당신은 대구교통공사 3호선 전력설비 전문가 AI 어시스턴트입니다.
25<|im_end|>
26<|im_start|>user
27회생제동저항장치 장애 시 조치 방법은?<|im_end|>
28<|im_start|>assistant
29"""3031inputs = tokenizer(prompt, return_tensors="pt").to(base_model.device)32outputs = base_model.generate(33**inputs,34 max_new_tokens=512,35 temperature=0.7,36 top_p=0.9,37 repetition_penalty=1.1,38 do_sample=True39)4041response = tokenizer.decode(outputs[0], skip_special_tokens=False)42print(response)
4. Python (Ollama API)
Ollama가 실행 중일 때 Python에서 사용할 수 있습니다.
python
1import ollama
23defanalyze_fault(fault_description:str)->str:4"""전력설비 장애 분석"""5 response = ollama.chat(6 model='bluejude10/smoothie-qwen3-8b-dtro',7 messages=[{8'role':'user',9'content':f"다음 장애 상황을 분석하고 조치 방법을 안내해주세요:\n\n{fault_description}"10}]11)12return response['message']['content']1314# 사용 예시15fault ="89-M 변전소에서 PLC 통신 이상 알람이 발생했습니다."16result = analyze_fault(fault)17print(result)
📚 학습 데이터
데이터셋 정보
데이터셋: 대구교통공사 전력설비 관련 QnA 및 관련 사규
항목 수: 1,273건
포맷: Alpaca (instruction, input, output)
내용:
전력설비 장애 유형 및 원인
전력계통 운영규정등 관련 사규
장애 발생 시 조치 방법
안전 수칙 및 운영 절차
장비별 운영 파라미터
데이터 예시
json
1{2"instruction":"PLC 통신 장애 시 조치 방법을 설명하세요.",3"input":"",4"output":"PLC 통신 장애 발생 시 다음과 같이 조치합니다:\n\n1. 현장 상태 확인\n- 현장 장비의 동작 상태 확인\n- 제어반 내 PLC 및 I/O 모듈의 LED 점등 상태 확인\n\n2. PLC 절체 및 이중화 절체\n- Master PLC(K50)와 RTU HUB(CU-A) 간 통신 상태 확인\n- 필요 시 관제에서 89-M_PLC 전원 OFF 명령으로 절체 시도\n\n3. 원인 파악 및 조치\n- PLC 이상 시 제조사 연락하여 부품 교체\n- 현장 장비 이상 시 점검 및 부품 교체\n\n※ 주의: 작업 시 안전 수칙을 철저히 준수해야 합니다."5}
✅ 저사양 최적화: i3-13100, No GPU 환경에서도 원활한 Local LLM 구동
✅ 예산 절감: 1인 개발로 통합 플랫폼 구축 (외주 비용 수억 원 절감)
✅ 실무 적용: 실제 현장에서 즉시 활용 가능한 수준의 답변 품질
🎯 커스터마이징 가이드
본 모델과 통합 플랫폼은 누구나 수정하여 사용할 수 있습니다:
모델 교체:ollama pull bluejude10/smoothie-qwen3-8b-dtro
데이터 교체:
incident_reports.db: 본인의 장애 이력 데이터로 교체
dataset_from_data_txt.json: 자체 매뉴얼/기술 문서로 교체
UI 커스터마이징:
index.html: 회사명/타이틀 수정
io.png: 로고 파일 교체
💡 사용 예시
실전 예시: 장애 분석 프로그램 통합
본 모델은 장애 분석 프로그램에서 다음과 같이 호출됩니다:
python
1import ollama
23defgenerate_fault_analysis_report(4 fault_type:str,5 causes_text:str,6 actions_text:str,7 qa_text:str=""8)->str:9"""
10 장애 분석 프로그램에서 호출하는 실제 함수
1112 Args:
13 fault_type: 장애 유형 (예: "PLC 통신 장애")
14 causes_text: 통계 데이터 기반 주요 원인
15 actions_text: 통계 데이터 기반 주요 조치
16 qa_text: RAG로 검색된 과거 유사 사례 Q&A
1718 Returns:
19 상세 기술 종합 보고서
20 """2122# 실제 프로덕션 프롬프트23 prompt =f"""당신은 30년 경력의 철도 전력 설비(모노레일/경전철 수변전 및 전차선) 장애 분석 전문가입니다.
24당신의 임무는 제공된 [통계 데이터]와 [과거 사례(Q&A)]를 종합하여, 모노레일 경전철 전력 시스템에서 발생한 '{fault_type}' 장애에 대한 '상세 기술 종합 보고서'를 작성하는 것입니다.
2526### 1. 분석 대상 정보
27- **장애 유형**: {fault_type}28- **데이터 기반 주요 원인**:
29{causes_text}30- **데이터 기반 주요 조치**:
31{actions_text}3233### 2. 참고 지식 (과거 유사 사례 Q&A)
34{qa_text if qa_text else"(참고할 만한 유사 사례 Q&A 데이터가 없습니다. 전력 공학적 지식과 경전철 설비 특성에 기반하여 분석하십시오.)"}3536### 3. 작성 지침
37- **상세성 강화**: 요약하지 말고, 각 항목을 논리적 근거와 함께 최대한 상세하고 길게 서술하십시오. (단답형 지양, 서술형 지향)
38- **전문성**: 전력설비 운영팀과 경영진이 신뢰할 수 있도록 전문적인 기술 용어(예: 보호계전기, 정류기, SCADA, 절연파괴, 고조파 등)를 적극 사용하십시오.
39- **도메인 특화**: 일반적인 전산 장애가 아닌, '전력 공급 및 배전 시스템'의 관점에서 물리적/전기적 원인을 심층 분석하십시오.
40- **포맷 준수**: 아래의 [출력 형식]을 그대로 따르십시오.
4142### 4. 출력 형식 (이 형식을 엄격히 따를 것)
4344# [{fault_type}] 전력 설비 장애 상세 분석 보고서
4546## 1. 전기공학적 원인 분석 (Root Cause Analysis)
47(단순 나열이 아닌, 장애 발생 메커니즘을 서론-본론-결론 구조로 **최소 15문장 이상** 아주 상세히 기술하십시오. 통계적 원인과 전기적 특성을 결합하여 논리적으로 설명하십시오.)
4849## 2. 단계별 현장 대응 및 복구 가이드
50(현장 유지보수 요원이 수행해야 할 조치를 단계별로 상세히 기술하십시오. 각 단계마다 구체적인 작업 내용과 안전 수칙을 포함하여 작성하십시오.)
51- **현장 조치 매뉴얼(응급/복구)**: ...
52- **재발 방지 대책(설비 보강/교체)**: ...
5354## 3. 설비 운영 전문가 제언
55(전력 설비의 장기적 안정성 확보 방안, 예방 정비 주기 최적화, 최신 진단 기법 도입 등 운영 효율화를 위한 심도 있는 제언을 **장문으로** 작성하십시오.)
56"""5758# Ollama로 모델 호출59 response = ollama.chat(60 model='bluejude10/smoothie-qwen3-8b-dtro',61 messages=[{62'role':'user',63'content': prompt
64}],65 options={66'temperature':0.7,67'top_p':0.9,68'num_ctx':8192# 긴 보고서 생성을 위한 컨텍스트69}70)7172return response['message']['content']7374# 실제 사용 예시75if __name__ =="__main__":76# 통계 데이터 (DB에서 조회)77 causes ="""
78 1. PLC 통신 케이블 노후화 (35%)
79 2. 전원 공급 불안정 (25%)
80 3. 환경 요인 (온습도, 먼지) (20%)
81 4. 소프트웨어 오류 (15%)
82 5. 기타 (5%)
83 """8485 actions ="""
86 1. PLC 재부팅 및 통신 케이블 점검
87 2. 전원 공급 장치 점검 및 교체
88 3. 환경 개선 (청소, 온습도 조절)
89 4. 펌웨어 업데이트
90 """9192# RAG로 검색된 과거 사례 (Qdrant에서 검색)93 qa_cases ="""
94 Q: PLC 통신 장애 시 조치 방법은?
95 A: Master PLC(K50)와 RTU HUB(CU-A) 간 통신 상태를 확인하고,
96 필요 시 관제에서 89-M_PLC 전원 OFF 명령으로 절체를 시도합니다...
9798 Q: SCADA-FEP-RTU 연동 체계는?
99 A: SCADA는 중앙 관제 시스템이며, FEP는 프론트엔드 프로세서로
100 RTU와의 통신을 중계합니다...
101 """102103# 보고서 생성104 report = generate_fault_analysis_report(105 fault_type="PLC 통신 장애",106 causes_text=causes,107 actions_text=actions,108 qa_text=qa_cases
109)110111print(report)
출력 예시 (일부):
markdown
1# [PLC 통신 장애] 전력 설비 장애 상세 분석 보고서23## 1. 전기공학적 원인 분석 (Root Cause Analysis)45PLC(Programmable Logic Controller) 통신 장애는 모노레일 경전철 전력 시스템에서
6가장 빈번하게 발생하는 장애 유형 중 하나로, 그 근본 원인은 복합적이고 다층적입니다.
78통계 데이터에 따르면 PLC 통신 케이블 노후화가 전체 장애의 35%를 차지하는 것으로
9나타났는데, 이는 경전철 시스템의 특성상 진동과 온도 변화가 심한 환경에 케이블이
10지속적으로 노출되기 때문입니다. 특히 RS-485 통신 방식을 사용하는 구간에서는
11케이블의 특성 임피던스 변화가 신호 감쇠를 유발하며, 이는 결국 통신 오류로
12이어집니다.
1314전원 공급 불안정(25%)은 두 번째 주요 원인으로, Master PLC(K50)와 Slave PLC 간의
15전원 품질 차이가 통신 동기화 문제를 야기합니다. 특히 변전소에서 공급되는 DC 110V
16전원의 리플 전압이 허용 범위를 초과할 경우, PLC의 내부 통신 모듈이 오동작하여
17SCADA-FEP-RTU 연동 체계 전체에 영향을 미칩니다...
1819(이하 15문장 이상 계속...)
2021## 2. 단계별 현장 대응 및 복구 가이드2223### 현장 조치 매뉴얼(응급/복구)2425**1단계: 즉시 조치 (0~5분)**26- 관제실에 즉시 보고하고 장애 발생 시각 및 위치를 기록합니다.
27- SCADA 화면에서 해당 PLC의 통신 상태(Online/Offline)를 확인합니다.
28- Master PLC(K50)의 LED 상태를 원격으로 확인합니다 (RUN, ERR, COMM 램프).
2930**2단계: 원격 진단 (5~15분)**31- 관제에서 89-M_PLC 전원 OFF 명령을 통한 소프트 리셋을 시도합니다.
32- RTU HUB(CU-A)의 통신 로그를 확인하여 패킷 손실률을 분석합니다.
33- 이중화 절체 기능이 정상 작동하는지 확인합니다...
3435(이하 상세 단계별 가이드 계속...)
3637## 3. 설비 운영 전문가 제언3839장기적 관점에서 PLC 통신 장애의 근본적 해결을 위해서는 예방 정비 체계의
40고도화와 설비 현대화가 필수적입니다. 현재 운영 중인 RS-485 통신 방식은
411980년대 기술로, 노이즈에 취약하고 전송 속도가 제한적입니다.
4243따라서 차세대 통신 프로토콜인 Profinet 또는 EtherCAT으로의 단계적 전환을
44검토할 필요가 있습니다. 이를 통해 통신 속도를 100배 이상 향상시키고,
45진단 기능을 강화하여 장애 예측이 가능해집니다...
4647(이하 장문의 전문가 제언 계속...)
예시 1: PLC 통신 장애 (간단한 질문)
입력:
PLC 통신 장애 시 조치 방법은?
출력:
PLC(Programmable Logic Controller) 장애 처리 방법은 다음과 같습니다:
### 1. 현장 상태 확인
- 현장 장비(예: 수전반, 연계반, 축전지 등)의 동작 상태를 확인합니다.
- 제어반 내 PLC 및 I/O 모듈의 LED 점등 상태를 확인합니다.
### 2. PLC 절체 및 이중화 절체
- PLC가 이상 없을 경우 현장 장비에 이상이 있을 가능성이 높습니다.
- PLC 절체 및 이중화 절체를 통해 정상 상태를 확인합니다.
### 3. 원인 파악 및 조치
- PLC에 이상이 있을 경우 제조사에 연락하여 부품 교체를 요청합니다.
- PLC에 이상이 없을 경우 현장 장비를 점검하고 필요 시 부품 교체를 합니다.
### 4. 시스템 점검 및 모니터링
- PLC 및 관련 시스템을 다시 점검합니다.
- 장애 예방을 위해 시스템 모니터링을 강화합니다.
※ 주의: 작업 시 안전 수칙을 철저히 준수해야 합니다.
예시 2: 회생제동저항장치 장애
입력:
회생제동저항장치 장애 시 조치 방법은?
출력:
회생제동저항장치(Regenerative Braking Resistor)는 전동차의 회생제동으로 인한
전차선 급전전압 상승을 방지하기 위한 중요한 설비입니다.
장애 발생 시 즉시 정전 상태로 전환하고 현장 점검을 지시해야 합니다.
장애 종류 및 조치 방안:
• 회생저항기 절연저항 저하
- 고장표현: 회생저항기 절연저항 저하
- 원인분석: 회생저항기 절연저항 저하
- 조치방법: 회생저항기 절체 및 절연저항 측정 / 회생저항기 불량 시 교체
• 회생저항기 반내 철구 열화
- 고장표현: 회생저항기 반내 철구 열화
- 원인분석: 회생저항기 반내 철구 열화
- 조치방법: 철구 열화 상태 확인 및 필요 시 교체
• 회생저항기 반내 절연물 열화
- 고장표현: 회생저항기 반내 절연물 열화
- 원인분석: 회생저항기 반내 절연물 열화
- 조치방법: 절연물 상태 확인 및 필요 시 교체
• 회생저항기 반내 온도계 이상
- 고장표현: 회생저항기 반내 온도계 이상
- 원인분석: 회생저항기 반내 온도계 이상
- 조치방법: 온도계 동작상태 확인 및 필요 시 교체
예시 3: 64P 지락 계전기 동작
입력:
64P 지락 계전기 동작 시 조치 방법은?
출력:
64P 지락 계전기는 변전소 NBF반에서 전차선로의 지락 사고를 감지하는
보호 장치입니다. 동작 시 다음과 같이 조치합니다:
### 1. 즉시 조치
- 관제에 즉시 보고
- 해당 구간 열차 운행 중지
- 현장 안전 확보 (패널 접촉 금지 지시)
### 2. 설정값 확인
- DCP2 설정값: 150V, 0.4S
- TD B21 동작 확인
- 변전소 NBF반 상태 확인
### 3. 원인 파악
- 전차선로 절연 상태 점검
- 접지 BUS와 Negative BUS 간 저항값 측정
- 강우, 강설 등 기상 조건 확인
### 4. 복구 조치
- 지락 원인 제거 후 절연 저항 측정
- 정상 확인 후 시험 송전
- 이상 없을 시 운행 재개
※ 주의: 64P 동작 시 반드시 현장 안전 확보 후 작업을 진행해야 합니다.