---
title: Custom model assembly
description: Describes how to assemble custom models and environments.

---

# Custom model assembly {: #custom-model-assembly }

While DataRobot provides hundreds of built-in models, there are situations where you need preprocessing or modeling methods that are not currently supported out of the box. To create a custom inference model, you must provide a serialized model artifact with a file extension corresponding to the chosen environment language and any additional custom code required to use the model.

Before adding custom models and environments to DataRobot, you must prepare and structure the files required to run them successfully. The tools and templates necessary to prepare custom models are hosted in the <a target="_blank" href="https://github.com/datarobot/datarobot-user-models">Custom Model GitHub repository</a>. ({% include 'includes/github-sign-in.md' %}) DataRobot recommends understanding the following requirements to prepare your custom model for upload to the Custom Model Workshop.

Topic | Describes
------|-----------
[Custom model components](custom-model-components) | How to identify the components required to run custom inference models.
[Assemble structured custom models](structured-custom-models) | How to assemble and validate structured custom models compatible with DataRobot.
[Assemble unstructured custom models](unstructured-custom-models) | How to assemble and validate unstructured custom models compatible with DataRobot.
[DRUM CLI tool](custom-model-drum) | How to download and install the DataRobot user model (DRUM) to work with and test custom models and custom environments locally before uploading to DataRobot.
[Test a custom model locally](custom-local-test) | How to test custom inference models in your local environment using the DataRobot Model Runner (DRUM) tool.
[GitHub Actions for custom models](custom-model-github-action) | The custom models action manages custom inference models and deployments in DataRobot via GitHub CI/CD workflows.