Vowpal Wabbit 버전 7-4 모델 학습

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

범주: Text Analytics

참고

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

이 콘텐츠는 Studio (클래식)에만 해당 됩니다. Azure Machine Learning 디자이너에는 비슷한 끌어서 놓기 모듈이 추가 되었습니다. 이 문서에서는 두 가지 버전을 비교 하는방법에 대해 자세히 알아보세요.

모듈 개요

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

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

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

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

참고

Azure 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을 사용할 수 있습니다.

Azure 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 format 파일을 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/vwmodels 를 입력 해야 vwmodels 합니다. 컨테이너 이름에 대 한 자세한 내용은 컨테이너, blob 및 메타 데이터 이름 지정 및 참조를 참조 하세요.

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

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

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

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

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

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

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

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

  8. 파일 형식: 학습 데이터에 사용 되는 형식을 지정 하십시오. Vowpal Wabbit는 다음과 같은 두 입력 파일 형식을 지원 합니다.

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

예제

기계 학습에서 Vowpal Wabbit를 사용 하는 방법에 대 한 예는 Azure AI Gallery를 참조 하세요.

  • Vowpal Wabbit 샘플

    이 실험에서는 VW 모델의 데이터를 미리 설명 하 고 교육 및 운영 화 합니다.

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

기술 정보

이 섹션에는 구현 세부 정보, 팁 및 질문과 대답 (faq)이 포함 되어 있습니다.

Vowpal Wabbit의 장점

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

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

Vowpal Wabbit은 모든 데이터, 즉 텍스트 데이터뿐 아니라 다른 범주 변수도 해시로 변환합니다. 해시를 사용 하면 회귀 가중치를 보다 효율적으로 조회할 수 있습니다 .이는 효과적인 추계 그라데이션 디센더에 매우 중요 합니다.

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

지원 되거나 지원 되지 않는 매개 변수

Azure 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에서 직접 스트리밍됩니다. 이러한 이유로 Azure ML의 VW 모듈과 기타 모듈 간에는 상호 운용성이 제한 됩니다.

모듈 매개 변수

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 Type 설명
학습된 모델 ILearner 인터페이스 학습된 학습자입니다.

예외

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

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

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

참고 항목

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