프로젝트를 진행하며 활용 중인 스킬 트레이너에 대해 작성한다.
사실 이 기능은 네이버 쪽 가이드만 봐서는 긴가만가한 부분이 많다.
그래도 먼저 사용 가이드를 쭉 보는 것을 추천한다.
스킬 트레이너 화면
guide.ncloud-docs.com
스킬 트레이너는 단적으로 말하면, 외부 API 를 가져와 LLM 에게 학습시켜 해당 데이터를 활용해 답변할 수 있도록 하는 것이다.
즉, 데이터를 제공할 수 있는 API 를 사용해야만 한다. AI 특화 학습을 할 때 흔히들 알고 있는 파인튜닝(Fine-tuning)과는 조금 다른 개념이다. 파인 튜닝은 CLOVA Studio 에서는 [튜닝] 기능으로 활용하면 된다.
튜닝의 경우에는 다량의 학습 데이터셋을 직접 주입시키는 것이고, 스킬 트레이너는 데이터셋을 API 에 맞춰 특화시킨 뒤 추가로 조정할 수 있도록 한다. 어느 게 더 도입에 적합할 지는 서비스의 구성에 따라 고민해보는 것이 좋을 것이다.
튜닝 : 단순 대화 데이터를 다량으로 가지고 있고, 이후에도 지속 가능한 수준으로 데이터를 공급할 수 있을 경우
스킬 트레이너 : DB 구조화된 데이터를 학습시키기에 적합
개인적으로 나는 위와 같이 요구사항을 고려할 수 있다고 생각한다.
본격적으로 스킬 트레이너를 활용해보자.
리소스 생성
CLOVA Studio 의 스킬 트레이너 콘솔에 접속하여, 스킬셋 부터 생성한다.

여기서, 스킬셋 이름은 모든 유저와 공유한다. ID 와 같은 고유한 값으로 적어야 한다.
답변 형식을 어떻게 정의하느냐에 따라, 모델이 내놓는 답변이 달라진다. 이 부분은 나중에도 조정할 수 있다.
스킬셋을 생성하였으면, 해당 스킬셋으로 들어가 다음으로 스킬을 생성한다.
스킬셋은 여러 개의 스킬을 가질 수 있다. 활용하는 방법으로는 예를 들어 아래와 같다.
비행기 목록 스킬셋 - 국내선 스킬, 국외선 스킬


스킬 생성 버튼을 눌러 들어오면, 위와 같이 작성하는 페이지가 나온다.
여기서도 답변 형식을 작성할 수 있다.
스킬 트레이너에서 가장 중요한 부분이다.
불러올 API Spec 을 작성하고, 모델에게 API 를 어떻게 사용하는지 가르쳐주는 부분이다.
API Spec은 openapi 3.0 을 따른다. 이 부분은 ChatGPT나 네이버의 CLOVA X 에게 물어보면 꽤나 잘 작성해준다.
여기서 나는 개인적으로 활용 중인 서버 내의 일부 파일 내용을 가져오는 API 를 작성했다.
여기서 내가 만드려는 모델은 해당 파일을 활용하는 답변 봇이다.
{
"info": {
"title": "파일 검색 API",
"version": "1.0.0"
},
"paths": {
"/": {
"get": {
"summary": "파일 내 제목과 내용을 검색하는 API",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "제목"
},
"content": {
"type": "string",
"description": "내용"
}
}
}
},
"category": {
"type": "string",
"description": "검색 카테고리"
}
}
}
}
},
"description": "성공"
},
"404": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "에러 코드"
},
"message": {
"type": "string",
"description": "에러 메시지"
}
}
}
}
}
}
}
},
"description": "카테고리를 찾지 못했습니다"
}
},
"parameters": [
{
"in": "query",
"name": "category",
"schema": {
"type": "string"
},
"required": true,
"description": "검색 카테고리"
}
],
"operationId": "searchByCategory"
}
}
},
"openapi": "3.0.0",
"servers": [
{
"url": ""
}
]
}
서버 url 은 개인적으로 사용 중이므로 삭제했다. 서버 내의 파일을 가져오는 코드를 따로 작성해두었고, 이 API 는 해당 코드의 JSON 리턴값을 가져와 카테고리에 따라 검색한 뒤 제목과 내용을 최종적으로 모델이 가져오도록 하였다.
참고로, API Spec을 자세히 작성하는 것이 중요하다. 이후 직접 테스트를 진행해보면 알 수 있는 부분이지만 description 부분도 모델이 읽어가며 이해하고 활용한다. description 꼭 작성해보길 바란다. 하고 안하고 차이가 상당하다.
추가로 작성해야될 중요한 부분은 Description for model 이다.
이 부분은 모델에게 이 API 의 역할이 무엇이고, 어떻게 활용하면 되는지를 알려주는 항목이다.
대략 이렇게 작성하면 된다.
Description for model
category 를 검색하여 제목과 내용을 리턴하는 API 입니다. category 는 검색할 카테고리입니다. title 은 항목의 제목 입니다. content 는 내용입니다. 최종 답변은 content 내용을 활용하여 답변합니다. |
모델에게는 직관적으로 가르쳐주는 것이 좋다. 모호한 말은 되도록 넣지 않도록 한다. (최고, 핵심, 중요 등)
애매한 말을 넣어봐야 무시하고 답변하는 케이스가 많기 때문에, 어떻게 해라! 라고 딱 정해줘야 한다.
이렇게 스킬셋 작성해주고 나면 시나리오 수집을 할 수 있다.
[작성중]
'IT > NAVER Cloud Platform' 카테고리의 다른 글
네이버 클라우드 사용자 가이드 크롤러 제작기 (0) | 2025.03.07 |
---|---|
[CLOVA Studio] Skill Trainer 를 활용한 RAG 모델 구현하기 (1) | 2024.12.22 |
[CLOVA Studio - 1] Prompt Programming (0) | 2024.03.23 |
[NAVER Cloud Platform] Kubernetes Service 구성하기 (1) | 2023.04.22 |
[NAVER Cloud Platform] VOD Station 서비스 맛보기 (0) | 2023.03.07 |