머신 러닝 API 사용

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 11분
  • ML(머신 러닝) API를 사용하여 ServiceNow 머신 러닝 모델을 교육하고 추론을 실행합니다.

    ML API를 사용하면 솔루션 교육 및 솔루션 버전 관리를 사용할 수 있습니다. 활성 버전을 가져와 설정하고, 교육 상태를 모니터링하는 등의 작업을 수행할 수 있습니다. ML API는 TF-IDF(term frequency–inverse document frequency)를 단어 말뭉치로 사용할 수 있는 인코더도 제공합니다. 예측 가능성 추정치를 통해 테이블 열의 예측 값을 평가할 수 있습니다.

    주:
    예측 인텔리전스 API 실행 . 이후 릴리스에서는 ACL을 사용하여 액세스 권한을 부여합니다. 자세한 내용은 다음 문서를 참조하십시오 Query ACLs.

    ML API 클래스 개요

    이 섹션에서는 ML 솔루션을 교육하고 교육된 솔루션으로 추론을 실행하기 위한 클래스에 대해 간략하게 설명합니다.

    데이터 세트

    데이터 세트는 ML 교육 알고리즘에 대한 입력으로 사용할 테이블 이름, 열 및 행 선택 기준을 포함하는 일련의 기록입니다. 데이터 세트에는 실제 데이터가 포함되어 있지 않습니다.

    자세한 내용은 DatasetDefinition을 참조하세요.

    ML 객체 – 솔루션, 인코더 및 예상치

    ML 객체는 데이터 세트에 적용할 특정 교육 구성을 정의합니다. 일부 작업은 ML 객체에서 공통적입니다. 솔루션 객체에는 분류, 클러스터링, 회귀 및 유사성이 포함됩니다.

    인코더는 사용자가 제공하는 언어 데이터 세트를 기반으로 미리 학습되거나 학습된 텍스트 처리 개체입니다. 시스템이 텍스트 필드를 해석하고 처리하는 방법을 결정하는 인코더를 학습시킬 수 있습니다. 텍스트가 포함된 ML 솔루션의 경우 텍스트를 처리하는 방법을 지정하도록 인코더를 교육하고 솔루션에서 교육된 인코더를 사용할 수 있습니다.

    PredictabilityEstimate 객체는 데이터 세트에서 예측 가능한 필드와 이 예측 가능성의 기반이 되는 기능을 추정합니다.

    스토어

    ML 객체는 각 객체 유형에 대한 특정 저장소에서 유지 관리됩니다. 각 저장소 클래스에는 추가, 가져오기, 업데이트 및 삭제 작업을 위한 메서드가 포함되어 있습니다.

    버전

    학습된 각 객체는 작업을 실행할 수 있는 새 버전을 생성합니다. 버전 API를 사용하여 솔루션 버전을 가져오고 작업을 실행합니다.

    종합: ML API 플로우

    다음 플로우를 사용하여 솔루션, 인코더 및 예측 가능성 추정치를 구성하고 교육할 수 있습니다.
    1. 데이터 세트 정의(DatasetDefinition)
    2. ML 객체 생성(솔루션/인코더/PredictabilityEstimate)
    3. 스토어에 추가(스토어)
    4. 교육(솔루션/인코더/PredictabilityEstimate)
    주:
    인코더 정의는 여러 데이터 세트 정의를 지원하지만 학습 흐름은 동일합니다.
    인코더를 사용하여 솔루션을 교육하려면 먼저 인코더를 만든 다음, 솔루션 구성에 인코더를 포함합니다.
    1. 인코더(인코더) 생성
    2. 데이터 세트 정의(DatasetDefinition)
    3. 인코더를 지정하는 솔루션 생성(솔루션)
    4. 스토어에 추가(SolutionStore)
    5. 교육(솔루션)

    ML 객체 인코더 요구 사항:

    • 유사성 API 솔루션에 필요합니다.
    • Levenshtein 거리 알고리즘을 사용하지 않는 한 API 솔루션 클러스터링에 필요하며, 이 경우 인코더는 선택 사항입니다.
    • 분류 및 회귀 솔루션에 대한 선택 사항입니다.
    • 예측 가능성 예상치에 사용할 수 없습니다.

    ML API 솔루션 교육 시작하기

    이 예시 절차에 따라 솔루션을 구성하고 교육하는 방법을 알아봅니다.

    솔루션 구성 및 교육
    1. DatasetDefinition API를 사용하여 데이터 세트를 정의합니다.
      var myData = new sn_ml.DatasetDefinition({
      
        'tableName' : 'incident',
        'fieldNames' : ['assignment_group', 'short_description', 'description'],
        'encodedQuery' : 'activeANYTHING'
      
      });
    2. 생성자를 사용하여 구성에 데이터 세트를 포함하여 솔루션을 정의합니다.
      var mySolution = new sn_ml.ClassificationSolution({
      
        'label': "my solution definition",
        'dataset' : myData,
        'predictedFieldName' : 'assignment_group',
        'inputFieldNames':['short_description']
      
      });
    3. add() 메서드를 사용하여 저장소에 솔루션 정의를 추가합니다.
      var my_unique_name = sn_ml.ClassificationSolutionStore.add(mySolution);
    4. submitTrainingJob() 메서드를 사용하여 솔루션을 교육합니다. 교육이 완료되면 솔루션 버전 API를 사용하여 교육된 솔루션을 관리할 수 있습니다. 솔루션은 여러 번 재학습할 수 있습니다. 각 교육의 결과로 추론을 실행할 수 있는 새 솔루션 "버전"이 생성됩니다.
      var myClassifierVersion = mySolution.submitTrainingJob();
    스토어의 모든 분류 솔루션 보기
    스토어 getAllNames() 메서드를 사용하여 스토어에 추가된 모든 솔루션 목록을 볼 수 있습니다.
    gs.print(JSON.stringify(JSON.parse(sn_ml.ClassificationSolutionStore.getAllNames()), null, 2));

    출력에서 시스템은 솔루션의 이름을 ml_x_snc_global_global_my_solution_definition 지정합니다. 후속 예제에서 이 이름을 사용하여 버전 정보를 가져옵니다.

    *** Script: [
      "ml_incident_assignment",
      "ml_x_snc_global_global_my_solution_definition",
      "ml_incident_categorization"
    ]

    ML API 솔루션 버전 시작하기

    다음 세부 항목 예시를 따라 교육된 솔루션 버전을 관리하는 방법을 알아보십시오.

    교육 상태 확인

    스토어에서 분류 솔루션을 가져오고, 버전을 선택한 다음, 교육 상태를 확인합니다. 교육 상태를 확인하는 데 사용되는 방법은 모든 ML 객체 유형에 적용할 수 있습니다.

    1. get() 메서드를 사용하여 분류 솔루션 저장소에서 솔루션을 가져옵니다.
      // Get the solution created in the previous example from the classification solution store
      var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_x_snc_global_global_my_solution_definition');
    2. getLatestVersion() 솔루션 메서드를 사용하여 최신 솔루션 버전에 액세스하고 getStatus() 버전 메서드를 사용하여 교육 상태를 가져옵니다.
      // Access the latest version of the solution and print its training status
      gs.print(JSON.stringify(JSON.parse(mlSolution.getLatestVersion().getStatus(), null, 2)));

      교육이 완료되면 출력:

    솔루션 버전을 사용하여 예측 가져오기
    솔루션이 학습된 후 교육된 버전을 가져와 예측을 실행합니다. 스토어에서 만든 솔루션을 가져옵니다. 다음으로, 교육된 버전을 선택하고 교육된 버전을 예측합니다.
    주:
    인코더 및 예측 가능성 추정치에서는 예측할 수 없습니다.
    1. get() 메서드를 사용하여 분류 솔루션 저장소에서 솔루션을 가져옵니다.
      // Get the solution created in the first example from the classification solution store
      var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_x_snc_global_global_my_solution_definition');
    2. GlideRecord API get() 메서드를 사용하여 인시던트 [incident] 테이블의 기록을 제공합니다.
      // single GlideRecord input
      var input = new GlideRecord("incident");
      input.get("<sys_id>");
    3. 옵션입니다. 상위 3개의 결과를 반환하고 모든 결과를 반환하도록 ClassificationSolutionVersion – predict() 메서드 options 매개변수를 구성합니다.
      // configure optional parameters
      var options = {};
      options.top_n = 3;
      options.apply_threshold = false;
    4. 결과라는 변수를 선언하고 예측 작업에 할당합니다. 예측 작업을 실행하려면 ClassificationSolution – getLatestVersion() 메서드를 사용하여 최신 솔루션 버전을 가져오고 ClassificationSolutionVersion – predict() 메서드를 호출합니다.
      var results = mlSolution.getLatestVersion().predict(input, options);
    5. 예측 결과 출력을 출력합니다.
      gs.print(JSON.stringify(JSON.parse(results), null, 2));

      예측 결과 예시 출력:

      *** Script: {
        "<sys_id>": [
          {
            "confidence": 99,
            "threshold": 24.75,
            "predictedValue": "Email",
            "predictedSysId": ""
          },
          {
            "confidence": 5.88210244009169,
            "threshold": 100,
            "predictedValue": "Email (I/f)",
            "predictedSysId": ""
          },
          {
            "confidence": 2.3461203499840932,
            "threshold": 14.81,
            "predictedValue": "Authentication",
            "predictedSysId": ""
          }
        ]
      }