An open-weight, 21B parameter language model optimized for chain-of-thought reasoning, tool use, and agentic workflows with structured outputs.
openai/gpt-oss-20b
is a 21B parameter language model released under the Apache 2.0 license, making it fully permissive for research, commercial, and fine-tuning use.
Built with a Mixture -of -Experts (MoE) architecture, it activates only 3.6B parameters per token, spread across 32 experts(4 per layer) enabling strong performance with minimal compute.
Trained with the Harmony response format, gpt-oss-20b supports configurable reasoning levels (low, medium, high), full chain-of-thought reasoning (auditable but not to be shown to end users), tool use (e.g., web browsing, function-calling, Python execution), and Structured Outputs.
It matches or exceeds performance of OpenAI’s proprietary model across benchmarks including coding, math (AIME), general knowledge (MMLU), and health tasks, despite its smaller size.
model.py
.
inferless
Python client and Pydantic, you can define structured schemas directly in your code for input and output, eliminating the need for external file.
str
, float
, int
, bool
etc.
These type annotations specifys what type of data each field should contain.
The default
value serves as the example input for testing with the infer
function.
@inferless.response
decorator helps you define structured output schemas.
infer
FunctionRequestObjects
as input,
and returns a ResponseObjects
instance as output, ensuring the results adhere to a defined structure.
def initialize
: In this function, you will initialize your model and define any variable
that you want to use during inference.
def infer
: This function gets called for every request that you send. Here you can define all the steps that are required for the inference.
def finalize
: This function cleans up all the allocated memory.
inferless remote-run
(installation guide here) command to test your model or any custom Python script in a remote GPU environment directly from your local machine. Make sure that you use Python3.10
for seamless experience.
inferless
library and initialize Cls(gpu="A10")
. The available GPU options are T4
, A10
and A100
.initialize
and infer
functions with @app.load
and @app.infer
respectively.my_local_entry
) with @inferless.local_entry_point
.
Within this function, instantiate your model class, convert any incoming parameters into a RequestObjects
object, and invoke the model’s infer
method.app.py
and your inferless-runtime-config.yaml
and run:
--max_new_tokens
, etc.) as long as your code expects them in the inputs
dictionary.
If you want to exclude certain files or directories from being uploaded, use the --exclude
or -e
flag.
Add a custom model
button that you see on the top right. An import wizard will open up.
--gpu A10
: Specifies the GPU type for deployment. Available options include A10
, A100
, and T4
.--runtime inferless-runtime-config.yaml
: Defines the runtime configuration file. If not specified, the default Inferless runtime is used.