explosion/spacy-transformers

🛸 Use pretrained transformers like BERT, XLNet and GPT-2 in spaCy

해결하는 문제

spaCy는 자연어 처리(NLP)를 위한 인기 있는 Python 라이브러리이지만, 자체적으로는 BERT, GPT-2, XLNet과 같은 transformer 모델을 포함하고 있지 않습니다. 이러한 사전 학습된 모델은 깊은 언어 이해력을 갖추고 있으며 많은 작업에서 최첨단 성능을 보여줍니다. spacy-transformers는 Hugging Face의 모든 transformer를 spaCy 파이프라인에 연결할 수 있게 하여 이러한 격차를 해소하므로, 모든 것을 처음부터 학습시킬 필요 없이 강력한 NLP 애플리케이션을 구축할 수 있습니다.

작동 방식

이 패키지는 Hugging Face의 transformers 라이브러리를 래핑하는 spaCy 구성 요소와 아키텍처를 제공합니다. spaCy 파이프라인에 transformer 구성 요소를 추가하면 사전 학습된 모델(예: BERT, RoBERTa, XLNet)이 로드되어 텍스트에 실행됩니다. 이 구성 요소는 transformer의 출력을 spaCy의 토큰화와 자동으로 정렬하고, 문맥화된 임베딩(contextual embeddings)을 Doc 객체에 저장합니다. 그런 다음 이러한 임베딩을 개체명 인식(NER)이나 텍스트 분류와 같은 다른 spaCy 구성 요소의 기능으로 사용할 수 있습니다. 학습은 spaCy v3의 구성 시스템을 사용하므로 다중 작업 학습을 쉽게 설정하고 실행할 수 있습니다. 즉, 여러 하위 작업의 그래디언트를 동일한 transformer 모델로 역전파할 수 있습니다. 또한 이 패키지는 직렬화를 처리하므로 다른 spaCy 파이프라인과 마찬가지로 모델을 저장하고 패키징할 수 있습니다.

대상 사용자

이미 spaCy를 사용 중이며 별도의 프레임워크를 번거롭게 다루지 않고 최신 transformer 모델을 파이프라인에 통합하려는 개발자 및 NLP 실무자. NER, 텍스트 분류 또는 풍부한 기능이 필요한 사용자 지정 spaCy 구성 요소와 같이 문맥화된 단어 표현의 이점을 얻는 작업에 특히 유용합니다. spaCy의 학습 워크플로와 통합되어 있으므로 자체 데이터로 transformer를 미세 조정하려는 팀에게도 적합합니다.

주요 특징

  • 다양한 사전 학습된 transformer(BERT, RoBERTa, XLNet 등)를 spaCy 내에서 직접 사용 가능.
  • 학습 및 평가를 위한 spaCy v3 구성 시스템과의 원활한 통합.
  • 다중 작업 학습: 하나의 transformer가 여러 하위 구성 요소에 기능을 제공 가능.
  • transformer 하위 단어와 spaCy 토큰 간의 자동 토큰화 정렬.
  • Doc 객체에 저장되는 transformer 출력을 사용자 지정 가능.
  • 직렬화 및 모델 패키징에 대한 기본 지원.
  • Python 3.6+, PyTorch 1.5+, spaCy v3+ 필요.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트