easy-model-fusion / emf-cli

CLI for managing AI models, improving AI application projects.
MIT License
41 stars 0 forks source link

downloader.py: error: unrecognized arguments: transformers #160

Open juliengossa opened 3 months ago

juliengossa commented 3 months ago

Sur la demo conversation-gui, après avoir fait emf-cli install (pas clairement indiquée dans la doc, qui indique de faire tidy), j'obtiens l'erreur downloader.py: error: unrecognized arguments: transformers

$ emf-cli tidy
 INFO  Verifying if all models are downloaded...
 INFO  Downloading model 'microsoft/phi-2'...
usage: downloader.py [-h] [--model-module {diffusers,transformers}]
                     [--model-class MODEL_CLASS]
                     [--model-options MODEL_OPTIONS [MODEL_OPTIONS ...]]
                     [--access-token ACCESS_TOKEN]
                     [--tokenizer-class TOKENIZER_CLASS]
                     [--tokenizer-options TOKENIZER_OPTIONS [TOKENIZER_OPTIONS ...]]
                     [--overwrite] [--skip {tokenizer,model}] [--emf-client]
                     [--only-configuration]
                     models_path model_name
downloader.py: error: unrecognized arguments: transformers
  ERROR   exit status 2
 WARNING  The following models(s) couldn't be downloaded : [microsoft/phi-2]
 INFO  Verifying if all downloaded models are configured...
 SUCCESS  Generating python code...
SchawnnDev commented 3 months ago

Bonjour, ou est-ce que l'indication du tidy est précisée? nous avons bien décrit ici qu'il fallait utiliser install pour installer un projet déjà existant: https://easy-model-fusion.github.io/docs/basics.html#installing-an-existing-project Les erreurs que vous avez eues sont dûes à une mise à jour de la version du sdk, elles étaient entrain d'être réglées (issues https://github.com/easy-model-fusion/demos/pull/10 et https://github.com/easy-model-fusion/demos/pull/9) Pouvez-vous réessayer ?

juliengossa commented 3 months ago

La mention du tidyplutôt que install est dans la doc des démos (sinon c'est clair dans l'autre doc).

Après maj des démos, l'erreur persiste. Je précise que je n'ai pas fait de démarche particulière pour passer les authentifications hugging face (mais si c'était le problème, il faudrait un message d'erreur explicite dans ce sens).

SchawnnDev commented 3 months ago

Quelle version du client utilisez vous ?

image effectivement nous allons fixer l'erreur, merci !

Nous avons release la version v0.0.2 qui fonctionne avec la dernière version du sdk. https://github.com/easy-model-fusion/emf-cli/releases/tag/v0.0.2 Pouvez-vous essayer avec celle-ci ?

juliengossa commented 3 months ago

L'EMF a été installé avec go, à défaut d'avoir trouvé des binaires. La version n'est pas très claire : INFO Client version: () :)

juliengossa commented 3 months ago

C'est bon, ça fonctionne :) (même si l'info client version ne fonctionne toujours pas)

juliengossa commented 3 months ago

Problème d'après : après avoir activé l'env python (avec .venv\Scripts\activate.bat sous windows, attention à la doc), python main.py me donne

PS C:\FastApp\repos\MultiIA\demos\conversation-gui> python main.py
Traceback (most recent call last):
  File "C:\FastApp\repos\MultiIA\demos\conversation-gui\main.py", line 7, in <module>
    import sdk
  File "C:\FastApp\repos\MultiIA\demos\conversation-gui\sdk\__init__.py", line 4, in <module>
    from sdk.downloader import *
  File "C:\FastApp\repos\MultiIA\demos\conversation-gui\sdk\downloader.py", line 7, in <module>
    import diffusers
  File "C:\Users\Julien\AppData\Roaming\Python\Python310\site-packages\diffusers\__init__.py", line 38, in <module>
    from .models import (
  File "C:\Users\Julien\AppData\Roaming\Python\Python310\site-packages\diffusers\models\__init__.py", line 20, in <module>
    from .autoencoder_asym_kl import AsymmetricAutoencoderKL
  File "C:\Users\Julien\AppData\Roaming\Python\Python310\site-packages\diffusers\models\autoencoder_asym_kl.py", line 21, in <module>
    from .autoencoder_kl import AutoencoderKLOutput
  File "C:\Users\Julien\AppData\Roaming\Python\Python310\site-packages\diffusers\models\autoencoder_kl.py", line 21, in <module>
    from ..loaders import FromOriginalVAEMixin
  File "C:\Users\Julien\AppData\Roaming\Python\Python310\site-packages\diffusers\loaders.py", line 45, in <module>
    from transformers import CLIPTextModel, CLIPTextModelWithProjection, PreTrainedModel, PreTrainedTokenizer
ImportError: cannot import name 'CLIPTextModelWithProjection' from 'transformers' (C:\Users\Julien\AppData\Roaming\Python\Python310\site-packages\transformers\__init__.py)
SchawnnDev commented 3 months ago

L'EMF a été installé avec go, à défaut d'avoir trouvé des binaires. La version n'est pas très claire : INFO Client version: () :)

Quand vous utilisez go install il récupère le dernier tag push sur le repository (donc la version v0.0.1), étant donné que la version v0.0.1 n'est plus compatible avec la dernière version du sdk, vous êtes tombés sur une erreur. J'en ai donc profité pour push un nouveau tag, et donc si vous refaites un go install il devrait installer la v0.0.2.

Vous pouvez trouver les binaires ici. image

C'est bon, ça fonctionne :) (même si l'info client version ne fonctionne toujours pas)

L'info client fonctionne seulement quand on ajoute des arguments a la compilation, en effet les variables sont mises en place au moment du make build (qui est effectué dans la ci/cd) mais pas au niveau du go install.

Problème d'après : après avoir activé l'env python (avec .venv\Scripts\activate.bat sous windows, attention à la doc), python main.py me donne

PS C:\FastApp\repos\MultiIA\demos\conversation-gui> python main.py
Traceback (most recent call last):
  File "C:\FastApp\repos\MultiIA\demos\conversation-gui\main.py", line 7, in <module>
    import sdk
  File "C:\FastApp\repos\MultiIA\demos\conversation-gui\sdk\__init__.py", line 4, in <module>
    from sdk.downloader import *
  File "C:\FastApp\repos\MultiIA\demos\conversation-gui\sdk\downloader.py", line 7, in <module>
    import diffusers
  File "C:\Users\Julien\AppData\Roaming\Python\Python310\site-packages\diffusers\__init__.py", line 38, in <module>
    from .models import (
  File "C:\Users\Julien\AppData\Roaming\Python\Python310\site-packages\diffusers\models\__init__.py", line 20, in <module>
    from .autoencoder_asym_kl import AsymmetricAutoencoderKL
  File "C:\Users\Julien\AppData\Roaming\Python\Python310\site-packages\diffusers\models\autoencoder_asym_kl.py", line 21, in <module>
    from .autoencoder_kl import AutoencoderKLOutput
  File "C:\Users\Julien\AppData\Roaming\Python\Python310\site-packages\diffusers\models\autoencoder_kl.py", line 21, in <module>
    from ..loaders import FromOriginalVAEMixin
  File "C:\Users\Julien\AppData\Roaming\Python\Python310\site-packages\diffusers\loaders.py", line 45, in <module>
    from transformers import CLIPTextModel, CLIPTextModelWithProjection, PreTrainedModel, PreTrainedTokenizer
ImportError: cannot import name 'CLIPTextModelWithProjection' from 'transformers' (C:\Users\Julien\AppData\Roaming\Python\Python310\site-packages\transformers\__init__.py)

Quelle version de python avez vous ? nous devons encore mettre à jour notre documentation à ce propos, mais les dépendances du projet nous limitent aux versions 3.10.4 < python < 3.12.

juliengossa commented 3 months ago

J'ai effectivement refait un go install pour récupérer la v0.0.2 (pour que le dl des modèles fonctionne). Ma version python est la 3.10.6

SchawnnDev commented 3 months ago

J'ai effectivement refait un go install pour récupérer la v0.0.2 (pour que le dl des modèles fonctionne). Ma version python est la 3.10.6

La version que nous utilisons tous est la 3.11 (utilisée pour le dev et les tests). A propos de la 3.10.4 j'ai eu l'info mais je pense que du coup elle ne passe pas je vais voir avec @RayanMarmar.

SchawnnDev commented 3 months ago

Nous allons vérifier cette version demain, est-ce que les autres démos fonctionnent ?