TheophileBlard / french-sentiment-analysis-with-bert

How good is BERT ? Comparing BERT to other state-of-the-art approaches on a French sentiment analysis dataset
MIT License
147 stars 35 forks source link

TensorFlow JS #5

Open WillyPoteloin opened 3 years ago

WillyPoteloin commented 3 years ago

Bonjour,

J'ai essayé de convertir votre modèle (qui semble être le seul pertinent pour du sentiment analysis sur des textes français) au format TensorFlowJS (https://www.tensorflow.org/js/tutorials/conversion/import_keras?hl=fr) mais sans succès...

J'ai d'abord essayé de convertir directement le fichier Keras h5 trouvé sur hugging face mais il semble que celui-ci ne contient que les pondérations d'après ce que j'ai compris.

J'ai alors monté le projet en python comme expliqué et cela marche très bien.

J'ai ensuite essayé d'enregistrer le modèle récupéré par ligne suivante dans plusieurs format :

model = TFAutoModelForSequenceClassification.from_pretrained("tblard/tf-allocine")

d'abord directement au format TFJS : tfjs.converters.save_keras_model(model, './tfjs2')

J'ai alors un message qui me dit que le model de peux pas être enregistré dans ce format et qu'il faut que je l'enregistre au format TF saved model : Saving the model to HDF5 format requires the model to be a Functional model or a Sequential model. It does not work for subclassed models, because such models are defined via the body of a Python method, which isn't safely serializable. Consider saving to the Tensorflow SavedModel format (by setting save_format="tf") or using save_weights.

puis au format Keras afin de réessayer la conversion : tensorflow.keras.models.save_model(model, 'test.h5')

Même erreur qu'avec TFJS

et enfin au format TensorFlow saved model : tensorflow.saved_model.save(model, './tfmodel')

La ça marche bien mais la conversion ne marche pas mieux j'ai cette erreur : Unsupported Ops in the model before optimization : Einsum

J'ai fini par en conclure que le modèle n'était pas compatible avec une transformation vers TFJS ce qui semble être assez commun d'après la documentation.

Pensez-vous qu'il est possible de faire marcher ce modèle dans TFJS ?

N'hésitez pas a me demander plus de précisions si je ne suis pas clair.

Merci d'avance.

TheophileBlard commented 3 years ago

Bonjour! Le modèle tblard/tf-allocine est une déclinaison du modèle CamemBERT (lui même étant une déclinaison de RoBERTa) provenant du model hub de HuggingFace. Apparemment, il semble tout à fait possible d'utiliser ces modèles avec Tensorflow JS (cf: cet article et ce repo). L'article détaille comment exporter le modèle sous format SavedModel et comment le charger dans Tensorflow JS. Pour le preprocessing du texte, vous allez aussi avoir besoin des bindings de tokenizers. Le repo semble être un exemple concret des techniques présentées par l'article, appliquées au question answering.

WillyPoteloin commented 3 years ago

Merci pour les infos. Je vais regarder tout et voir si j'arrive à quelque chose.

FaustinM commented 3 years ago

Bonjour ! Avez-vous réussi à convertir le modèle ? J'aimerais bien utiliser ce modèle avec NodeJS

TheophileBlard commented 3 years ago

Bonjour ! Avez-vous réussi à convertir le modèle ? J'aimerais bien utiliser ce modèle avec NodeJS

J'ai personnellement réussi à convertir le modèle en format SavedModel, en suivant les indications de l'article, donc cette partie fonctionne. Pour la partie Javascript je n'ai pas eu le temps de m'y pencher, sachant que je suis un novice en JS. Peut être que @WillyPoteloin a avancé sur le sujet ?

WillyPoteloin commented 3 years ago

Bonjour,

Malheureusement j'ai été rattrapé par le boulot et n'est pas eu le temps d'approfondir pour l'instant....

FaustinM commented 3 years ago

Bonjour, merci pour l'information je regarderai de mon côté et je vous dirais si j'ai réussi :).

Bonne soirée

Le mer. 28 avr. 2021 à 18:31, Willy @.***> a écrit :

Bonjour,

Malheureusement j'ai été rattrapé par le boulot et n'est pas eu le temps d'approfondir pour l'instant....

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/TheophileBlard/french-sentiment-analysis-with-bert/issues/5#issuecomment-828597721, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGBUUYCQA2Q7UFMQYLQBAF3TLAZ6JANCNFSM4XPOIUCQ .