Cannot find class 'ConveRTTokenizer'

Hi,

I’m trying to train a model using ConveRT from my Ubuntu server, but getting this error:

rasa-worker_1      | Traceback (most recent call last):
rasa-worker_1      |   File "/build/lib/python3.6/site-packages/rasa/server.py", line 725, in train
rasa-worker_1      |     force_training=rjs.get("force", False),
rasa-worker_1      |   File "/usr/local/lib/python3.6/asyncio/coroutines.py", line 110, in __next__
rasa-worker_1      |     return self.gen.send(None)
rasa-worker_1      |   File "/build/lib/python3.6/site-packages/rasa/train.py", line 97, in train_async
rasa-worker_1      |     kwargs,
rasa-worker_1      |   File "/usr/local/lib/python3.6/asyncio/coroutines.py", line 110, in __next__
rasa-worker_1      |     return self.gen.send(None)
rasa-worker_1      |   File "/build/lib/python3.6/site-packages/rasa/train.py", line 184, in _train_async_internal
rasa-worker_1      |     kwargs=kwargs,
rasa-worker_1      |   File "/usr/local/lib/python3.6/asyncio/coroutines.py", line 110, in __next__
rasa-worker_1      |     return self.gen.send(None)
rasa-worker_1      |   File "/build/lib/python3.6/site-packages/rasa/train.py", line 241, in _do_training
rasa-worker_1      |     persist_nlu_training_data=persist_nlu_training_data,
rasa-worker_1      |   File "/usr/local/lib/python3.6/asyncio/coroutines.py", line 110, in __next__
rasa-worker_1      |     return self.gen.send(None)
rasa-worker_1      |   File "/build/lib/python3.6/site-packages/rasa/train.py", line 470, in _train_nlu_with_validated_data
rasa-worker_1      |     persist_nlu_training_data=persist_nlu_training_data,
rasa-worker_1      |   File "/usr/local/lib/python3.6/asyncio/coroutines.py", line 110, in __next__
rasa-worker_1      |     return self.gen.send(None)
rasa-worker_1      |   File "/build/lib/python3.6/site-packages/rasa/nlu/train.py", line 74, in train
rasa-worker_1      |     trainer = Trainer(nlu_config, component_builder)
rasa-worker_1      |   File "/build/lib/python3.6/site-packages/rasa/nlu/model.py", line 144, in __init__
rasa-worker_1      |     components.validate_requirements(cfg.component_names)
rasa-worker_1      |   File "/build/lib/python3.6/site-packages/rasa/nlu/components.py", line 38, in validate_requirements
rasa-worker_1      |     component_class = registry.get_component_class(component_name)
rasa-worker_1      |   File "/build/lib/python3.6/site-packages/rasa/nlu/registry.py", line 180, in get_component_class
rasa-worker_1      |     raise ModuleNotFoundError(exception_message)
rasa-worker_1      | ModuleNotFoundError: Cannot find class 'ConveRTTokenizer' from global namespace. Please check that there is no typo in the class name and that you have imported the class into the global namespace.

Does anybody know how to help me?

1 Like

it seems that you’re using a wrong version of rasa

1 Like

I’m using rasa and rasa-sdk 1.6.1

Can you please elaborate a bit more? What version of rasa should I use?

ConveRTTokenizer was added in version 1.7

1 Like

Ok, thank you! I’ll try updating Rasa.

Could you help me also with this?

I updated rasa to the last version, but I’m still getting the same error…

Anybody please?

I found out that if I use only

language: "en"

pipeline: "pretrained_embeddings_convert"

it works without errors, while if I specify the whole components:

language: "en"

pipeline:
- name: "ConveRTTokenizer"
- name: "ConveRTFeaturizer"
- name: "EmbeddingIntentClassifier"

it gives me the error that I put above. Does anybody know why is that? @Ghostvv?

Are you sure you use the same environment with correct rasa version?

image What you mean by same environment?

up

@tiziano can you provide your docker-compose file?

Sure, here it is:

version: "3.4"

x-database-credentials: &database-credentials
  DB_HOST: "db"
  DB_PORT: "5432"
  DB_USER: "${DB_USER:-admin}"
  DB_PASSWORD: "${DB_PASSWORD}"
  DB_LOGIN_DB: "${DB_LOGIN_DB:-rasa}"

x-rabbitmq-credentials: &rabbitmq-credentials
  RABBITMQ_HOST: "rabbit"
  RABBITMQ_USERNAME: "user"
  RABBITMQ_PASSWORD: ${RABBITMQ_PASSWORD}

x-redis-credentials: &redis-credentials
  REDIS_HOST: "redis"
  REDIS_PORT: "6379"
  REDIS_PASSWORD: ${REDIS_PASSWORD}
  REDIS_DB: "1"

x-duckling-credentials: &duckling-credentials
  RASA_DUCKLING_HTTP_URL: "http://duckling:8000"

x-rasax-credentials: &rasax-credentials
  LOCAL_MODE: "false"
  RASA_X_HOST: "http://rasa-x:5002"
  RASA_X_TOKEN: ${RASA_X_TOKEN}
  JWT_SECRET: ${JWT_SECRET}
  RASA_USER_APP: "http://app:5055"
  RASA_PRODUCTION_HOST: "http://rasa-production:5005"
  RASA_WORKER_HOST: "http://rasa-worker:5005"
  RASA_TOKEN: ${RASA_TOKEN}
  RASA_WORKER_TOKEN: ${RASA_TOKEN}

x-rasa-credentials: &rasa-credentials
  <<: *rabbitmq-credentials
  <<: *rasax-credentials
  <<: *database-credentials
  <<: *redis-credentials
  <<: *duckling-credentials
  RASA_TOKEN: ${RASA_TOKEN}
  RASA_MODEL_PULL_INTERVAL: 10
  RABBITMQ_QUEUE: "rasa_production_events"

x-rasa-services: &default-rasa-service
  restart: always
  image: "rasa/rasa:${RASA_VERSION}-full"
  expose:
    - "5005"
  command: >
    x
    --no-prompt
    --debug
    --production
    --config-endpoint http://rasa-x:5002/api/config?token=${RASA_X_TOKEN}
    --port 5005
    --jwt-method HS256
    --jwt-secret ${JWT_SECRET}
    --auth-token '${RASA_TOKEN}'
    --cors "*"
  depends_on:
    - rasa-x
    - rabbit
    - redis

services:
  action_server:
    image: pandasimg:latest
    volumes:
      - ./actions:/app/actions
  rasa-x:
    restart: always
    image: "rasa/rasa-x:${RASA_X_VERSION}"
    expose:
      - "5002"
    volumes:
      - ./models:/app/models
      - ./environments.yml:/app/environments.yml
      - ./credentials.yml:/app/credentials.yml
      - ./endpoints.yml:/app/endpoints.yml
      - ./logs:/logs
      - ./auth:/app/auth
    environment:
      <<: *database-credentials
      <<: *rasa-credentials
      SELF_PORT: "5002"
      DB_DATABASE: "${DB_DATABASE:-rasa}"
      RASA_MODEL_DIR: "/app/models"
      PASSWORD_SALT: ${PASSWORD_SALT}
      RABBITMQ_QUEUE: "rasa_production_events"
      RASA_X_USER_ANALYTICS: "0"
      SANIC_RESPONSE_TIMEOUT: "3600"
      METRICS_CONSENT: "${METRICS_CONSENT:-false}"
      UUID: "${UUID:-''}"
    depends_on:
      - db

  rasa-production:
    <<: *default-rasa-service
    environment:
      <<: *rasa-credentials
      RASA_ENVIRONMENT: "production"
      DB_DATABASE: "tracker"
      RASA_MODEL_SERVER: "http://rasa-x:5002/api/projects/default/models/tags/production"

  rasa-worker:
    <<: *default-rasa-service
    environment:
      <<: *rasa-credentials
      RASA_ENVIRONMENT: "worker"
      DB_DATABASE: "worker_tracker"
      RASA_MODEL_SERVER: "http://rasa-x:5002/api/projects/default/models/tags/production"

  app:
    restart: always
    image: "rasa/rasa-x-demo:${RASA_X_DEMO_VERSION}"
    expose:
      - "5055"
    depends_on:
      - rasa-production

  db:
    restart: always
    image: "bitnami/postgresql:11.3.0"
    expose:
      - "5432"
    environment:
      POSTGRESQL_USERNAME: "${DB_USER:-admin}"
      POSTGRESQL_PASSWORD: "${DB_PASSWORD}"
      POSTGRESQL_DATABASE: "${DB_DATABASE:-rasa}"
    volumes:
      - ./db:/bitnami/postgresql

  rabbit:
    restart: always
    image: "bitnami/rabbitmq:3.7.17"
    environment:
      RABBITMQ_HOST: "rabbit"
      RABBITMQ_USERNAME: "user"
      RABBITMQ_PASSWORD: ${RABBITMQ_PASSWORD}
      RABBITMQ_DISK_FREE_LIMIT: "{mem_relative, 0.1}"
    expose:
      - "5672"

  duckling:
    restart: always
    image: "rasa/duckling:latest"
    expose:
      - "8000"
    command: ["duckling-example-exe", "--no-access-log", "--no-error-log"]

  nginx:
    restart: always
    image: "rasa/nginx:${RASA_X_VERSION}"
    ports:
      - "80:8080"
      - "443:8443"
    volumes:
      - ./certs:/opt/bitnami/certs
      - ./terms:/opt/bitnami/nginx/conf/bitnami/terms
    depends_on:
      - rasa-x
      - rasa-production
      - app

  redis:
    restart: always
    image: "bitnami/redis:5.0.5"
    ports:
      - "6379:6379"
    environment:
      REDIS_PASSWORD: ${REDIS_PASSWORD}

  logger:
    restart: always
    image: "rasa/logger:${RASA_X_VERSION}"
    command: ["/bin/sh", "-c", "docker-compose logs --no-color -f > /logs/compose_`date '+%Y-%m-%d_%H:%M:%S'`.log"]
    volumes:
      - ./logs:/logs
      - ./.env/:/etc/rasa/.env
      - ./docker-compose.yml:/etc/rasa/docker-compose.yml
      - /var/run/docker.sock:/var/run/docker.sock
    working_dir: /etc/rasa
    depends_on:
      - nginx
      - duckling

Okay. This comment seems particularly weird: Cannot find class 'ConveRTTokenizer'

I tried on my machine and could not replicate it.