Thinc는 Pytorch, Tensorflow 및 MXNet 과 같은 다른 프레임 워크에 정의 된 층을 지원하는 모델을 구성하기 위해 우아하고 유형 확인 된 기능 프로그래밍 API를 제공하는 경량 딥 러닝 라이브러리 입니다. Thinc을 인터페이스 계층, 독립형 툴킷 또는 새로운 모델을 개발하는 유연한 방법으로 사용할 수 있습니다. 이전 버전의 Thinc는 Spacy와 Prodigy를 통해 수천 개의 회사에서 조용히 생산을 시작했습니다. 우리는 사용자가 좋아하는 프레임 워크로 구축 된 사용자 정의 모델을 작성, 구성 및 배포 할 수 있도록 새 버전을 작성했습니다.
mypy
플러그인으로 모델 정의를 유형 확인하십시오 . Thinc는 Python 3.6+ 와 호환되며 Linux , MacOS 및 Windows 에서 실행됩니다. 이진 휠이있는 최신 릴리스는 PIP에서 제공됩니다. Thinc 및 그 종속성을 설치하기 전에 pip
, setuptools
및 wheel
최신 상태인지 확인하십시오. 가장 최근의 릴리스의 경우 PIP 19.3 또는 새로운 것이 권장됩니다.
pip install -U pip setuptools wheel
pip install thinc
다른 백엔드 및 GPU에 대한 선택적 종속성에 대한 자세한 내용은 확장 설치 문서를 참조하십시오. Thinc의 유형 시스템을 활용하기 위해 정적 유형 검사를 설정할 수도 있습니다.
켈 Pytorch를 설치하고 Python 3.7+를 사용하는 경우pip uninstall dataclasses
로 패키지dataclasses
제거하십시오.
또한 더 많은 예제는 /examples
디렉토리 및 사용법 문서를 참조하십시오. 대부분의 예제는 Jupyter Notebooks - Google Colab에서 시작하려면 (GPU 지원 포함!) 노트북 이름 옆의 버튼을 클릭하십시오.
공책 | 설명 |
---|---|
intro_to_thinc | 시작하기 위해 알아야 할 모든 것. 구성 파일을 사용하여 MNIST 데이터에 대한 모델을 작성하고 교육하고 사용자 지정 기능 등록 및 Pytorch, TensorFlow 및 MXNET 모델을 래핑합니다. |
transformers_tagger_bert | Thinc, transformers 및 Pytorch를 사용하여 일부 연설 태그를 훈련시키는 방법. 모델 정의 및 구성에서 교육 루프까지. |
pos_tagger_basic_cnn | 외부 종속성없이 부품 태그 태깅 모델을위한 기본 CNN을 구현하고 교육합니다. |
parallel_training_ray | Thinc 및 Ray와 동기 및 비동기 파라미터 서버 교육을 설정하는 방법. |
더보기 →
선적 서류 비치 | 설명 |
---|---|
소개 | 당신이 알아야 할 모든 것. |
개념 및 디자인 | Thinc의 개념적 모델과 작동 방식. |
모델 정의 및 사용 | 모델을 작성하고 상태를 업데이트하는 방법. |
구성 시스템 | Thinc의 구성 시스템 및 기능 레지스트리. |
Pytorch, Tensorflow & MXNet 통합 | 기계 학습 프레임 워크와의 상호 운용성 |
레이어 API | 무게 층, 변형, 콤비네이터 및 포장지. |
유형 확인 | 모델 정의 등을 확인하십시오. |
기준 치수 | 설명 |
---|---|
thinc.api | 사용자를 향한 API. 모든 클래스와 기능은 여기에서 가져와야합니다. |
thinc.types | 사용자 정의 유형 및 데이터 클래스. |
thinc.model | Model 클래스. 모든 Thinc 모델은 Model 의 인스턴스 (서브 클래스가 아님)입니다. |
thinc.layers | 레이어. 각 레이어는 자체 모듈로 구현됩니다. |
thinc.shims | Pytorch, Tensorflow 등에서 구현 된 외부 모델의 인터페이스. |
thinc.loss | 손실을 계산하는 기능. |
thinc.optimizers | 최적화를 만들기위한 기능. 현재 "바닐라"SGD, Adam 및 Radam을 지원합니다. |
thinc.schedules | 다른 요금, 일정, 붕괴 또는 시리즈에 대한 생성기. |
thinc.backends | numpy and cupy 에 대한 백엔드. |
thinc.config | 구문 분석 및 검증 및 기능 레지스트리 시스템을 구성하십시오. |
thinc.util | 유틸리티 및 도우미 기능. |
Thinc는 자동 형성에 black
, Linting의 경우 flake8
및 Type Checking에는 mypy
사용합니다. 모든 코드는 Python 3.6+ 와 호환되며 가능한 한 유형 힌트가 있습니다. Thinc의 사용자 정의 유형에 대한 자세한 내용은 유형 참조를 참조하십시오.
소스에서 Thinc를 구축하려면 requirements.txt
에 나열된 전체 종속성이 설치되어야합니다. 또한 C 확장을 구축하려면 컴파일러가 필요합니다.
git clone https://github.com/explosion/thinc
cd thinc
python -m venv .env
source .env/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements.txt
pip install --no-build-isolation .
또는 편집 가능한 모드로 설치하십시오.
pip install -r requirements.txt
pip install --no-build-isolation --editable .
또는 PYTHONPATH
설정하여 :
export PYTHONPATH= ` pwd `
pip install -r requirements.txt
python setup.py build_ext --inplace
Thinc에는 광범위한 테스트 스위트가 있습니다. 다음은 모든 패스와 경고 나 오류를보고하지 않아야합니다.
python -m pytest thinc # test suite
python -m mypy thinc # type checks
python -m flake8 thinc # linting
테스트 커버리지를 보려면 python -m pytest thinc --cov=thinc
실행할 수 있습니다. 우리는 100% 테스트 범위를 목표로합니다. 그렇다고해서 모든 한 줄에 대한 테스트를 세 심하게 작성한다는 의미는 아닙니다. 테스트가 관련이 없거나 테스트하기 어려운 블록을 무시하고 테스트가 모든 코드 경로를 실행하는지 확인합니다.