Vowpal Wabbit 버전 7-4 모델 학습

중요

Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.

2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.

ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.

Vowpal Wabbit 기계 학습 시스템의 버전 7-4를 사용하여 모델 학습

범주: Text Analytics

참고

적용 대상: Machine Learning Studio(클래식) 전용

유사한 끌어서 놓기 모듈은 Azure Machine Learning 디자이너에서 사용할 수 있습니다.

모듈 개요

이 문서에서는 Machine Learning Studio(클래식)에서 Vowpal Wabbit 버전 7-4 학습 모듈을 사용하여 Vowpal Wabbit(버전 7-4)의 인스턴스를 사용하여 기계 학습 모델을 만드는 방법을 설명합니다.

기계 학습에 Vowpal Wabbit를 사용하려면 Vowpal Wabbit 요구 사항에 따라 입력 형식을 지정하고 Azure Blob에 데이터를 저장합니다. 이 모듈을 사용하여 Vowpal Wabbit 명령줄 인수를 지정합니다.

실험을 실행하면 Vowpal Wabbit 인스턴스가 지정된 데이터와 함께 실험 런타임에 로드됩니다. 학습을 완료하면 모델은 작업 영역으로 다시 직렬화됩니다. 모델을 즉시 사용하여 데이터의 점수를 매길 수 있습니다. 학습된 모델은 학습 데이터를 다시 처리하지 않고도 나중에 사용할 수 있도록 Azure Storage에 유지됩니다.

새 데이터에 대한 기존 모델을 증분 학습하려면 저장된 모델을 미리 학습된 모델 입력에 연결하고 새 데이터를 다른 입력에 추가합니다.

참고

Machine Learning Studio(클래식)는 Vowpal Wabbit 프레임워크의 여러 버전을 호스트합니다. 이 모듈에서는 Vowpal Wabbit의 7-4 버전을 사용합니다. 이 모듈을 사용하여 모델을 만드는 경우 해당 점수 매기기 모듈인 Vowpal Wabbit 7-4 모델 점수를 지정해야 합니다.

최신 버전의 경우 Vowpal Wabbit 버전 8 모델 학습을 점수 매기기 모듈인 Vowpal Wabbit 8 모델 점수 매기기와 함께 사용합니다.

Vowpal Wabbit 정의

VW (Vowpal Wabbit)는 Yahoo!에서 분산 컴퓨팅을 위해 개발된 고속 병렬 기계 학습 프레임워크입니다 John Langford(Microsoft Research)가 병렬 아키텍처의 과학적 계산을 위해 조정한 고속 병렬 기계 학습 프레임워크입니다.

기계 학습에 중요한 Vowpal Wabbit의 기능에는 지속적인 학습(온라인 학습), 차원 감소 및 대화형 학습이 포함됩니다. 또한 모델 데이터를 메모리에 맞출 수 없는 문제에 대해서도 Vowpal Wabbit을 사용할 수 있습니다.

Machine Learning Vowpal Wabbit의 주 사용자는 이전에 분류, 회귀, 토픽 모델링 또는 행렬 팩터리화와 같은 기계 학습 작업에 프레임워크를 사용한 데이터 과학자입니다. Vowpal Wabbit용 Azure 래퍼는 온-프레미스 버전과 매우 유사한 성능 특성을 가지고 있으며, 이는 사용자가 Vowpal Wabbit의 강력한 기능과 네이티브 성능을 사용하여 모델을 빌드하고, 다시 학습하고, 점수를 매기는 동시에 학습된 모델을 운영화된 서비스로 쉽게 게시할 수 있음을 의미합니다.

기능 해싱 모듈에는 해시 알고리즘을 사용하여 텍스트 데이터 세트를 이진 기능으로 변환할 수 있는 Vowpal Wabbit에서 제공하는 기능도 포함되어 있습니다.

Vowpal Wabbit 버전 8 모델을 구성하는 방법

이 섹션에서는 새 모델을 학습하는 방법 및 기존 모델에 새 데이터를 추가하는 방법을 설명합니다.

Studio(클래식)의 다른 모듈과 달리 이 모듈은 모듈 매개 변수를 지정하고 모델을 학습합니다. 기존 모델이 있는 경우 선택적 입력으로 추가하여 모델을 점진적으로 학습할 수 있습니다.

이 모듈을 사용하려면 Azure Storage 계정에 대한 인증이 필요합니다.

입력 데이터 준비

이 모듈을 사용하여 모델을 학습하려면 입력 데이터 세트가 지원되는 두 가지 형식 중 하나인 LibSVM 또는 VW의 단일 텍스트 열로 구성되어야 합니다. 이는 Vowpal Wabbit가 텍스트 데이터만 분석하고 필요한 텍스트 파일 형식으로 기능 및 값을 준비해야 한다는 의미는 아닙니다.

Azure Storage에서 데이터를 읽어야 합니다. 데이터 내보내 기를 사용하여 Vowpal Wabbit에서 사용하기 위해 입력 파일을 Azure에 직접 저장할 수 없습니다. 형식에 몇 가지 추가 수정이 필요하기 때문입니다. 데이터가 올바른 형식인지 확인하고 Azure Blob Storage에 데이터를 업로드해야 합니다.

그러나 바로 가기로 SVMLight로 변환 모듈을 사용하여 SVMLight 형식 파일을 생성할 수 있습니다. 그런 다음, SVMLight 형식 파일을 Azure Blob Storage에 업로드하고 입력으로 사용하거나 Vowpal Wabbit 입력 파일 요구 사항을 준수하도록 파일을 약간 수정할 수 있습니다.

Vowpal Wabbit 데이터 형식을 사용하는 경우 열 형식이 필요하지 않아 스파스 데이터 사용 시 공간이 절약된다는 이점이 있습니다. 이 형식에 대한 자세한 내용은 Vowpal Wabbit wiki 페이지를 참조하세요.

Vowpal Wabbit 모델 만들기 및 학습

  1. Vowpal Wabbit 버전 7-4 학습 모듈을 실험에 추가합니다.

  2. 학습 데이터가 저장되는 계정을 지정합니다. 학습된 모델 및 해시 파일은 동일한 위치에 저장됩니다.

    • Azure Storage 계정 이름의 경우 Azure Storage 계정의 이름을 입력합니다.

    • Azure Storage 키의 경우 스토리지 계정에 액세스하기 위해 제공된 키를 복사하여 붙여넣습니다.

    키가 없는 경우 스토리지 액세스 키를 다시 생성하는 방법을 참조하세요.

  3. Azure 컨테이너 이름의 경우 모델 학습 데이터가 저장되는 지정된 Azure Storage 계정에 단일 컨테이너의 이름을 입력합니다. 계정 이름 또는 프로토콜 접두사는 입력하지 마세요.

    예를 들어 전체 컨테이너 경로와 이름이https://myaccount.blob.core.windows.net/vwmodelsvwmodels면 . 컨테이너 이름에 대한 자세한 내용은 컨테이너, Blob 및 메타데이터 이름 지정 및 참조를 참조하세요.

  4. VW 인수 텍스트 상자에 Vowpal Wabbit 실행 파일에 대한 명령줄 인수를 입력합니다.

    예를 들어 –l 을 추가하여 학습률을 지정하거나, -b 을 추가하여 해시 비트 수를 나타낼 수 있습니다.

    자세한 내용은 매개 변수 섹션을 참조하세요.

  5. 입력 VW 파일의 이름: 입력 데이터가 포함된 파일의 이름을 입력합니다. 파일은 이전에 지정된 스토리지 계정 및 컨테이너에 있는 Azure Blob Storage의 기존 파일이어야 합니다. 지원되는 형식 중 하나를 사용하여 파일을 준비해야 합니다.

  6. 읽을 수 있는 출력 모델(--readable_model) 파일의 이름: 학습된 모델을 저장할 파일의 이름을 입력합니다. 파일은 입력 파일과 동일한 스토리지 계정 및 컨테이너 내에 저장해야 합니다.

    이 인수는 VW 명령줄의 --readable_model 매개 변수에 해당합니다.

  7. 반전된 출력 해시(--invert_hash) 파일의 이름: 반전된 해시 함수를 저장할 파일의 이름을 입력합니다. 파일은 입력 파일과 동일한 스토리지 계정 및 컨테이너 내에 저장해야 합니다.

    이 인수는 VW 명령줄의 --invert_hash 매개 변수에 해당합니다.

  8. 파일 형식을 지정하세요. 학습 데이터가 사용하는 형식을 지정합니다. Vowpal Wabbit는 다음 두 가지 입력 파일 형식을 지원합니다.

    • 폭스바겐 은 Vowpal Wabbit에서 사용하는 내부 형식을 나타냅니다.

    • SVMLight는 다른 기계 학습 도구에서 사용되는 형식입니다.

  9. 실험을 다시 실행할 때마다 스토리지에서 데이터를 로드하지 않으려면 캐시된 결과 사용 옵션을 선택합니다. 다른 매개 변수가 변경되지 않고 유효한 캐시를 찾을 수 있다고 가정하면 Studio(클래식)는 캐시된 버전의 데이터를 사용합니다.

    이 옵션을 선택 취소하면 모듈은 항상 스토리지에서 데이터를 읽습니다.

  10. 실험을 실행합니다.

  11. 모델이 생성된 후 Vowpal Wabbit 버전 7-4 학습 출력을 마우스 오른쪽 단추 로 클릭하고 학습된 모델로 저장을 선택하여 나중에 모델을 다시 사용하고 다시 학습할 수 있습니다.

기존 Vowpal Wabbit 모델 재학습

Vowpal Wabbit는 기존 모델에 새 데이터를 추가하여 증분 학습을 지원합니다. 다음 두 가지 방법으로 재학습 위해 기존 모델을 가져올 수 있습니다.

  • 동일한 실험에서 다른 Vowpal Wabbit 버전 7-4 모듈의 출력을 사용합니다.

  • Studio(클래식)의 왼쪽 탐색 창에서 학습된 모델 그룹에서 저장된 모델을 찾아 실험으로 끌어옵니다.

  1. Vowpal Wabbit 버전 7-4 학습 모듈을 실험에 추가합니다.

  2. 이전에 학습된 모델을 Vowpal Wabbit 버전 7-4 학습의 입력 포트로 커넥트.

  3. Vowpal Wabbit 학습 버전 7-4속성 창에서 새 학습 데이터의 위치와 형식을 지정합니다.

  4. 사람이 읽을 수 있는 모델 출력 파일의 이름과 업데이트된 모델과 연결된 해시 파일의 다른 이름을 지정합니다.

    참고

    지정된 위치에 기존 Vowpal Wabbit 모델 또는 해시 파일이 있는 경우 새 학습된 모델에서 파일을 자동으로 덮어씁니다. 재학습 시 중간 모델을 유지하려면 스토리지 위치를 변경하거나 모델 파일의 로컬 복사본을 만들어야 합니다.

  5. 실험을 실행합니다.

  6. 모듈을 마우스 오른쪽 단추로 클릭하고 학습된 모델로 저장을 선택하여 Machine Learning 작업 영역에서 업데이트된 모델을 유지합니다. 새 이름을 지정하지 않은 경우 업데이트된 모델은 기존에 저장된 모델을 덮어씁니다.

Machine Learning에서 Vowpal Wabbit를 사용하는 방법에 대한 예제는 Azure AI 갤러리를 참조하세요.

  • Vowpal Wabbit 샘플

    이 실험에서는 VW 모델의 데이터 선제, 학습 및 운영화를 보여 줍니다.

또한 다음 리소스를 참조하세요.

기술 정보

이 섹션에는 구현 세부 정보, 팁, 자주 묻는 질문에 대한 대답이 포함되어 있습니다.

Vowpal Wabbit의 장점

Vowpal Wabbit은 n그램 등의 비선형 기능에 비해 학습 속도가 매우 빠릅니다.

Vowpal Wabbit은 SGD(추측 기울기 하강) 등의 온라인 학습 기술을 사용하여 한 번에 레코드 하나씩 모델을 맞춥니다. 따라서 원시 데이터에 대해 매우 빠르게 반복되며, 대부분의 다른 모델에 비해 적절한 예측자를 더 빠르게 개발할 수 있습니다. 또한 이 방식에서는 모든 학습 데이터를 메모리로 읽어 들이지 않아도 됩니다.

Vowpal Wabbit은 모든 데이터, 즉 텍스트 데이터뿐 아니라 다른 범주 변수도 해시로 변환합니다. 해시를 사용하는 경우 회귀 가중치 조회 효율성이 높아집니다. 효율적인 SGD에서는 이 조회의 효율성이 높아야 합니다.

학습하는 동안 모듈은 Azure용으로 개발된 Vowpal Wabbit 래퍼를 호출합니다. 학습 데이터는 계산을 실행하는 작업자 역할과 저장소 간의 높은 대역폭을 활용하여 Azure에서 블록으로 다운로드되고 VW 학습자에게 스트리밍됩니다. 결과 모델은 일반적으로 폭스 바겐에 의해 수행 내부 압축으로 인해 매우 컴팩트하다. 모델은 Machine Learning 다른 모델처럼 활용할 수 있는 실험 작업 영역으로 다시 복사됩니다.

지원되는/지원되지 않는 매개 변수

Machine Learning Studio(클래식)에서는 다음 명령줄 인수를 사용할 수 없습니다.

  • https://github.com/JohnLangford/vowpal_wabbit/wiki/Command-line-arguments에서 지정된 입출력 옵션

    이 속성은 이미 모듈에서 자동으로 구성되어 있습니다.

  • 또한 여러 출력을 생성하거나 여러 입력을 사용하는 옵션은 허용되지 않습니다. 여기에 포함 됩니다 --cbt하십시오 --lda, 및 --wap합니다.

  • 감독된 학습 알고리즘만 지원됩니다. 따라서 –active, --rank, --search 등의 옵션은 지원되지 않습니다.

위에서 설명한 인수 이외의 모든 인수를 사용할 수 있습니다.

전체 인수 목록은 Vowpal Wabbit wiki 페이지를 사용하세요.

제한

서비스의 목표가 숙련된 Vowpal Wabbit 사용자를 지원하기 때문에 입력 데이터는 다른 모듈에서 사용하는 데이터 세트 형식이 아니라 Vowpal Wabbit 원시 텍스트 형식을 사용하여 미리 준비해야 합니다.

학습 데이터는 Azure ML 작업 영역에서 데이터를 사용하는 대신 최대 성능 및 최소한의 구문 분석 오버헤드를 위해 Azure에서 직접 스트리밍됩니다. 이러한 이유로, VW 모듈과 Azure ML 다른 모듈 간의 상호 운용성은 제한적입니다.

모듈 매개 변수

Name 범위 Type 기본값 설명
Azure Storage 계정 이름 any String 없음 Azure 저장소 계정 이름을 입력합니다.
Azure Storage 키 any SecureString 없음 Azure 저장소 키를 입력합니다.
Azure 컨테이너 이름 any String 없음 Azure 컨테이너 이름을 입력합니다.
VW 인수 any String 없음 Vowpal Wabbit 인수를 지정합니다.

–f 인수는 지원되지 않습니다.
입력 VW 파일의 이름 any String 없음 Vowpal Wabbit 형식으로 입력 파일의 이름을 지정합니다.
읽기 가능 출력 모델(--readable_model) 파일의 이름 any String 지정하는 경우 읽기 가능 모델을 Azure 컨테이너로 다시 출력합니다.

이 인수는 선택 사항입니다.
반전된 출력 해시(--invert_hash) 파일의 이름 any String 지정하는 경우 반전된 해시 함수를 포함하는 파일을 Azure 컨테이너로 다시 출력합니다.

이 인수는 선택 사항입니다.
파일 형식 지정 VW

SVMLight
DataType VW 파일 형식에서 SVMLight 형식을 사용하는지 아니면 Vowpal Wabbit 형식을 사용하는지를 나타냅니다.

출력

Name 유형 Description
학습된 모델 ILearner 인터페이스 학습된 학습자입니다.

예외

예외 설명
오류 0001 데이터 세트의 지정된 열 중 하나 이상을 찾을 수 없으면 예외가 발생합니다.
오류 0003 하나 이상의 입력이 null이거나 비어 있으면 예외가 발생합니다.
오류 0004 매개 변수가 특정 값 이하이면 예외가 발생합니다.
오류 0017 지정한 열 중 하나 이상의 형식이 현재 모듈에서 지원되지 않으면 예외가 발생합니다.

Studio(클래식) 모듈과 관련된 오류 목록은 Machine Learning 오류 코드를 참조하세요.

API 예외 목록은 MACHINE LEARNING REST API 오류 코드를 참조하세요.

참고 항목

Text Analytics
기능 해싱
명명된 엔터티 인식
Vowpal Wabbit 7-4 모델 점수 매기기
Vowpal Wabbit 학습
전체 모듈 목록