# Model Upload Beta!

**URL:** <https://forum.numer.ai/t/model-upload-beta/6445>\
**Category:** Announcements\
**Created:** [June 8, 2023, 7:27pm UTC](https://forum.numer.ai/t/model-upload-beta/6445 "2023-06-08T19:27:27Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![slyfox](https://avatars.discourse-cdn.com/v4/letter/s/da6949/32.png) [@slyfox](https://forum.numer.ai/u/slyfox)\
**Post date:** [June 8, 2023, 7:27pm UTC](https://forum.numer.ai/t/model-upload-beta/6445/1 "2023-06-08T19:27:27Z")

</div>

![image](https://canada1.discourse-cdn.com/flex009/uploads/numerai/original/2X/1/13f712b24fdc27400bb6b7feff5568536ded38e9.jpeg)

Hello all!

This morning during the fireside chat I presented on our newest automation feature - model uploads.

> Model Upload allows you to upload your entire prediction pipeline to Numerai. Once uploaded, Numerai will take care of running it every day to generate live submissions.
> 
> Unlike other automation options, Model Upload is completely free and does not require you to set up any infrastructure.

Here are the [slides](https://docs.google.com/presentation/d/1kY_fKDy8g7Ls_vEAA_oG2VzkDMxmheGEcidSBLlodNk/edit?usp=sharing) and here are the [instructions](https://docs.google.com/document/d/1T75KrWbayOUSbLSkgSZEg7VGPrulK8ZkofheENTxABA/edit?usp=sharing) on how to join the beta test. Please direct all model upload feedback to this [channel on discord](https://discord.gg/Q9SfSB39).

We welcome everyone to join the beta test and let us know what you think of this new feature!

---

<div class="post-metadata">

**Author:** ![ageonsen](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/ageonsen/32/3307_2.png) [@ageonsen](https://forum.numer.ai/u/ageonsen)\
**Post date:** [June 10, 2023, 2:50am UTC](https://forum.numer.ai/t/model-upload-beta/6445/2 "2023-06-10T02:50:27Z")

</div>

Thanks for the new feature! Will the feature neutralization be also supported?

---

<div class="post-metadata">

**Author:** ![agorog](https://avatars.discourse-cdn.com/v4/letter/a/848f3c/32.png) [@agorog](https://forum.numer.ai/u/agorog)\
**Post date:** [June 12, 2023, 7:21am UTC](https://forum.numer.ai/t/model-upload-beta/6445/3 "2023-06-12T07:21:03Z")

</div>

You can probably add the neutralization to your predict function:

> def predict(live\_features: pd.DataFrame) → pd.DataFrame:  
> live\_predictions = model.predict(live\_features[feature\_cols])  
> …do some neutralization  
> submission = pd.Series(live\_predictions, index=live\_features.index)  
> return submission.to\_frame(“prediction”)

---

<div class="post-metadata">

**Author:** ![slyfox](https://avatars.discourse-cdn.com/v4/letter/s/da6949/32.png) [@slyfox](https://forum.numer.ai/u/slyfox)\
**Post date:** [June 12, 2023, 8:21pm UTC](https://forum.numer.ai/t/model-upload-beta/6445/4 "2023-06-12T20:21:45Z")

</div>

Yep @agorog is correct, you can any code you want inside your predict function, including neutralization.

---

<div class="post-metadata">

**Author:** ![agorog](https://avatars.discourse-cdn.com/v4/letter/a/848f3c/32.png) [@agorog](https://forum.numer.ai/u/agorog)\
**Post date:** [June 13, 2023, 7:04am UTC](https://forum.numer.ai/t/model-upload-beta/6445/5 "2023-06-13T07:04:34Z")

</div>

Is there a way to control the submission file name through this method? If not, what submission file name will these submissions get?

---

<div class="post-metadata">

**Author:** ![surajp](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/surajp/32/2961_2.png) [@surajp](https://forum.numer.ai/u/surajp)\
**Post date:** [June 14, 2023, 7:46pm UTC](https://forum.numer.ai/t/model-upload-beta/6445/6 "2023-06-14T19:46:38Z")

</div>

[models\_assemble\_numerai\_upload.ipynb](https://colab.research.google.com/drive/1jLe8TfFbgrZTzehJhyUEYLJEuWvlIqch?usp=sharing)

---

<div class="post-metadata">

**Author:** ![pschork](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/pschork/32/2495_2.png) [@pschork](https://forum.numer.ai/u/pschork)\
**Post date:** [June 16, 2023, 7:03pm UTC](https://forum.numer.ai/t/model-upload-beta/6445/7 "2023-06-16T19:03:54Z")

</div>

The submission filenames are formatted as `live_predictions-[random 12-digits].csv` and partitioned by the `model_uuid` when uploaded to S3.

 ![image](https://canada1.discourse-cdn.com/flex009/uploads/numerai/original/2X/0/067e36f625c1b5a60110a28400f088a76a3d7918.png)

---

<div class="post-metadata">

**Author:** ![svendaj](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/svendaj/32/3285_2.png) [@svendaj](https://forum.numer.ai/u/svendaj)\
**Post date:** [June 18, 2023, 8:07pm UTC](https://forum.numer.ai/t/model-upload-beta/6445/8 "2023-06-18T20:07:31Z")

</div>

Fantastic feature! Thanks @slyfox and whole Numerai team!

To test it and possibly to show how easy is it to join Numerai for newcomers, I have created [public Kaggle notebook](https://www.kaggle.com/code/svendaj/hello-numerai-automated) based on your [`hello_numerai.ipynb` example](https://github.com/numerai/example-scripts/blob/master/hello_numerai.ipynb). Output folder of the notebook contains pickled model for download/upload. I have created [new model JOS\_KAGGLE\_TEST](https://numer.ai/jos_kaggle_test), uploaded result and voilà yesterday it was submitting predictions at 17:24.

Kagglers now can just create Numerai account, new model and upload pickled model even without forking their own version of [Hello Numerai notebook](https://www.kaggle.com/code/svendaj/hello-numerai-automated). Obviously, they will get sub-par performance (although who knows where will be this model on leaderboard), but they can easily tweak it so that they will get better results and can start staking.

On the downside: I will now need to rewrite my about 20 models 🤪, but I think it’s absolutely worth it as it frees me from automation tinkering, which prevented me from spending more time on modelling and data science.

---

<div class="post-metadata">

**Author:** ![svendaj](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/svendaj/32/3285_2.png) [@svendaj](https://forum.numer.ai/u/svendaj)\
**Post date:** [June 18, 2023, 11:30pm UTC](https://forum.numer.ai/t/model-upload-beta/6445/9 "2023-06-18T23:30:32Z")

</div>

I am not able to give feedback on [Discord](https://discord.gg/Q9SfSB39), so at least here:

I am training my models on int8 datasets (memory constrains) and predictions are produced on `live_int8.parquet`. Could pickled predict function take as argument type of live data (float or int)? Otherwise I would need to convert live data to int, which is unnecessary when the int data are published anyway…

---

<div class="post-metadata">

**Author:** ![agorog](https://avatars.discourse-cdn.com/v4/letter/a/848f3c/32.png) [@agorog](https://forum.numer.ai/u/agorog)\
**Post date:** [June 19, 2023, 7:20am UTC](https://forum.numer.ai/t/model-upload-beta/6445/10 "2023-06-19T07:20:10Z")

</div>

That is sad for me, because I evaluate my models based on their submission names ☹  
It is a stupid idea, but we weren’t allowed to change the name of the models + at the beginning we didn’t had 70 submission slots, so I had to keep track somehow, what is what.
