Loom
A loom is a tree of base-model completions. Use it to see the range of continuations a base model gives for one prompt and to build a text by choosing among them. You generate a batch of branches from any node, then continue from one of them or return to an earlier node. Generating only adds nodes, so branches stay until you delete them. A loom holds up to 2,000 nodes.
Sign in and open the Loom. It opens your most recent loom, or a new one on your first visit. The loom list shows pinned looms first, then recent ones. Select New loom there to start another, and use a row's ⋮ menu to pin, rename, or delete a loom. Each loom is private to your account.
Set a root
Type a starting prompt in the Seed a new root prompt box, or use the Tab key to take the grey example, and select Set root (replaces tree). The root holds your prompt as you typed it, and nothing generates yet. Once a root exists, the box folds away. Open it again to set a new root, which deletes the current tree. You cannot set a root during a generation.
Choose the branch settings
The branch settings live in the Settings panel on the right.
The Settings panel has these fields:
- Branches sets the number of completions in each generation. The field accepts values up to 8.
- Max tokens sets the most tokens that each branch can generate. The field accepts values up to 1000.
- Temperature starts at 1.0 in a new loom.
- Heatmap records each token's logprob and top alternatives. To skip logprobs, turn off Heatmap, because the Top logprobs shown field rejects the value 0.
- Top logprobs shown sets the number of alternatives recorded for each token. The field accepts values from 1 to 20.
- Seed is empty in a new loom and shows "Random" as its placeholder. When Seed is empty, each request gets a new random seed.
Reopening a loom restores the seed, the Heatmap setting, and the other settings of its last branch request. A new loom starts with the heatmap off unless you turn on the heatmap default in Settings.
The Loom has no fields for top_p, top_k, min_p, the penalties, or stop. It sends the neutral value of each of those sampling fields, as the Workbench page lists, and it sends no stop strings.
Generate branches
Select a node, then select Branch from here. One request generates all the branches, and they stream in live.
Each branch that produced text or reached its end becomes a child node. If the model's first token was end-of-sequence, the node is empty. A branch that you stopped, or that failed before it produced text, does not become a node.
Move around the tree
- Select a node in the tree panel to see its text from the root in the Selected node panel.
- Select Graph in the toolbar under the loom's title to see a left-to-right map of the tree that highlights the current path. Drag to pan, scroll or use the zoom buttons to zoom, and select a node to make it current. Select List to go back. Your browser remembers the choice.
- To delete a node and its subtree, select the × on its row.
Edit, split, and write branches
The Selected node panel has three actions:
- The Edit action changes the node's text in place. After you select Save edit, the node's children continue from the new text. Changed text loses its heatmap, because logprobs line up only with the text the model produced. Saving without a change keeps it.
- The Split at cursor action opens the edit box. Place the cursor and select Split here. The node keeps the text before the cursor. A new child takes the text after it and the node's children, so deeper branches keep their context. The split also saves your edits.
- The New sibling action adds a branch with the same parent and opens it for you to write. It does not work on the root. To start from a different root, create a new loom.
Read the heatmap
When Heatmap is on, a selected generated node shows its tokens in shades of green, and a darker shade means a higher probability. Hover over a token to open its Token probabilities dropdown with the top alternatives and their probabilities, and select the token to keep the dropdown open. The root holds your own text, so it has no colors.
Reproduce a branch
Type a number in Seed before you select Branch from here. A branch request sent on its own with the same node, settings, and seed gives the same branches, but when the server is busy, the probabilities can move a little and a token can change.
Each node stores its request's seed and its choice index, which is its position among the request's branches. When a run uses a Branches value greater than 1, rerunning its seed with Branches set to 1 is not guaranteed to reproduce a sibling. To retry one sibling, rerun with the same seed and Branches value, and read the same choice index. A run sent on its own then repeats the sibling, but when the server is busy, a token can change. The JSON export includes the seed and the choice index of each node.
Export and import a loom
The icon buttons in the toolbar under the loom's title export and import looms. Hover over a button to see what it does.
- Download this loom as JSON saves the whole tree with its text and logprobs.
- Download the current path as plain text saves the text from the root to the selected node.
- Import a loom JSON file into a new loom loads an exported file into a new loom with new node IDs, so it never changes an existing loom.
Keyboard shortcuts
Shortcuts other than Esc work only when no text field has focus, but Esc also works in the edit box.
| Key | Action |
|---|---|
↑ |
Previous sibling |
↓ |
Next sibling |
← |
Go to parent |
→ |
Go to first child |
g |
Generate branches from the selected node |
e |
Edit the node's text |
s |
Split the node at the cursor |
i |
Insert a new sibling |
Delete |
Delete the node and its subtree |
Esc |
Cancel an edit or close the legend |
? |
Show or hide the legend |