Driverless AI에서의 NLP

이 섹션에서는 Driverless AI의 NLP(텍스트) 처리 능력에 관해 설명합니다. Driverless AI 플랫폼은 예측 기능으로 기타 열 유형을 포함한 독립형 텍스트 및 텍스트를 모두 지원할 수 있습니다. Tensorflow 기반 및 PyTorch 트랜스포머 아키텍처(예: BERT)는 변수 가공 및 모델 구축에 사용됩니다.

자세한 내용은 다음을 참조하세요;

참고

  • Driverless의 NLP 및 이미지 사용 사례는 GPU usage 에서 상당한 이점을 얻습니다.

NLP 변수 가공 및 모델링

NLP Feature Engineering

Driverless AI에서 사전 학습된 Pytorch 모델

BERT Models

다음 NLP Recipes를 문자열에 사용할 수 있습니다. NLP Transformers 의 전체 목록은 here 에서 확인할 수 있습니다.

  • n-gram 빈도/TF-IDF에 뒤따른 Truncated SVD

  • n-gram 빈도/TF-IDF에 뒤따른 Linear/Logistic regression

  • Word embeddings에 뒤따른 CNN model(TensorFlow)

  • Word embeddings에 뒤따른 BiGRU model(TensorFlow)

  • Character embeddings에 뒤따른 CNN model(TensorFlow)

  • 변수 가공의 BERT/DistilBERT 기반 임베딩(PyTorch)

  • 모델링 알고리즘(PyTorch)으로 다중 Transformer 아키텍처(예: BERT) 지원

이러한 기술뿐만 아니라, Driverless AI는 PyTorch 또는 Flair를 사용하여 custom NLP recipes 를 지원합니다.

NLP 기능 명명 규약

NLP 기능 명명 규약은 생성된 기능의 유형 파악에 도움이 됩니다.

기능 이름의 구문은 다음과 같습니다.

[FEAT TYPE]:[COL].[TARGET_CLASS]

  • [FEAT TYPE] 은 다음 중 하나를 나타냅니다:

  • n-gram의 Txt – 빈도 / TF-IDF에 뒤따른 Truncated SVD

  • n-gram의 TxtTE - 빈도 / TF-IDF에 뒤따른 선형 모델

  • TextCNN_TE – Word embeddings에 뒤따른 CNN model

  • TextBiGRU_TE – Word embeddings에 뒤따른 양방향 GRU 모델

  • TextCharCNN_TE – Character embeddings에 뒤따른 CNN model

  • [COL] 은 문자열의 이름을 나타냅니다.

  • [TARGET_CLASS] 는 모델 예측이 만들어지는 대상 클래스를 나타냅니다.

예를 들면, TxtTE:text.0은 선형 모델이 뒤따르는 n-gram의 빈도 / TF-IDF를 사용하여 문자열 《text》에 대한 클래스 0 예측과 동일시됩니다.

NLP Naming Conventions

NLP Explainers

다음은 사용 가능한 NLP explainer 목록입니다. 자세한 내용은 Explainer RecipesNLP 플롯 를 참조하십시오.

  • NLP LOCO Explainer: NLP LOCO 플롯은 레코드의 모든 텍스트 기능에서 특정 토큰을 제거하고 해당 토큰 없이 로컬 중요성을 예측하여 NLP 모델에 LOCO(leave-one-covariate-out) 스타일 접근 방식을 적용합니다. 결과 점수와 원래 점수(토큰 포함)의 차이는 텍스트 특성에 대한 특정 변경 사항이 모델에 의해 만들어진 예측을 어떻게 바꾸는지 확인하고자 할 때 유용합니다.

  • NLP Partial Dependence Plot Explainer: NLP 부분 종속성(노란색)은 입력 텍스트 토큰이 해당 텍스트에 남아 있고 +/- 1 표준 편차 밴드와 함께 해당 텍스트에 포함되지 않은 경우 Driverless AI 모델의 평균 예측 동작을 나타냅니다. ICE(회색)는 입력 텍스트 토큰이 해당 텍스트에 남아 있고 해당 텍스트에 포함되지 않은 경우 데이터의 개별 행에 대한 예측 동작을 표시합니다. 텍스트 토큰은 TF-IDF에서 생성됩니다.

  • NLP Tokenizer Explainer: NLP 토크나이저 플롯은 말뭉치(대규모의 구조화된 텍스트 세트)에 있는 각 토큰의 전역 및 로컬 중요성 값을 모두 보여줍니다. 말뭉치는 토큰화 프로세스에 앞서 Driverless AI 모델에서 사용하는 텍스트 기능에서 자동으로 생성됩니다. 로컬 중요성 값은 빈도-역 문서 빈도(TF-IDF)라는 용어를 각 행의 각 토큰에 대한 가중치 요인으로 사용하여 계산합니다. TF-IDF는 주어진 문서에 토큰이 등장하는 횟수에 비례하여 증가하며 토큰을 포함하는 말뭉치의 문서 수에 의해 오프셋됩니다.

  • NLP Vectorizer + Linear Model (VLM) Text Feature Importance Explainer: NLP 벡터라이저 + 선형 모델(VLM) 텍스트 기능 중요성은 개별 단어의 TF-IDF를 관심 있는 텍스트 열의 기능으로 사용하고 이러한 기능을 사용하여 선형 모델(현재 GLM)을 구축하며 이를 예측된 클래스(이진 분류) 또는 Driverless AI 모델의 연속 예측(회귀분석) 중 하나에 맞춥니다. 선형 모델의 계수는 단어의 중요성을 나타냅니다. 기본적으로 이 explainer는 알파벳 순서를 바탕으로 첫 번째 텍스트 열을 사용합니다.

NLP 전문가 설정

Driverless AI의 NLP에 대해 몇 가지 구성 가능한 설정을 이용할 수 있습니다. 더 자세한 내용은 상세 설정 주제의 NLP 설정 를 참조하십시오. 또한 실험 설정의 pipeline building recipes 에서 nlp modelnlp transformer 를 참조하십시오.

NLP Expert Settings

NLP 예제: 감성 분석

다음 섹션은 NLP 예제에 대한 내용입니다. 이 정보는 문자 분석을 위한 자동 변수 가공 블로그 게시물을 기초로 합니다. Python client를 사용하는 유사한 예제는 Python Client 에 있습니다.

이 예제는 US Airline Sentiment dataset 를 사용한 트윗에 대한 감성 분석의 고전적인 사례를 이용합니다. 각 트윗의 감성에는 미리 라벨이 지정되어 있으며 우리 모델은 새로운 트윗을 라벨링 하는 데 사용됩니다. Driverless AI에서 무작위 분할을 사용하여 데이터 세트를 훈련 및 테스트(80/20)로 분할할 수 있습니다. 이 데모에서는 ‘문자’ 열의 트윗과 ‘airline_sentiment’ 열의 감성(긍정적, 부정적 또는 중립적)을 사용합니다.

Example text in dataset

데이터 세트가 표 포맷으로 준비되면, 모두 Driverless AI를 사용하도록 설정됩니다. Driverless AI 설정의 다른 문제와 비슷하게, 데이터 세트를 선택한 후 대상 열 (‘airline_sentiment’) 을 지정해야 합니다.

Example experiment settings

데이터 세트에서 다른 열의 사용을 피하기 위해, Dropped Cols 를 클릭한 후 아래와 같이 text 를 뺀 나머지 모든 항목을 제외해야 합니다.

Dropping columns in the dataset

다음으로, TensorFlow NLP recipes를 켭니다. Expert Settings, NLP 로 이동한 후, 다음을 켭니다: CNN TensorFlow models, BiGRU TensorFlow models, character-based TensorFlow models 또는 pretrained PyTorch NLP models

Enable TensorFlow models

이 시점에서 실험을 시작할 준비가 되었습니다. 문자 기능은 변수 가공 프로세스 중에 자동으로 생성되고 평가됩니다. TextCNN과 같은 일부 기능은 TensorFlow 모델에 의존한다는 것을 참고하십시오. GPU(들)를 사용하여 TensorFlow 또는 PyTorch Transformer 모델의 성능을 활용하고 변수 가공 프로세스를 가속화하는 것을 권장합니다.

Enable TensorFlow models

실험이 종료되면 사용자는 기타 Driverless AI 실험과 마찬가지로 새로운 예측을 만들고 스코어링 파이프 라인을 다운로드할 수 있습니다.

Resources:

생산에 대한 NLP 모델

Python scoringC++ MOJO scoring 은 TensorFlow 및 BERT 모델(변수 가공 및 모델링에 사용)에서 지원됩니다. GPU에서 모델 배포를 활성화하려면 config.toml 에서 tensorflow_nlp_have_gpus_in_production 매개변수를 활성화합니다.