Skip to main content

Creating a Model

This page walks through creating a model with MTP, from an empty protocol to a file you can submit to Databiomes for training.

Installation

pip install model-train-protocol

Steps

1. Create the Protocol

The protocol holds everything your model will learn.

import model_train_protocol as mtp

# inputs: number of input lines in each Instruction sample (minimum 1)
# encrypt: whether to encrypt tokens with hashed keys (default: True)
protocol = mtp.Protocol(name="my_model", inputs=1, encrypt=True)

Set state_machine=True if you are building a state machine. See Model Types to decide which type of model you need.

2. Add Context

Context gives the model the background information and domain knowledge it needs.

protocol.add_context("The Cheshire Cat is a fictional character from Lewis Carroll's 'Alice's Adventures in Wonderland'.")
protocol.add_context("The Cat appears and vanishes at will, and speaks in riddles.")

A minimum of 10 context lines are required in total across the protocol and its instructions. See Context for details.

3. Create Tokens and TokenSets

Tokens are the building blocks of your model. TokenSets group them into input patterns.

tree = mtp.Token("Tree")
cat = mtp.Token("Cat")
talk = mtp.Token("Talk")

cat_talking = mtp.TokenSet(tokens=(tree, cat, talk))

See Tokens and TokenSets for the available token types.

4. Create an Instruction

The instruction class you choose determines the type of model you train:

instruction_input = mtp.InstructionInput(
tokensets=[cat_talking]
)

instruction_output = mtp.InstructionOutput(
tokenset=cat_talking,
final=mtp.FinalToken("Continue")
)

instruction = mtp.Instruction(
name="cat_talking_instruction",
input=instruction_input,
output=instruction_output
)

5. Add Samples

Samples are the training examples that teach the instruction how to respond.

instruction.add_sample(
input_snippets=["Why do I keep vanishing and reappearing so suddenly?"],
output_snippet="Because it amuses me, and it keeps everyone wondering whether I'm truly here at all."
)

A minimum of 3 samples are required per instruction. StateMachineInstruction requires a minimum of 10.

6. Add the Instruction to the Protocol

protocol.add_instruction(instruction)

7. Save the Protocol

protocol.save()
protocol.template()
  • save() writes <name>_model.json, the file you submit for training
  • template() writes <name>_template.json, which describes how to format prompts for the trained model

Both methods validate the protocol first and raise a ProtocolError if anything is missing or invalid.

Training the Model

Upload the generated <name>_model.json to Databiomes to start training. You can monitor training progress there, and your model appears in the interface once training is complete.

Once trained, use <name>_template.json to build prompts that match the instructions the model was trained on. See Template for the fields in the template and how to use them.

Next Steps