훈련을 통해 결과 관련성 개선
자연어 조회 결과의 관련성은 훈련을 통해 IBM Watson® Discovery에서 향상될 수 있습니다.
관련성 모델은 검색 결과에 리턴할 가장 관련성이 높은 문서를 판별합니다. 관련성 훈련이 없으면 표준 메커니즘을 사용하여 공통 요인을 기반으로 관련성을 판별합니다. 관련성 모델을 훈련할 때 Discovery 가 관련성을 판별할 때 문서에 고유한 기능을 사용하도록 도와줍니다.
프로젝트와 연관된 관련성 훈련 모델은 자연어 조회가 제출된 경우에만 런타임에 사용됩니다. 모델이 DQL (Discovery Query Language) 조회에 적용되지 않습니다.
Content Mining 프로젝트 유형에는 관련성 훈련을 적용할 수 없습니다.
관련성 모델을 훈련하기 위해 샘플 자연어 조회를 제공하고 이를 제출하여 문서에서 결과를 가져온 후 해당 결과의 등급을 지정합니다. 더 많은 예제를 추가할 때 각 조회의 결과 관련성에 대해 제공하는 정보를 사용하여 프로젝트에 대해 학습합니다. 시스템은 사용자의 평가를 사용하여 문서 내 다른 유형의 구조 정보에 중요도를 지정합니다. 예를 들어, 검색 조회의 키워드가 제목 대 헤더, 본문 또는 문서의 메타데이터에 표시되는 경우의 중요성을 학습합니다. 또한 하나의 일치하는 키워드와 다른 키워드 사이의 거리의 중요성을 학습합니다. 성공적인 관련성 훈련 세션 후에 랭커 모델이 작성됩니다. 모델은 다음 자연어 조회를 사용하여 Discovery에서 자동으로 사용됩니다. 발견은 관련성 훈련 모델에 따라 가장 관련성이 높은 결과가 먼저 표시되도록 문서 결과를 다시 정렬합니다.
교육은 전체 프로젝트에 적용됩니다. 하나의 콜렉션에 대해 건너뛰고 동일한 프로젝트의 다른 콜렉션에 적용할 수 없습니다. 조회 매개변수를 지정하여 훈련 모델을 사용하도록 설정하지 않습니다. 존재하는 경우, 모델은 프로젝트에 대해 제출되는 모든 자연어 조회에 사용됩니다. 검색을 하나의 콜렉션으로 제한하든 모든 콜렉션으로 제한하든 모델이 사용됩니다. 이러한 이유로, 훈련 데이터가 프로젝트의 모든 콜렉션에서 응답할 수 있는 조회를 나타내는 것이 중요합니다. 관련성 훈련 모델을 사용하여 프로젝트를 중지하기 위해 API를 사용하여 모델을 삭제할 수 있습니다.
관련성 훈련은 지속적으로 실행되지 않습니다. 훈련은 시작할 때만 발생합니다. 프로젝트당 한 번에 최대 하나의 훈련된 관련성 모델이 사용됩니다. 모델을 재훈련하는 경우 새 모델이 성공적으로 훈련될 때까지 기존 모델이 사용됩니다. 이때 새 모델이 이전 모델을 대체합니다.
훈련 데이터를 구성하는 문서 세트는 훈련 프로세스 중에만 사용됩니다. 모델을 훈련하는 데 사용된 문서에 대한 후속 변경이 수행되는 경우 훈련된 모델을 변경하지 않으며 새 훈련 세션을 트리거하지 않습니다. 프로젝트의 많은 문서가 변경되는 경우 업데이트된 문서의 기능을 사용하도록 모델을 재훈련할 때가 될 수 있습니다.
콜렉션에 추가하는 검색 엔진에서 제외되는 단어 및 조회 확장은 관련성 훈련 모델에 직접 영향을 주지 않습니다. 그러나 검색에서 리턴되는 문서를 변경할 수 있으며, 이는 관련성 모델별로 순위가 지정되는 문서에 영향을 줍니다. 모델은 조회에 대해 리턴되는 상위 100개문서의 순위를 지정합니다. 검색 엔진에서 제외되는 단어 또는 조회 확장에 대한 변경사항은 관련성 훈련 업데이트를 시작하지 않습니다. 검색에서 리턴되는 문서를 크게 변경하는 아티팩트를 추가하는 경우 모델 재훈련을 고려하십시오.
이전에 모델을 훈련하는 데 사용된 문서가 콜렉션에서 제거되는 경우 모델 재훈련을 시작하기 전에 훈련 데이터에서 해당 문서에 대한 참조를 제거해야 합니다. 모델은 훈련 데이터 쌍의 문서 및 조회가 둘 다 계속 존재할 것으로 예상합니다. 이러한 참조를 제거하려면 삭제된 문서를 리턴한 훈련 조회를 삭제하십시오. 조회가 계속 관련되는 경우 훈련 데이터에 다시 추가하고 다른 문서와 쌍을 이룰 수 있습니다.
관련성 훈련 API에 대한 자세한 정보는 API 참조 문서를 참조하십시오.
관련성 훈련 사용 시기
관련성 훈련은 선택사항입니다. 검색 결과의 품질을 테스트하십시오. 검색 결과가 필요에 부합한다면, 추가적인 교육이 필요하지 않습니다.
훈련은 조회 응답에서 리턴되는 문서의 관련성을 개선합니다. 문서당 리턴되는 단락 또는 응답을 개선하지 않습니다. 단락 검색을 사용 중이고 테스트 결과가 좋은 문서를 리턴하지만 문서에서 잘못된 단락이 있는 경우 관련성 훈련은 도움이 되지 않습니다.
관련성 훈련을 사용하는 시기에 대한 자세한 정보는 중간에 있는 시간에 민감한 사용자를 위한 관련성 훈련 블로그 게시물을 읽으십시오.
필드 처리 방법
제품 사용자 인터페이스에서 프로젝트를 훈련할 때 결과는 항상 문서의 text 필드에서 가져옵니다. 문서에 text 필드가 없는 경우 대신 API를 사용하여 프로젝트를 훈련시키십시오. 이름이 text인 열이 없는 CSV 파일을 업로드하거나 이름이 text인 오브젝트가 없는 JSON 파일을 업로드한 경우 또는 스마트 문서 이해 도구를 사용하여 문서의 대량
컨텐츠가 저장되는 다른 이름으로 필드를 정의한 경우 문서에 text 필드가 없을 수 있습니다.
API에서 프로젝트를 훈련할 때 모든 루트 레벨 필드에서 결과를 가져오며 모두 동일한 중요도를 갖는 것으로 간주됩니다. Discovery Query Language 조회와는 달리, 자연어 조회를 사용하면 관심이 있는 문서의 필드 또는 각 필드에 제공할 중요도를 지정할 수 없습니다. 예제를 사용하여 Discovery를 학습할 때 서비스는 각 필드에 제공할 가중치를 계산합니다.
발견은 각 루트 레벨 필드에 대한 용어, bigram및 skip-gram 일치에 서로 다른 가중치를 지정하는 모델을 빌드하고 다른 모든 문서 필드의 일치에 대해 밸런스를 맞춥니다. 충분한 예제를 사용하면 일반적으로 최상의 응답이 저장되는 위치를 알고 있기 때문에 Discovery에서 더 나은 응답을 리턴할 수 있습니다.
중첩된 필드에 더 많은 가중치를 부여하기 위해 관련성 훈련을 사용할 수 없습니다. 중첩된 필드는 그룹화되어 하나의 전체 점수가 지정됩니다. 훈련하는 양에 관계없이 Discovery는 중첩된 필드에 루트 레벨 필드에 제공하는 것보다 더 많은 가중치를 부여하지 않습니다. 중첩 필드에 대한 자세한 정보는 FAQ 를 참조하십시오.
프로젝트 훈련
관련성 모델을 훈련하는 데 사용되는 훈련 데이터에는 다음 파트가 포함됩니다.
- 사용자가 제출할 수 있는 조회를 나타내는 자연어 조회입니다.
- 서비스에서 리턴되는 조회의 결과
- 결과가
relevant또는not relevant인지 여부를 표시하는 결과에 적용하는 등급입니다.
프로젝트에 관련성 훈련을 적용하려면 다음 단계를 완료하십시오.
-
개선 및 사용자 정의 페이지로 이동하십시오. 개선 도구 패널에서 관련성 개선을 선택한 다음 관련성 훈련을 선택하십시오.
-
훈련할 질문 입력 필드에 자연어 질문을 입력합니다.
조회에 물음표를 포함하지 마십시오. 사용자와 동일한 단어를 사용하십시오. 예를 들어,
IBM Watson in healthcare입니다. 대상 응답에 언급된 일부 용어를 포함하는 조회를 작성하십시오. 자연어 쿼리가 평가될 때 용어 중복은 초기 결과를 향상시킵니다. -
**추가+**를 클릭하십시오.
-
결과 평가를 클릭하십시오.
-
결과가 표시되면 각 결과를 평가한 후 관련 또는 관련 없음을 선택하십시오. 이 옵션은 결과의 품질에 따라 적용됩니다.
Discovery UI에서 문서를 관련으로 표시할 때 서비스는 결과에
10의 관련성 점수를 적용하고 관련 없음으로 표시할 때0의 점수를 적용합니다. Discovery UI를 통해 관련성 훈련을 적용할 때 지정할 수 있는 두 개의 점수 값은0및10입니다.Discovery API에서
0와 최대100사이의 모든 정수 사이에 관련성 점수 값을 지정할 수 있습니다. 동일한 프로젝트에서 Discovery UI에서 작성된 훈련 예제 (0및10의 점수) 를0및10이외의 신뢰도 점수 레벨을 사용하는 작성된 예제와 혼합할 수 없습니다. API를 통해 사용자 정의 점수 스케일을 사용하는 경우 API를 통해 모든 훈련을 계속 적용해야 합니다.0및10의 두 점수만 사용하는 경우가 아니면 Discovery UI에서 API를 통해 적용되는 훈련 예제를 편집할 수 없습니다.결과에 "이 문서에 사용 가능한 컨텐츠 미리보기가 없습니다" 라는 메시지가 표시되면 리턴된 문서에
text필드가 없거나 해당text필드가 비어 있음을 의미합니다. 콜렉션의 문서에text필드가 없는 경우 제품 사용자 인터페이스에서 훈련하는 대신 API를 사용하여 프로젝트를 훈련하십시오. -
완료되면, 쿼리로 돌아가기를 클릭합니다.
-
계속해서 조회를 추가하고 평가하십시오.
결과를 평가하면 진행상태가 표시됩니다. 진행 상태를 확인하여 훈련 임계값 요구사항을 충족하기에 충분한 등급 정보를 사용할 수 있는 시기를 확인하십시오. 진행 상태는 다음 태스크로 구분됩니다.
- 더 많은 조회 추가
- 더 많은 결과 평가
- 평가에 더 많은 다양성 추가
데이터의 복잡도에 따라 50개이상의 고유 쿼리를 평가해야 합니다. 10 ,000개 이상의 훈련 조회를 추가할 수 없습니다.
-
임계값에 도달한 후에도 계속해서 쿼리와 평가 결과를 추가할 수 있습니다. 사용자가 요청할 것으로 생각되는 모든 조회를 입력하십시오.
교육 쿼리를 삭제하려면 삭제 아이콘을 클릭하십시오. 콜렉션의 모든 훈련 조회를 한 번에 삭제하려면 API를 사용하십시오. 자세한 내용은 교육 쿼리 삭제를 참고하세요.
둘 이상의 사용자가 동시에 동일한 조회를 훈련하려고 시도하는 경우 사용자 중 한 명이 제출한 등급이 다른 사용자를 겹쳐씁니다.
결과의 관련성 테스트 및 반복
등급 지정 결과를 완료하고 훈련이 완료되면 조회 결과가 더 나은지 여부를 테스트하여 확인하십시오. 그렇게 하려면, 훈련 쿼리와 관련이 있지만(동일하지는 않음) 자연어 쿼리를 실행하십시오. 결과를 검토하십시오.
테스트 후 계속 결과를 개선하려는 경우 다음을 수행할 수 있습니다.
- 더 많은 문서를 콜렉션에 추가하십시오.
- 더 많은 훈련 쿼리를 추가하십시오.
- 더 많은 결과의 등급을 지정하여
Relevant및Not relevant등급을 모두 사용하십시오.
신뢰도 점수
Discovery는 훈련된 콜렉션의 자연어 조회에 대한 confidence 점수를 리턴합니다. 이 confidence 점수는 훈련되지 않은 컬렉션에서 반환되는 confidence 점수와 상호 교환할 수 없습니다.
confidence 점수의 범위는 0.0 - 1.0입니다. 숫자가 클수록 결과의 관련성이 높습니다.
confidence 스코어는 각 문서의 result_metadata 아래의 조회 결과에서 찾을 수 있습니다. 이 숫자는 훈련된 모델과 비교하여 추정되는 결과의 관련성을 기반으로 계산됩니다.
{
"matching_results": 4,
"retrieval_details": {
"document_retrieval_strategy": "trained"
},
"results": [
{
"id": "eea16dfd5fe6139a25324e7481a32f89_13",
"result_metadata": {
"confidence": 0.08793
}
}
]
}
document_retrieval_strategy는 retrieval_details 아래에서 찾을 수 있습니다. Discovery 의 쿼리 언어를 사용하여 훈련된 컬렉션을 쿼리하거나 훈련된 모델이 일시적으로 비활성화된 경우, document_retrieval_strategy 는 untrained 입니다.
프로젝트 조회에 대한 자세한 정보는 조회 개요 를 참조하십시오.
관련성 훈련 한계
다음과 같은 제한이 연관성 훈련 모델에 적용됩니다:
- 프로젝트당 하나의 모델
- 모델당 10 ,000개의 조회
- Enterprise및 Premium 플랜의 경우 서비스 인스턴스당 40개모델, Plus 플랜 인스턴스의 경우 20개 모델
최적의 훈련 세션 실행
다음 예제는 프로젝트에서 관련성 훈련을 위해 세션을 최적으로 실행하는 방법을 설명합니다.
새 프로젝트에 100개의 훈련 조회를 추가하고 Discovery 가 하나의 훈련 세션에서 100개의 조회를 실행하여 랭커 모델을 작성하는 것을 고려하십시오. 나중에 다른 20개의 조회를 추가하면 모델이 재훈련을 시작하고 Discovery 는 총 120개의 조회를 실행합니다. 그러나 마지막 20개의 조회를 추가하는 경우 10개의 조회를 먼저 추가하고 1시간정도 대기한 후 다음 10개의 조회를 추가하면 Discovery 가 모델을 두 번 훈련합니다. 이 경우, 제1트레이닝 세션은 110개의 쿼리들을 실행하고, 제2트레이닝 세션은 120개의 쿼리들을 실행한다. 시간 간격 사이에 배치된 조회를 추가하면 Discovery에 의해 실행되는 총 조회 수 및 훈련 세션 수가 증가합니다.
대신 훈련 세션 수를 최소화하기 위해 훈련 조회 업데이트 API를 사용할 수 있습니다. API 메소드는 한 번에 하나의 프로젝트에서 여러 콜렉션에 대한 훈련 데이터를 업데이트합니다. 자세한 정보는 API 참조에서 훈련 조회 업데이트 를 참조하십시오.
Discovery에서 처리 로드를 줄이려면 프로젝트의 모든 콜렉션이 문서 처리를 완료한 후 관련성 훈련을 통해 랭커 모델을 작성하거나 업데이트해야 합니다. 또한 랭커 모델 훈련 프로세스 중에는 동시 요청의 한계가 초과되지 않도록 낮은 쿼리 활동이 있어야 합니다.
관련성을 향상시키는 다른 방법
Discovery API를 사용하여 Discovery를 훈련하려면 API 참조를 참조하십시오.
API를 사용하여 큐레이션을 추가할 수도 있습니다. 큐레이션은 특정 조회가 제출될 때마다 특정 문서를 리턴하도록 Discovery 에 지시하는 데 사용할 수 있는 베타 기능입니다. 자세한 정보는 큐레이션 을 참조하십시오.
또한 사용자 정의 제외어 목록을 추가하면 자연어 조회에 대한 결과의 관련성이 개선될 수 있습니다. 자세한 정보는 무시할 단어 식별 을 참조하십시오.
관련성 훈련 이해
프로젝트 훈련에 관한 일반적인 질문에 대한 답변.
제 시스템이 훈련되었는지 어떻게 알 수 있나요?
자연어 조회를 실행한 후 document_retrieval_strategy를 확인하십시오. 신뢰도 점수를 참조하십시오.
API를 사용 중인 경우 훈련 조회 나열을 참조하십시오.
모델을 훈련하는 데 얼마나 걸리나요?
훈련이 끝나는 데 45분에서 1시간 정도 걸릴 수 있습니다. 훈련 기간은 관련성 모델을 훈련하는 데 사용되는 데이터의 양과 다양성에 따라 다릅니다. 또한 훈련은 비동기식으로 발생합니다. 다른 방법으로 검색 또는 처리 중이기 때문에 필요한 다른 데이터를 사용할 수 없는 경우 지연될 수 있습니다.
관련성 훈련이 내 프로젝트에 적용되지 않도록 하려면 어떻게 해야 합니까?
API를 사용하여 프로젝트와 연관된 관련성 모델을 삭제하십시오. 모델을 삭제하려면 랭커 모델과 연관된 해당 훈련 데이터를 삭제합니다. 자세한 정보는 훈련 조회 삭제 를 참조하십시오.
관련성 훈련이 단락 검색에 영향을 미칩니까?
아니오. 관련성 훈련은 문서 검색에만 사용됩니다. 이는 단락 검색에 영향을 주지 않습니다.
관련성 교육이 결과에 영향을 미칩니까?
직접적이지 않습니다. 관련성 훈련은 응답이 검색되는 문서의 순서를 변경하므로 간접적으로 응답 찾기에 영향을 줍니다. 리턴된 문서의 순위를 가장 관련성이 높은 문서에서 가장 관련성이 낮은 문서로 다시 지정합니다.
오류 및 경고를 확인하려면 어떻게 해야 합니까?
컬렉션 관리 페이지를 엽니다. 콜렉션을 선택한 다음 활동 탭을 여십시오.
훈련 후 자연어 쿼리 결과에 나타나는 신뢰도 점수를 어떻게 해석해야 합니까?
신뢰도 점수를 참조하십시오.
관련성 훈련 오류 및 경고 해석
다음 목록에는 일부 공통 오류 및 경고 메시지에 대한 설명이 있습니다.
랭커 모델을 생성할 때 Watson 곧 학습을 시작할 것이라는 메시지가 오랫동안 표시됩니다
기존 랭커 모델의 총 수가 40개 모델 한도에 도달한 경우 이 문제가 발생할 수 있습니다. 이 경우 새 모델이 생성되지 않고 Watson 곧 학습을 시작할 것이라는 메시지가 UI에 오랫동안 표시됩니다.
이 문제를 해결하려면 사용하지 않는 프로젝트에서 이전 랭커 모델을 삭제하거나 IBM 지원팀에 문의하여 프리미엄 인스턴스로 업그레이드할 수 있습니다.
경고:Invalid training data found: The document was not returned in the top 100 search results for the given query, and will not be used for training
이 경고는 훈련 데이터의 document_ids 가 콜렉션에 대해 수행되는 검색의 document_ids 와 일치하지 않는 경우에 발생합니다. 질문을 확인하여 평가 중인 문서의 키워드( document_id )가 해당 질문에 대한 상위 100개 결과 안에 포함되는지 확인하십시오. 그렇지 않은 경우에는 다음 두 가지 사항을 확인할 수 있습니다.
- 문서가 상위 100개에서 리턴되지 않으면 고품질 결과의 예가 아닐 수 있습니다. 문서를 사용할지 여부를 재평가하십시오.
- 문서가 전혀 반환되지 않는다면, 반환되지 않는 이유를 검토하고 문서의 텍스트가 쿼리의 일부와 일치하는지 확인하십시오.
이 경고는 하나 이상의 실패한 조회가 있음을 표시합니다. 훈련을 완료할 수 없다는 것을 의미하지는 않습니다.
오류: Invalid training data found: Syntax error when parsing query
구문 오류는 조회가 올바르지 않음을 의미합니다. 예를 들어, 자연어 조회에 필터를 추가하여 조회의 복잡도를 증가시킬 때 구문 오류가 발생할 수 있습니다. API를 사용하여 관련성 훈련 외부의 콜렉션에 대해 조회를 실행하십시오. 조회가 올바르고 결과를 리턴하는지 확인한 후에는 이를 관련성 훈련 조회로 추가할 수 있습니다.
오류: Training data quality standards not met: You will need additional training queries with labeled examples. (To be considered for training, each example must appear in the top 100 search results for its query.)
훈련에 성공하려면 훈련 데이터를 더 추가해야 합니다. 최소한 49개의 고유 훈련 조회가 필요하며 각각의 훈련 조회에는 하나 이상의 평가된 문서가 필요합니다. 최소값이 최적값을 의미하지는 않습니다. 컬렉션의 크기와 다른 요인들이 최소값을 충족하는 데 필요한 훈련 예제의 수를 증가시킬 수 있습니다.
오류: Training data quality standards not met: Insufficient number of unique training queries. Expected at least n, but found m.
최소 교육 요건을 충족하려면 최소 50개의 고유한 교육 쿼리가 필요하며, 각 쿼리에는 평가된 문서가 하나 이상 있어야 합니다. 최소 횟수보다 더 많은 횟수만큼 질문을 했는데도 여전히 이 오류 메시지가 표시된다면, 알림에서 다른 오류 메시지를 확인해 보십시오.
오류: Training data quality standards not met: No documents found with non-zero relevance labels.
훈련 데이터에는 값이 높은 문서를 지정하는 충분한 레이블 지정된 데이터가 필요합니다. 따라서, 0이 아닌 값으로 일부 문서를 평가해야 합니다. 일부 문서는 Relevant로 평가하고 일부는 Not relevant로 평가해야 합니다. 적어도 하나의 문서는 Relevant 등급이어야 합니다.
오류: Training data quality standards not met: Training examples have no relevance label variety for X queries.
훈련에 대한 요구사항 중 하나는 충분한 레이블 관련성을 보유하는 것입니다. 훈련 쿼리의 25% 이상이 Relevant 및 Not relevant 레이블을 둘 다 포함해야 합니다. API를 사용하는 경우 조회의 25% 이상이 두 개의 서로 다른 숫자 레이블을 포함해야 합니다.