[AI] 파인튜닝으로 만드는 나만의 아이폰 고객센터 #3

늘 공부하는 괴짜·2025년 6월 12일
1

AI : Fine Tuning

목록 보기
13/15
post-thumbnail

1. 검토가 필요하다.

1-1. 질문과 답변의 품질이 떨어짐

같은 맥락의 비슷한 질답이 이어지니 학습이 잘 되지 않을거 같음.

1-2. 중복 데이터가 너무 많음

대충 100가지 정도 될거같은데 3000건은 너무 많다. 중복 제거 요망

1-3. 다양한 종류의 질문이 필요함

아이폰의 다른 질문거리도 넣어보자.

1-4. lora 튜닝 인자 확인

데이터 중복 제거로 인한 파라미터의 변경이 불가피해 보인다.

1-5. 허깅페이스 훈련 인자 확인

마찬가지로 수정이 필요해 보인다.

2. 데이터 수정

2-1. 일단 생성형 AI 를 이용한 질문 만들기

내가 직접 만들기에는 너무 버거워서 좀 부탁해 봤다.

{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone 배터리 상태 확인 방법"}, {"role": "assistant", "content": "설정 > 배터리 > 배터리 상태에서 확인할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone 배터리 오래 쓰는 팁"}, {"role": "assistant", "content": "배터리 절약 모드를 사용하고, 화면 밝기를 낮추세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰이 갑자기 꺼지는 문제 해결법 어떻게 하나요?"}, {"role": "assistant", "content": "배터리 상태를 확인하고, 필요하면 서비스 센터 방문을 권장합니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰 소프트웨어 업데이트 방법"}, {"role": "assistant", "content": "설정 > 일반 > 소프트웨어 업데이트에서 최신 버전으로 업데이트할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰 화면 수리 비용이 궁금해요."}, {"role": "assistant", "content": "공식 서비스 센터에서 수리를 받으시는 것이 좋습니다. 모델에 따라 비용이 다를 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰 데이터 백업 방법 알려주세요."}, {"role": "assistant", "content": "iCloud 또는 iTunes를 통해 백업할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "앱 삭제는 어떻게 하나요?"}, {"role": "assistant", "content": "앱 아이콘을 길게 눌러 삭제할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰 사진 복구 방법이 있나요?"}, {"role": "assistant", "content": "최근 삭제된 항목에서 복구할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰 비밀번호를 잊었어요. 어떻게 해야 하나요?"}, {"role": "assistant", "content": "복구 모드를 통해 초기화해야 합니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "와이파이 연결이 안 돼요."}, {"role": "assistant", "content": "네트워크 설정을 재설정하거나 라우터를 확인하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰 문자 메시지 복구 가능한가요?"}, {"role": "assistant", "content": "iCloud 백업에서 복구할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone이 충전이 안 돼요. 원인이 뭔가요?"}, {"role": "assistant", "content": "충전 케이블과 어댑터, 충전 포트를 점검해 보세요. 문제가 지속되면 서비스 센터를 방문하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 블루투스 연결이 자주 끊겨요."}, {"role": "assistant", "content": "블루투스 기기와의 거리를 확인하고, 네트워크 설정을 재설정해 보세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "벨소리 변경 방법"}, {"role": "assistant", "content": "설정 > 사운드 및 햅틱 > 벨소리에서 변경할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 알람이 울리지 않아요."}, {"role": "assistant", "content": "알람 설정과 음량, 무음 모드 여부를 확인해 주세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "통화 녹음 가능한가요?"}, {"role": "assistant", "content": "아이폰 기본 기능으로 통화 녹음은 지원하지 않습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 스팸 전화 차단 방법"}, {"role": "assistant", "content": "설정 > 전화 > 발신자 차단 및 신원 확인에서 설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "위치 서비스 켜는 방법"}, {"role": "assistant", "content": "설정 > 개인 정보 보호 및 보안 > 위치 서비스에서 켜거나 끌 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 핫스팟 설정 방법"}, {"role": "assistant", "content": "설정 > 셀룰러 > 개인용 핫스팟에서 설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "화면 캡처하는 방법 알려주세요."}, {"role": "assistant", "content": "사이드 버튼과 볼륨 업 버튼을 동시에 누르면 화면 캡처가 됩니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "화면 녹화는 어떻게 하나요?"}, {"role": "assistant", "content": "설정 > 제어 센터에서 '화면 기록'을 추가한 후 제어 센터에서 녹화할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 앱이 자꾸 꺼져요."}, {"role": "assistant", "content": "앱을 최신 버전으로 업데이트하거나, 기기를 재시작해 보세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "저장 공간 부족 시 대처 방법"}, {"role": "assistant", "content": "불필요한 앱과 사진, 동영상을 삭제하거나 iCloud 저장 공간을 활용하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 음성 메모 복구 방법"}, {"role": "assistant", "content": "최근 삭제된 항목에서 복구할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "연락처 옮기는 방법"}, {"role": "assistant", "content": "iCloud 동기화 또는 SIM 카드, 타사 앱을 통해 옮길 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 화면 밝기 조절 방법"}, {"role": "assistant", "content": "설정 > 디스플레이 및 밝기에서 조절할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "다크 모드 설정 방법"}, {"role": "assistant", "content": "설정 > 디스플레이 및 밝기 > 모드에서 다크 모드를 선택할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 Face ID 재설정 방법"}, {"role": "assistant", "content": "설정 > Face ID 및 암호에서 Face ID를 재설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "Siri 활성화 방법"}, {"role": "assistant", "content": "설정 > Siri 및 검색에서 Siri를 활성화할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 앱 자동 업데이트 설정"}, {"role": "assistant", "content": "설정 > 앱 스토어 > 앱 업데이트에서 자동 업데이트를 설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "통화 품질이 나빠요."}, {"role": "assistant", "content": "신호 상태와 주변 환경을 확인하고, 문제가 지속되면 통신사에 문의하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 소프트웨어 강제 재시작 방법"}, {"role": "assistant", "content": "볼륨 업 버튼, 볼륨 다운 버튼을 차례로 누른 뒤, 사이드 버튼을 길게 눌러 재시작하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "방해금지 모드 설정"}, {"role": "assistant", "content": "설정 > 집중 모드 > 방해금지 모드에서 설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 분실 모드 설정 방법"}, {"role": "assistant", "content": "나의 찾기 앱에서 분실 모드를 활성화할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "앱이 설치되지 않아요."}, {"role": "assistant", "content": "저장 공간과 네트워크 상태를 확인하고, 앱스토어 로그인을 확인하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 소프트웨어 롤백 가능한가요?"}, {"role": "assistant", "content": "공식적으로는 이전 버전으로 롤백이 불가능합니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "문자 메시지가 안 와요."}, {"role": "assistant", "content": "메시지 설정과 네트워크 상태를 확인하고, 필요 시 통신사에 문의하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 AirDrop 사용 방법"}, {"role": "assistant", "content": "제어 센터에서 AirDrop을 켜고, 전송할 파일을 선택하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "앱 권한 설정 방법"}, {"role": "assistant", "content": "설정 > 개인 정보 보호에서 각 앱의 권한을 관리할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 스크린타임 설정"}, {"role": "assistant", "content": "설정 > 스크린타임에서 사용 시간을 관리할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "긴급 구조 요청 방법"}, {"role": "assistant", "content": "사이드 버튼과 볼륨 버튼을 동시에 길게 누르면 긴급 구조 요청이 가능합니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 배경화면 변경 방법"}, {"role": "assistant", "content": "설정 > 배경화면에서 원하는 이미지를 선택해 변경할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "사진 앨범 잠그는 방법"}, {"role": "assistant", "content": "사진 앱에서 숨김 앨범을 활성화하고, Face ID 또는 암호로 잠글 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 메모 앱 동기화 방법"}, {"role": "assistant", "content": "설정 > Apple ID > iCloud에서 메모 동기화를 활성화하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "카메라 화질 조절 방법"}, {"role": "assistant", "content": "설정 > 카메라 > 포맷 및 해상도에서 조절할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 음성 인식 기능 사용법"}, {"role": "assistant", "content": "설정 > 손쉬운 사용 > 음성 제어에서 활성화할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "키보드 언어 추가 방법"}, {"role": "assistant", "content": "설정 > 일반 > 키보드 > 키보드 추가에서 원하는 언어를 선택하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 SIM 카드 교체 방법"}, {"role": "assistant", "content": "아이폰 측면의 SIM 트레이를 핀으로 열어 교체할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "자동 밝기 설정"}, {"role": "assistant", "content": "설정 > 손쉬운 사용 > 디스플레이 및 텍스트 크기 > 자동 밝기에서 설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 앱 숨기는 방법"}, {"role": "assistant", "content": "홈 화면에서 앱을 길게 눌러 '홈 화면에서 제거'를 선택하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "화면 회전이 안 돼요."}, {"role": "assistant", "content": "제어 센터에서 화면 회전 잠금이 활성화되어 있는지 확인하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 캘린더 동기화 방법"}, {"role": "assistant", "content": "설정 > Apple ID > iCloud에서 캘린더 동기화를 활성화하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iCloud 용량 늘리는 방법"}, {"role": "assistant", "content": "설정 > Apple ID > iCloud > 저장 공간 관리에서 용량을 추가 구매할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 앱 알림 설정"}, {"role": "assistant", "content": "설정 > 알림에서 각 앱의 알림을 개별적으로 설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "음성 명령으로 전화 거는 방법"}, {"role": "assistant", "content": "Siri를 이용해 음성 명령으로 전화를 걸 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 긴급 연락처 등록 방법"}, {"role": "assistant", "content": "건강 앱에서 의료 정보에 긴급 연락처를 등록할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "사진 라이브 포토 끄는 방법"}, {"role": "assistant", "content": "카메라 앱에서 라이브 포토 아이콘을 눌러 끄거나 켤 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 앱 내 결제 오류 해결 방법"}, {"role": "assistant", "content": "앱스토어 결제 정보를 확인하고, 문제가 지속되면 Apple 지원에 문의하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "통화 중 녹음 가능한가요?"}, {"role": "assistant", "content": "아이폰 기본 기능으로는 통화 중 녹음이 지원되지 않습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 사진 자동 백업 설정"}, {"role": "assistant", "content": "설정 > Apple ID > iCloud > 사진에서 자동 백업을 활성화할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "소프트웨어 자동 업데이트 끄는 방법"}, {"role": "assistant", "content": "설정 > 일반 > 소프트웨어 업데이트 > 자동 업데이트에서 끌 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 화면 확대 기능 사용법"}, {"role": "assistant", "content": "설정 > 손쉬운 사용 > 확대/축소에서 기능을 활성화할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "문자 메시지 자동 삭제 설정"}, {"role": "assistant", "content": "설정 > 메시지 > 메시지 보관 기간에서 자동 삭제를 설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 앱 강제 종료 방법"}, {"role": "assistant", "content": "홈 버튼이 없는 경우 화면 하단에서 위로 스와이프하여 앱을 종료할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "스크린샷 저장 위치"}, {"role": "assistant", "content": "스크린샷은 사진 앱의 '스크린샷' 앨범에 저장됩니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 데이터 절약 모드 설정"}, {"role": "assistant", "content": "설정 > 셀룰러 > 셀룰러 데이터 옵션 > 데이터 절약 모드에서 설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "문자 수신 차단 방법"}, {"role": "assistant", "content": "설정 > 메시지 > 연락처 차단에서 차단할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 VPN 설정 방법"}, {"role": "assistant", "content": "설정 > 일반 > VPN에서 새 VPN을 추가할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iCloud 로그아웃 방법"}, {"role": "assistant", "content": "설정 > Apple ID에서 로그아웃할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 메일 계정 추가 방법"}, {"role": "assistant", "content": "설정 > 메일 > 계정 추가에서 새로운 메일 계정을 등록할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "NFC 기능 사용법"}, {"role": "assistant", "content": "지원되는 모델에서 설정 > 일반 > NFC에서 사용할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 문자 미리보기 끄는 방법"}, {"role": "assistant", "content": "설정 > 알림 > 메시지 > 미리보기 표시에서 끌 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "사진 숨기는 방법"}, {"role": "assistant", "content": "사진 앱에서 사진을 선택한 뒤, 공유 버튼 > 숨기기를 선택하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 앱스토어 결제 수단 변경"}, {"role": "assistant", "content": "설정 > Apple ID > 결제 및 배송에서 결제 수단을 변경할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "앱 다운로드가 느릴 때 대처법"}, {"role": "assistant", "content": "네트워크 속도를 확인하고, 필요 시 Wi-Fi를 변경하거나 재시작하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 소리 안날 때 해결 방법"}, {"role": "assistant", "content": "음량, 무음 스위치, 방해금지 모드 여부를 확인하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "사진 자동 삭제 설정"}, {"role": "assistant", "content": "설정 > 사진 > 최근 삭제 항목에서 자동 삭제 기간을 설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 문자 대화 백업 방법"}, {"role": "assistant", "content": "iCloud 백업을 통해 문자 대화를 백업할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "앱 업데이트 알림 끄는 방법"}, {"role": "assistant", "content": "설정 > 알림 > 앱스토어에서 알림을 끌 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 화면 시간 제한 설정"}, {"role": "assistant", "content": "설정 > 스크린타임 > 앱 제한에서 시간 제한을 설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "사진 앨범 공유 방법"}, {"role": "assistant", "content": "사진 앱에서 공유 앨범을 만들어 친구와 공유할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 앱스토어 국가 변경"}, {"role": "assistant", "content": "설정 > Apple ID > 미디어 및 구매 > 국가/지역 변경에서 설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "문자 메시지 읽음 표시 끄는 방법"}, {"role": "assistant", "content": "설정 > 메시지 > 읽음 확인 보내기에서 끌 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 Wi-Fi 비밀번호 확인 방법"}, {"role": "assistant", "content": "설정 > Wi-Fi > 연결된 네트워크에서 비밀번호를 확인할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "앱스토어 자동 결제 해지 방법"}, {"role": "assistant", "content": "설정 > Apple ID > 구독에서 자동 결제를 해지할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 데이터 사용량 확인"}, {"role": "assistant", "content": "설정 > 셀룰러 > 셀룰러 데이터 사용량에서 확인할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "앱스토어 로그아웃 방법"}, {"role": "assistant", "content": "설정 > Apple ID > 미디어 및 구매 > 로그아웃을 선택하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 화면 자동 잠금 시간 변경"}, {"role": "assistant", "content": "설정 > 디스플레이 및 밝기 > 자동 잠금에서 시간 변경이 가능합니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "사진 HEIC 변환 방법"}, {"role": "assistant", "content": "설정 > 카메라 > 포맷에서 JPEG로 변경하거나, 사진을 공유할 때 자동 변환됩니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 앱스토어 다운 오류 해결"}, {"role": "assistant", "content": "네트워크 상태와 저장 공간을 확인하고, 문제가 지속되면 재시작하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "사진 날짜 변경 방법"}, {"role": "assistant", "content": "사진 앱에서 사진을 선택한 뒤, 정보(i) 버튼을 눌러 날짜를 변경할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iPhone에서 앱스토어 다운로드 제한 해제"}, {"role": "assistant", "content": "설정 > 셀룰러 > 앱 다운로드에서 제한을 해제할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰 배터리 교체 시기가 궁금해요."}, {"role": "assistant", "content": "설정 > 배터리 > 배터리 성능 상태에서 '서비스' 메시지가 표시되면 교체를 권장합니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "배터리 수명을 늘리려면 어떻게 해야 하나요?"}, {"role": "assistant", "content": "불필요한 앱을 종료하고, 저전력 모드를 자주 활용하면 배터리 수명을 연장할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰이 자주 꺼져서 불편해요. 원인이 뭘까요?"}, {"role": "assistant", "content": "배터리 노후, 소프트웨어 오류, 충격 등 다양한 원인이 있을 수 있습니다. 최신 iOS로 업데이트하거나, 서비스 센터 점검을 권장합니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iOS 최신 버전으로 업그레이드하는 방법 알려주세요."}, {"role": "assistant", "content": "Wi-Fi에 연결 후 설정 > 일반 > 소프트웨어 업데이트에서 최신 iOS를 설치할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰 액정이 깨졌는데 수리비가 얼마나 드나요?"}, {"role": "assistant", "content": "기종에 따라 다르며, 애플 공식 서비스 센터에서 정확한 견적을 안내받으실 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰 데이터 안전하게 저장하려면 어떻게 해야 하나요?"}, {"role": "assistant", "content": "iCloud 백업 또는 컴퓨터에 iTunes로 백업하면 데이터를 안전하게 보관할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "앱을 완전히 삭제하려면 어떻게 해야 하나요?"}, {"role": "assistant", "content": "앱 아이콘을 길게 눌러 '앱 삭제'를 선택하면 완전히 제거됩니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "실수로 지운 사진을 복구할 수 있나요?"}, {"role": "assistant", "content": "사진 앱의 '최근 삭제된 항목'에서 30일 이내 사진을 복구할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "잠금 비밀번호를 까먹었어요. 어떻게 해야 하나요?"}, {"role": "assistant", "content": "복구 모드에서 아이폰을 초기화해야 하며, 백업이 있다면 데이터 복원이 가능합니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "와이파이에 연결이 안 될 때 어떻게 해야 하나요?"}, {"role": "assistant", "content": "네트워크 설정을 재설정하거나, 라우터를 껐다 켜보세요. 그래도 안 되면 기기를 재시동해 보세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "문자 메시지를 복원하고 싶어요."}, {"role": "assistant", "content": "iCloud 또는 iTunes 백업에서 복원하면 메시지도 함께 복원됩니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "충전이 안 될 때 점검할 부분이 궁금해요."}, {"role": "assistant", "content": "충전 케이블, 어댑터, 충전 포트에 이물질이 없는지 확인하세요. 이상이 없으면 공식 서비스 센터를 방문하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "블루투스 연결이 불안정해요."}, {"role": "assistant", "content": "기기 간 거리를 좁히고, 블루투스 설정을 껐다 켜거나 네트워크 설정을 재설정해 보세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "벨소리 바꾸는 법 알려주세요."}, {"role": "assistant", "content": "설정 > 사운드 및 햅틱 > 벨소리에서 원하는 소리로 변경할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "알람이 울리지 않아요. 해결 방법 있나요?"}, {"role": "assistant", "content": "알람, 음량, 무음 모드, 방해금지 모드 설정을 확인해 주세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰으로 통화 녹음이 가능한가요?"}, {"role": "assistant", "content": "아이폰은 기본적으로 통화 녹음을 지원하지 않습니다. 관련 앱을 별도로 설치해야 합니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "스팸 전화 차단 기능이 있나요?"}, {"role": "assistant", "content": "설정 > 전화 > 발신자 차단 및 신원 확인에서 스팸 전화를 차단할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "위치 서비스 켜는 법 좀 알려주세요."}, {"role": "assistant", "content": "설정 > 개인 정보 보호 및 보안 > 위치 서비스에서 활성화할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "핫스팟을 켜는 방법이 궁금해요."}, {"role": "assistant", "content": "설정 > 셀룰러 > 개인용 핫스팟에서 핫스팟을 켤 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "스크린샷 찍는 방법 알려주세요."}, {"role": "assistant", "content": "사이드 버튼과 볼륨 업 버튼을 동시에 누르면 스크린샷이 저장됩니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "화면 녹화 기능은 어디서 켜나요?"}, {"role": "assistant", "content": "설정 > 제어 센터에서 '화면 기록'을 추가한 후, 제어 센터에서 녹화 버튼을 누르세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "앱이 자꾸 꺼지는 이유가 뭔가요?"}, {"role": "assistant", "content": "앱이 최신 버전인지 확인하고, iOS도 업데이트해 보세요. 그래도 문제가 있으면 앱을 삭제 후 재설치하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "저장 공간이 부족할 때 어떻게 해야 하나요?"}, {"role": "assistant", "content": "불필요한 파일, 앱, 사진을 삭제하거나 iCloud 저장 공간을 구매해 보세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "음성 메모를 복원할 수 있나요?"}, {"role": "assistant", "content": "음성 메모 앱의 '최근 삭제된 항목'에서 복구할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "연락처를 새 아이폰으로 옮기고 싶어요."}, {"role": "assistant", "content": "iCloud 동기화나, SIM 카드, 또는 타사 앱을 통해 연락처를 이전할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "화면 밝기 조절은 어디서 하나요?"}, {"role": "assistant", "content": "설정 > 디스플레이 및 밝기에서 밝기를 조절할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "다크 모드로 바꾸고 싶어요."}, {"role": "assistant", "content": "설정 > 디스플레이 및 밝기에서 다크 모드를 선택하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "Face ID를 다시 등록하려면 어떻게 해야 하나요?"}, {"role": "assistant", "content": "설정 > Face ID 및 암호에서 Face ID 재설정 후 다시 등록하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "Siri를 켜고 끄는 방법이 궁금해요."}, {"role": "assistant", "content": "설정 > Siri 및 검색에서 Siri를 활성화하거나 비활성화할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "앱을 자동으로 업데이트하려면 어떻게 하나요?"}, {"role": "assistant", "content": "설정 > 앱 스토어 > 앱 업데이트에서 자동 업데이트를 켤 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "통화 음질이 안 좋아요. 어떻게 해야 하나요?"}, {"role": "assistant", "content": "신호가 약한 곳에서는 통화 품질이 저하될 수 있습니다. 위치를 바꿔보거나, 문제가 계속되면 통신사에 문의하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "아이폰을 강제로 재시동하려면 어떻게 해야 하나요?"}, {"role": "assistant", "content": "볼륨 업, 볼륨 다운 버튼을 차례로 누른 후, 사이드 버튼을 길게 눌러 재시동하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "방해금지 모드는 어떻게 설정하나요?"}, {"role": "assistant", "content": "설정 > 집중 모드 > 방해금지 모드에서 원하는 시간과 조건을 설정할 수 있습니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "분실 모드를 사용하려면 어떻게 해야 하나요?"}, {"role": "assistant", "content": "나의 찾기 앱에서 내 기기를 선택하고 분실 모드를 활성화하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "앱 설치가 안 될 때 해결법이 있나요?"}, {"role": "assistant", "content": "저장 공간, 네트워크, Apple ID 로그인을 확인하고, 문제가 계속되면 기기를 재시동하세요."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "iOS를 예전 버전으로 되돌릴 수 있나요?"}, {"role": "assistant", "content": "정상적인 방법으로는 다운그레이드가 불가능합니다."}]}
{"messages":[{"role": "system", "content": "당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."}, {"role": "user", "content": "문자 수신이 안 될 때 어떻게 해야 하나요?"}, {"role": "assistant", "content": "메시지 설정, 네트워크 상태, 통신사 서비스 상태를 확인하세요."}]}

2-2. 이걸 가지고 다양성을 추가 (총 630개)

작업해준 Perplexity에게 심심한 감사의 인사를...
-- Jsonl 파일 다운로드 --

3. lora 파라미터 수정

전체 코드는 이렇고...

lora_config = LoraConfig(
    r=32, # LoRA의 랭크. 값이 작을수록 학습 파라미터가 적고 빠름
    lora_alpha=64, # LoRA 스케일링 인자. r 값과 함께 LoRA 가중치의 스케일을 조절한다.
    target_modules=["q_proj", "v_proj", "k_proj", "out_proj", "gate_proj", "up_proj", "down_proj"], # LoRA를 적용할 모델의 특정 레이어(여기서는 쿼리, 값 프로젝션)를 지정한다.
    lora_dropout=0.05, # LoRA 레이어에 적용할 드롭아웃 비율
    bias="none", # 바이어스 파라미터에 LoRA를 적용할지 여부 ('none'은 적용 안 함).
    task_type="CAUSAL_LM" # 미세 조정할 작업 유형을 인과 언어 모델링으로 설정한다.
)

3-1. r 값

8 > 32 로 변경

r 값이 크면 LoRA가 근사하는 변화가 더 복잡해지고, 표현력이 커진다.
r 값이 작으면 학습할 파라미터 수가 적어져 빠르고 메모리 효율적이다.
r=4~64 사이에서 많이 조절한다.
32는 중간 정도, 적당히 표현력과 효율성 균형 맞추는 값이다.

3-2. lora_alpha 값

8 > 32 로 변경

학습되는 LoRA 가중치 행렬 A * B에 곱해지는 스케일링 값.
모델 업데이트 강도를 조절하는 역할
값이 크면 업데이트가 더 크게 반영 → 빠른 적응
값이 작으면 업데이트가 작게 반영 → 안정적, 느린 적응
lora_alpha는 r과 비슷하거나 조금 더 크게 잡음 (예: r=32면 lora_alpha=32~64)
너무 크면 학습 불안정 초래할 수 있으니 주의

하이퍼파라미터효과권장값 예시트레이드오프
rLoRA 근사 저랭크 차원, 파라미터 양과 표현력 결정4 ~ 64 (보통 16~32)크면 좋은 성능, 느리고 메모리 많이 먹음
lora_alphaLoRA 업데이트 스케일링r과 비슷하거나 2배 정도 (예: r=32, alpha=64)너무 크면 불안정, 너무 작으면 느린 수렴

3-3. target_modules 값

적용할 레이어를 지정.

["q_proj", "v_proj"] 
>>>>>>
["q_proj", "v_proj", "k_proj", "out_proj", "gate_proj", "up_proj", "down_proj"]

3-4. lora_dropout 값

0.1 > 0.05 로 변경

모델의 적응 파라미터에 노이즈 추가
학습 시 LoRA가 업데이트하는 작은 가중치 매트릭스 일부를 무작위로 끄거나 희석해서, 모델이 특정 경로에 너무 의존하지 않도록 한다.

과적합 방지
LoRA 파라미터가 학습 데이터에 너무 과하게 맞춰지는 걸 막아주고, 더 일반화된 적응이 가능하게 한다.

학습 안정성 증가
Dropout의 랜덤성으로 인해 모델이 다양한 표현을 배우고, 특정 특징에 치중하지 않게 도와줌.

4. 허깅페이스 훈련 인자 변경

4-1. gradient_accumulation_steps 값

8 > 4 로 변경

배치를 여러 번 연속해서 처리한 뒤, 그동안 계산한 그래디언트(기울기)를 누적해서 한꺼번에 가중치를 업데이트하는 방법이다.
이 설정대로 하면 4 * 4 = 16 샘플을 처리한 뒤 가중치를 업데이트한다.

4-2. learning_rate 값

4e-4 > 1e-4 로 변경

모델의 가중치를 업데이트할 때, 기울기(gradient)에 곱해져서 얼마나 크게 가중치를 조정할지 결정하는 값
학습률은 모델이 얼마나 빠르게 학습할지 조절하는 중요한 하이퍼파라미터이다.
너무 크면 학습이 불안정해지고, 너무 작으면 학습이 느려질 수 있다.
일반적으로 1e-4 ~ 1e-5 사이의 값을 사용한다.

학습률 크기영향 및 특징
너무 작으면학습 속도가 느리고, 최적값에 도달하는 데 오래 걸림. 때로는 지역 최적점에 빠질 수 있음.
적절한 중간 값빠르고 안정적으로 최적점에 수렴.
너무 크면학습이 불안정해지고 발산하거나 손실이 튀는 현상이 발생. 최적점 근처에서 계속 흔들릴 수 있음.

5. 학습 소스 전체

총 소요시간은 12분

from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import LoraConfig, get_peft_model
import torch
from datasets import load_dataset
from transformers import TrainingArguments, Trainer, DataCollatorForLanguageModeling
from dotenv import load_dotenv
import os
import gc

output_dir = "./TinyLlama/TinyLlama-1.1B-Chat-v1.0-iphone"
model_name = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
jsonl_path = "./iphone_600.jsonl"

# .env 파일에서 Hugging Face API 키를 로드
load_dotenv()
hf_token = os.getenv("HUGGINGFACE_API_KEY")


# 사전 학습된 인과 언어 모델을 float32 타입으로 CPU에 로드
# accelerate launch 로 실행할거라서 device_map 사용 안함
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    # device_map="auto",
    token=hf_token,
    trust_remote_code=True
)

# 모델에 맞는 토크나이저를 로드
tokenizer = AutoTokenizer.from_pretrained(model_name, token=hf_token, trust_remote_code=True)

# 토크나이저에 패딩 토큰이 없으면 EOS(문장 끝) 토큰을 사용한다.
if tokenizer.pad_token is None:
    tokenizer.pad_token = tokenizer.eos_token

# LoRA(Low-Rank Adaptation) 설정
lora_config = LoraConfig(
    r=32, # LoRA의 랭크. 값이 작을수록 학습 파라미터가 적고 빠름
    lora_alpha=64, # LoRA 스케일링 인자. r 값과 함께 LoRA 가중치의 스케일을 조절한다.
    target_modules=["q_proj", "v_proj", "k_proj", "out_proj", "gate_proj", "up_proj", "down_proj"], # LoRA를 적용할 모델의 특정 레이어(여기서는 쿼리, 값 프로젝션)를 지정한다.
    lora_dropout=0.05, # LoRA 레이어에 적용할 드롭아웃 비율
    bias="none", # 바이어스 파라미터에 LoRA를 적용할지 여부 ('none'은 적용 안 함).
    task_type="CAUSAL_LM" # 미세 조정할 작업 유형을 인과 언어 모델링으로 설정한다.
)

# 정의된 LoRA 설정을 모델에 적용하여 PEFT 모델을 만듬
model = get_peft_model(model, lora_config)

# 학습 가능한 파라미터 수를 출력
model.print_trainable_parameters()

# JSON 형식의 데이터셋을 로드
dataset = load_dataset("json", data_files={"train": jsonl_path})["train"]

# 챗 메시지 데이터를 모델 입력 형식으로 전처리하는 함수
def preprocess_chat(example):
    messages = example["messages"]
    # 챗 템플릿을 사용하여 메시지를 문자열로 변환하고 토큰화
    prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=False)
    tokenized = tokenizer(prompt, padding="max_length", truncation=True, max_length=512)
    tokenized["labels"] = tokenized["input_ids"].copy()
    return tokenized

# 데이터셋의 각 예제에 전처리 함수를 적용
dataset = dataset.map(preprocess_chat)

# 모델 학습에 필요한 인자(TrainingArguments)를 설정
training_args = TrainingArguments(
    output_dir=output_dir, # 학습 중 생성되는 체크포인트 및 로그 파일의 저장 경로
    per_device_train_batch_size=4, # 각 장치(CPU/GPU)당 학습에 사용될 배치 크기
    gradient_accumulation_steps=4, # 기울기 업데이트를 하기 전까지 기울기를 축적할 단계 수. 늘리면 배치 크기 커짐.
    num_train_epochs=5, # 전체 학습 데이터셋을 몇 번 반복하여 학습할지 지정하는 에포크 수
    learning_rate=1e-4, # 모델 학습 시 사용될 학습률
    save_total_limit=2, # 저장될 모델 체크포인트의 최대 개수. 이 개수를 초과하면 오래된 체크포인트가 삭제됨
    logging_steps=5, # 학습 진행 상황(손실 등)을 로그로 기록할 단계 간격
    bf16=False,
    fp16=True,
    report_to="none" # 학습 진행 상황을 보고할 외부 도구(예: TensorBoard, Weights & Biases)
)

# 언어 모델링을 위한 데이터 콜레이터를 설정
data_collator = DataCollatorForLanguageModeling(
    tokenizer=tokenizer,
    mlm=False
)

# Trainer 객체를 초기화
trainer = Trainer(
    model=model,
    train_dataset=dataset,
    args=training_args,
    data_collator=data_collator
)

# 모델 학습을 시작
trainer.train()

# 학습된 모델과 토크나이저를 지정된 경로에 저장
trainer.save_model(output_dir)
tokenizer.save_pretrained(output_dir)

6. 학습 결과 시각화

grad_norm 이 초반에 급격하게 떨어졌다가 조금씩 올라가긴 했는데 중간에 폭주 없이 완만하게 잘(?) 되었다

7. 추론

7-1. 아이폰 문자 메시지 복구 (질문 변형 O)

{"messages":[{"role":"system","content":"당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."},{"role":"user","content":"아이폰 문자 메시지 복구 방법이 있나요?"},{"role":"assistant","content":"iCloud 백업에서 복구할 수 있습니다."}]}

7-2. 아이폰 핫스팟 설정 방법 (질문 변형 O)

{"messages":[{"role":"system","content":"당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."},{"role":"user","content":"아이폰 핫스팟 설정 방법 알려주세요."},{"role":"assistant","content":"설정 > 셀룰러 > 개인용 핫스팟에서 설정할 수 있습니다."}]}

7-3. 화면 캡처하는 방법 알려주세요.(질문 변형 X)

{"messages":[{"role":"system","content":"당신은 아이폰 전문가 챗봇입니다. 사용자의 질문에 답변해 주세요."},{"role":"user","content":"화면 캡처하는 방법 알려주세요."},{"role":"assistant","content":"사이드 버튼과 볼륨 업 버튼을 동시에 누르면 캡처됩니다."}]}

8. 결론

드디어 Take #3 에 와서야 끝낼 수 있었다.
로그를 저장하진 못했지만 loss 를 0.083까지 떨어트리고, grad_norm 값을 끝까지 1.5~1.7로 유지하였다.

Take #4 ㄱㄱ?

profile
인공지능이라는 옷을 입었습니다. 뭔가 멋지면서도 잘 맞습니다.

0개의 댓글