CLU(Conversational Language Understanding) 미세 조정 작업은 사용자 의도를 식별하고 사용자 입력(발화)에서 키 정보(엔터티)를 추출하도록 언어 모델을 사용자 지정하는 작업 영역 프로젝트입니다. 이 작업 영역에서는 애플리케이션과 관련된 의도 및 엔터티를 정의하고, 이에 따라 샘플 사용자 발화에 레이블을 지정하고, 레이블이 지정된 데이터를 사용하여 모델을 미세 조정합니다. 이 프로세스는 대화형 애플리케이션의 특정 요구 사항과 뉘앙스를 더 잘 이해할 수 있도록 모델을 조정합니다. 이 가이드에서는 Microsoft Foundry에서 미세 조정 작업 영역을 구성하거나 REST API를 사용하는 방법을 안내합니다.
비고
- 자체적으로 사용하든 Language Studio를 통해 사용하든 간에 Foundry 도구 또는 다중 서비스 리소스에 Azure Language가 이미 있는 경우 Foundry 포털 내에서 이러한 기존 언어 리소스를 계속 사용할 수 있습니다. 자세한 내용은 Foundry 포털에서 Foundry 도구를 사용하는 방법을 참조하세요.
- Foundry에서 미세 조정 작업은 CLU 모델을 사용자 지정할 때 작업 영역 역할을 합니다. 이전에는 미세 조정 작업을 CLU 프로젝트라고 했습니다. 이전 CLU 설명서에서 두 용어를 서로 교환하여 사용할 수 있습니다.
- Foundry에서 Foundry 리소스를 사용하는 것이 좋습니다. 그러나 언어 리소스를 사용하여 이러한 지침을 따를 수도 있습니다.
Prerequisites
-
Azure 구독. GitHub 계정이 없는 경우 무료로 만들 수 있습니다.
-
필수 권한입니다. 계정 및 프로젝트를 설정하는 사람이 구독 수준에서 Azure AI 계정 소유자 역할로 할당되었는지 확인합니다. 또는 구독 범위에서 기여자 또는 Cognitive Services 기여자 역할을 갖는 것도 이 요구 사항을 충족합니다. 자세한 내용은 RBAC(역할 기반 액세스 제어)를 참조하세요.
-
포운드리 리소스입니다. 자세한 내용은 Foundry 리소스 구성을참조하세요. 또는 언어 리소스를 사용할 수 있습니다.
-
Foundry 내에서 생성된 Foundry 프로젝트입니다. 자세한 내용은 Foundry 프로젝트 만들기를참조하세요.
CLU 모델 미세 조정
CLU 미세 조정 모델을 만들려면 먼저 환경을 구성한 다음 CLU 모델을 사용자 지정하기 위한 작업 영역 역할을 하는 미세 조정 프로젝트를 만듭니다.
Foundry로 이동합니다.
아직 로그인하지 않은 경우 포털에서 Azure 자격 증명으로 로그인하라는 메시지를 표시합니다.
로그인하면 Foundry 내에서 기존 프로젝트를 만들거나 액세스할 수 있습니다.
해당 작업에 대한 프로젝트가 아직 없다면 해당 프로젝트를 선택합니다.
왼쪽 탐색 패널에서 미세 조정을 선택합니다.
주 창에서 AI 서비스 미세 조정 탭을 선택한 다음 + 미세 조정 단추를 선택합니다.
서비스 만들기 미세 조정 창에서 대화형 언어 이해 탭을 선택한 다음, 다음을 선택합니다.
CLU 만들기 미세 조정 작업 창에서 이름 및 언어 필드를 완료합니다. 무료 표준 학습 모드를 사용하여 모델을 미세 조정하려는 경우 언어 필드에 대해 영어를 선택합니다.
만들기 단추를 선택합니다.
만들기 작업이 완료되는 데 몇 분 정도 걸릴 수 있습니다.
비고
-
표준 학습을 사용하면 학습 시간이 빨라지고 반복이 빨라집니다. 그러나 영어로만 사용할 수 있습니다.
-
고급 교육은 더 긴 학습 기간을 포함하며 영어, 다른 언어 및 다국어 프로젝트에 지원됩니다.
- 자세한 내용은 학습 모드를 참조하세요.
작업 만들기가 완료되면 Foundry 도구 미세 조정 창에서 작업을 선택하여 미세 조정 시작 페이지에 도착합니다.
PATCH 다음 URL, 헤더 및 JSON 본문을 사용하여 요청을 제출하여 새 프로젝트를 만듭니다.
요청 주소 (URL)
API 요청을 만들 때 다음 URL을 사용합니다. 자리 표시자 값을 사용자 고유의 값으로 바꿉니다.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
API 요청을 인증하기 위한 엔드포인트입니다. |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
프로젝트의 이름입니다. 이 값은 대/소문자를 구분합니다. |
myProject |
{API-VERSION} |
호출하는 API의 버전입니다. |
2023-04-01 |
다음 헤더를 사용하여 요청을 인증합니다.
| Key |
Value |
Ocp-Apim-Subscription-Key |
리소스의 키입니다. API 요청을 인증하는 데 사용됩니다. |
Content-Type |
application/merge-patch+json |
Body
다음 샘플 JSON을 본문으로 사용합니다.
{
"projectName": "{PROJECT-NAME}",
"language": "{LANGUAGE-CODE}",
"projectKind": "Conversation",
"description": "Project description",
"multilingual": true
}
| Key |
Placeholder |
Value |
Example |
projectName |
{PROJECT-NAME} |
프로젝트의 이름입니다. 이 값은 대/소문자를 구분합니다. |
EmailApp |
language |
{LANGUAGE-CODE} |
프로젝트에 사용되는 발화의 언어 코드를 지정하는 문자열입니다. 프로젝트가 다국어 프로젝트인 경우 대부분의 발화의 언어 코드를 선택합니다. |
en-us |
multilingual |
true |
데이터 세트에서 여러 언어로 된 문서를 포함할 수 있도록 하는 부울 값입니다. 모델을 배포할 때 지원되는 모든 언어로 모델을 쿼리할 수 있습니다(반드시 학습 문서에 포함되지는 않음). 다국어 지원에 대한 자세한 내용은 언어 지원을 참조하세요. |
true |
그거에요! 미세 조정 작업 프로젝트를 시작할 수 있습니다. 자세한 내용은 다음 단계를 참조하세요.
프로젝트 세부 정보 보기 및 관리
프로젝트에 대한 최신 정보를 조회하고, 필요한 변경을 수행하며, Foundry 또는 REST API 엔드포인트를 통해 프로젝트 관리 작업을 효율적으로 감독할 수 있습니다.
Foundry 프로젝트 개요 페이지에는 이름, 구독, 리소스 그룹 및 연결된 리소스를 포함하여 미세 조정 작업 프로젝트에 대한 정보가 표시됩니다. 개요 페이지에서 Azure Portal에서 Azure Portal에서 관리를 선택하여 프로젝트의 리소스에 액세스할 수도 있습니다.
프로젝트 홈페이지의 프로젝트 세부 정보 섹션에 프로젝트에 대한 정보가 있습니다.
프로젝트 설정을 보려면 왼쪽 탐색 창 아래쪽에서 관리 센터를 선택한 다음, 다음 탭 중 하나를 선택합니다.
- 프로젝트 세부 정보를 보기 위한 개요입니다.
-
사용자 및 역할을 관리합니다.
-
모델 + 엔드포인트를 사용하여 모델 및 서비스의 배포를 관리합니다.
- 프로젝트의 '연결된 리소스'를 관리합니다.
REST API를 통해 모든 프로젝트 세부 정보에 액세스, 보기 및 관리할 수 있습니다.
프로젝트 세부 정보를 가져오려면 다음 URL 및 헤더를 사용하여 요청을 제출 GET 합니다. 자리 표시자 값을 사용자 고유의 값으로 바꿉니다.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
API 요청을 인증하기 위한 엔드포인트입니다. |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
프로젝트의 이름입니다. 이 값은 대/소문자를 구분합니다. |
myProject |
{API-VERSION} |
호출하는 API 의 버전 입니다. |
2023-04-01 |
다음 헤더를 사용하여 요청을 인증합니다.
| Key |
Value |
Ocp-Apim-Subscription-Key |
리소스의 키입니다. API 요청을 인증하는 데 사용됩니다. |
응답 본문
요청을 보내면 다음과 같은 응답이 표시됩니다.
{
"createdDateTime": "2022-04-18T13:53:03Z",
"lastModifiedDateTime": "2022-04-18T13:53:03Z",
"lastTrainedDateTime": "2022-04-18T14:14:28Z",
"lastDeployedDateTime": "2022-04-18T14:49:01Z",
"projectKind": "Conversation",
"projectName": "{PROJECT-NAME}",
"multilingual": true,
"description": "This is a sample conversation project.",
"language": "{LANGUAGE-CODE}"
}
API 요청을 보낸 후 성공을 나타내는 응답을 받고 200 프로젝트 세부 정보가 포함된 JSON 응답 본문을 포함합니다.
기존 Foundry 프로젝트 가져오기
구성 파일을 가져오면 기존 설정을 플랫폼으로 직접 가져와 미리 정의된 기본 설정에 따라 서비스를 쉽게 설정하고 사용자 지정할 수 있습니다.
REST API를 사용하여 CLU config.json 파일을 가져올 수 있습니다.
POST 다음 URL, 헤더 및 JSON 본문을 사용하여 요청을 제출하여 프로젝트를 가져옵니다.
요청 주소 (URL)
API 요청을 만들 때 다음 URL을 사용합니다. 자리 표시자 값을 사용자 고유의 값으로 바꿉니다.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:import?api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
API 요청을 인증하기 위한 엔드포인트입니다. |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
프로젝트의 이름입니다. 이 값은 대/소문자를 구분하며 가져오는 JSON 파일의 프로젝트 이름과 일치해야 합니다. |
EmailAppDemo |
{API-VERSION} |
호출하는 API 의 버전 입니다. |
2023-04-01 |
다음 헤더를 사용하여 요청을 인증합니다.
| Key |
Value |
Ocp-Apim-Subscription-Key |
리소스의 키입니다. API 요청을 인증하는 데 사용됩니다. |
Body
보내는 JSON 본문은 다음 예제와 유사합니다. JSON 개체에 대한 자세한 내용은 참조 설명서를 참조하세요.
{
"projectFileVersion": "{API-VERSION}",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectKind": "Conversation",
"settings": {
"confidenceThreshold": 0.7
},
"projectName": "{PROJECT-NAME}",
"multilingual": true,
"description": "Trying out CLU",
"language": "{LANGUAGE-CODE}"
},
"assets": {
"projectKind": "Conversation",
"intents": [
{
"category": "intent1"
},
{
"category": "intent2"
}
],
"entities": [
{
"category": "entity1"
}
],
"utterances": [
{
"text": "text1",
"dataset": "{DATASET}",
"intent": "intent1",
"entities": [
{
"category": "entity1",
"offset": 5,
"length": 5
}
]
},
{
"text": "text2",
"language": "{LANGUAGE-CODE}",
"dataset": "{DATASET}",
"intent": "intent2",
"entities": []
}
]
}
}
| Key |
Placeholder |
Value |
Example |
{API-VERSION} |
호출하는 API 의 버전 입니다. |
2023-04-01 |
|
projectName |
{PROJECT-NAME} |
프로젝트의 이름입니다. 이 값은 대/소문자를 구분합니다. |
EmailAppDemo |
language |
{LANGUAGE-CODE} |
프로젝트에 사용되는 발화의 언어 코드를 지정하는 문자열입니다. 프로젝트가 다국어 프로젝트인 경우 대부분의 발화의 언어 코드를 선택합니다. |
en-us |
multilingual |
true |
데이터 세트에서 여러 언어로 된 문서를 포함할 수 있도록 하는 부울 값입니다. 모델이 배포되면 학습 문서에 포함되지 않은 언어를 포함하여 지원되는 언어로 모델을 쿼리할 수 있습니다. |
true |
dataset |
{DATASET} |
테스트 집합과 학습 집합 간에 데이터를 분할하는 방법에 대한 자세한 내용은 Foundry에서 발화 레이블 지정을 참조하세요. 이 필드에 사용할 수 있는 값은 Train 및 Test입니다. |
Train |
요청이 성공하면 API 응답에는 가져오기 작업의 상태를 확인하는 데 사용할 수 있는 URL이 포함된 헤더가 포함 operation-location 됩니다. 헤더는 다음 예제와 같이 형식이 지정됩니다.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
미세 조정 프로젝트 내보내기
구성 파일을 내보내면 프로젝트 설정 및 구조의 현재 상태를 저장하여 필요에 따라 프로젝트를 쉽게 백업하거나 전송할 수 있습니다.
Microsoft Foundry 미세 조정 작업 프로젝트를 config.json 파일로 다운로드할 수 있습니다.
프로젝트 홈페이지로 이동합니다.
페이지 위쪽의 오른쪽 페이지 리본 영역에서 프로젝트를 선택합니다.
구성 파일 다운로드를 선택합니다.
CLU 프로젝트를 config.json 파일로 내보낼 수 있습니다.
POST 다음 URL, 헤더 및 JSON 본문을 사용하여 프로젝트를 내보내는 요청을 만듭니다.
요청 주소 (URL)
API 요청을 만들 때 다음 URL을 사용합니다. 자리 표시자 값을 사용자 고유의 값으로 바꿉니다.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:export?stringIndexType=Utf16CodeUnit&api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
API 요청을 인증하기 위한 엔드포인트입니다. |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
프로젝트의 이름입니다. 이 값은 대/소문자를 구분합니다. |
EmailApp |
{API-VERSION} |
호출하는 API 의 버전 입니다. |
2023-04-01 |
다음 헤더를 사용하여 요청을 인증합니다.
| Key |
Value |
Ocp-Apim-Subscription-Key |
리소스의 키입니다. API 요청을 인증하는 데 사용됩니다. |
API 요청을 보내면 성공을 나타내는 응답을 받게 됩니다 202 . 응답 헤더에서 operation-location 값을 추출합니다. 값은 다음 예제와 같이 형식이 지정됩니다.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
JOB-ID 는 이 작업이 비동기이므로 요청을 식별하는 데 사용됩니다. 이 URL을 사용하여 동일한 인증 방법을 사용하여 내보낸 프로젝트 JSON을 가져옵니다.
프로젝트 삭제
프로젝트를 삭제하면 프로젝트와 연결된 모든 데이터가 시스템에서 영구적으로 제거됩니다.
프로젝트가 더 이상 필요하지 않은 경우 Foundry에서 삭제할 수 있습니다.
Foundry 홈페이지로 이동합니다. 이 단계를 이미 완료하고 세션이 활성 상태인 경우가 아니면 로그인하여 인증 프로세스를 시작합니다.
Foundry를 사용하여 건물 유지에서 삭제할 프로젝트를 선택합니다.
관리 센터를 선택합니다.
프로젝트 삭제를 선택합니다.
모든 프로젝트와 함께 허브를 삭제하려면 다음을 수행합니다.
개요 탭으로 허브 섹션에서 이동합니다.
오른쪽에서 허브 삭제를 선택합니다.
링크를 클릭하면 허브를 삭제할 수 있는 Azure Portal이 열립니다.
프로젝트가 더 이상 필요하지 않은 경우 REST API를 사용하여 삭제할 수 있습니다. 계속하려면 REST API에 액세스하고 프로젝트 삭제에 대해 문서화된 단계에 따라 이 작업을 완료합니다.
DELETE 다음 URL, 헤더 및 JSON 본문을 사용하여 대화형 언어 이해 프로젝트를 삭제하여 요청을 만듭니다.
요청 주소 (URL)
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
API 요청을 인증하기 위한 엔드포인트입니다. |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
프로젝트의 이름입니다. 이 값은 대/소문자를 구분합니다. |
myProject |
{API-VERSION} |
호출하는 API 의 버전 입니다. |
2023-04-01 |
다음 헤더를 사용하여 요청을 인증합니다.
| Key |
Value |
Ocp-Apim-Subscription-Key |
리소스의 키입니다. API 요청을 인증하는 데 사용됩니다. |
API 요청을 보낸 후 성공을 나타내는 응답을 받게 202 됩니다. 즉, 프로젝트가 삭제되었음을 의미합니다.
다음 단계
미세 조정 작업 영역을 만든 후 의도 및 엔터티를 정의하고 스키마에 추가하여 미세 조정 작업을 시작합니다.