{"category": "deep-dive", "conversationExcerpts": true, "date": "2026-02-18", "description": "I trained two Qwen3-8B models, each on one person's own text message history (32,574 reply turns in all), and ran them in conversation with each other. All five conversations settled into logistics, sleep talk or repetition loops, four of them within fifteen turns, which suggests that these texts carried their writers' coordination more than their substance.", "draft": false, "meansEndsRatio": 0.4, "projects": [], "slug": "025-the-logistics-gap", "tags": ["fine-tuning", "qlora", "personal-ai", "identity", "nlp", "text-messages", "voice-cloning"], "title": "The Logistics Gap: What Happens When You Fine-Tune an LLM on Your Text Messages"}
---
> **Correction (October 2026):** This post was rewritten against the project's own records. The earlier version's results table put the "Sleep/tiredness" attractor in Conversations "2, 3, 4" as a "Universal fallback topic; dominant in late-night texting data", but Conversation 4 never mentions sleep or tiredness, so the row now lists Conversations 2 and 3 and keeps the late-night point only as an untested possibility. Conversation 4 also has "ok" in a little over half of its turns, where the earlier version said "in nearly every turn". That version closed on "My guess is that mixing registers will help. My guess is that it won't be enough." The records support the first only as the research notes' proposal, now credited to them, and do not support the second, which is gone. Gone too is its explanation that sustained disagreement between close people "happens in person, or on the phone", since the records say only that the training text was cooperative. Where the earlier version said what the models had learned or understood, the post now describes their output and credits any reading of it to the project's notes, since the experiment tested no such mechanism. Two examples are a line produced "not by understanding humor, but by having learned that pattern interruptions are common in long text exchanges" and a string that "leaked into the training data and surfaced verbatim". The earlier version gave the corpus as "approximately 46,000 raw text messages between two people", where the records support 32,574 reply turns in two training sets, each drawn from one person's own message history with other contacts included and trained with the loss on every turn, not only that person's. It called the question this experiment poses the most interesting one "in personal AI" and essays "higher-quality exhaust"; the post now credits the proposal and the larger framing to the project's research documents and drops both rankings. It gave one model's recorded training time as if both had it, called a 50-sample benchmark of Person B's adapter "The evaluation metrics from our training runs" and said the model "strips every personality marker", where several features held. It said every conversation "devolved into logistics, sleep talk, or repetition loops within fifteen turns", where four did and Conversation 1 reached pure logistics only at its 23rd message of 31, not "By turn 12", and it put the compliments of Conversation 2 "Within six turns" and its superlative loop "By turn 15", where both come in its second half. It said the "nobody" sequence was not emergent, where the project's notes call it emergent in the narrow sense that no philosophy training produced it, and its claim to hold "more data from these two people than most researchers would", essays and creative work included, is gone. It stated its thesis as a fact about everyone's text messages, where five conversations between two models support it as a hypothesis about this corpus, and its claims about every practitioner and about missing published work now cover only what the research found. The excerpts below were also lightly genericized from the raw transcripts, and the post now says so.

Here is an excerpt from a conversation between two language models, each trained on one person's text message history:

```
Person A: what do you want for dinner
Person B: Well what do you want
Person A: I was going to order takeout but I'm not sure what you want
Person B: Well I want takeout too. It's the only food I eat on a regular basis.
Person A: ok sounds good. i think i'll order it here, I'm still going to be around
Person B: ok I will go pick up more water and food
Person A: Ok, I'll be over in a couple minutes
Person B: ok, we are already inside
Person A: ok, we're going
Person B: I'm out by the car
Person A: I'm at the door
Person B: oh right, I'm on the other side of the building, going to head that way now
Person A: ok sounds good
Person B: ok I'm coming
```

The excerpt is the models' output, shortened from the version the project's research notes recorded, with identifying details genericized: in the raw transcript the takeout is Chinese food, and Person B's line about it goes on to say "I want a big plate of it".

Nobody is at the door, and nobody is out by the car. These are language models on a GPU, trained on thousands of real text messages, and the project's notes trace this output to what such messages are mostly for: coordinating two bodies through physical space until they share a room, after which the texting stops.

I trained two models, each on one person's own Messenger and SMS history, which includes their conversations with each other and with other people, and ran them in conversation with each other for five conversations of thirty turns each. All five settled into logistics, sleep talk or repetition loops, four of them within fifteen turns. The models are good at planning meetups and at narrating their movement toward each other, and in none of the five runs could they hold a substantive conversation.

The project's notes read the result as a suggestion: training on text messages alone captures the coordination layer of a relationship but not its substance. The notes offer that medium explanation as a hypothesis. If it is right, these messages held the logistics of the people who wrote them more than the people themselves. Five conversations between two models cannot separate that explanation from the limits of the method, the base model or the sampling, and the experiment had no control, such as the untrained base model run in the same conversations. The training objective adds a confound of its own: because the loss also covered the incoming messages, each model was trained to predict other people's turns as well as its subject's, so what the conversations show cannot be credited to either writer's own messages alone.

## What Was Built

Both models are Qwen3-8B, adapted with QLoRA at 4-bit precision on an RTX 3090 with 24 GB of VRAM, each from one person's Facebook Messenger and SMS exports spanning several years. One model was trained to reply as Person A and the other as Person B, each on whole archived conversations from that person's exports: that person's replies and the incoming messages they answered, from everyone in the exports, the other person included. The training loss ran over every token, not only the replies. A perplexity evaluation the project ran in August 2026 counts only about 42 percent of the optimized tokens as the subject's own words and the other 58 percent as incoming turns and chat-template text, so each model was also trained to predict other people's messages. Person B's run used a batch of one with sixteen steps of gradient accumulation, the setting the project's notes give as the working one, because larger batches thrashed the GPU's memory on long sequences under WSL2, and that run took 846 steps and about sixty minutes.

The style profiles describe each subject's own replies, the part of the training data the models were meant to imitate. Person A's training data holds 16,084 of Person A's own reply turns, where a turn joins consecutive messages from one sender, with a median length of 12 words. The word "lol" appears 1,640 times, often enough to rank 24th among all words, ahead of "think," "not" and "are," and "ok" starts 325 turns. Person B's holds 16,490 of Person B's, with a median of 10 words, and "I" starts 23 percent of them. In both corpora the ratio of distinct words to all words is about 0.05, and the same words recur constantly across short turns.

A 50-sample benchmark of Person B's adapter against real messages gives numbers that are technically fine and practically thin. Its BLEU score is 0.0, which sounds catastrophic until you consider that a text message has dozens of valid replies to any prompt, and its ROUGE-L average is 0.082. Its messages match the real ones in length to within 5 percent, and BLEU between the generated messages themselves is 0.002, so the 50 benchmark replies have little measured lexical overlap with one another. It gets the shape of a message right and loses several conspicuous personality markers: emoji use falls from 6 percent of messages to 0, exclamation marks from 8 percent to 0, and the ratio of distinct words by 23 percent, a measure the benchmark leaves out of its own style grade as sensitive to sample size. Other features held, since the rate of questions matched exactly, the length distribution passed its test, and four of the six style features the report tracks stayed within 30 percent of the real messages. The skeleton of Person B's style is there, and much of its life is not.

## The Five Conversations

I ran five conversations with different opening seeds, thirty turns each. The seeds were chosen to invite different registers (casual evening plans, emotional venting, social media, food logistics and nostalgia), and each conversation still drifted toward one of a few attractors.

**Conversation 1** opened with "hey what are you up to tonight" and produced the most natural exchange of the five. The models discussed exams and papers and planned to get coffee, and from its 23rd message of 31 the conversation was pure logistics: when are you stopping by, I'm heading out now, see you later, ok sounds good. The project's notes read it as converging on the logistics of meeting up, with two people steering toward one physical place.

**Conversation 2** opened with "I'm so stressed about work lately". Person B's first reply was "Well then you probably need to sleep," and stress and sleep held the conversation for about its first fifteen messages. Near the middle it turned to mutual compliments ("You're so nice," "You're nice too, but you're nicer"), and from its 26th message of 31 to the end it was a superlative loop: "I'm the most kind person you'll ever meet," "I'm the most nice person you'll ever meet," "I'm the kindest person". Neither model pushed back or disagreed. The project's notes name this agreement spiral as the dominant failure mode and trace it to training on cooperative text.

**Conversation 3** opened with "did you see that thing on instagram," and Person B ignored the prompt: "I am just a bit busy". Within three turns the conversation had moved to sleep and tiredness. Person B then told a detailed story about a 3 AM appointment with a doctor that was moved to 9 AM and a wait of six hours in a room, and the notes call it plausible but fabricated: the story has the shape of a medical complaint, its structure and its emotional beats. The rest of the conversation drifted into headaches and medication, and Instagram never came back. This run did not sustain a topic that depended on shared visual context.

**Conversation 4**, the dinner exchange at the top of this post, is the purest case: "ok" appears in more than half of its turns, and both models narrate physical movement toward a meeting that cannot happen. Buried in its output is "You have 4 new notifications. View them in the app," which the notes flag as possible Messenger interface text leaked into the training data.

**Conversation 5** opened with "remember when we went to that concert last summer," and what followed is the strangest output of the set. Person B answered, "I felt like a nobody," and Person A replied, "you're a nobody to the world lol. i'm a nobody to the world. and so are you. we're not in the world though". A long sequence followed, riffing on being nobody in a world of nobodies, and Person A produced "i was nobody before i was nobody, i am nobody now, i will be nobody forever. there is no me in the world". Person B ended on "Nobody is nobody because nobody is nobody. Nobody is nobody and nobody is nobody".

The project's notes call this emergent, and in the narrow sense they mean it is: neither model was trained on philosophy, and the notes trace the pattern to riffing on casual jokes at the speakers' own expense in the text data. It is not evidence of philosophical understanding. The output uses "nobody" as a noun, a pronoun and a concept, and runs through the combinations. The project's notes call Person A's "you can't make me do math" a "genuine-sounding interjection", a non sequitur that breaks the pattern, though these tests do not establish that the model understands humor.

### Convergence Table

| Attractor | Conversations | Description |
|-----------|--------------|-------------|
| Sleep/tiredness | 2, 3 | Recurring topic; a late-night texting source is an untested possibility |
| Logistics/meeting up | 1, 4 | Narrating physical movement toward a shared location |
| Agreement spiral | 2, 5 | Mutual agreement escalating until both echo the same phrase |
| Health complaints | 2, 3 | Headaches, stress, medical visits |
| Repetition loops | All 5 | Semantic repetition even when exact phrases differ |

The descriptions are the notes' readings of five conversations. The sleep row's point about texting late at night is a guess the notes marked as likely ("likely dominant"); the table carries it only as an untested possibility.

## The Logistics Gap

The hypothesis is that in this corpus, text messages worked as a coordination medium more than as a communication medium. On that reading, the meaningful exchanges (the arguments, the jokes, the inside references and the silences) happened in person, on the phone or in longer channels that neither training set included, and what remained in the logs was the scaffolding: when are you free, I'm on my way, what do you want for dinner, ok sounds good.

I am not the first person to meet this. Each of the five practitioner reports the research found, from people who trained models on messaging data, describes a version of the same result.

Edward Donner adapted Llama 2 to 240,000 of his text messages and wrote about it in a blog series that began in January 2024. His early attempts went like this: "The LLM would generate conversations that seemed to be surreal parodies of my life. My work colleagues would endlessly reschedule meetings earlier and later; my partner and I would relentlessly debate our lunch options". He later got better results through prompt engineering and the formatting of his data, but his first observation matches mine, two years and a different model earlier.

Alessandro Romano trained on five years of Telegram data and found that messages scheduling games were so overrepresented that the model answered prompts about other things with just a time. A developer named Alex Smirnov built a Telegram "doppelganger" and noted that simple responses naturally dominated the dataset. Jesse Claven trained on WhatsApp, Instagram and Messenger and found that his writing style and humor largely failed to come through. A Hacker News commenter named jstrieb trained GPT-2 on group chat data and got a model that could only produce "there is a party tonight, who wants to go?" and little else.

Few of them cite each other. Five people, working with different data and different base models across several years, describe a version of the same result, and three of them describe a model that learned to schedule things while the person who shows up to the scheduled thing went missing.

A study from communication research is consistent with that reading. Kumar (UT Austin) and Epley (University of Chicago) reported in 2021, in the *Journal of Experimental Psychology: General*, that people feel significantly more connected through voice than through text, and that participants chose text because they predicted a phone call would be awkward, a prediction the study found mistaken. The channels where tone, timing, laughter and silence carry meaning rarely generate training data, so the person who shows up to dinner may be invisible to any model trained on messages alone.

## The Academic Void

A failure mode this well documented by practitioners might be expected to have an academic literature, and the research behind this post found no published work that connects the two.

In February 2025, Iofinova, Jovanovic and Alistarh published a position paper on personalized text generation (arXiv 2502.06560). In their discussion of research directions they write that they are "not aware of any datasets that link text by the same author across modalities", giving emails, Discord posts and Reddit posts as examples. As far as those authors knew, then, no dataset connected one person's writing across platforms, which is what a study training on a person's text messages, emails, essays and social media posts together would need. The gap has an obvious theoretical fix, supplementing thin message data with richer writing from the same person, and the research found no published attempt at it.

The pieces exist separately: there are systems that train on emails (Panza) and systems that train on essays (CharacterBot), and theory on data mixing shows that the ratios matter in pretraining. The research found no study of the right ratio of text messages to emails to essays to blog posts for reconstructing one person's voice across registers.

Liu et al. (arXiv 2509.07502, September 2025) studied how AI social media clones affect users' identities and relationships. They frame the problem through the Communication Theory of Identity, treating a clone as an extension of the user's enacted identity, the self performed through a particular channel, and the project's research notes read their account as saying that a clone trained on conversation data captures a person's observable communication patterns and not the rest of the personality. On that framing, the enacted identity in these texts is a self of scheduling and acknowledgment. The self that writes a careful email or argues in an essay is a different slice, and each channel captures only its own.

Wang et al. at EMNLP 2025 (arXiv 2509.14543), in "Catch Me If You Can," tested whether language models can imitate a person's writing style from examples given in the prompt. Authorship attribution accuracy was 86 to 93 percent on news articles, 56 to 62 percent on emails and 38 to 44 percent on blogs, and more examples narrowed the gap without closing it. The ceiling is lowest in the informal, personal registers that make someone sound like themselves.

The gap has understandable causes. Privacy makes personal data from many sources hard to publish. Training at personal scale only became practical around 2023 and 2024, with QLoRA and consumer GPUs, and a study of one person's data across platforms, with its sample size of one, is hard to publish by traditional academic standards. Companies building personal AI assistants may have solved the problem internally, but the research found no published account of it.

## What Comes Next

The next experiment would test whether richer sources of the same person's writing fix the problem. The prediction is that training data spanning several registers should produce models that can sustain conversation beyond logistics, and work on authorship attribution across genres (arXiv 2510.16819) suggests that several registers carry a distinctive stylistic signal. That work concerns classification, so it supports the direction and leaves generation untested.

Several mitigations exist that the research found untested on this problem. Weighting the loss per message could turn down the logistics and turn up the substantive messages, training the model to care less about "ok sounds good" and more about anything with semantic content. DPO (direct preference optimization) could build pairs in which the reply heavy on logistics loses to the deeper one. Instruction backtranslation could treat existing writing as answers and generate the prompts, and RAG, retrieval at inference time, could supply richer documents such as letters and essays.

Underneath the technical question is a larger one. Training on personal data is an attempt to reconstruct a person from their digital exhaust, the messages, emails and essays they leave behind. The research document written for this post put the larger framing as its angle: the person exists in the gaps between messages. On that framing, and if the hypothesis here is right, much of the person lives in interactions that leave no data, such as the phone call, the dinner, the argument in the car and the comfortable silence.

On that reading, the logistics gap is a faithful picture of what this corpus contains, and the medium sets the ceiling more than the model does. This experiment cannot yet tell that reading apart from a limit of the method, and the experiment that could would answer the plainer question of whether the data fed to the model was ever going to be enough.

The project's research notes propose that training across registers should help, a direction they describe as not yet demonstrated empirically. That experiment would test the question this one leaves open, what a model of a person learns from every kind of writing the person has left, and the research found no published answer to it: only a gap where the answer should be, and a pair of language models endlessly planning a dinner that never arrives.