CLOVA Studio 개념
  • PDF

CLOVA Studio 개념

  • PDF

Classic/VPC 환경에서 이용 가능합니다.

CLOVA Studio를 이용하는 전체 시나리오를 학습하기에 앞서 CLOVA Studio에 대한 몇 가지 개념을 설명합니다. 설명하려는 주요 개념은 다음과 같습니다.

참고

CLOVA Studio 개념의 원활한 이해를 위해 CLOVA Studio 용어를 참고해 주십시오.

프롬프트와 결괏값

프롬프트는 CLOVA Studio에서 작업을 수행하기 위해 입력해야 할 내용을 의미합니다. CLOVA Studio에서 입력한 프롬프트를 기반으로 HyperCLOVA 언어 모델이 결괏값을 생성합니다. HyperCLOVA 언어 모델은 확률을 기반으로 작동하기 때문에 같은 프롬프트를 입력하더라도 다른 결괏값이 생성될 수 있습니다.
<예시> 프롬프트에 '원숭이 엉덩이는 빨개'를 입력한 경우, 높은 확률로 '빨간 건 사과, 사과는 맛있어'라는 결괏값이 생성됩니다.

토큰

토큰은 자연어 처리를 위해 하나의 단어를 세분화한 단어 조각을 의미합니다. 대개 한국어 단어는 형태소 단위의 1~2 토큰으로 나뉩니다. HyperCLOVA 언어 모델이 학습한 내용에 맞춰 토큰을 나누기 때문에 동일한 표현이 항상 같은 토큰으로 이루어져 있지는 않습니다.
<예시> '맛있어'라는 표현은 각각 '맛'과 있어'라는 두 개의 토큰으로 나뉠 수 있습니다.

확률 기반 언어 모델

확률 기반 언어 모델은 확률을 기반으로 다음에 나올 단어를 예측할 수 있는 언어 모델을 의미합니다. CLOVA Studio에서 사용하는 HyperCLOVA 언어 모델은 확률 기반 언어 모델로, 확률을 기반으로 결괏값을 생성합니다.
<예시> 프롬프트에 자연을 묘사해달라고 입력한 경우, 결괏값의 첫 토큰이 '저'로 선택되었다면 뒤에 올 단어로 '나무', '꽃', '산'을 예측할 수 있습니다. 이때, 각 단어마다 확률이 존재하며 HyperCLOVA 언어 모델은 이 중에서 가장 확률이 높은 '나무'와 '에'를 선택하여 '저 나무에'라는 결과를 생성하는 원리로 작동합니다.
clovastudio-info_probability_ko

파라미터

파라미터는 문구를 생성하기 위해 플레이그라운드에서 설정하는 값으로, 플레이그라운드의 왼쪽 사이드바에서 설정할 수 있습니다. 파라미터 항목은 다음과 같습니다.

Engine

Engine(이하 엔진)은 CLOVA Studio에서 문구를 생성할 때 사용하는 언어 모델입니다. CLOVA Studio는 한국어 엔진인 LK-B, LK-C, LK-D와 영어 엔진인 LE-C를 제공하며, 이 중 하나를 선택할 수 있습니다. 모델의 크기가 커질수록 성능이 좋아지지만 속도가 느려질 수 있습니다.

  • 한국어 엔진 모델 크기
    LK-B < LK-C < LK-D
  • 한국어 엔진 모델 속도
    LK-D < LK-C < LK-B

Top K

Top K는 자연어 처리 모델이 예측한 토큰의 선택 확률 분포에서 확률 값이 가장 높은 K개 중에서 하나를 선택할 때 사용하는 기준 값입니다. Top K는 특수한 경우가 아니라면 0으로 설정하는 것을 권장합니다.
<예시> Top K=5인 경우, 가장 확률 값이 높은 5개의 토큰 중에서 하나의 토큰이 선택됩니다. 이때, 가장 확률 값이 높은 토큰이 선택될 가능성이 크지만 경우에 따라 확률 값이 더 낮은 토큰이 선택될 수도 있습니다.
clovastudio-info_topk_ko

Top P

Top P는 선택 확률 값이 높은 토큰을 순서대로 나열한 후 설정한 누적 확률 값에 포함되지 않는 토큰을 제거할 때 사용하는 기준값입니다. Top P는 특수한 경우가 아니라면 0.8~1로 설정하는 것을 권장합니다.
<예시> Top P=0.8인 경우, 누적 확률 값이 상위 80%에 포함된 토큰만 후보로 선택합니다.
clovastudio-info_topp_ko

Maximum tokens

Maximum tokens는 결괏값을 생성할 때 사용할 최대 토큰 수입니다. 토큰 수를 높게 설정할수록 긴 결괏값을 출력합니다. 프롬프트와 결괏값을 포함하여 최대 2048 토큰까지만 허용됩니다.

Temperature

Temperature는 확률 분포에 가중치 변화를 주어 문장의 다양성을 조절하는 값입니다. Temperature를 낮게 설정하면 후보에 포함된 토큰의 순위는 바뀌지 않지만 확률이 높았던 토큰은 더욱 확률 값이 높아지고 낮았던 토큰은 확률 값이 더욱 낮아집니다. 가장 높은 순위의 토큰이 선택될 가능성이 크기 때문에 정형적인 결괏값을 생성합니다. 반면에 Temperature를 높게 설정하면 각 토큰의 확률 값의 차이가 좁혀져 다양한 문장이 만들어질 수 있지만, 규칙에서 조금 벗어나는 문장을 생성하기도 하고 문장의 품질이 다소 떨어질 수도 있습니다. 따라서, Top P 값을 고정한 상태에서 Temperature를 필요에 따라 조절하는 것을 권장합니다.

  • Temperature 값이 낮은 경우
    clovastudio-info_temperaturelow_ko
  • Temperature 값이 높은 경우
    clovastudio-info_temperaturehigh_ko

Repetition penalty

Repetition penalty는 CLOVA Studio에서 문구를 생성할 때 반복적인 결괏값을 생성하지 않도록 반복되는 토큰에는 감점 요소를 부여하는 값입니다. Repetition penalty가 높을수록 같은 결괏값을 반복적으로 생성할 확률이 감소합니다.

Stop sequences

Stop sequences는 결과 생성을 중단할 때 쓸 문자열입니다. Stop sequences는 여러 개 등록할 수 있으며, CLOVA Studio가 결과를 생성할 때 Stop sequences 중 하나가 결과에 포함되면 그 이전까지의 내용만 출력됩니다.
<예시> 프롬프트를 '원숭이 엉덩이는 빨개'로 입력하고 Stop sequences에 '사과'라는 문자열을 추가하면 결괏값은 '빨간 건'까지만 출력되며, '사과'부터는 출력되지 않습니다.

Inject start text

Inject start text는 CLOVA Studio가 출력하는 결괏값 앞에 항상 출력될 텍스트입니다.
<예시> 사용자와 CLOVA 간의 대화를 나누는 문구 생성 시 프롬프트에 '사용자: 오늘 날씨 좀 알려줘'를 입력하고 Inject start text에 'CLOVA:'를 설정하여 화자를 구분할 수 있습니다.

Inject restart text

Inject restart text는 CLOVA Studio가 출력하는 결괏값 뒤에 항상 출력될 텍스트입니다.
<예시> Inject restart text에 '사용자:'를 설정하면 처음에 입력한 프롬프트에 대한 결괏값과 함께 '사용자:'가 출력되어 다음 프롬프트 입력 시 '사용자:'를 입력하지 않아도 됩니다.

Show probabilities

Show probabilities는 생성된 각 토큰이 선택될 확률을 표시하도록 설정하는 옵션입니다. 다른 후보 값은 무엇이 있는지 확인할 수 있습니다.
clovastudio-info_probabilities_ko

Generation type

Generation type은 결괏값 생성 방식입니다. Generation type의 종류와 설명은 다음과 같습니다.

Rolling

clovastudio-info_rolling

Rolling은 프롬프트를 입력한 후 결괏값을 생성한 뒤에 다시 생성을 시도하면 이전까지 생성했던 결괏값을 다시 프롬프트의 일부로 인식하고 생성하는 방식입니다. 최초로 입력했던 프롬프트 이후에 생성한 결괏값은 사용자가 입력한 것이 아니기 때문에 생성을 반복할수록 최초 프롬프트를 입력할 때 의도한 방향에서 벗어날 수 있습니다.

One-time

clovastudio-info_onetime

One-time은 프롬프트를 입력한 후 생성한 결괏값을 에디터 영역에 바로 출력하지 않고 미리 보기 형태로 표시하여 결괏값을 확인한 후 에디터 영역에 적용할 수 있는 방식입니다.

Multiple

clovastudio-info_multiple

Multiple은 프롬프트를 입력한 후 결괏값을 생성할 때, 지정한 숫자만큼 결괏값을 생성한 후 적용할 결괏값을 선택할 수 있는 방식입니다.

Examples

clovastudio-info_examples

Examples는 프롬프트를 입력한 후 결괏값을 생성할 때 원하는 답변에 가까운 내용을 추가적으로 입력해서 의도한 방향에 가까운 결괏값을 얻을 수 있는 방식입니다.

튜닝

튜닝은 사전 학습된 모델 파라미터 일부를 사용자 목적에 맞게 변형하고, 사용자 데이터에 대해 모델 일부를 재학습하는 방식입니다. 사용자는 일정량의 학습/검증 데이터셋을 투입하여 튜닝을 통해 원하는 작업 종류 및 데이터에 최적화된 모델을 학습하고 테스트할 수 있습니다. 이렇게 업데이트된 모델을 API화하여 새로운 데이터 및 다양한 목적에 맞게 활용할 수 있습니다.

작업

작업은 튜닝을 수행하는 기준 단위입니다. 사용자는 하나의 작업당 하나의 작업 종류, 언어, 모델 엔진을 각각 선택하게 됩니다. 이후 사용자 데이터셋을 통해 학습을 진행하여 작업 종류, 언어, 모델 엔진, 데이터셋에 가장 최적화된 모델을 생성할 수 있습니다.

테스트 앱

테스트 앱은 테스트 혹은 서비스의 가능성을 체크하는 용도로 임시 API를 제공하는 앱입니다. 사용 제한(기간, 호출 양)이 있으며, 테스트 앱을 실제 서비스에 적용하면 서비스 품질에 문제가 발생할 수 있으므로 테스트 앱을 실제 서비스에 사용할 경우 차단됩니다. 베타 기간에는 부여된 토큰 수만큼 테스트 앱을 사용할 수 있습니다.

서비스 앱

서비스 앱은 CLOVA Studio API에 접근할 수 있으며, 실제 사용자가 이용할 수 있도록 제공되는 앱입니다. 서비스 앱 심사 발급 과정을 거친 후 승인이 되면 키를 발급하며, 심사 내용과 다른 목적으로 서비스 앱을 사용하면 사전 공유없이 앱 제공을 차단합니다.


이 문서가 도움이 되었습니까?