Lingvo est un cadre pour construire des réseaux de neurones dans TensorFlow, en particulier les modèles de séquence.
Une liste de publications utilisant Lingvo peut être trouvée ici.
| Version PYPI | Commettre |
|---|---|
| 0.12.4 | - |
| 0.11.0 | 6FAE1007756F54BEACD5C454959F20B33FD65E2 |
| 0.10.0 | 075fd1d88fa6f92681f58a2383264337d0e737ee |
| 0.9.1 | C1124C5AA7AF13D2DD2B6D43293C8CA6D022B008 |
| 0.9.0 | F826E99803D1B51DCCBBBED1EF857BA48A2BBEFE |
| Version PYPI | Commettre |
|---|---|
| 0.8.2 | 93E123C6788E934E6B7B1FD8570371BECF1E92E |
| 0.7.2 | B05642FE386EE79E0D88AA083565C9A93428519E |
Les détails des versions plus anciennes ne sont pas disponibles.
Remarque: Ce n'est pas une liste complète. Les versions de Lingvo n'offrent aucune garantie concernant la compatibilité vers l'arrière.
Rien ici.
beam_done supplémentaire.done_hyps . abc.ABCMeta devraient désormais étendre à la place base_layer.ABCLayerMeta .__init__ soulève maintenant une erreur.base_layer.initializer a été supprimé. Les sous-classes n'ont plus besoin de décorer leur fonction __init__ .__init__ ou _CreateLayerVariables soulève désormais une erreur.__init__ . Refactor en déplaçant la création de variables et l'accès à _CreateLayerVariables . La portée de la variable est définie automatiquement en fonction du nom de la couche dans _CreateLayerVariables .Les détails des versions plus anciennes ne sont pas disponibles.
Il existe deux façons de configurer Lingvo: installer une version fixe via PIP, ou cloner le référentiel et le construire avec Bazel. Les configurations Docker sont fournies pour chaque cas.
Si vous souhaitez simplement utiliser le cadre tel quel, il est plus facile de l'installer via PIP. Cela permet de développer et de former des modèles personnalisés en utilisant une version congelée du framework Lingvo. Cependant, il est difficile de modifier le code Framework ou d'implémenter de nouveaux opérations personnalisées.
Si vous souhaitez développer davantage le cadre et potentiellement contribuer aux demandes de traction, vous devez éviter d'utiliser PIP et cloner le référentiel à la place.
pépin:
Le package Lingvo PIP peut être installé avec pip3 install lingvo .
Voir le CodeLab pour savoir comment démarrer avec le package PIP.
À partir de sources:
Les conditions préalables sont:
C++ (seul G ++ 7.3 est officiellement soutenu), etReportez-vous à Docker / Dev.Dockerfile pour un ensemble d'exigences de travail.
git clone le référentiel, puis utilisez Bazel pour construire et exécuter directement des cibles. Les commandes python -m module dans le CodeLab doivent être mappées sur les commandes bazel run .
docker:
Les configurations Docker sont disponibles pour les deux situations. Les instructions peuvent être trouvées dans les commentaires en haut de chaque fichier.
Comment installer docker.
pépin:
mkdir -p /tmp/mnist
python3 -m lingvo.tools.keras2ckpt --dataset=mnistBazel:
mkdir -p /tmp/mnist
bazel run -c opt //lingvo/tools:keras2ckpt -- --dataset=mnist Les fichiers suivants seront créés dans /tmp/mnist :
mnist.data-00000-of-00001 : 53 Mo.mnist.index : 241 octets. pépin:
cd /tmp/mnist
curl -O https://raw.githubusercontent.com/tensorflow/lingvo/master/lingvo/tasks/image/params/mnist.py
python3 -m lingvo.trainer --run_locally=cpu --mode=sync --model=mnist.LeNet5 --logdir=/tmp/mnist/logBazel:
(cpu) bazel build -c opt //lingvo:trainer
(gpu) bazel build -c opt --config=cuda //lingvo:trainer
bazel-bin/lingvo/trainer --run_locally=cpu --mode=sync --model=image.mnist.LeNet5 --logdir=/tmp/mnist/log --logtostderrAprès environ 20 secondes, la perte devrait chuter en dessous de 0,3 et un point de contrôle sera enregistré, comme ci-dessous. Tuez l'entraîneur avec Ctrl + c.
trainer.py:518] step: 205, steps/sec: 11.64 ... loss:0.25747201 ...
checkpointer.py:115] Save checkpoint
checkpointer.py:117] Save checkpoint done: /tmp/mnist/log/train/ckpt-00000205
Certains artefacts seront produits dans /tmp/mnist/log/control :
params.txt : hyper-paramètres.model_analysis.txt : tailles de modèle pour chaque couche.train.pbtxt : la formation tf.GraphDef .events.* : un fichier d'événements Tensorboard. Ainsi que dans /tmp/mnist/log/train :
checkpoint : un fichier texte contenant des informations sur les fichiers de point de contrôle.ckpt-* : Les fichiers de point de contrôle.Maintenant, évaluons le modèle sur l'ensemble de données "Test". Dans la configuration de formation normale, le formateur et l'évaluer doivent être exécutés en même temps que deux processus distincts.
pépin:
python3 -m lingvo.trainer --job=evaler_test --run_locally=cpu --mode=sync --model=mnist.LeNet5 --logdir=/tmp/mnist/logBazel:
bazel-bin/lingvo/trainer --job=evaler_test --run_locally=cpu --mode=sync --model=image.mnist.LeNet5 --logdir=/tmp/mnist/log --logtostderrTuez le travail avec Ctrl + C lorsqu'il commence à attendre un nouveau point de contrôle.
base_runner.py:177] No new check point is found: /tmp/mnist/log/train/ckpt-00000205
La précision d'évaluation se trouve légèrement plus tôt dans les journaux.
base_runner.py:111] eval_test: step: 205, acc5: 0.99775392, accuracy: 0.94150388, ..., loss: 0.20770954, ...
Pour exécuter un modèle plus élaboré, vous aurez besoin d'un cluster avec des GPU. Veuillez vous référer à third_party/py/lingvo/tasks/mt/README.md pour plus d'informations.
Pour former un modèle de langue Gshard avec un billion de paramètres sur GCP à l'aide de CloudTPU V3-512 en utilisant le parallélisme du modèle 512, veuillez vous référer à third_party/py/lingvo/tasks/lm/README.md pour plus d'informations.
Pour exécuter le modèle Starnet à l'aide de CloudTpus sur GCP, veuillez vous référer à third_party/py/lingvo/tasks/car/README.md .
Écoutez, assister et épeler.
William Chan, Navdeep Jaitly, Quoc V. Le et Oriol Vinyals. ICASSP 2016.
Reconnaissance de la parole continue de bout en bout utilisant NN récurrent basé sur l'attention: premiers résultats.
Jan Chorowski, Dzmitry Bahdanau, Kyunghyun Cho et Yoshua Bengio. Arxiv 2014.
DeepFusion: Fusion profonde de la caméra lidar pour la détection d'objets 3D multimodale.
Yingwei Li, Adams Wei Yu, Tianjian Meng, Ben Caine, Jiquan Ngiam, Daiyi Peng, Junyang Shen, Bo Wu, Yifeng Lu, Denny Zhou, Quoc V. Le, Alan Yuille, Mingxing Tan. CVPR 2022.
Starnet: calcul ciblé pour la détection d'objets dans les nuages ponctuels.
Jiquan Ngiam, Benjamin Caine, Wei Han, Brandon Yang, Yuning Chai, Pei Sun, Yin Zhou, Xi Yi, Ouais Alsharif, Patrick Nguyen, Zhifeng Chen, Jonathon Shlens et Vijay Vasudevan. Arxiv 2019.
L'apprentissage basé sur le gradient s'appliquait à la reconnaissance des documents.
Yann LeCun, Leon Bottou, Yoshua Bengio et Patrick Haffner. IEEE 1998.
Exploration des limites de la modélisation du langage.
Rafal Jozefowicz, Oriol Vinyals, Mike Schuster, Noam Shazeer et Yonghui Wu. Arxiv, 2016.
GSHARD: Échelle des modèles géants avec calcul conditionnel et fragment automatique.
Dmitry Lepikhin, Hyoukjoong Lee, Yuanzhong Xu, Dehao Chen, Orhan Firat, Yanping Huang, Maxim Krikun, Noam Shazeer et Zhifeng Chen Arxiv, 2020.
Le meilleur des deux mondes: combiner les progrès récents de la traduction des machines neuronales.
Mia X. Chen, Orhan Firat, Ankur Bapna, Melvin Johnson, Wolfgang Macherey, George Foster, Llion Jones, Mike Schuster, Noam Shazeer, Niki Parmar, Ashish Vaswani, Jakob Uszkoreit, Lukasz Kaiser, Zhifeng Chen, Yonghui Wu, et MacDuff. ACL 2018.
Formation conjointe auto-supervisée et supervisée pour la traduction des machines neuronales riches en ressources.
Yong Cheng, Wei Wang, Lu Jiang et Wolfgang Macherey. ICML 2021.
Veuillez citer cet article lors du référencement à Lingvo.
@misc{shen2019lingvo,
title={Lingvo: a Modular and Scalable Framework for Sequence-to-Sequence Modeling},
author={Jonathan Shen and Patrick Nguyen and Yonghui Wu and Zhifeng Chen and others},
year={2019},
eprint={1902.08295},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
Licence Apache 2.0