Vowpal Wabbit 모델 학습
Vowpal Wabbit를 사용하여 기계 학습 모델을 만들기 위해 이 문서에서는 Azure Machine Learning 디자이너에서 Vowpal Wabbit 모델 학습 구성 요소를 사용하는 방법을 설명합니다.
기계 학습에 Vowpal Wabbit를 사용하려면 Vowpal Wabbit 요구 사항에 따라 입력 형식을 지정하고 필요한 형식으로 데이터를 준비합니다. 이 구성 요소를 사용하여 Vowpal Wabbit 명령줄 인수를 지정합니다.
파이프라인이 실행되면 Vowpal Wabbit 인스턴스가 지정된 데이터와 함께 실험 런타임에 로드됩니다. 학습이 완료되면 모델이 작업 영역으로 다시 직렬화됩니다. 모델을 즉시 사용하여 데이터를 채점할 수 있습니다.
새 데이터에 대한 기존 모델을 증분 학습하려면 저장된 모델을 Train Vowpal Wabbit Model의 미리 학습된 Vowpal Wabbit 모델 입력 포트에 연결하고 새 데이터를 다른 입력 포트에 추가합니다.
Vowpal Wabbit란?
VW (Vowpal Wabbit)는 Yahoo!에서 분산 컴퓨팅을 위해 개발된 고속 병렬 기계 학습 프레임워크입니다 연구. 나중에 Windows로 이식되었으며 병렬 아키텍처에서 과학 컴퓨팅을 위해 John Langford(Microsoft Research)에 의해 조정되었습니다.
기계 학습에 중요한 Vowpal Wabbit의 기능에는 연속 학습(온라인 학습), 차원 감소 및 대화형 학습이 포함됩니다. Vowpal Wabbit는 모델 데이터를 메모리에 맞출 수 없는 문제 해결 방법이기도 합니다.
Vowpal Wabbit의 기본 사용자는 이전에 분류, 회귀, 토픽 모델링 또는 행렬 팩터리화와 같은 기계 학습 작업에 프레임워크를 사용한 데이터 과학자입니다. Vowpal Wabbit용 Azure 래퍼는 온-프레미스 버전과 매우 유사한 성능 특성을 가지므로 Vowpal Wabbit의 강력한 기능과 네이티브 성능을 사용하고 학습된 모델을 운영형 서비스로 쉽게 게시할 수 있습니다.
기능 해싱 구성 요소에는 해시 알고리즘을 사용하여 텍스트 데이터 세트를 이진 기능으로 변환할 수 있는 Vowpal Wabbit에서 제공하는 기능도 포함되어 있습니다.
Vowpal Wabbit 모델을 구성하는 방법
이 섹션에서는 새 모델을 학습시키는 방법과 기존 모델에 새 데이터를 추가하는 방법을 설명합니다.
디자이너의 다른 구성 요소와 달리 이 구성 요소는 구성 요소 매개 변수를 지정하고 모델을 학습합니다. 기존 모델이 있는 경우 선택적 입력으로 추가하여 모델을 증분 방식으로 학습시킬 수 있습니다.
입력 데이터 준비
이 구성 요소를 사용하여 모델을 학습하려면 입력 데이터 세트는 SVMLight 또는 VW의 두 가지 지원되는 형식 중 하나에서 단일 텍스트 열로 구성되어야 합니다. 이는 Vowpal Wabbit이 텍스트 데이터만 분석한다는 것을 의미하지는 않으며, 기능과 값만 필요한 텍스트 파일 형식으로 준비해야 합니다.
두 종류의 데이터 세트, 파일 데이터 세트 또는 테이블 형식 데이터 세트에서 데이터를 읽을 수 있습니다. 이러한 데이터 세트는 모두 SVMLight 또는 VW 형식이어야 합니다. Vowpal Wabbit 데이터 형식은 스파스 데이터를 처리할 때 공간을 절약하는 열 형식이 필요하지 않다는 장점이 있습니다. 이 형식에 대한 자세한 내용은 Vowpal Wabbit 위키 페이지를 참조 하세요.
Vowpal Wabbit 모델 만들기 및 학습
Vowpal Wabbit 모델 학습 구성 요소를 실험에 추가합니다.
학습 데이터 세트를 추가하고 학습 데이터에 연결합니다. 학습 데이터 세트가 학습 데이터 파일이 포함된 디렉터리인 경우 학습 데이터 파일의 이름을 사용하여 학습 데이터 파일 이름을 지정합니다. 학습 데이터 세트가 단일 파일인 경우 학습 데이터 파일의 이름을 비워 둡니다.
VW 인수 텍스트 상자에 Vowpal Wabbit 실행 파일에 대한 명령줄 인수를 입력합니다.
예를 들어
–l
을 추가하여 학습률을 지정하거나,-b
을 추가하여 해시 비트 수를 나타낼 수 있습니다.자세한 내용은 Vowpal Wabbit 매개 변수 섹션을 참조하세요.
학습 데이터 파일의 이름: 입력 데이터가 포함된 파일의 이름을 입력합니다. 이 인수는 학습 데이터 세트가 디렉터리인 경우에만 사용됩니다.
파일 형식 지정: 학습 데이터가 사용하는 형식을 나타냅니다. Vowpal Wabbit는 다음 두 가지 입력 파일 형식을 지원합니다.
- VW는 Vowpal Wabbit에서 사용되는 내부 형식을 나타냅니다. 자세한 내용은 Vowpal Wabbit wiki 페이지를 참조하세요.
- SVMLight 는 다른 기계 학습 도구에서 사용하는 형식입니다.
출력 읽을 수 있는 모델 파일: 구성 요소가 읽을 수 있는 모델을 작업 기록에 저장하도록 하려면 이 옵션을 선택합니다. 이 인수는 VW 명령줄의
--readable_model
매개 변수에 해당합니다.반전된 출력 해시 파일: 구성 요소에서 반전된 해시 알고리즘을 작업 기록의 한 파일에 저장하려면 이 옵션을 선택합니다. 이 인수는 VW 명령줄의
--invert_hash
매개 변수에 해당합니다.파이프라인을 제출합니다.
기존 Vowpal Wabbit 모델 재학습
Vowpal Wabbit는 기존 모델에 새 데이터를 추가하여 증분 학습을 지원합니다. 재학습을 위해 기존 모델을 가져오는 방법에는 두 가지가 있습니다.
동일한 파이프라인에서 다른 학습 Vowpal Wabbit 모델 구성 요소의 출력을 사용합니다.
디자이너의 왼쪽 탐색 창에서 데이터 세트 범주에 저장된 모델을 찾아 파이프라인으로 끌어 놓습니다.
Vowpal Wabbit 모델 학습 구성 요소를 파이프라인에 추가합니다.
이전에 학습된 모델을 구성 요소의 미리 학습된 Vowpal Wabbit 모델 입력 포트에 연결합니다.
새 학습 데이터를 구성 요소의 학습 데이터 입력 포트에 연결합니다.
Vowpal Wabbit 모델 학습의 매개 변수 창에서 새 학습 데이터의 형식과 입력 데이터 세트가 디렉터리인 경우 학습 데이터 파일 이름을 지정합니다.
작업 기록에 해당 파일을 저장해야 하는 경우 읽을 수 있는 출력 모델 파일을 선택하고 반전된 출력 해시 파일 옵션을 선택합니다.
파이프라인을 제출합니다.
구성 요소를 선택하고 오른쪽 창의 출력 + 로그 탭에서 데이터 세트 등록을 선택하여 Azure Machine Learning 작업 영역에서 업데이트된 모델을 유지합니다. 새 이름을 지정하지 않으면 업데이트된 모델이 기존 저장된 모델을 덮어씁니다.
결과
- 모델에서 점수를 생성하려면 Vowpal Wabbit 모델 점수 매기기를 사용합니다.
참고 항목
디자이너에서 학습된 모델을 배포해야 하는 경우 모델 점수 매기기 대신 Vowpal wabbit 모델 점수 매기기가 유추 파이프라인에서 웹 서비스 출력 구성 요소의 입력에 연결되어 있는지 확인합니다.
기술 정보
이 섹션에는 구현 세부 정보, 팁, 자주 묻는 질문에 대한 답변이 포함되어 있습니다.
Vowpal Wabbit의 장점
Vowpal Wabbit는 n-gram과 같은 비선형 기능에 대해 매우 빠른 학습을 제공합니다.
Vowpal Wabbit는 SGD(확률 그라데이션 하강)와 같은 온라인 학습 기술을 사용하여 모델에 한 번에 하나의 레코드에 맞습니다. 따라서 원시 데이터를 매우 빠르게 반복하고 대부분의 다른 모델보다 더 빠르게 좋은 예측자를 개발할 수 있습니다. 또한 이 방법을 사용하면 모든 학습 데이터를 메모리로 읽을 필요가 없습니다.
Vowpal Wabbit은 모든 데이터를 텍스트 데이터뿐만 아니라 다른 범주 변수로 해시로 변환합니다. 해시를 사용하면 회귀 가중치를 보다 효율적으로 조회할 수 있으며, 이는 효과적인 확률 그라데이션 하강에 매우 중요합니다.
지원되는 매개 변수 및 지원되지 않는 매개 변수
이 섹션에서는 Azure Machine Learning 디자이너에서 Vowpal Wabbit 명령줄 매개 변수에 대한 지원을 설명합니다.
일반적으로 제한된 인수 집합을 제외한 모든 인수가 지원됩니다. 인수의 전체 목록은 Vowpal Wabbit 위키 페이지를 사용합니다.
지원되지 않는 매개 변수는 다음과 같습니다.
에 지정된 입력/출력 옵션 https://github.com/JohnLangford/vowpal_wabbit/wiki/Command-line-arguments
이러한 속성은 이미 구성 요소에서 자동으로 구성되어 있습니다.
또한 여러 출력을 생성하거나 여러 입력을 사용하는 옵션은 허용되지 않습니다. 포함
--cbt
,--lda
및--wap
.감독된 학습 알고리즘만 지원됩니다. 따라서
–active
,--rank
,--search
등의 옵션은 지원되지 않습니다.
제한 사항
서비스의 목표가 숙련된 Vowpal Wabbit 사용자를 지원하기 때문에 입력 데이터는 다른 구성 요소에서 사용하는 데이터 세트 형식이 아니라 Vowpal Wabbit 원시 텍스트 형식을 사용하여 미리 준비해야 합니다.
다음 단계
Azure Machine Learning에서 사용 가능한 구성 요소 집합을 참조하세요.