Creating a Movie Recommender

Hi @ravimashru and team, not sure if I am late to the party but this seems like a very cool project. I’d love to be involved.

1 Like

@ravimashru @bhutanisanyam1 Is there another call scheduled?

Hey @edwinq… Welcome to the community! :slight_smile:

You’re not late at all. We’ve just had one call so far and then I guess we got busy with other things. We’d love to have you on board.

I was planning to resume working on this over the weekend, but I haven’t scheduled a call yet.

I’m not sure what timezone you’re in. Does Saturday 2:00 p.m. GMT work for you?

@kurianbenoy-aot @vrc0503 will you be joining as well?

Sure, I’m in EST so I should be free for about an hour or so then. Still meeting here :

Video call link: https://meet.google.com/xtv-cgir-kbs ?

1 Like

Awesome!

I think that’s the old one. I’ve set up a new meeting here.

It would also love to join the meeting. I am still excited to work on this project. @ravimashru, I am not able to find the meeting link you shared

1 Like

Oh, that’s strange. That was a link to a calendar invite. If that’s not working then here’s a link to the call directly: https://meet.google.com/heu-heqi-grq

1 Like

After fighting the errors for over 12 hours, I decided to submit a bug. :sweat:

2 Likes

Apologies, I was not able to attend the last call, are there any action items that we can get started on?

No worries @edwinq! Here’s a summary of what we did:

  1. We created the fast-recsys org on GitHub to store everything we work on. I can add you to the org as well if you give me your GitHub username.

  2. We created skeleton repositories for the UI (using VueJS) and the backend API server (using FastAPI).

  3. We also started looking into NVIDIA Merlin since it has really cool tools for feature engineering (NVTabular), training (HugeCTR) and even an inference server (Triton). However, we pretty much hit a roadblack with installing the required dependencies when trying out the examples and @bhutanisanyam1 created the GitHub issue he mentions above.

We’re currently experimenting with two approaches:

  1. Creating an API server to serve the model trained using fastai.

  2. Use the NVIDIA Merlin ecosystem to train and deploy the recommendation system.

Here’s a few things we can start doing:

  1. Create a web UI that a user can use to rate movies they have already watched (some inspiration: Book Recommender: Collaborative Filtering, Shiny | Kaggle) and view recommendations.

  2. Convert the contents of this blog post into Python files and create REST API endpoints that we can use from the UI.

  3. The maintainers of NVTabular have responded to the issue that Sanyam created. We can try to set up an environment with the required dependencies like they recommend and try to run the example notebooks (they already have notebooks that use the MovieLens25 dataset that we also plan to use :slightly_smiling_face:)

Apart from this, I don’t think we have any other planned/concrete action items. We’re just planning to learn and figuring things out as we go!

We’ve planned to meet again at the same time this Saturday as well (Calendar invite). We’d love to see you there if you can make it. :slight_smile:

1 Like

that sounds awesome @ravimashru . My github username is halloffame0793, that would be great if you could add me to the org. And yes I am planning on attending on Saturday.

1 Like

hey @ravimashru, I’m developing a Fashion Recommender System, I have created object detection models using yolov4, done image classification using FastiAI, I don’t know how to make a web app and create an API of it. i would love to join , it is my need though, kindly add me to your project.i want to learn.

1 Like

Hey @talha_darrxscale… welcome the community!

I just read your project description and it looks very interesting! I see you plan to use VueJS for your UI and Django for your backend so there is some similarity there.

Please feel free to join us in our next call (Calendar invite). We’d be delighted if anything we do turns out to be useful for your project. :slightly_smiling_face:

2 Likes

Thanks for your invitation hope it would help me .

1 Like

Here’s a summary of what we did today

NVTabular and Merlin

Ran the first two example notebooks on movielens without any errors by replacing cuDF with pandas.

Installed PyTorch from pip instead of conda to get most of the third notebook to run. The last cell (actually training the model) fails with the following error:

RuntimeError: merge_sort: failed to synchronize: cudaErrorIllegalAddress: an illegal memory access was encountered

This needs to be looked into further.

Frontend

The VueJS frontend was set up using tailwind and vuetify.

Backend

Data from the MovieLens25 dataset was added to the repository.

A few more backend APIs were created - to fetch random movies for the user to rate.

Action item for @ravimashru: create endpoint to fetch details of a single movie from the OMDB API.

2 Likes

Ahh, I was just getting ready to join but must have gotten the timezones mixed up :frowning : (
Great work though!

Ah… If I had a dollar for everytime I got the timezone for a meeting wrong I’d give Jeff Bezos a real run for his money. :smiley:

Hopefully we’ll catch you next saturday. :slight_smile:

Until then we’ll be working on this asynchronously. Feel free to reach out to me if you want to try out anything and have any questions.

FYI: Since we’ve got quite a few people interested in this topic, I’ve created a Discord channel to allow us to have more free-flowing conversations without spamming this thread. Feel free to join if you’re interested: mashruravi's server.

I will update this thread from time to time, especially after any calls/coding sessions. :slight_smile:

1 Like

@ravimashru We really want to create our discourse as the goto place for such discussions.

Is there any feature you find missing on discourse? I can look into integrations or even upgrading our plan if it helps :slight_smile:

1 Like

@edwinq and I were just talking about having more frequent day-to-day conversations on Discord so that we don’t spam this thread.

But keeping all discussions in one place makes sense as well. We’ll continue using this thread for all communication. :+1:

1 Like