GETTING STARTED
Kore.ai XO Platform
Virtual Assistants Overview
Natural Language Processing (NLP)
Concepts and Terminology
Quick Start Guide
Accessing the Platform
Navigating the Kore.ai XO Platform
Building a Virtual Assistant
Help & Learning Resources
Release Notes
Current Version
Recent Updates
Previous Versions
Deprecations
Request a Feature
CONCEPTS
Design
Storyboard
Overview
FAQs
Conversation Designer
Overview
Dialog Tasks
Mock Scenes
Dialog Tasks
Overview
Navigate Dialog Tasks
Build Dialog Tasks
Node Types
Overview
Intent Node
Dialog Node
Dynamic Intent Node
GenAI Node
GenAI Node (v2, BETA)
GenAI Prompt
Entity Node
Form Node
Confirmation Node
Message Nodes
Logic Node
Bot Action Node
Service Node
Webhook Node
Script Node
Process Node
Agent Transfer
Node Connections
Node Connections Setup
Sub-Intent Scoping
Entity Types
Entity Rules
User Prompts or Messages
Voice Call Properties
Knowledge AI
Introduction
Knowledge Graph
Introduction
Terminology
Build a Knowledge Graph
Manage FAQs
Knowledge Extraction
Import or Export Knowledge Graph
Prepare Data for Import
Importing Knowledge Graph
Exporting Knowledge Graph
Auto-Generate Knowledge Graph
Knowledge Graph Analysis
Answer from Documents
Alert Tasks
Small Talk
Digital Skills
Overview
Digital Forms
Digital Views
Introduction
Widgets
Panels
Session and Context Variables
Context Object
Intent Discovery
Train
NLP Optimization
ML Engine
Overview
Model Validation
FM Engine
KG Engine
Traits Engine
Ranking and Resolver
Training Validations
NLP Configurations
NLP Guidelines
LLM and Generative AI
Introduction
LLM Integration
Kore.ai XO GPT Module
Prompts & Requests Library
Co-Pilot Features
Dynamic Conversations Features
Guardrails
Intelligence
Introduction
Event Handlers
Contextual Memory
Contextual Intents
Interruption Management
Multi-intent Detection
Amending Entities
Default Conversations
Conversation Driven Dialog Builder
Sentiment Management
Tone Analysis
Default Standard Responses
Ignore Words & Field Memory
Test & Debug
Overview
Talk to Bot
Utterance Testing
Batch Testing
Conversation Testing
Conversation Testing Overview
Create a Test Suite
Test Editor
Test Case Assertion
Test Case Execution Summary
Glossary
Health and Monitoring
NLP Health
Flow Health
Integrations
Actions
Actions Overview
Asana
Configure
Templates
Azure OpenAI
Configure
Templates
BambooHR
Configure
Templates
Bitly
Configure
Templates
Confluence
Configure
Templates
DHL
Configure
Templates
Freshdesk
Configure
Templates
Freshservice
Configure
Templates
Google Maps
Configure
Templates
Here
Configure
Templates
HubSpot
Configure
Templates
JIRA
Configure
Templates
Microsoft Graph
Configure
Templates
Open AI
Configure
Templates
Salesforce
Configure
Templates
ServiceNow
Configure
Templates
Stripe
Configure
Templates
Shopify
Configure
Templates
Twilio
Configure
Templates
Zendesk
Configure
Templates
Agents
Agent Transfer Overview
Custom (BotKit)
Drift
Genesys
Intercom
NiceInContact
NiceInContact(User Hub)
Salesforce
ServiceNow
Configure Tokyo and Lower versions
Configure Utah and Higher versions
Unblu
External NLU Adapters
Overview
Dialogflow Engine
Test and Debug
Deploy
Channels
Publishing
Versioning
Analyze
Introduction
Dashboard Filters
Overview Dashboard
Conversations Dashboard
Users Dashboard
Performance Dashboard
Custom Dashboards
Introduction
Custom Meta Tags
Create Custom Dashboard
Create Custom Dashboard Filters
LLM and Generative AI Logs
NLP Insights
Task Execution Logs
Conversations History
Conversation Flows
Conversation Insights
Feedback Analytics
Usage Metrics
Containment Metrics
Universal Bots
Introduction
Universal Bot Definition
Universal Bot Creation
Training a Universal Bot
Universal Bot Customizations
Enabling Languages
Store
Manage Assistant
Team Collaboration
Plan & Usage
Overview
Usage Plans
Templates
Support Plans
Invoices
Authorization
Conversation Sessions
Multilingual Virtual Assistants
Get Started
Supported Components & Features
Manage Languages
Manage Translation Services
Multiingual Virtual Assistant Behavior
Feedback Survey
Masking PII Details
Variables
Collections
IVR Settings
General Settings
Assistant Management
Manage Namespace
Data
Overview
Guidelines
Data Table
Table Views
App Definitions
Data as Service
HOW TOs
Build a Travel Planning Assistant
Travel Assistant Overview
Create a Travel Virtual Assistant
Design Conversation Skills
Create an ‘Update Booking’ Task
Create a Change Flight Task
Build a Knowledge Graph
Schedule a Smart Alert
Design Digital Skills
Configure Digital Forms
Configure Digital Views
Train the Assistant
Use Traits
Use Patterns
Manage Context Switching
Deploy the Assistant
Use Bot Functions
Use Content Variables
Use Global Variables
Use Web SDK
Build a Banking Assistant
Design Conversation Skills
Create a Sample Banking Assistant
Create a Transfer Funds Task
Create a Update Balance Task
Create a Knowledge Graph
Set Up a Smart Alert
Design Digital Skills
Configure Digital Forms
Configure Digital Views
Add Data to Data Tables
Update Data in Data Tables
Add Data from Digital Forms
Train the Assistant
Composite Entities
Use Traits
Use Patterns for Intents & Entities
Manage Context Switching
Deploy the Assistant
Configure an Agent Transfer
Use Assistant Functions
Use Content Variables
Use Global Variables
Intent Scoping using Group Node
Analyze the Assistant
Create a Custom Dashboard
Use Custom Meta Tags in Filters
APIs & SDKs
API Reference
API Introduction
Rate Limits
API List
koreUtil Libraries
SDK Reference
SDK Introduction
Web SDK
How the Web SDK Works
SDK Security
SDK Registration
Web Socket Connect and RTM
Tutorials
Widget SDK Tutorial
Web SDK Tutorial
BotKit SDK
BotKit SDK Deployment Guide
Installing the BotKit SDK
Using the BotKit SDK
SDK Events
SDK Functions
Installing Botkit in AWS
Tutorials
BotKit - Blue Prism
BotKit - Flight Search Sample VA
BotKit - Agent Transfer

ADMINISTRATION
Intro to Bots Admin Console
Administration Dashboard
User Management
Managing Your Users
Managing Your Groups
Role Management
Manage Data Tables and Views
Bot Management
Enrollment
Inviting Users
Sending Bulk Invites to Enroll Users
Importing Users and User Data
Synchronizing Users from Active Directory
Security & Compliance
Using Single Sign-On
Two-Factor Authentication for Platform Access
Security Settings
Cloud Connector
Analytics for Bots Admin
Billing
  1. Docs
  2. Virtual Assistants
  3. Natural Language
  4. 기계 학습

기계 학습

개발자는 기계 학습 모델을 학습시키려면 봇이 식별해야 하는 각 의도(작업)의 샘플 발화를 입력해야 합니다. 플랫폼 ML 엔진은 사용자 발언을 봇 의도 중 하나에 매핑하려고 시도하는 모델을 구축할 것입니다. Kore.ai의 봇 플랫폼은 완전한 비지도 기계 학습을 통해 사람의 개입 없이 챗봇의 언어 기능을 지속적으로 확장할 수 있습니다. 챗봇이 좋든 나쁘든 어떠한 입력이건 학습하는 비지도 모델과 달리, Kore.ai 봇 플랫폼은 챗봇이 의도를 성공적으로 인식하고 인간의 작업 완료 요청 엔티티를 추출할 때만 챗봇이 자동으로 어휘를 늘릴 수 있도록 합니다. 그러나 봇 성능을 모니터링하고 필요에 따라 수동으로 조정하도록 지도 학습을 하는 것이 좋습니다. 봇 플랫폼을 통해, 개발자는 인터렉션 로그를 평가하고 실패한 시나리오의 NL 설정을 쉽게 변경하며 학습한 내용을 토대로 더 나은 대화를 위해 봇을 재교육할 수 있습니다.

다중 의도 모델

다른 목적을 가진 “유사한 의도”를 학습시키는 일은 그 의도에 대한 학습이 다른 의도에 대한 학습에 잡음을 일으키거나 서로 충돌할 수 있기 때문에 일반적으로 어려운 일입니다. 이는 의도가 문맥상 다른 의미나 목적을 갖는 경우에 더욱 두드러지게 됩니다. 이런 경우를 생각해보세요. 사용자가 주문 작업을 할 때, 환불 정책 또는 배송 옵션과 관련된 모든 질의에는 설정된 주문 컨텍스트로 답변해야 합니다. 그러나 포괄적으로 반품 FAQ의 질의가 트리거됩니다.

고급 NLP 구성에서 다중 의도 모델을 활성화하면(방법은 여기 참조) 기본 의도에 대해서만 전용 ML 모델을 갖게 하고 각 대화의 ML 모델을 관련 하위 의도와 분리하여 하위 의도의 의도 탐지가 우선적으로 처리되도록 할 수 있습니다. 위의 예를 계속 가져와보면, 다중 의도 모델을 통해 별도의 컨텍스트 기반 FAQ를 정의하고 사용자에게 적절한 응답을 하도록 할 수 있습니다.

봇의 모든 기본 의도는 봇 수준 의도 모델의 일부가 됩니다. 각 대화 작업에는 추가된 모든 하위 의도로 구성된 자체 ML 모델을 가질 것입니다. 임계값 및 구성은 각 모델에 대해 개별적으로 구성될 수 있습니다. 예를 들어, 봇 수준 의도 모델은 ‘표준’ 네트워크 유형을 사용할 수 있고 특정 대화의 의도 모델은 ‘LSTM’ 네트워크 유형을 사용할 수 있습니다.

기계 학습 발언 추가

  1. 샘플 사용자 발언을 추가하기를 원하는 봇을 엽니다.
  2. 상단 메뉴에서 빌드 탭을 선택합니다.
  3. 왼쪽 메뉴에서, 자연어 -> 학습 옵션을 선택합니다.
  4. 기본적으로, 모든 의도의 항목이 있는 탭이 표시됩니다.
  5. 필터 옵션을 사용하여 표시 항목을 대화, 하위 대화, 하위 의도 또는 조치 작업으로 제한할 수 있습니다.
  6. 동의어를 추가하려는 의도의 발화/+ 발화를 클릭합니다
  7. 사용자 발화 페이지가 열립니다.
  8. 거기에 발화를 입력합니다. 길이가 3,000자를 초과하는 발화는 허용되지 않습니다.

참고: 추가된 발화는 독자적인 것이어야 하지만, 다중 의도 모델의 경우 동일한 발화를 다른 모델에서 사용할 수 있습니다. 학습된 의도의 부정은 플랫폼에서 무시됩니다. 예를 들어, 송금이라는 학습된 발화가 있는 뱅킹 봇을 고려하세요. “송금을 하지 않아도 내 계좌에서 인출이 됩니다”라는 사용자 발화는 “자금 이체” 작업을 트리거하지 않습니다.

개체명 인식

의도와는 별개로, 봇이 사용자 발화에서 엔티티(존재하는 경우)를 인식하도록 학습할 수 있습니다. 예를 들어, 사용자가 의도를 “항공편 예약”으로 인식하는 것과 별도로 “하이데라바드에서 뭄바이까지 항공편 예약”이라고 말하면 항공편의 출발지와 목적지도 인식되어야 합니다. 이는 학습 중 사용자 발화의 엔티티를 표시하는 것으로 가능합니다. 엔티티 값을 선택하고 상응하는 엔티티를 클릭하여 발화에서 엔티티를 표시할 수 있습니다.
또한 플랫폼에서 엔티티를 식별하고 표시하려고 할 것입니다. 이를 수락하거나 취소할 수 있는 옵션이 있습니다. 플랫폼은 다음을 기반으로 엔티티를 식별합니다.

  • 시스템 엔티티;
  • 열거되거나 조회된 항목의 정적 목록;
  • 개체명 인식이 학습된 엔티티(위에서부터).

이렇게 표시된 각 엔티티에 대해 ML 엔진에서 식별한 신뢰도 점수가 표시됩니다. 이 점수는 개체명 인식 모델로 조건부 임의 필드를 선택한 경우에만 사용할 수 있습니다.
또한, 엔티티 플레이스 홀더를 활성화한 경우 플랫폼은 학습 발화의 엔티티 값을 ML 모델 학습의 개체명 플레이스 홀더로 대체합니다. 실제 엔티티 값 사용뿐만 아니라 엔티티 값만 변경하여 여러 개의 발화를 추가하면 ML 학습 모델에 좋지 않은 영향을 미칩니다. 개체명도 의도 탐지 모델에 크게 영향을 미치게 됩니다.

봇 학습시키기

사용자 발화를 추가한 후에는, 발화 및 관련된 사용자 의도를 인식하도록 Kore.ai 인터프리터를 학습시켜야 합니다. 봇에 학습되지 않은 발언이 있는 경우 다음 메시지가 표시됩니다. "ML 모델에 학습되지 않은 발화가 있습니다. 모든 발화로 업데이트하도록 봇을 학습시키세요." 학습을 클릭합니다. 발화 학습의 진행 상황을 표시하는 상태 표시줄이 표시됩니다. 완료되면 발화가 성공적으로 학습됨이라는 메시지가 표시됩니다. 사용자 발화가 기계 학습 데이터베이스에 추가됩니다. ML 엔진을 추가로 설정하고, 사용자 발화에 봇 학습, 즉 봇 어휘에 사용하지 않는 단어가 포함된 경우, 더미 의도를 식별할 수 있으며, 자세한 내용은 여기를 참조하세요. 봇을 학습시키는 방법 알아보기.

자동 – 학습

기본적으로, 기계 학습은 다음과 같은 작업이 있을 때마다 정의된 사용자 발화에 자동으로 학습됩니다.

  • 진행 중인 상태에서 설정된 상태로 변경.
  • 새 작업명
    • 또는 의도명,
    • 개체명 또는 매개 변수명,
    • 엔티티 유형,
    • 봇명으로 업데이트.
  • 게시됨.
  • 봇 관리자에 의해 중단됨.
  • 봇 관리자에 의해 삭제됨.

봇 빌더에서 자동 학습이 진행 중일 때 자동 학습이 완료되기 전에 봇을 테스트하려고 하면, 학습되지 않은 사용자 발화를 식별할 수 없습니다라는 경고 메시지가 표시됩니다. 자동 학습 옵션은 다음과 같이 설정할 수 있습니다.

  1. 설정을 수정하려는 봇을 엽니다.
  2. 상단 메뉴에서 빌드 옵션을 선택합니다.
  3. 왼쪽 탐색 메뉴에서, 자연어 ->고급 설정을 선택합니다.
  4. 요구 사항에 따라 자동 학습 옵션을 활성화 또는 비활성화합니다.

네거티브 패턴

네거티브 패턴을 사용하여 Fundamental meaning 또는 기계 학습 모델을 통해 탐지된 의도를 제거할 수 있습니다. 자세히 알아보려면 여기를 참조하세요.

임곗값 & 설정

학습 및 성능 향상을 위해 세 가지 NLP 엔진(FM, KG, ML)의 임곗값 및 설정을 지정할 수 있습니다. 빌드 > 자연어 >임곗값 및 설정에서 이러한 설정에 액세스할 수 있습니다. 참고: 봇이 다국어인 경우 다른 언어에 다른 임곗값을 설정할 수 있습니다. 설정하지 않으면, 모든 언어에 기본 설정이 적용됩니다. ML 엔진 설정에 대해서는 다음 섹션에 자세하게 설명되어 있습니다.

기계 학습

봇 플랫폼 버전 6.3에서는 기계 학습(ML) 모델을 v3으로 업그레이드했습니다. 많은 개선이 이루어졌으며 개발자가 비즈니스 요구 사항에 맞게 매개 변수를 통해 모델을 미세 조정할 수 있습니다. 개발자는 불용어 사용, 동의어 사용, 임곗값, n-그램과 같은 매개 변수를 변경할 수 있을 뿐만 아니라, 개체명 인식(NER) 모델로의 경우 Deep Neural Network 또는 조건부 임의 필드 기반 알고리즘 중에서 선택할 수 있습니다. 플랫폼 v8.0에서는 ML 의도 모델의 v5 사용 및 하이퍼 매개 변수를 외부화할 수 있게 되었습니다. 이는 고급 NLP 설정을 통해 가능하며 자세한 내용은 여기를 참조하세요. '다중 의도 모델' 옵션이 활성화되면 ML 엔진은 봇에 대한 다음과 같은 다중 의도 모델을 유지하게 됩니다.

  • 기본 대화 의도 및 경고 작업 의도 등 봇의 모든 기본 의도를 포함하는 봇 수준 의도 모델입니다.
  • 대화 의도 모델 – 대화 정의에 추가된 하위 의도 노드, 그룹 노드의 일부로 범위가 지정된 하위 의도, 대화 정의에 추가된 중단 예외 사항 등 모든 기본 대화 의도 및 하위 대화 의도를 위한 모델.

임곗값 및 설정은 각 의도 모델에 개별적으로 설정할 수 있습니다. 여기에는 다음 사항이 포함됩니다.

기계 학습 매개 변수 설정

봇 플랫폼은 봇의 ML 성능과 관련된 다음 매개 변수에 언어별 기본값을 제공합니다. 특정 요구 사항에 맞게 사용자가 지정을 할 수 있습니다. ML 설정에서 참고할 점:

  • 다음은 전체 설정 목록이며 단일 및 다중 의도 모델 모두에 사용할 수 있습니다.
  • 다중 의도 모델이 활성화되면, 모델에 대한 설정 링크를 선택하여 개별 모델을 설정할 수 있습니다.
  • 봇 수준 의도 모델은 하나뿐이지만, 새로 추가 버튼을 사용하여 다중 대화 의도 모델을 추가하고 각각 요구 사항에 따라 설정할 수 있습니다.
  • 고급 ML 설정은 여기서 적용하거나 고급 NLP 설정 섹션에서 적용할 수 있으며 자세한 내용은 여기를 참조하세요.

네트워크 유형

의도 모델을 학습시키는 데 사용할 신경망을 선택할 수 있습니다. 이 설정은 v8.1의 고급 NLP 구성에서 기계 학습으로 이동되었습니다. 다음 유형 중에서 선택할 수 있습니다. 선택에 따라 고급 NLP 설정 섹션에서 추가 설정을 수행할 수 있으며 자세한 내용은 여기를 참조하세요.

  • 표준:
  • MLP-BOW – 단어 주머니(bag-of-words) 모델은 자연어 처리 및 정보 검색에 사용하는 단순화된 표현입니다. 이 모델에서 문법과 어순은 무시되지만 다중성은 유지하는 단어 주머니로 텍스트가 나타납니다.
  • MLP-워드 임베딩(WordEmbeddings) – 워드 임베딩은 어휘의 단어나 구가 실수 벡터에 매핑되는 자연어 처리에서 언어 모델링 및 기능 학습 기술 세트의 집합적 명칭입니다.
  • LSTM(Long Short-Term Memory)은 딥 러닝 분야에서 사용하는 인공 순환 신경망(RNN) 아키텍처입니다. LSTM에는 피드백 연결이 있으므로 어떤 길이의 텍스트든 장기 의존성을 캡쳐할 수 있으며 보다 긴 텍스트에 적합합니다.
  • CNN(convolutional neural networks)은 시각 이미지 분석에 가장 일반적으로 적용되는 딥 러닝의 deep neural networks 클래스입니다. 특정 영역 크기의 어순을 활용하여 다양한 텍스트 분류 작업에서 놀라운 결과를 얻었습니다.
  • 트랜스포머는 학습 파이프라인의 벡터화 단계에서 Universal Sentence 인코더를 사용합니다. 학습을 위한 다층 퍼셉트론 네트워크에 문장 인코더 출력을 공급합니다. 문장 인코더에는 같은 문장의 동의어 및 다양한 사용 패턴을 고려하여 문장 간의 의미 유사도를 이해하는 기능이 내장되어 있습니다. Universal Sentence 인코더는 텍스트를 텍스트 분류, 의미 유사도, 클러스터링, 기타 자연어 작업에 사용할 수 있는 고차원 벡터로 인코딩합니다. 이 모델은 문장, 구 또는 짧은 단락과 같이 단어 단위보다 긴 텍스트를 학습하며 이에 최적화되어 있습니다. 다양한 자연어 이해 작업을 동적인 방식으로 제공할 목적으로 다양한 데이터 소스와 다양한 작업을 학습합니다. 입력은 가변 길이 영어 텍스트, 출력은 512차원 벡터입니다.
  • KAEN (Kore Advanced Embeddings Network) – 문장 임베딩만으로 학습된 모델은 특히 학습 단어가 사전에 있는 단어가 아닌 경우 도메인별 용어를 이해할 수 없습니다. Kore.ai는 문장의 의미를 이해함과 동시에 도메인별 용어에 중요성을 부여할 수 있는 모델을 제공합니다. 이 모델에는 두 가지 병렬 층이 있습니다. 하나는 문장 임베딩에 대한 가중치를 최적화하는 층과 주어진 문장의 단어 중요성을 최적화하는 층입니다. 이 두 층에서 사용되는 활성화 기능은 RReLU(Randomized Leaky Rectified Linear Unit)이며 자세한 내용은 여기를 참조하세요)
ML 임곗값

ML 임곗값은 가능한 일치 또는 확실한 일치가 될 의도의 확률 점수를 선별하기 위한 기준을 정의합니다. 기본값은 0.3으로 설정됩니다. 즉, 0.3을 초과하는 점수를 얻은 의도는 자격을 갖춘 의도로 간주됩니다. 점수가 0.3 미만인 의도는 거부됩니다.

ML 확정 스코어링

다음 분류를 사용하여 80-100% 사이의 값으로 설정할 수 있는 확실한 일치에 대한 임곗값 스코어링을 설정합니다.

  • 확률 스코어링 – 분류 엔진에 의한 확률 스코어링이 0.95("ML 확실한 스코어링"을 100으로 나눈 값을 사용하여 조정 가능한 기본값)를 초과하는 경우, 의도는 확실한 일치/완벽한 일치로 간주됩니다.
  • 퍼지 논리는 주어진 의도의 각 발화를 거쳐 사용자 입력과 발화가 일치하는 정도를 확인하기 위해 사용자 입력과 비교합니다(점수는 일반적으로 0에서 100 사이입니다). 점수가 95%(“ML 확실한 점수”를 사용하여 조정 가능한 기본값)를 초과하는 경우, 의도는 확실한 일치/완벽한 일치로 간주됩니다.
봇 동의어

이 설정은 기본적으로 비활성화되어 있습니다. ML 모델을 구축할 때 의도 동의어를 염두에 두려면 이 옵션을 활성화하세요. 동의어를 활성화하면 ML 모델을 학습시키는 동안 고려해야 할 "동의어 및 개념"에 정의된 동의어를 ML 모델이 사용할 수 있습니다. 중복 발화 준비를 피하는 데 도움이 됩니다. : “I want to transfer funds”. send”, “give”, “move”를 “transfer” 및 “money”의 동의어로 정의하고, “dollars”를 “funds”의 동의어로 정의했다면 “I want to send money” 또는 “I want to give dollars” 등의 학습 발화를 추가할 필요가 없습니다.

개체명 인식 모델

엔티티 탐지에 사용될 개체명 인식 모델 선택. Kore.ai는 다음과 같은 동일한 접근 방법을 따르는 NER을 사용한 학습을 위한 두 가지 엔티티 인식 모델을 제공합니다

  • 조건부 임의 필드: 경량이며 모든 크기의 데이터 세트에 사용하기 쉽습니다
  • 신경망: 중대형 데이터 세트와 잘 작동하지만 학습 시간이 매우 깁니다
참고: CRF모델은 모든 언어를 지원하고 Deep Neural Network 모델은 영어, 스페인어, 독일어, 프랑스어를 지원합니다. 이 옵션은 선택한 봇 언어가 Deep Neural Network 모델에서 지원되는 경우에만 화면에 나타납니다.
불용어

이 설정은 기본적으로 비활성화되어 있습니다. ML 모델을 구축할 때 발화 학습에서 불용어를 제거하려면 이 옵션을 활성화하세요. 활성화되면 불용어를 사용하여 ML 모델을 학습시키기 전에 학습 발화에서 단어/구문을 필터링하는 데 사용되며 예측 전에 사용자 발화에서 제거됩니다. 네트워크 유형이 트랜스포머로 설정된 경우에는 유효하지 않습니다.

특징 추출

이 옵션(ver8.0에 도입됨)으로 ML 의도 모델을 선호하는 알고리즘과 연결할 수 있습니다. 네트워크 유형이 MLP 워드 임베딩, LSTM, CNN, 트랜스포머로 설정된 경우에는 유효하지 않습니다. 옵션은 다음과 같습니다.

  • n-그램 – 기본 설정이며 모델을 학습시키기 위해 학습 문장에서 사용할 연속적인 단어 시퀀스를 정의할 수 있습니다. 예를 들어, 세일즈 예측 보고서 생성이 사용자 발화이고 n-그램을 2로 설정한 경우 세일즈, 세일즈 예측예측 보고서 생성을 모델 학습에 사용합니다. n-그램을 3으로 설정한 경우, 세일즈 예측 생성세일즈 예측 보고서를 모델 학습에 사용합니다. n-그램 시퀀스 길이로 n-그램을 설정할 수 있습니다. 최소 n-그램 제한은 기본적으로 1입니다. 최대 한도를 4까지 설정할 수 있습니다.
  • 스킵-그램 – 말뭉치가 매우 제한적이거나 일반적으로 학습 문장이 더 적은 단어를 포함하는 경우 스킵-그램이 더 나은 옵션일 것입니다. 이를 위해 다음 사항을 정의해야 합니다.
    • 시퀀스 길이 – 스킵-그램 시퀀스의 길이로 최소 2개, 최대 4개
    • 최대 스킵 거리 – 그램을 형성하기 위해 스킵할 수 있는 최대 단어는 최소 1에서 최대 3.
엔티티 플레이스 홀더

학습 발화에 있는 엔티티 값을 학습 모델의 해당 엔티티 플레이스 홀더로의 변경을 사용하세요. 엔티티 플레이스 홀더는 의도 감지에서 실제 엔티티 값의 기여도를 제거합니다. 이것은 엔티티 학습(NER)이 ML을 통해 수행되는 경우에만 작동합니다. 이 플래그를 활성화하면 엔티티 값에 의해 기여된 점수가 줄어듭니다. 예: I want to transfer $500 to John Doe의 예에서, 엔진이 $500와 “John Doe”가 중요한 특징이라는 것을 학습하도록 하고 싶지 않습니다. 따라서 NER이 수행되고 엔티티 플레이스 홀더 플래그가 활성화되면 이것은 플레이스 홀더로 대체됩니다. 학습 발화는 “I want to transfer <Amount> to <Payee>”가 됩니다. 네트워크 유형이 트랜스포머로 설정된 경우에는 유효하지 않습니다.

ML 모델 업그레이드

생성된 새 봇은 기본적으로 새 ML 모델을 사용합니다. 개발자는 이전 봇의 ML 모델을 업그레이드하거나 새 모델로 봇의 모델을 다운그레이드할 수 있습니다. 봇 플랫폼에서 ML의 이전 모델을 사용하는 경우, 다음과 같이 업그레이드할 수 있습니다.

  1. ML 모델을 업그레이드하려는 봇을 열고 자연어 > 임곗값 및 설정으로 이동합니다.
  2. 기계 학습을 확장합니다. ML 업그레이드 섹션에서, 지금 업그레이드하기 버튼을 클릭합니다. 설정 창이 열립니다.
  3. 업그레이드 및 학습을 클릭하세요. 기계 학습 섹션에서 새 사용자 지정 가능 옵션을 볼 수 있습니다.

참고: 이전 모델(V2)로 봇을 내보내고 새 봇으로 가져온 경우, 업그레이드가 이루어질 때까지 봇은 V2 모델에 있게 됩니다.

Exporting and Importing Machine Learning Utterances

You can import and export ML utterances of a bot into another in CSV and JSON formats. You can choose between ‘In-Development’ or ‘Published’ tasks to export, whereas importing utterances always replace the latest copy of the task in the bot.

How to Export or Import ML Utterances

  1. On the bot’s Build menu, click Natural Language -> Training.
  2. The ‘In-Development’ version of the bot’s ML utterances open by default. If you want to see the utterances in the ‘Published’ version, toggle on the top right side of the window to Published.
    Note: The export of ML utterances varies based on this selection as explained in the Versioning and Behavior of the Exported Utterances section below.
  3. Click the options icon and select an option:

Versioning and Behavior of Imported Utterances

  • The imported utterances in CSV/JSON entirely replace the utterances present in the latest copy of the tasks.
  • If the task is in the Configured status, the utterances in the task get entirely replaced with the new utterances for the task present in the imported file.
  • If the task is in Upgrade in Progress status, the utterances related to the task get entirely replaced with the task utterances present in the imported file. The utterances in the Published copy of the task aren’t affected.
  • If the task is in the Published status, an Upgrade in Progress copy of the task gets created by default and the new utterances present in the imported file will be added to the upgraded copy. The utterances in the Published copy of the task aren’t affected.

Versioning and Behavior of Exported Utterances

  • When you export a bot’s utterances, all the utterances related to every task type – alert, action, information, dialog – get exported.
  • When you export an In Development copy of the bot, the utterances of all tasks in the latest available copy get exported.
  • When you export a Published copy of the bot, all the utterances in the published state get exported.
  • In the case of multi-language bots, the export of utterances includes utterances added in all of the bot languages.
  • Export of utterances to JSON includes NER tagging present in the tasks, whereas CSV export doesn’t include them.

ML 학습 권장 사항

  • 봇이 탐지해야 할 어떠한 의도에 대해서든 균형 잡힌 학습을 제공하도록 하고 대략 같은 수의 샘플 발화를 추가하도록 합니다. 편향된 모델은 편향된 결과를 초래할 수 있습니다.
  • 각 의도에 최소 8-10개의 샘플 발화를 제공하도록 합니다. 1-2개의 발화만 있는 모델로는 기계 학습의 이점이 없습니다. 발화가 다양한지 확인하고 같은 단어를 다른 순서로 바꿔서 제공하지 마세요.
  • 어떤 의도에나 적용될 수 있는 일반적인 문구(예: "나는 ~을 하고 싶다")를 학습시키지 마세요. 다양성과 학습을 위해 다양한 발화를 제공하세요.
  • 변경 후에는 항상 모델을 학습시키고 모델을 확인하세요. ML 모델에 있는 모든 점들이 대각선(참양성 및 참음성) 사분면인지, 다른 사분면에 흩어져 있는 발화가 없는지 확인하세요. 그런 모양이 될 때까지 모델을 학습시키세요.
  • 새로운 발화를 사용하여 봇을 정기적으로 학습시키세요.
  • 실패하거나 포기한 발화를 정기적으로 검토하고 유효한 작업 또는 의도의 발화 목록에 추가합니다.

NLP 의도 탐지 학습 권장 사항

  • 샘플 발화가 많은 경우, 기본 의미 모델을 학습시키기 전에 먼저 기계 학습 접근 방법으로 봇을 학습시키세요.
  • 비밀번호를 나타내는 pwd, 저축 은행 계좌를 나타내는 SB>와 같은 도메인 사전을 구축하기 위해서 봇 동의어를 정의합니다.
  • 모델 학습이 변경될 때마다, 배치 테스트 모듈을 실행합니다. 테스트 스위트는 봇의 ML 모델에 회귀 테스트를 하는 방법입니다.

NLP 엔티티 탐지 학습 권장 사항

엔티티를 학습시키는 가장 좋은 접근 방법은 아래에 설명된 엔티티 유형을 기반으로 하는 것입니다.

  • 항목 목록(열거, 조회), 도시, 날짜, 국가 같은 항목 유형은 동일한 항목 유형이 동일한 작업에서 여러 유형을 사용하지 않는 한 학습시킬 필요가 없습니다. 봇 작업에 동일한 엔티티 유형을 사용한 경우, 학습 모델 중 하나로 사용자 발화 내에서 엔티티를 찾습니다.
  • 엔티티 유형이 문자열 또는 설명인 경우에 권장하는 접근 방법은 엔티티 패턴 및 동의어를 사용하는 것입니다.
  • 기타 엔터티 유형은 개체명 인식 및 패턴을 함께 사용할 수 있습니다.

엔티티 학습 권장 사항

  • 가능한 한 개체명 인식 학습을 사용하세요. 개체명 인식 적용 범위가 패턴보다 넓습니다.
  • 개체명 인식 접근 방법은 무서식 데이터 정보 엔티티를 탐지하는 데 가장 적합합니다. 날짜 및 시간 같은 엔티티의 경우 대규모 데이터 세트로 플랫폼을 학습시켰습니다.
  • 개체명 인식 모델은 neural network 기반 모델이며 효과적인 작동을 위해서는 최소 8-10개의 샘플로 학습시켜야 합니다.

추천 자료 ML 모델에 대해 읽어보고 싶으면, 여기를 참조하세요.

기계 학습

개발자는 기계 학습 모델을 학습시키려면 봇이 식별해야 하는 각 의도(작업)의 샘플 발화를 입력해야 합니다. 플랫폼 ML 엔진은 사용자 발언을 봇 의도 중 하나에 매핑하려고 시도하는 모델을 구축할 것입니다. Kore.ai의 봇 플랫폼은 완전한 비지도 기계 학습을 통해 사람의 개입 없이 챗봇의 언어 기능을 지속적으로 확장할 수 있습니다. 챗봇이 좋든 나쁘든 어떠한 입력이건 학습하는 비지도 모델과 달리, Kore.ai 봇 플랫폼은 챗봇이 의도를 성공적으로 인식하고 인간의 작업 완료 요청 엔티티를 추출할 때만 챗봇이 자동으로 어휘를 늘릴 수 있도록 합니다. 그러나 봇 성능을 모니터링하고 필요에 따라 수동으로 조정하도록 지도 학습을 하는 것이 좋습니다. 봇 플랫폼을 통해, 개발자는 인터렉션 로그를 평가하고 실패한 시나리오의 NL 설정을 쉽게 변경하며 학습한 내용을 토대로 더 나은 대화를 위해 봇을 재교육할 수 있습니다.

다중 의도 모델

다른 목적을 가진 “유사한 의도”를 학습시키는 일은 그 의도에 대한 학습이 다른 의도에 대한 학습에 잡음을 일으키거나 서로 충돌할 수 있기 때문에 일반적으로 어려운 일입니다. 이는 의도가 문맥상 다른 의미나 목적을 갖는 경우에 더욱 두드러지게 됩니다. 이런 경우를 생각해보세요. 사용자가 주문 작업을 할 때, 환불 정책 또는 배송 옵션과 관련된 모든 질의에는 설정된 주문 컨텍스트로 답변해야 합니다. 그러나 포괄적으로 반품 FAQ의 질의가 트리거됩니다.

고급 NLP 구성에서 다중 의도 모델을 활성화하면(방법은 여기 참조) 기본 의도에 대해서만 전용 ML 모델을 갖게 하고 각 대화의 ML 모델을 관련 하위 의도와 분리하여 하위 의도의 의도 탐지가 우선적으로 처리되도록 할 수 있습니다. 위의 예를 계속 가져와보면, 다중 의도 모델을 통해 별도의 컨텍스트 기반 FAQ를 정의하고 사용자에게 적절한 응답을 하도록 할 수 있습니다.

봇의 모든 기본 의도는 봇 수준 의도 모델의 일부가 됩니다. 각 대화 작업에는 추가된 모든 하위 의도로 구성된 자체 ML 모델을 가질 것입니다. 임계값 및 구성은 각 모델에 대해 개별적으로 구성될 수 있습니다. 예를 들어, 봇 수준 의도 모델은 ‘표준’ 네트워크 유형을 사용할 수 있고 특정 대화의 의도 모델은 ‘LSTM’ 네트워크 유형을 사용할 수 있습니다.

기계 학습 발언 추가

  1. 샘플 사용자 발언을 추가하기를 원하는 봇을 엽니다.
  2. 상단 메뉴에서 빌드 탭을 선택합니다.
  3. 왼쪽 메뉴에서, 자연어 -> 학습 옵션을 선택합니다.
  4. 기본적으로, 모든 의도의 항목이 있는 탭이 표시됩니다.
  5. 필터 옵션을 사용하여 표시 항목을 대화, 하위 대화, 하위 의도 또는 조치 작업으로 제한할 수 있습니다.
  6. 동의어를 추가하려는 의도의 발화/+ 발화를 클릭합니다
  7. 사용자 발화 페이지가 열립니다.
  8. 거기에 발화를 입력합니다. 길이가 3,000자를 초과하는 발화는 허용되지 않습니다.

참고: 추가된 발화는 독자적인 것이어야 하지만, 다중 의도 모델의 경우 동일한 발화를 다른 모델에서 사용할 수 있습니다. 학습된 의도의 부정은 플랫폼에서 무시됩니다. 예를 들어, 송금이라는 학습된 발화가 있는 뱅킹 봇을 고려하세요. “송금을 하지 않아도 내 계좌에서 인출이 됩니다”라는 사용자 발화는 “자금 이체” 작업을 트리거하지 않습니다.

개체명 인식

의도와는 별개로, 봇이 사용자 발화에서 엔티티(존재하는 경우)를 인식하도록 학습할 수 있습니다. 예를 들어, 사용자가 의도를 “항공편 예약”으로 인식하는 것과 별도로 “하이데라바드에서 뭄바이까지 항공편 예약”이라고 말하면 항공편의 출발지와 목적지도 인식되어야 합니다. 이는 학습 중 사용자 발화의 엔티티를 표시하는 것으로 가능합니다. 엔티티 값을 선택하고 상응하는 엔티티를 클릭하여 발화에서 엔티티를 표시할 수 있습니다.
또한 플랫폼에서 엔티티를 식별하고 표시하려고 할 것입니다. 이를 수락하거나 취소할 수 있는 옵션이 있습니다. 플랫폼은 다음을 기반으로 엔티티를 식별합니다.

  • 시스템 엔티티;
  • 열거되거나 조회된 항목의 정적 목록;
  • 개체명 인식이 학습된 엔티티(위에서부터).

이렇게 표시된 각 엔티티에 대해 ML 엔진에서 식별한 신뢰도 점수가 표시됩니다. 이 점수는 개체명 인식 모델로 조건부 임의 필드를 선택한 경우에만 사용할 수 있습니다.
또한, 엔티티 플레이스 홀더를 활성화한 경우 플랫폼은 학습 발화의 엔티티 값을 ML 모델 학습의 개체명 플레이스 홀더로 대체합니다. 실제 엔티티 값 사용뿐만 아니라 엔티티 값만 변경하여 여러 개의 발화를 추가하면 ML 학습 모델에 좋지 않은 영향을 미칩니다. 개체명도 의도 탐지 모델에 크게 영향을 미치게 됩니다.

봇 학습시키기

사용자 발화를 추가한 후에는, 발화 및 관련된 사용자 의도를 인식하도록 Kore.ai 인터프리터를 학습시켜야 합니다. 봇에 학습되지 않은 발언이 있는 경우 다음 메시지가 표시됩니다. "ML 모델에 학습되지 않은 발화가 있습니다. 모든 발화로 업데이트하도록 봇을 학습시키세요." 학습을 클릭합니다. 발화 학습의 진행 상황을 표시하는 상태 표시줄이 표시됩니다. 완료되면 발화가 성공적으로 학습됨이라는 메시지가 표시됩니다. 사용자 발화가 기계 학습 데이터베이스에 추가됩니다. ML 엔진을 추가로 설정하고, 사용자 발화에 봇 학습, 즉 봇 어휘에 사용하지 않는 단어가 포함된 경우, 더미 의도를 식별할 수 있으며, 자세한 내용은 여기를 참조하세요. 봇을 학습시키는 방법 알아보기.

자동 – 학습

기본적으로, 기계 학습은 다음과 같은 작업이 있을 때마다 정의된 사용자 발화에 자동으로 학습됩니다.

  • 진행 중인 상태에서 설정된 상태로 변경.
  • 새 작업명
    • 또는 의도명,
    • 개체명 또는 매개 변수명,
    • 엔티티 유형,
    • 봇명으로 업데이트.
  • 게시됨.
  • 봇 관리자에 의해 중단됨.
  • 봇 관리자에 의해 삭제됨.

봇 빌더에서 자동 학습이 진행 중일 때 자동 학습이 완료되기 전에 봇을 테스트하려고 하면, 학습되지 않은 사용자 발화를 식별할 수 없습니다라는 경고 메시지가 표시됩니다. 자동 학습 옵션은 다음과 같이 설정할 수 있습니다.

  1. 설정을 수정하려는 봇을 엽니다.
  2. 상단 메뉴에서 빌드 옵션을 선택합니다.
  3. 왼쪽 탐색 메뉴에서, 자연어 ->고급 설정을 선택합니다.
  4. 요구 사항에 따라 자동 학습 옵션을 활성화 또는 비활성화합니다.

네거티브 패턴

네거티브 패턴을 사용하여 Fundamental meaning 또는 기계 학습 모델을 통해 탐지된 의도를 제거할 수 있습니다. 자세히 알아보려면 여기를 참조하세요.

임곗값 & 설정

학습 및 성능 향상을 위해 세 가지 NLP 엔진(FM, KG, ML)의 임곗값 및 설정을 지정할 수 있습니다. 빌드 > 자연어 >임곗값 및 설정에서 이러한 설정에 액세스할 수 있습니다. 참고: 봇이 다국어인 경우 다른 언어에 다른 임곗값을 설정할 수 있습니다. 설정하지 않으면, 모든 언어에 기본 설정이 적용됩니다. ML 엔진 설정에 대해서는 다음 섹션에 자세하게 설명되어 있습니다.

기계 학습

봇 플랫폼 버전 6.3에서는 기계 학습(ML) 모델을 v3으로 업그레이드했습니다. 많은 개선이 이루어졌으며 개발자가 비즈니스 요구 사항에 맞게 매개 변수를 통해 모델을 미세 조정할 수 있습니다. 개발자는 불용어 사용, 동의어 사용, 임곗값, n-그램과 같은 매개 변수를 변경할 수 있을 뿐만 아니라, 개체명 인식(NER) 모델로의 경우 Deep Neural Network 또는 조건부 임의 필드 기반 알고리즘 중에서 선택할 수 있습니다. 플랫폼 v8.0에서는 ML 의도 모델의 v5 사용 및 하이퍼 매개 변수를 외부화할 수 있게 되었습니다. 이는 고급 NLP 설정을 통해 가능하며 자세한 내용은 여기를 참조하세요. '다중 의도 모델' 옵션이 활성화되면 ML 엔진은 봇에 대한 다음과 같은 다중 의도 모델을 유지하게 됩니다.

  • 기본 대화 의도 및 경고 작업 의도 등 봇의 모든 기본 의도를 포함하는 봇 수준 의도 모델입니다.
  • 대화 의도 모델 – 대화 정의에 추가된 하위 의도 노드, 그룹 노드의 일부로 범위가 지정된 하위 의도, 대화 정의에 추가된 중단 예외 사항 등 모든 기본 대화 의도 및 하위 대화 의도를 위한 모델.

임곗값 및 설정은 각 의도 모델에 개별적으로 설정할 수 있습니다. 여기에는 다음 사항이 포함됩니다.

기계 학습 매개 변수 설정

봇 플랫폼은 봇의 ML 성능과 관련된 다음 매개 변수에 언어별 기본값을 제공합니다. 특정 요구 사항에 맞게 사용자가 지정을 할 수 있습니다. ML 설정에서 참고할 점:

  • 다음은 전체 설정 목록이며 단일 및 다중 의도 모델 모두에 사용할 수 있습니다.
  • 다중 의도 모델이 활성화되면, 모델에 대한 설정 링크를 선택하여 개별 모델을 설정할 수 있습니다.
  • 봇 수준 의도 모델은 하나뿐이지만, 새로 추가 버튼을 사용하여 다중 대화 의도 모델을 추가하고 각각 요구 사항에 따라 설정할 수 있습니다.
  • 고급 ML 설정은 여기서 적용하거나 고급 NLP 설정 섹션에서 적용할 수 있으며 자세한 내용은 여기를 참조하세요.

네트워크 유형

의도 모델을 학습시키는 데 사용할 신경망을 선택할 수 있습니다. 이 설정은 v8.1의 고급 NLP 구성에서 기계 학습으로 이동되었습니다. 다음 유형 중에서 선택할 수 있습니다. 선택에 따라 고급 NLP 설정 섹션에서 추가 설정을 수행할 수 있으며 자세한 내용은 여기를 참조하세요.

  • 표준:
  • MLP-BOW – 단어 주머니(bag-of-words) 모델은 자연어 처리 및 정보 검색에 사용하는 단순화된 표현입니다. 이 모델에서 문법과 어순은 무시되지만 다중성은 유지하는 단어 주머니로 텍스트가 나타납니다.
  • MLP-워드 임베딩(WordEmbeddings) – 워드 임베딩은 어휘의 단어나 구가 실수 벡터에 매핑되는 자연어 처리에서 언어 모델링 및 기능 학습 기술 세트의 집합적 명칭입니다.
  • LSTM(Long Short-Term Memory)은 딥 러닝 분야에서 사용하는 인공 순환 신경망(RNN) 아키텍처입니다. LSTM에는 피드백 연결이 있으므로 어떤 길이의 텍스트든 장기 의존성을 캡쳐할 수 있으며 보다 긴 텍스트에 적합합니다.
  • CNN(convolutional neural networks)은 시각 이미지 분석에 가장 일반적으로 적용되는 딥 러닝의 deep neural networks 클래스입니다. 특정 영역 크기의 어순을 활용하여 다양한 텍스트 분류 작업에서 놀라운 결과를 얻었습니다.
  • 트랜스포머는 학습 파이프라인의 벡터화 단계에서 Universal Sentence 인코더를 사용합니다. 학습을 위한 다층 퍼셉트론 네트워크에 문장 인코더 출력을 공급합니다. 문장 인코더에는 같은 문장의 동의어 및 다양한 사용 패턴을 고려하여 문장 간의 의미 유사도를 이해하는 기능이 내장되어 있습니다. Universal Sentence 인코더는 텍스트를 텍스트 분류, 의미 유사도, 클러스터링, 기타 자연어 작업에 사용할 수 있는 고차원 벡터로 인코딩합니다. 이 모델은 문장, 구 또는 짧은 단락과 같이 단어 단위보다 긴 텍스트를 학습하며 이에 최적화되어 있습니다. 다양한 자연어 이해 작업을 동적인 방식으로 제공할 목적으로 다양한 데이터 소스와 다양한 작업을 학습합니다. 입력은 가변 길이 영어 텍스트, 출력은 512차원 벡터입니다.
  • KAEN (Kore Advanced Embeddings Network) – 문장 임베딩만으로 학습된 모델은 특히 학습 단어가 사전에 있는 단어가 아닌 경우 도메인별 용어를 이해할 수 없습니다. Kore.ai는 문장의 의미를 이해함과 동시에 도메인별 용어에 중요성을 부여할 수 있는 모델을 제공합니다. 이 모델에는 두 가지 병렬 층이 있습니다. 하나는 문장 임베딩에 대한 가중치를 최적화하는 층과 주어진 문장의 단어 중요성을 최적화하는 층입니다. 이 두 층에서 사용되는 활성화 기능은 RReLU(Randomized Leaky Rectified Linear Unit)이며 자세한 내용은 여기를 참조하세요)
ML 임곗값

ML 임곗값은 가능한 일치 또는 확실한 일치가 될 의도의 확률 점수를 선별하기 위한 기준을 정의합니다. 기본값은 0.3으로 설정됩니다. 즉, 0.3을 초과하는 점수를 얻은 의도는 자격을 갖춘 의도로 간주됩니다. 점수가 0.3 미만인 의도는 거부됩니다.

ML 확정 스코어링

다음 분류를 사용하여 80-100% 사이의 값으로 설정할 수 있는 확실한 일치에 대한 임곗값 스코어링을 설정합니다.

  • 확률 스코어링 – 분류 엔진에 의한 확률 스코어링이 0.95("ML 확실한 스코어링"을 100으로 나눈 값을 사용하여 조정 가능한 기본값)를 초과하는 경우, 의도는 확실한 일치/완벽한 일치로 간주됩니다.
  • 퍼지 논리는 주어진 의도의 각 발화를 거쳐 사용자 입력과 발화가 일치하는 정도를 확인하기 위해 사용자 입력과 비교합니다(점수는 일반적으로 0에서 100 사이입니다). 점수가 95%(“ML 확실한 점수”를 사용하여 조정 가능한 기본값)를 초과하는 경우, 의도는 확실한 일치/완벽한 일치로 간주됩니다.
봇 동의어

이 설정은 기본적으로 비활성화되어 있습니다. ML 모델을 구축할 때 의도 동의어를 염두에 두려면 이 옵션을 활성화하세요. 동의어를 활성화하면 ML 모델을 학습시키는 동안 고려해야 할 "동의어 및 개념"에 정의된 동의어를 ML 모델이 사용할 수 있습니다. 중복 발화 준비를 피하는 데 도움이 됩니다. : “I want to transfer funds”. send”, “give”, “move”를 “transfer” 및 “money”의 동의어로 정의하고, “dollars”를 “funds”의 동의어로 정의했다면 “I want to send money” 또는 “I want to give dollars” 등의 학습 발화를 추가할 필요가 없습니다.

개체명 인식 모델

엔티티 탐지에 사용될 개체명 인식 모델 선택. Kore.ai는 다음과 같은 동일한 접근 방법을 따르는 NER을 사용한 학습을 위한 두 가지 엔티티 인식 모델을 제공합니다

  • 조건부 임의 필드: 경량이며 모든 크기의 데이터 세트에 사용하기 쉽습니다
  • 신경망: 중대형 데이터 세트와 잘 작동하지만 학습 시간이 매우 깁니다
참고: CRF모델은 모든 언어를 지원하고 Deep Neural Network 모델은 영어, 스페인어, 독일어, 프랑스어를 지원합니다. 이 옵션은 선택한 봇 언어가 Deep Neural Network 모델에서 지원되는 경우에만 화면에 나타납니다.
불용어

이 설정은 기본적으로 비활성화되어 있습니다. ML 모델을 구축할 때 발화 학습에서 불용어를 제거하려면 이 옵션을 활성화하세요. 활성화되면 불용어를 사용하여 ML 모델을 학습시키기 전에 학습 발화에서 단어/구문을 필터링하는 데 사용되며 예측 전에 사용자 발화에서 제거됩니다. 네트워크 유형이 트랜스포머로 설정된 경우에는 유효하지 않습니다.

특징 추출

이 옵션(ver8.0에 도입됨)으로 ML 의도 모델을 선호하는 알고리즘과 연결할 수 있습니다. 네트워크 유형이 MLP 워드 임베딩, LSTM, CNN, 트랜스포머로 설정된 경우에는 유효하지 않습니다. 옵션은 다음과 같습니다.

  • n-그램 – 기본 설정이며 모델을 학습시키기 위해 학습 문장에서 사용할 연속적인 단어 시퀀스를 정의할 수 있습니다. 예를 들어, 세일즈 예측 보고서 생성이 사용자 발화이고 n-그램을 2로 설정한 경우 세일즈, 세일즈 예측예측 보고서 생성을 모델 학습에 사용합니다. n-그램을 3으로 설정한 경우, 세일즈 예측 생성세일즈 예측 보고서를 모델 학습에 사용합니다. n-그램 시퀀스 길이로 n-그램을 설정할 수 있습니다. 최소 n-그램 제한은 기본적으로 1입니다. 최대 한도를 4까지 설정할 수 있습니다.
  • 스킵-그램 – 말뭉치가 매우 제한적이거나 일반적으로 학습 문장이 더 적은 단어를 포함하는 경우 스킵-그램이 더 나은 옵션일 것입니다. 이를 위해 다음 사항을 정의해야 합니다.
    • 시퀀스 길이 – 스킵-그램 시퀀스의 길이로 최소 2개, 최대 4개
    • 최대 스킵 거리 – 그램을 형성하기 위해 스킵할 수 있는 최대 단어는 최소 1에서 최대 3.
엔티티 플레이스 홀더

학습 발화에 있는 엔티티 값을 학습 모델의 해당 엔티티 플레이스 홀더로의 변경을 사용하세요. 엔티티 플레이스 홀더는 의도 감지에서 실제 엔티티 값의 기여도를 제거합니다. 이것은 엔티티 학습(NER)이 ML을 통해 수행되는 경우에만 작동합니다. 이 플래그를 활성화하면 엔티티 값에 의해 기여된 점수가 줄어듭니다. 예: I want to transfer $500 to John Doe의 예에서, 엔진이 $500와 “John Doe”가 중요한 특징이라는 것을 학습하도록 하고 싶지 않습니다. 따라서 NER이 수행되고 엔티티 플레이스 홀더 플래그가 활성화되면 이것은 플레이스 홀더로 대체됩니다. 학습 발화는 “I want to transfer <Amount> to <Payee>”가 됩니다. 네트워크 유형이 트랜스포머로 설정된 경우에는 유효하지 않습니다.

ML 모델 업그레이드

생성된 새 봇은 기본적으로 새 ML 모델을 사용합니다. 개발자는 이전 봇의 ML 모델을 업그레이드하거나 새 모델로 봇의 모델을 다운그레이드할 수 있습니다. 봇 플랫폼에서 ML의 이전 모델을 사용하는 경우, 다음과 같이 업그레이드할 수 있습니다.

  1. ML 모델을 업그레이드하려는 봇을 열고 자연어 > 임곗값 및 설정으로 이동합니다.
  2. 기계 학습을 확장합니다. ML 업그레이드 섹션에서, 지금 업그레이드하기 버튼을 클릭합니다. 설정 창이 열립니다.
  3. 업그레이드 및 학습을 클릭하세요. 기계 학습 섹션에서 새 사용자 지정 가능 옵션을 볼 수 있습니다.

참고: 이전 모델(V2)로 봇을 내보내고 새 봇으로 가져온 경우, 업그레이드가 이루어질 때까지 봇은 V2 모델에 있게 됩니다.

Exporting and Importing Machine Learning Utterances

You can import and export ML utterances of a bot into another in CSV and JSON formats. You can choose between ‘In-Development’ or ‘Published’ tasks to export, whereas importing utterances always replace the latest copy of the task in the bot.

How to Export or Import ML Utterances

  1. On the bot’s Build menu, click Natural Language -> Training.
  2. The ‘In-Development’ version of the bot’s ML utterances open by default. If you want to see the utterances in the ‘Published’ version, toggle on the top right side of the window to Published.
    Note: The export of ML utterances varies based on this selection as explained in the Versioning and Behavior of the Exported Utterances section below.
  3. Click the options icon and select an option:

Versioning and Behavior of Imported Utterances

  • The imported utterances in CSV/JSON entirely replace the utterances present in the latest copy of the tasks.
  • If the task is in the Configured status, the utterances in the task get entirely replaced with the new utterances for the task present in the imported file.
  • If the task is in Upgrade in Progress status, the utterances related to the task get entirely replaced with the task utterances present in the imported file. The utterances in the Published copy of the task aren’t affected.
  • If the task is in the Published status, an Upgrade in Progress copy of the task gets created by default and the new utterances present in the imported file will be added to the upgraded copy. The utterances in the Published copy of the task aren’t affected.

Versioning and Behavior of Exported Utterances

  • When you export a bot’s utterances, all the utterances related to every task type – alert, action, information, dialog – get exported.
  • When you export an In Development copy of the bot, the utterances of all tasks in the latest available copy get exported.
  • When you export a Published copy of the bot, all the utterances in the published state get exported.
  • In the case of multi-language bots, the export of utterances includes utterances added in all of the bot languages.
  • Export of utterances to JSON includes NER tagging present in the tasks, whereas CSV export doesn’t include them.

ML 학습 권장 사항

  • 봇이 탐지해야 할 어떠한 의도에 대해서든 균형 잡힌 학습을 제공하도록 하고 대략 같은 수의 샘플 발화를 추가하도록 합니다. 편향된 모델은 편향된 결과를 초래할 수 있습니다.
  • 각 의도에 최소 8-10개의 샘플 발화를 제공하도록 합니다. 1-2개의 발화만 있는 모델로는 기계 학습의 이점이 없습니다. 발화가 다양한지 확인하고 같은 단어를 다른 순서로 바꿔서 제공하지 마세요.
  • 어떤 의도에나 적용될 수 있는 일반적인 문구(예: "나는 ~을 하고 싶다")를 학습시키지 마세요. 다양성과 학습을 위해 다양한 발화를 제공하세요.
  • 변경 후에는 항상 모델을 학습시키고 모델을 확인하세요. ML 모델에 있는 모든 점들이 대각선(참양성 및 참음성) 사분면인지, 다른 사분면에 흩어져 있는 발화가 없는지 확인하세요. 그런 모양이 될 때까지 모델을 학습시키세요.
  • 새로운 발화를 사용하여 봇을 정기적으로 학습시키세요.
  • 실패하거나 포기한 발화를 정기적으로 검토하고 유효한 작업 또는 의도의 발화 목록에 추가합니다.

NLP 의도 탐지 학습 권장 사항

  • 샘플 발화가 많은 경우, 기본 의미 모델을 학습시키기 전에 먼저 기계 학습 접근 방법으로 봇을 학습시키세요.
  • 비밀번호를 나타내는 pwd, 저축 은행 계좌를 나타내는 SB>와 같은 도메인 사전을 구축하기 위해서 봇 동의어를 정의합니다.
  • 모델 학습이 변경될 때마다, 배치 테스트 모듈을 실행합니다. 테스트 스위트는 봇의 ML 모델에 회귀 테스트를 하는 방법입니다.

NLP 엔티티 탐지 학습 권장 사항

엔티티를 학습시키는 가장 좋은 접근 방법은 아래에 설명된 엔티티 유형을 기반으로 하는 것입니다.

  • 항목 목록(열거, 조회), 도시, 날짜, 국가 같은 항목 유형은 동일한 항목 유형이 동일한 작업에서 여러 유형을 사용하지 않는 한 학습시킬 필요가 없습니다. 봇 작업에 동일한 엔티티 유형을 사용한 경우, 학습 모델 중 하나로 사용자 발화 내에서 엔티티를 찾습니다.
  • 엔티티 유형이 문자열 또는 설명인 경우에 권장하는 접근 방법은 엔티티 패턴 및 동의어를 사용하는 것입니다.
  • 기타 엔터티 유형은 개체명 인식 및 패턴을 함께 사용할 수 있습니다.

엔티티 학습 권장 사항

  • 가능한 한 개체명 인식 학습을 사용하세요. 개체명 인식 적용 범위가 패턴보다 넓습니다.
  • 개체명 인식 접근 방법은 무서식 데이터 정보 엔티티를 탐지하는 데 가장 적합합니다. 날짜 및 시간 같은 엔티티의 경우 대규모 데이터 세트로 플랫폼을 학습시켰습니다.
  • 개체명 인식 모델은 neural network 기반 모델이며 효과적인 작동을 위해서는 최소 8-10개의 샘플로 학습시켜야 합니다.

추천 자료 ML 모델에 대해 읽어보고 싶으면, 여기를 참조하세요.

메뉴