파인튜닝 Level 300 · 90분
언어 모델 파인튜닝하기
여행사 챗봇 시나리오를 예로, 프롬프트 엔지니어링만으로는 부족한 일관된 어조를 파인튜닝된 모델로 어떻게 구현하는지 기본 모델과 비교하며 실습합니다.
실습 개요
- 언어 모델이 특정 방식으로 동작하기를 원할 때는 프롬프트 엔지니어링으로 원하는 동작을 정의할 수 있습니다. 원하는 동작의 일관성을 더 높이고 싶다면 모델을 파인튜닝하는 방법을 선택할 수 있고, 이를 프롬프트 엔지니어링 방식과 비교해 어떤 방법이 필요에 더 잘 맞는지 평가할 수 있습니다.
- 이 실습에서는 여행사에서 일하며, 사람들이 휴가를 계획하도록 돕는 챗 애플리케이션을 개발한다고 가정합니다. 목표는 일관되고 친근한 대화 톤으로 목적지와 활동을 제안하는 간단하고 영감을 주는 채팅을 만드는 것입니다.
- 참고: 이 실습의 소요 시간(약 90분)은 평균적인 경험을 기준으로 한 추정치입니다. 파인튜닝은 클라우드 인프라 리소스에 의존하므로 데이터센터 용량과 동시 수요에 따라 시간이 달라질 수 있습니다. 일부 작업은 시간이 오래 걸릴 수 있으니 인내심을 가지세요. 진행이 오래 걸리면 Microsoft Foundry 파인튜닝 문서를 참고하거나 잠시 쉬어도 좋습니다.
1. Foundry 프로젝트 만들기 (파인튜닝 지원 리전 선택)
- Microsoft Foundry 포털(https://ai.azure.com)을 열고 로그인합니다. New Foundry 옵션을 켜고 새 프로젝트를 만듭니다.
- Advanced options에서 Foundry resource(기본 이름), Subscription, Resource group을 지정하고, Region은 다음 중 하나를 선택합니다: East US2 · North Central US · Sweden Central.
- * 이 문서 작성 시점 기준으로 이 리전들이 gpt-5 모델의 파인튜닝을 지원합니다. 최신 리전 가용성은 Microsoft Foundry 모델 문서를 확인하세요.
- 프로젝트가 생성되기를 기다린 뒤 홈 페이지를 확인합니다.
2. 기준선용 모델 배포하기
- 다음으로 성능 기준선을 확인하는 데 사용할 모델을 배포합니다.
- Discover 페이지의 Models 탭에서 모델 카탈로그를 봅니다.
- 모델 카탈로그에서 gpt-5를 검색합니다.
- 모델 카드를 검토한 뒤 기본 설정으로 배포합니다. 배포되면 모델 플레이그라운드가 열립니다.
3. 학습 데이터셋 내려받기
- 파인튜닝은 완료까지 시간이 걸리므로, 지금 파인튜닝 작업을 시작해 두고 이미 배포한 기본 gpt-5 모델을 살펴보는 동안 진행되도록 합니다.
- https://microsoftlearning.github.io/mslearn-ai-studio/data/travel-finetune-hotel.jsonl 의 학습 데이터셋을 내려받아 JSONL 파일로 로컬에 저장합니다.
- 참고: 기기가 기본적으로 .txt 파일로 저장할 수도 있습니다. 모든 파일을 선택해 .txt 접미사를 제거하고 JSONL 파일로 저장되었는지 확인하세요.
4. 파인튜닝 작업 구성하기
- Foundry 포털에서 모델 플레이그라운드를 보는 중, 왼쪽 내비게이션 패널에서 Fine-tune을 선택합니다.
- 오른쪽 위 Fine-tune 버튼을 선택하고 다음 설정으로 파인튜닝 작업을 구성합니다: Base model(gpt-5 선택) · Customization method(Supervised) · Training type(Standard) · Training data(Upload new dataset을 선택해 앞서 내려받은 .jsonl 파일 업로드) · Suffix('ft-travel') · Automatically deploy model after job completion(선택함) · Deployment type(Developer) · 나머지 하이퍼파라미터는 기본값 유지.
- Submit을 선택해 파인튜닝 작업을 시작합니다. 완료까지 시간이 걸릴 수 있으니, 기다리는 동안 실습의 다음 섹션을 계속 진행할 수 있습니다.
- 참고: 파인튜닝과 배포는 상당한 시간(60분 이상)이 걸릴 수 있으므로 주기적으로 확인해야 할 수 있습니다. 파인튜닝 작업을 선택하고 Monitor 탭을 보면 지금까지의 진행 상황을 더 자세히 확인할 수 있습니다.
5. 기본 모델과 대화하며 한계 확인하기
- 파인튜닝 작업이 완료되기를 기다리는 동안, gpt-5 기반 모델과 대화하며 성능을 평가해 봅니다.
- 왼쪽 패널에서 Deployments를 선택하고 이전에 배포한 gpt-5 기본 모델을 선택합니다.
- 채팅 창에 '너는 뭘 할 수 있어?'를 입력하고 응답을 확인합니다. 답변이 다소 일반적일 수 있습니다 - 사람들에게 여행에 대한 영감을 주는 챗 애플리케이션을 만들고 싶다는 점을 기억하세요.
6. 지침을 바꿔가며 원치 않는 동작 발견하기
- 모델 Instructions를 다음 프롬프트로 바꿉니다: '당신은 사람들의 여행 계획을 돕는 AI 어시스턴트입니다.'
- 채팅창에 다시 '너는 뭘 할 수 있어?'를 입력하고 응답을 확인합니다. 어시스턴트가 항공편·호텔·렌터카 예약을 도울 수 있다고 답할 수 있습니다 - 이런 동작은 피하고 싶습니다.
- Instructions 필드에 새 프롬프트를 입력합니다.
당신은 사람들의 여행 계획을 돕는 AI 여행 어시스턴트입니다. 비자 요건, 날씨 전망, 현지 명소, 문화적 관습 같은 여행 관련 문의를 지원하는 것이 목표입니다.
호텔·항공편·렌터카·레스토랑 추천은 제공하지 마세요.
여행 계획을 세우고 휴가 때 무엇을 하고 싶은지 생각해보도록 흥미로운 질문을 던지세요.7. 기본 모델의 톤과 스타일 테스트하기
- 새 지침으로 모델을 계속 테스트하며 다음 질문들을 하고 모델의 답변, 특히 응답의 어조와 문체를 유심히 살펴봅니다: '로마에서는 어디에 묵는 게 좋을까?' / '나는 주로 음식 때문에 가는 거라, 저렴한 식당들과 가까운 곳에 묵으려면 어디가 좋을까?' / '꼭 먹어봐야 할 현지 별미는 뭐가 있어?' / '날씨를 기준으로 방문하기 가장 좋은 시기는 언제야?' / '도시를 돌아다니기 가장 좋은 방법은 뭐야?'
8. 학습 데이터 파일 살펴보기
- 기본 모델도 어느 정도 잘 동작하지만, 생성형 AI 앱에서 특정한 대화 스타일을 원할 수 있습니다. 파인튜닝에 사용하는 학습 데이터는 원하는 응답 유형의 명시적인 예시를 만들 수 있는 기회를 줍니다.
- 앞서 내려받은 JSONL 파일을 텍스트 편집기로 엽니다.
- 학습 데이터 파일에 담긴 JSON 문서 목록을 살펴봅니다. 첫 번째 문서는 (읽기 좋게 정리하면) 다음과 비슷할 것입니다: 시스템 메시지(기본 모델 테스트 때와 동일), 여행 관련 사용자 프롬프트('What's a must-see in Paris?'), 그리고 응답(에펠탑에서 셀카를 찍고 루브르 박물관에서 모나리자를 보라고 권하며, 어떤 종류의 명소를 좋아하는지 되묻는 상냥하고 들뜬 어조의 답변)이 담겨 있습니다.
- 목록의 각 예시 상호작용에는 기본 모델 테스트 때 사용한 것과 같은 시스템 메시지, 여행 관련 사용자 프롬프트, 응답이 포함되어 있습니다. 학습 데이터 응답의 문체가 파인튜닝된 모델이 어떻게 응답해야 하는지를 학습하는 데 도움을 줍니다.
9. 파인튜닝 작업 진행 상황 확인하기
- 파인튜닝된 모델이 준비되면, 배포한 기본 모델을 테스트했던 것처럼 테스트할 수 있습니다.
- 왼쪽 패널에서 Fine-tune을 선택하고 앞서 시작한 파인튜닝 작업의 상태를 확인합니다.
- 작업을 선택해 세부 정보를 봅니다. Logs 탭으로 지금까지 수행된 파인튜닝 작업을 검토할 수 있습니다.
10. 파인튜닝된 모델 배포 확인하기
- 파인튜닝이 완료되고 모델이 자동으로 배포되면, Deployments 페이지에서 목록에 나타나는지 확인합니다.
- TIP: 자동 배포가 실패하면 완료된 파인튜닝 작업을 선택하고 그곳에서 모델을 배포하세요.
- 파인튜닝된 모델을 선택해 모델 플레이그라운드에서 엽니다.
11. 파인튜닝된 모델 테스트하기
- Instructions를 기본 모델 테스트 때와 동일하게 업데이트합니다.
당신은 사람들의 여행 계획을 돕는 AI 여행 어시스턴트입니다. 비자 요건, 날씨 전망, 현지 명소, 문화적 관습 같은 여행 관련 문의를 지원하는 것이 목표입니다.
호텔·항공편·렌터카·레스토랑 추천은 제공하지 마세요.
여행 계획을 세우고 휴가 때 무엇을 하고 싶은지 생각해보도록 흥미로운 질문을 던지세요.12. 기본 모델과 파인튜닝 모델 비교하기
- 파인튜닝된 모델을 테스트해 기본 모델보다 동작이 더 일관적인지 평가해 봅니다. 예를 들어 다음 질문들을 다시 하고 모델의 답변을 살펴봅니다: '로마에서는 어디에 묵는 게 좋을까?' / '나는 주로 음식 때문에 가는 거라, 저렴한 식당들과 가까운 곳에 묵으려면 어디가 좋을까?' / '꼭 먹어봐야 할 현지 별미는 뭐가 있어?' / '날씨를 기준으로 방문하기 가장 좋은 시기는 언제야?' / '도시를 돌아다니기 가장 좋은 방법은 뭐야?'
13. 요약 및 정리
- 이 실습에서는 Microsoft Foundry에서 언어 모델을 파인튜닝해, 여행 어시스턴트 시나리오에서 프롬프트 엔지니어링만 사용한 기본 모델과 파인튜닝된 모델의 동작 일관성·톤·스타일을 비교했습니다.
- 정리(Clean up): Azure 포털(portal.azure.com)에서 이 실습에 사용한 리소스가 포함된 리소스 그룹을 확인하고, 툴바에서 Delete resource group을 선택한 뒤 이름을 입력해 삭제를 확인합니다.