Thinc es una biblioteca de aprendizaje profundo liviano que ofrece una API elegante, controlada por el tipo de programación funcional para componer modelos , con soporte para capas definidas en otros marcos como Pytorch, TensorFlow y MXNet . Puede usar Thinc como una capa de interfaz, un kit de herramientas independiente o una forma flexible de desarrollar nuevos modelos. Las versiones anteriores de Thinc se han ejecutado en silencio en la producción en miles de empresas, a través de Spacy y Prodigy. Escribimos la nueva versión para permitir que los usuarios compongan, configuren e implementen modelos personalizados creados con su marco favorito.
mypy . Thinc es compatible con Python 3.6+ y se ejecuta en Linux , MacOS y Windows . Los últimos lanzamientos con ruedas binarias están disponibles en PIP. Antes de instalar Thinc y sus dependencias, asegúrese de que su pip , setuptools y wheel estén actualizados. Para los lanzamientos más recientes, se recomienda PIP 19.3 o más nuevo.
pip install -U pip setuptools wheel
pip install thincConsulte los documentos de instalación extendidos para obtener detalles sobre dependencias opcionales para diferentes backends y GPU. También es posible que desee configurar la verificación de tipo estático para aprovechar el sistema de tipos de Thinc.
️ Si ha instalado Pytorch y está utilizando Python 3.7+, desinstale el paquetedataclassesconpip uninstall dataclasses, ya que Pytorch lo ha instalado y es incompatible con Python 3.7+.
Consulte también el directorio de /examples y la documentación de uso para obtener más ejemplos. La mayoría de los ejemplos son los cuadernos Jupyter: para iniciarlos en Google Colab (¡con soporte de GPU!) Haga clic en el botón junto al nombre del cuaderno.
| Computadora portátil | Descripción |
|---|---|
intro_to_thinc | Todo lo que necesitas saber para comenzar. Componer y capacitar un modelo en los datos MNIST, utilizando archivos de configuración, registrar funciones personalizadas y envolver los modelos Pytorch, TensorFlow y MXNET. |
transformers_tagger_bert | Cómo usar Thinc, transformers y Pytorch para entrenar a un etiquetador de parte de voz. Desde la definición del modelo y la configuración hasta el bucle de entrenamiento. |
pos_tagger_basic_cnn | Implementación y capacitación de un CNN básico para el modelo de etiquetado de parte de voz sin dependencias externas y utilizando diferentes niveles del sistema de configuración de Thinc. |
parallel_training_ray | Cómo configurar el entrenamiento de servidor de parámetros sincrónicos y asincrónicos con Thinc y Ray. |
Ver más →
| Documentación | Descripción |
|---|---|
| Introducción | Todo lo que necesitas saber. |
| Concepto y diseño | El modelo conceptual de Thinc y cómo funciona. |
| Definir y usar modelos | Cómo componer modelos y actualizar el estado. |
| Sistema de configuración | Registro de funciones y sistema de configuración de Thinc. |
| Integración de Pytorch, TensorFlow y MXNet | Interoperabilidad con marcos de aprendizaje automático |
| API de capas | Peso capas, transformaciones, combinadores y envoltorios. |
| Tipo de comprobación | Vuelva a verificar las definiciones de su modelo y más. |
| Módulo | Descripción |
|---|---|
thinc.api | API orientada al usuario. Todas las clases y funciones deben importarse desde aquí. |
thinc.types | Tipos personalizados y dataclasses. |
thinc.model | La clase Model . Todos los modelos Thinc son una instancia (no una subclase) de Model . |
thinc.layers | Las capas. Cada capa se implementa en su propio módulo. |
thinc.shims | Interfaz para modelos externos implementados en Pytorch, TensorFlow, etc. |
thinc.loss | Funciones para calcular las pérdidas. |
thinc.optimizers | Funciones para crear optimizadores. Actualmente es compatible con el SGD "Vanilla", Adam y Radam. |
thinc.schedules | Generadores para diferentes tarifas, horarios, descomposiciones o series. |
thinc.backends | Backends para numpy y cupy . |
thinc.config | Configuración del sistema de registro de validación y validación y función. |
thinc.util | Utilidades y funciones auxiliares. |
Thinc usa black para formateo automático, flake8 para pelusas y mypy para comprobación de tipo. Todo el código es compatible con Python 3.6+ , con tipos de tipos siempre que sea posible. Consulte la referencia de tipo para obtener más detalles sobre los tipos personalizados de Thinc.
La construcción de Thinc a partir de la fuente requiere las dependencias completas que se enumeran en requirements.txt para instalar. También necesitará un compilador para construir las extensiones 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 .Alternativamente, instale en modo editable:
pip install -r requirements.txt
pip install --no-build-isolation --editable . O estableciendo PYTHONPATH :
export PYTHONPATH= ` pwd `
pip install -r requirements.txt
python setup.py build_ext --inplaceThinc viene con una extensa suite de prueba. Los siguientes deben pasar y no informar ninguna advertencia o error:
python -m pytest thinc # test suite
python -m mypy thinc # type checks
python -m flake8 thinc # linting Para ver la cobertura de prueba, puede ejecutar python -m pytest thinc --cov=thinc . Apuntamos a una cobertura de prueba del 100%. Esto no significa que escribamos meticulosamente las pruebas para cada línea: ignoramos bloques que no son relevantes o difíciles de probar y nos aseguramos de que las pruebas ejecuten todas las rutas de código.