Dissecting AI
From the paper: Vela: User Behavior as Supervision Sparks LLM Intelligence

Vela: User Behavior as Supervision

Training models from user histories is hard to score consistently; Vela turns earlier behavior into evidence and later behavior into prediction targets, alongside rubric-judged summaries and explanations.

Read the paper ↗
The short version

What it is

  • Visible history and hidden future A user’s timeline is split: earlier events are shown to the model, while later events can serve as outcomes to predict.
  • Two ways to supervise Some questions ask what the user will do next; others ask for a summary or an explanation grounded in the history already shown.
  • Leakage-aware task design A task avoids giving away a future event in one question when another question is meant to predict that same event.

Why it matters

Ordinary user histories are records, not ready-made training examples. This setup turns them into questions with either observed outcomes or evidence-based judging criteria, while preserving a meaningful boundary between what the model sees and what it must infer.

Before getting into the machinery, here is the basic idea: take a person’s past behavior, show some of it to a model, and ask questions whose answers can be checked against what happened later—or judged for how well they are grounded in the visible past. That matters because real histories contain signals about interests and habits, but a training task needs both a clear prompt and a way to evaluate the answer.

  1. A record becomes useful when it has a boundary: The canonical example is a viewing history. If I show you the videos someone watched earlier and hide the later watches, I can ask what they are likely to watch next. The earlier events are evidence; the later events give the prediction target. Vela applies this idea to timestamped behavior records, including views, searches, purchases, posts, follows, and dislikes. The analogy to a closed-book test is useful, but it breaks if the “answer” is not a single item or if the visible history is too thin to support a guess. So the real question is: what can I ask when a future outcome is not the right kind of answer?

  2. Prediction and interpretation need different scorecards: Consider the same viewing history. “Which account will this person follow?” can be compared with a follow that actually appears later. “What interests does this history suggest?” has no one exact string to match, so it needs criteria for whether the summary is supported by the visible record. Vela calls these Predictive and Rubric questions. Objective prediction gives a candidate list; Open-prediction asks for a free-form guess. Open asks for a summary, while Attribution asks why a supplied future action makes sense given the past. In mechanism terms, one scorecard checks against an observed outcome; the other checks whether the answer satisfies grounded criteria. Why not just put all four question types into every task?

  3. The questions must not hand each other the answer: Here is the catch: suppose I ask you to predict a future purchase, then also ask you to explain that very purchase while showing it to you. The explanation question has leaked the target. Vela avoids using a Predictive question and an Attribution question for the same future event. This is like not giving away a test answer in the next question; unlike a classroom test, though, these tasks are built from a person’s actual history and can combine multiple questions about different evidence. So how do we construct questions that fit the evidence without crossing that boundary?

The practical answer is to use behavior categories and templates. A template is eligible when the relevant kind of behavior is present; prediction prompts can be formed around future outcomes, while summary and explanation prompts are grounded in visible history, with rubrics to judge them. The template inventory spans the six behavior categories and four question types. Overall, I like the separation of scorecards: exact outcomes are good supervision when available, and rubrics are a better fit for answers that should be grounded but need not have one canonical wording. The remaining question is how to choose which tasks are worth keeping—a separate stage of the framework.

Read the deep dive

Why People Wanted It

A user history contains evidence about preferences and habits, but simply handing that history to a model does not tell it what to learn or how to score its answer. The practical question is how to turn naturally occurring behavior into tasks with an observable target, without making every useful question depend on a single exact answer. Vela’s move is to divide a history into what the model may see and what remains hidden, then build both prediction tasks and evidence-grounded interpretation tasks around that split.

The Core Move

Treat a chronological behavior history as both context and supervision: earlier events are visible, later events are withheld, and a task combines questions scored either against those later events or against a rubric grounded in the visible record.

Let H=(e1,…,eT)H=(e_1,\ldots,e_T) be the event sequence and let tt be the cutoff. The model receives H<t=(e1,…,et−1)H_{<t}=(e_1,\ldots,e_{t-1}) and answers a task Q=(q1,…,qk)Q=(q_1,\ldots,q_k); the future H≥t=(et,…,eT)H_{\ge t}=(e_t,\ldots,e_T) supplies targets for predictive questions. Predictive answers use future behavior as reference, while rubric answers are judged against task-specific criteria.

Quiz
In Vela’s task formulation, what is the role of the cutoff in a user’s event history?
It divides the history by behavior category.
It separates visible earlier events from hidden later events.
It separates private events from public events.
It marks the point where rubric questions become predictive questions.

Why the Two Families Need Different Scores

Now the version for readers who want more of the machinery: the split creates two distinct supervision contracts, not merely two styles of prompt. Predictive questions have an answer source in the hidden future. Rubric questions instead have criteria tied to the visible history or to whether an explanation is supported by that history.

For Objective questions, the prompt includes candidate items, and selected candidates are matched against the future-derived answer set. Open-prediction removes the candidate list; a scorer extracts predicted items, maps semantic equivalents to reference items, and computes set-F1. The candidate list makes the target space explicit, while free-form prediction permits a wider response but requires normalization before scoring.

For Rubric questions, each answer is assessed against criteria with scores in [0,1][0,1]. If there are mm criteria, the question score is s(ai)=1m∑j=1mcjs(a_i)=\frac{1}{m}\sum_{j=1}^{m}c_j. In words, the score is the equal-weight average of the criterion scores, rather than an exact-match test against one canonical sentence. A task score can then average question scores: S(Q)=1k∑i=1ks(ai)S(Q)=\frac{1}{k}\sum_{i=1}^{k}s(a_i). In words, each question contributes equally to the composite task score.

Quiz
Which pairing correctly describes Vela’s two question families?
Both families require exact-match answers from the hidden future.
Predictive uses future-derived references; Rubric uses task-specific criteria.
Predictive summarizes visible history; Rubric selects from a candidate list.
Predictive uses only rubrics; Rubric uses only candidate lists.

Why Attribution Must Not Give Away Prediction

Here is the part that gets technical: Attribution questions use a future event as something to explain, whereas Open-prediction questions ask the model to infer future events. If both questions expose the same event in one task, the explanation prompt has already leaked the prediction target.

The task synthesis rule therefore avoids selecting both a Predictive template and an Attribution template for the same future event. This preserves the distinction between inferring an outcome from visible evidence and explaining an outcome that has been supplied. Objective and Open-prediction are the two Predictive types; Open and Attribution are the two Rubric types. Open summarizes attributes, interests, or language style from visible history; Attribution explains a supplied future behavior using that visible history.

Quiz
Why avoid pairing a Predictive question with an Attribution question about the same future event?
Attribution answers are always exact-match scored.
The Attribution question would reveal the prediction target.
The two question types require incompatible visible histories.
The future event cannot be represented as a behavior record.

Why Templates Follow the Available Evidence

Now for the deeper construction constraint: templates are eligible only when their required behavior categories occur in the relevant segment. Histories are divided into segments while keeping each behavior record intact; within a segment, an earlier portion becomes visible and a later portion becomes hidden. Predictive questions are constructed by predefined rules, while Open and Attribution questions use a composer to produce a concrete question and rubric from the permitted evidence.

This means the task is not just a question pasted onto a log. Its type determines which evidence may be used to construct it and how an answer can be judged: future behavior supplies predictive references, while visible evidence grounds summaries and explanations. A separate module covers difficulty filtering and trajectory construction.

Minimal Causal Code

This deliberately plain loop shows the information boundary. The scorer receives future events only for predictive targets; rubric evaluation uses criteria built from the allowed evidence.

for history in histories:
    cutoff = choose_cutoff(history)
    visible = history[:cutoff]
    future = history[cutoff:]

    task = make_questions(visible, future)
    answers = model(task, visible)

    scores = []
    for question, answer in zip(task, answers):
        if question.kind in ("objective", "open_prediction"):
            score = compare_with_future(answer, question, future)
        else:
            score = judge_against_rubric(answer, question.rubric, visible)
        scores.append(score)

    task_score = sum(scores) / len(scores)

What You Gain, and What You Lose

The gain is a supervision scheme that uses the same behavior history for two complementary jobs: predicting observed outcomes and interpreting visible evidence. Predictions have concrete future-derived references; summaries and explanations can be scored without pretending there is only one correct wording.

The tradeoff is that rubric scoring depends on criteria and a scorer, while open prediction needs semantic extraction and matching. The visible/hidden boundary also matters: show the future too early, and prediction stops measuring inference. Finally, answers are only as informative as the available histories and eligible templates; this turns behavior into supervision, not a guarantee that every task is useful.

Core Takeaway

Earlier behavior is evidence, later behavior is a target—and the task must not let one question reveal the other’s answer.