Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

One click button to deploy example application #33

Closed
amn41 opened this issue Nov 29, 2016 · 9 comments
Closed

One click button to deploy example application #33

amn41 opened this issue Nov 29, 2016 · 9 comments
Labels
help wanted type:enhancement ✨ Additions of new features or changes to existing ones, should be doable in a single PR

Comments

@amn41
Copy link
Contributor

amn41 commented Nov 29, 2016

We have a "deploy to Heroku" button set up, the purpose of which is to let people try out rasa NLU SUPER quickly without setting up a virtualenv, installing numpy/scipy/mitie, etc.

with the new HTTP /train endpoint, this means that users can deploy to heroku, and then just POST their downloaded data from wit/LUIS/api to train a model.

the free Heroku VPSs are very resource constrained, we only have 0.5Gb of memory to play with, see https://devcenter.heroku.com/articles/dyno-types . Running spacy will be a problem, because it's pretty memory heavy. So I think we should default to using mitie in that case.

Problem with MITIE (as of now) is that the intent classifier has really stupid line search defaults hard-coded in the C++ code. This means it can take hours to train a pretty simple model, even on a decent laptop.

My fork of MITIE has a temporary hack to disable the line search all together, which actually works fine. We just need to test that the heroku servers correctly install my fork https://github.com/amn41/MITIE and then test that we can in fact train a model in reasonable time.

The other issue is that the filesystem gets wiped regularly and without warning on heroku, so we may have to download the mitie total_word_feature_extractor.dat file any given time we train a model.

PR #31 adds functionality to persist trained models to S3, specifically so that we don't rely on the server's filesystem any more. Models should get uploaded automatically if the right environment variables are set.

@amn41 amn41 added the type:enhancement ✨ Additions of new features or changes to existing ones, should be doable in a single PR label Nov 29, 2016
@amn41 amn41 assigned amn41, tmbo and plauto and unassigned tmbo and amn41 Nov 30, 2016
@amn41 amn41 mentioned this issue Dec 4, 2016
@amn41 amn41 added type:bug 🐛 Inconsistencies or issues which will cause an issue or problem for users or implementors. and removed type:enhancement ✨ Additions of new features or changes to existing ones, should be doable in a single PR labels Dec 4, 2016
@amn41
Copy link
Contributor Author

amn41 commented Dec 6, 2016

might make more sense to dockerise the project and use the docker cloud deploy button https://docs.docker.com/docker-cloud/apps/deploy-to-cloud-btn/ . thoughts?

@amn41 amn41 changed the title run server on Heroku free tier dyno click button to deploy Dec 6, 2016
@phildionne
Copy link
Contributor

An easy way to get started quickly would be to publish this project on https://hub.docker.com/. Then developers can download and run the image on their laptop, and hit it from their browser, or terminal with curl or anything else.

@plauto
Copy link
Contributor

plauto commented Dec 6, 2016

I think both idea would be good...either pulling from the hub on your laptop or running it over the cloud

@samhavens
Copy link

@amn41 We have this working with Docker, SpaCy and Scikit. Currently, though, it pulls from API.ai to get all our agent data to train the model, and our api key is hardcoded in there. However, model training with that setup and our data takes about 5 seconds.

We'll try and get something up in the next few days.

@phildionne
Copy link
Contributor

@samhavens Your input on #50 would be nice :)

@tmbo
Copy link
Member

tmbo commented May 23, 2017

I think since the current setup is completely dockerized we might be able to use heroku again using one of the small spacy models (need to try it tough - even tough the language model on disk is only 50mb it might still be larger in mem).

@tmbo tmbo changed the title click button to deploy One click button to deploy example application May 23, 2017
@tmbo tmbo added type:enhancement ✨ Additions of new features or changes to existing ones, should be doable in a single PR and removed type:bug 🐛 Inconsistencies or issues which will cause an issue or problem for users or implementors. labels May 23, 2017
@tmbo tmbo unassigned plauto May 23, 2017
@madimov
Copy link

madimov commented Apr 14, 2018

@tmbo In version 2, they're bringing down the 50mb model to 15mb, so even more feasible for Heroku (see these comments)

@tmbo
Copy link
Member

tmbo commented Apr 16, 2018

Yes, very good point. I think that makes this even more feasible 👍

@tmbo tmbo closed this as completed Aug 9, 2018
@tmbo
Copy link
Member

tmbo commented Aug 9, 2018

We do have the interactive sessions in the docs now which is even better

vcidst pushed a commit that referenced this issue Jan 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted type:enhancement ✨ Additions of new features or changes to existing ones, should be doable in a single PR
Projects
None yet
Development

No branches or pull requests

6 participants