A Thinc é uma biblioteca leve de aprendizado profundo que oferece uma API elegante, verificada por tipo e programação funcional para compor modelos , com suporte para camadas definidas em outras estruturas como Pytorch, Tensorflow e MxNet . Você pode usar o Thinc como uma camada de interface, um kit de ferramentas independente ou uma maneira flexível de desenvolver novos modelos. As versões anteriores de Thinc estão concorrendo silenciosamente em produção em milhares de empresas, via Spacy e Prodigy. Escrevemos a nova versão para permitir que os usuários componham, configurem e implantem modelos personalizados criados com sua estrutura favorita.
mypy
. A Thinc é compatível com o Python 3.6+ e é executada no Linux , MacOS e Windows . Os lançamentos mais recentes com rodas binárias estão disponíveis na PIP. Antes de instalar o Thinc e suas dependências, verifique se o seu pip
, setuptools
e wheel
estão atualizados. Para os lançamentos mais recentes, recomenda -se PIP 19.3 ou mais recente.
pip install -U pip setuptools wheel
pip install thinc
Consulte os documentos de instalação estendidos para obter detalhes sobre dependências opcionais para diferentes back -ends e GPU. Você também pode configurar a verificação do tipo estático para aproveitar o sistema de tipos de Thinc.
️ Se você instalou o Pytorch e estiver usando o Python 3.7+, desinstale asdataclasses
do pacote compip uninstall dataclasses
, pois pode ter sido instalado por Pytorch e é incompatível com o Python 3.7+.
Consulte também o diretório /examples
e a documentação de uso para obter mais exemplos. A maioria dos exemplos são notebooks Jupyter - para iniciá -los no Google Colab (com suporte à GPU!) Clique no botão ao lado do nome do notebook.
Caderno | Descrição |
---|---|
intro_to_thinc | Tudo o que você precisa saber para começar. Compondo e treinando um modelo nos dados do MNIST, usando arquivos de configuração, registrando funções personalizadas e envolvendo os modelos Pytorch, Tensorflow e MXNET. |
transformers_tagger_bert | Como usar a Thinc, transformers e Pytorch para treinar um tagger de parte da fala. Da definição e configuração do modelo ao loop de treinamento. |
pos_tagger_basic_cnn | Implementando e treinando uma CNN básica para o modelo de marcação de parte da fala sem dependências externas e usando diferentes níveis do sistema de configuração de Thinc. |
parallel_training_ray | Como configurar o treinamento síncrono e assíncrono de servidor de parâmetros com Thinc e Ray. |
Ver mais →
Documentação | Descrição |
---|---|
Introdução | Tudo o que você precisa saber. |
Conceito e design | O modelo conceitual de Thinc e como ele funciona. |
Definindo e usando modelos | Como compor modelos e atualizar o estado. |
Sistema de configuração | Sistema de configuração e registro de função de Thinc. |
Integração de Pytorch, Tensorflow & MXNET | Interoperabilidade com estruturas de aprendizado de máquina |
API de camadas | Camadas de pesos, transformações, combinadores e invólucros. |
Verificação de tipo | Verifique as definições do seu modelo e muito mais. |
Módulo | Descrição |
---|---|
thinc.api | API voltada para o usuário. Todas as classes e funções devem ser importadas daqui. |
thinc.types | Tipos personalizados e dataclasses. |
thinc.model | A classe Model . Todos os modelos de tinta são uma instância (não uma subclasse) do Model . |
thinc.layers | As camadas. Cada camada é implementada em seu próprio módulo. |
thinc.shims | Interface para modelos externos implementados em pytorch, tensorflow etc. |
thinc.loss | Funções para calcular perdas. |
thinc.optimizers | Funções para criar otimizadores. Atualmente, suporta SGD "Vanilla", Adam e Radam. |
thinc.schedules | Geradores para taxas, horários, decaimentos ou séries diferentes. |
thinc.backends | Back -end para numpy e cupy . |
thinc.config | Configurar o sistema de análise e validação e função do Sistema de Registro. |
thinc.util | Utilitários e funções auxiliares. |
Thinc usa black
para formatação automática, flake8
para linha e mypy
para verificação do tipo. Todo o código é escrito compatível com o Python 3.6+ , com dicas de tipo sempre que possível. Consulte a referência de tipo para obter mais detalhes sobre os tipos personalizados de Thinc.
Construir Thinc da fonte requer as dependências completas listadas no requirements.txt
a serem instaladas. Você também precisará de um compilador para construir as extensões 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 .
Como alternativa, instale no modo editável:
pip install -r requirements.txt
pip install --no-build-isolation --editable .
Ou definindo PYTHONPATH
:
export PYTHONPATH= ` pwd `
pip install -r requirements.txt
python setup.py build_ext --inplace
Thinc vem com uma extensa suíte de teste. O seguinte deve passar e não relatar nenhum aviso ou erro:
python -m pytest thinc # test suite
python -m mypy thinc # type checks
python -m flake8 thinc # linting
Para visualizar a cobertura do teste, você pode executar python -m pytest thinc --cov=thinc
. Nosso objetivo é uma cobertura de teste de 100%. Isso não significa que escrevemos meticulosamente testes para cada linha - ignoramos blocos que não são relevantes ou difíceis de testar e garantir que os testes executem todos os caminhos de código.