- 인쇄
- PDF
CLOVA Studio 개념
- 인쇄
- PDF
Classic/VPC 환경에서 이용 가능합니다.
CLOVA Studio를 이용하는 전체 시나리오를 학습하기에 앞서 CLOVA Studio에 대한 몇 가지 개념을 설명합니다.
프롬프트와 결괏값
프롬프트는 CLOVA Studio에서 작업을 수행하기 위해 입력해야 할 내용을 의미합니다. CLOVA Studio에서 입력한 프롬프트를 기반으로 HyperCLOVA 언어 모델이 결괏값을 생성합니다. HyperCLOVA 언어 모델은 확률을 기반으로 작동하기 때문에 같은 프롬프트를 입력하더라도 다른 결괏값이 생성될 수 있습니다.
<예시> 프롬프트에 '원숭이 엉덩이는 빨개'를 입력한 경우, 높은 확률로 '빨간 건 사과, 사과는 맛있어'라는 결괏값이 생성됩니다.
토큰
토큰은 자연어 처리를 위해 하나의 단어를 세분화한 단어 조각을 의미합니다. 대개 한국어 단어는 형태소 단위의 1~2 토큰으로 나뉩니다. HyperCLOVA 언어 모델이 학습한 내용에 맞춰 토큰을 나누기 때문에 동일한 표현이 항상 같은 토큰으로 이루어져 있지는 않습니다.
<예시> '맛있어'라는 표현은 각각 '맛'과 있어'라는 두 개의 토큰으로 나뉠 수 있습니다.
확률 기반 언어 모델
확률 기반 언어 모델은 확률을 기반으로 다음에 나올 단어를 예측할 수 있는 언어 모델을 의미합니다. CLOVA Studio에서 사용하는 HyperCLOVA 언어 모델은 확률 기반 언어 모델로, 확률을 기반으로 결괏값을 생성합니다.
<예시> 프롬프트에 자연을 묘사해달라고 입력한 경우, 결괏값의 첫 토큰이 '저'로 선택되었다면 뒤에 올 단어로 '나무', '꽃', '산'을 예측할 수 있습니다. 이때, 각 단어마다 확률이 존재하며 HyperCLOVA 언어 모델은 이 중에서 가장 확률이 높은 '나무'와 '에'를 선택하여 '저 나무에'라는 결과를 생성하는 원리로 작동합니다.
파라미터
파라미터는 문구를 생성하기 위해 플레이그라운드에서 설정하는 값으로, 플레이그라운드의 왼쪽 사이드바에서 설정할 수 있습니다. 파라미터 항목은 다음과 같습니다.
Engine
Engine(이하 엔진)은 CLOVA Studio에서 문구를 생성할 때 사용하는 언어 모델입니다. CLOVA Studio는 한국어 엔진인 LK-B, LK-D2, 그리고 HyperCLOVA X 엔진인 HCX-003, HCX-DASH-001을 제공합니다. 플레이그라운드의 챗 모드와 Chat Completions API를 통해 제공하는 HCX-003, HCX-DASH-001 엔진은 대화형 작업 수행 능력이 뛰어난 한층 업그레이드 된 엔진입니다.
- HCX-003: 다양한 지시문의 작업을 수행하는 능력이 뛰어납니다.
- HCX-DASH-001: 경량화된 엔진으로 빠른 속도와 처리 능력을 가지고 있으며 비교적 단순한 작업에 유용하게 쓰일 수 있습니다.
Top K
Top K는 자연어 처리 모델이 예측한 토큰의 선택 확률 분포에서 확률 값이 가장 높은 K개 중에서 하나를 선택할 때 사용하는 기준 값입니다. Top K는 특수한 경우가 아니라면 0으로 설정하는 것을 권장합니다.
<예시> Top K=5인 경우, 가장 확률 값이 높은 5개의 토큰 중에서 하나의 토큰이 선택됩니다. 이때, 가장 확률 값이 높은 토큰이 선택될 가능성이 크지만 경우에 따라 확률 값이 더 낮은 토큰이 선택될 수도 있습니다.
Top P
Top P는 선택 확률 값이 높은 토큰을 순서대로 나열한 후 설정한 누적 확률 값에 포함되지 않는 토큰을 제거할 때 사용하는 기준값입니다. Top P는 특수한 경우가 아니라면 0.8~1로 설정하는 것을 권장합니다.
<예시> Top P=0.8인 경우, 누적 확률 값이 상위 80%에 포함된 토큰만 후보로 선택합니다.
Maximum tokens
Maximum tokens는 결괏값을 생성할 때 사용할 최대 토큰 수입니다. 토큰 수를 높게 설정할 수록 긴 결괏값을 출력합니다. 프롬프트와 결괏값을 포함하여 일반 모드에서 제공하는 언어 모델인 경우에는 최대 2048 토큰까지, 챗 모드에서 제공하는 HyperCLOVA X 언어 모델인 경우에는 최대 4096 토큰까지 허용됩니다. Maximum tokens는 300~500을 권장하며 작업에 따라 달라질 수 있습니다. Maximum tokens가 실제 필요한 결괏값 토큰 수 대비 과도하게 설정될 경우, 불필요한 출력 길이로 인해 예상치 못한 과금이 발생하거나 처리 시간이 길어질 수 있습니다. 또한 이용량 제어 정책의 TPM 최대 이용량 초과로 인한 요청 미처리가 보다 빈번하게 발생할 수 있습니다. (CLOVA Studio 이용량 제어 정책)
Temperature
Temperature는 확률 분포에 가중치 변화를 주어 문장의 다양성을 조절하는 값입니다. Temperature를 낮게 설정하면 후보에 포함된 토큰의 순위는 바뀌지 않지만 확률이 높았던 토큰은 더욱 확률 값이 높아지고 낮았던 토큰은 확률 값이 더욱 낮아집니다. 가장 높은 순위의 토큰이 선택될 가능성이 크기 때문에 정형적인 결괏값을 생성합니다. 반면에 Temperature를 높게 설정하면 각 토큰의 확률 값의 차이가 좁혀져 다양한 문장이 만들어질 수 있지만, 규칙에서 조금 벗어나는 문장을 생성하기도 하고 문장의 품질이 다소 떨어질 수도 있습니다. 따라서, Top P 값을 고정한 상태에서 Temperature를 필요에 따라 조절하는 것을 권장합니다.
- Temperature 값이 낮은 경우
- Temperature 값이 높은 경우
Repetition penalty
Repetition penalty는 CLOVA Studio에서 문구를 생성할 때 반복적인 결괏값을 생성하지 않도록 반복되는 토큰에는 감점 요소를 부여하는 값입니다. Repetition penalty가 높을수록 같은 결괏값을 반복적으로 생성할 확률이 감소합니다.
Stop sequences
Stop sequences는 결과 생성을 중단할 때 쓸 문자열입니다. Stop sequences는 여러 개 등록할 수 있으며, CLOVA Studio가 결과를 생성할 때 Stop sequences 중 하나가 결과에 포함되면 그 이전까지의 내용만 출력됩니다.
<예시> 프롬프트를 '원숭이 엉덩이는 빨개'로 입력하고 Stop sequences에 '사과'라는 문자열을 추가하면 결괏값은 '빨간 건'까지만 출력되며, '사과'부터는 출력되지 않습니다.
Seed
Seed는 결과물의 일관성을 조정하는 값입니다. Seed의 값이 동일하면 확률 기반의 언어 모델을 여러 번 실행하더라도 동일한 결과를 얻을 수 있습니다.
단, 결과물의 완전성을 보장하지 않으며 다른 조건을 미세하게 조정하면 결과는 조금씩 달라질 수 있습니다.
Seed의 값을 '0'으로 지정할 경우, 결과는 무작위로 출력됩니다.
튜닝
튜닝은 사전 학습된 모델 파라미터 일부를 사용자 목적에 맞게 변형하고, 사용자 데이터에 대해 모델 일부를 재학습하는 방식입니다. 사용자는 일정량의 학습/검증 데이터셋을 투입하여 튜닝을 통해 원하는 작업 종류 및 데이터에 최적화된 모델을 학습하고 테스트할 수 있습니다. 이렇게 업데이트된 모델을 API화하여 새로운 데이터 및 다양한 목적에 맞게 활용할 수 있습니다.
작업
작업은 튜닝을 수행하는 기준 단위입니다. 사용자는 하나의 작업당 하나의 작업 종류, 언어, 모델 엔진을 각각 선택하게 됩니다. 이후 사용자 데이터셋을 통해 학습을 진행하여 작업 종류, 언어, 모델 엔진, 데이터셋에 가장 최적화된 모델을 생성할 수 있습니다.
테스트 앱
테스트 앱은 테스트 혹은 서비스의 가능성을 체크하는 용도로 임시 API를 제공하는 앱입니다. 사용 제한(기간, 호출 양)이 있으며, 테스트 앱을 실제 서비스에 적용하면 서비스 품질에 문제가 발생할 수 있으므로 테스트 앱을 실제 서비스에 사용할 경우 차단됩니다. 베타 기간에는 부여된 토큰 수만큼 테스트 앱을 사용할 수 있습니다.
서비스 앱
서비스 앱은 CLOVA Studio API에 접근할 수 있으며, 실제 사용자가 이용할 수 있도록 제공되는 앱입니다. 서비스 앱 심사 발급 과정을 거친 후 승인이 되면 키를 발급하며, 심사 내용과 다른 목적으로 서비스 앱을 사용하면 사전 공유없이 앱 제공을 차단합니다.