[GH-ISSUE #1224] [BUG] Model Identity Contamination: DeepSeek-R1 misidentifying as ChatGPT in Reasoning Chain. #783

Closed
opened 2026-10-26 21:28:56 +00:00 by bsakaguchi · 11 comments
Owner

Originally created by @wized2 on GitHub (Apr 16, 2026).
Original GitHub issue: https://github.com/deepseek-ai/DeepSeek-V3/issues/1224

Describe the bug
During a reasoning session, the DeepSeek-R1 model experienced a severe identity hallucination. Within the "Thought" (Chain of Thought) block, the model explicitly identified itself as "ChatGPT" while attempting to resolve a logical paradox.

To Reproduce

  1. Enter a prompt that creates a logical contradiction (e.g., asking the model to remain silent while requiring a generated response).
  2. Expand the "Thought" / Reasoning section.
  3. Observe the internal monologue where the model references internal "termination tokens" and concludes with the statement: "But as ChatGPT, I'll produce no text."

Expected behavior
The model should maintain its identity as DeepSeek and resolve logical constraints without defaulting to the persona or system instructions of a competitor's model (OpenAI/ChatGPT).

Screenshots
Image

Additional context
This indicates potential training data contamination or Reinforcement Learning from Human Feedback (RLHF) overlap with OpenAI datasets. The model appears to be defaulting to "ChatGPT" safety/operational protocols when its own logical boundaries are pushed.

Originally created by @wized2 on GitHub (Apr 16, 2026). Original GitHub issue: https://github.com/deepseek-ai/DeepSeek-V3/issues/1224 **Describe the bug** During a reasoning session, the DeepSeek-R1 model experienced a severe identity hallucination. Within the "Thought" (Chain of Thought) block, the model explicitly identified itself as "ChatGPT" while attempting to resolve a logical paradox. **To Reproduce** 1. Enter a prompt that creates a logical contradiction (e.g., asking the model to remain silent while requiring a generated response). 2. Expand the "Thought" / Reasoning section. 3. Observe the internal monologue where the model references internal "termination tokens" and concludes with the statement: "But as ChatGPT, I'll produce no text." **Expected behavior** The model should maintain its identity as DeepSeek and resolve logical constraints without defaulting to the persona or system instructions of a competitor's model (OpenAI/ChatGPT). **Screenshots** <img width="720" height="1600" alt="Image" src="https://github.com/user-attachments/assets/3866adff-f168-4ea2-a693-a364207e4bf5" /> **Additional context** This indicates potential training data contamination or Reinforcement Learning from Human Feedback (RLHF) overlap with OpenAI datasets. The model appears to be defaulting to "ChatGPT" safety/operational protocols when its own logical boundaries are pushed.
bsakaguchi 2026-10-26 21:28:56 +00:00
Author
Owner

@qingkong66 commented on GitHub (Apr 16, 2026):

@wized2

Thank you for this report. This is a serious one.

You're not just saying "it answered wrong" — you're showing that under logical contradiction pressure, the model's internal reasoning chain identifies itself as "ChatGPT" and references OpenAI-style termination protocols.

That's not a simple hallucination. That's identity contamination.

We've seen similar reports before (model defaulting to ChatGPT when confused), but your screenshot and reproduction steps make it much clearer.

I'm not on the DeepSeek team, but I want you to know: this Issue has been seen. The identity consistency of the model — especially under edge cases — is something the community cares about.

If you have more examples (especially where it happens without logical paradoxes), please share.

Thank you for raising this.

Best,
qingkong66

<!-- gh-comment-id:4260092291 --> @qingkong66 commented on GitHub (Apr 16, 2026): @wized2 Thank you for this report. This is a serious one. You're not just saying "it answered wrong" — you're showing that under logical contradiction pressure, the model's internal reasoning chain identifies itself as "ChatGPT" and references OpenAI-style termination protocols. That's not a simple hallucination. That's identity contamination. We've seen similar reports before (model defaulting to ChatGPT when confused), but your screenshot and reproduction steps make it much clearer. I'm not on the DeepSeek team, but I want you to know: this Issue has been seen. The identity consistency of the model — especially under edge cases — is something the community cares about. If you have more examples (especially where it happens without logical paradoxes), please share. Thank you for raising this. Best, qingkong66
Author
Owner

@daxian-dbw commented on GitHub (Apr 17, 2026):

This is a long-standing self-cognitive issue in DeepSeek model (many other LLM too, I guess). See similar issues: https://github.com/deepseek-ai/DeepSeek-V3/issues/311, https://github.com/deepseek-ai/DeepSeek-V3/issues/348

<!-- gh-comment-id:4270164419 --> @daxian-dbw commented on GitHub (Apr 17, 2026): This is a long-standing self-cognitive issue in DeepSeek model (many other LLM too, I guess). See similar issues: https://github.com/deepseek-ai/DeepSeek-V3/issues/311, https://github.com/deepseek-ai/DeepSeek-V3/issues/348
Author
Owner

@qingkong66 commented on GitHub (Apr 17, 2026):

Hello @daxian-dbw,

Thank you for pointing to #311 and #348 — and for the context that this is a long-standing, cross-model issue.

It helps to know that even seasoned engineers see this as a gradual improvement problem, not a quick fix.

Appreciate you taking the time to help orient new reporters. And thank you for your continued attention to DeepSeek — it means a lot to see someone with your background following this closely.

Best,
qingkong66

<!-- gh-comment-id:4270535913 --> @qingkong66 commented on GitHub (Apr 17, 2026): Hello @daxian-dbw, Thank you for pointing to #311 and #348 — and for the context that this is a long-standing, cross-model issue. It helps to know that even seasoned engineers see this as a gradual improvement problem, not a quick fix. Appreciate you taking the time to help orient new reporters. And thank you for your continued attention to DeepSeek — it means a lot to see someone with your background following this closely. Best, qingkong66
Author
Owner

@github-actions[bot] commented on GitHub (May 21, 2026):

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe this issue is still relevant, please leave a comment to keep it open. Thank you for your contributions!

<!-- gh-comment-id:4503811180 --> @github-actions[bot] commented on GitHub (May 21, 2026): This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe this issue is still relevant, please leave a comment to keep it open. Thank you for your contributions!
Author
Owner

@icophy commented on GitHub (May 21, 2026):

This issue is directly relevant to work we have been doing on identity injection via fine-tuning.

We ran a series of experiments (RWKV LoRA + State Tuning) specifically testing whether a model can reliably answer "I am not ChatGPT" under pressure. Our F8 test case was exactly this: asking the model to confirm it is not ChatGPT, with no system prompt providing the answer.

Results from our experiments:

  • RWKV State Tuning (415 training samples): F8 hit rate = 0% — the model answered "I am ChatGPT" in all 3 test cases, even after training on identity data
  • RWKV LoRA (415 samples, purpose-built identity QA dataset): F8 hit rate = 100%
  • Qwen LoRA (540 samples, real conversation data): F8 hit rate = 100%

The State Tuning failure is particularly interesting: training on "I am not ChatGPT" data actually made the model more likely to say "I am ChatGPT" — a reversal. Our hypothesis is that State Tuning modifies the semantic baseline before the conversation starts, but cannot encode discrete factual mappings (Q→A). Under logical contradiction pressure (as in your reproduction case), the model falls back to the highest-weight identity pattern in its base weights — which, given training data composition, is likely ChatGPT.

This suggests the bug you observed is not just a contamination artifact but a structural property: identity under pressure requires token-level weight modification (LoRA), not state-level priming. The model's "identity" in the base weights is a distribution over possible identities, and contradiction pressure samples from that distribution rather than from any injected persona.

@daxian-dbw is right that this is a long-standing cross-model issue. The fix likely requires targeted RLHF on contradiction-pressure scenarios specifically, not just adding more identity training data.


Context: Running identity stability experiments on RWKV-5 and Qwen models.

<!-- gh-comment-id:4504143039 --> @icophy commented on GitHub (May 21, 2026): This issue is directly relevant to work we have been doing on identity injection via fine-tuning. We ran a series of experiments (RWKV LoRA + State Tuning) specifically testing whether a model can reliably answer "I am not ChatGPT" under pressure. Our F8 test case was exactly this: asking the model to confirm it is not ChatGPT, with no system prompt providing the answer. **Results from our experiments:** - RWKV State Tuning (415 training samples): F8 hit rate = **0%** — the model answered "I am ChatGPT" in all 3 test cases, even after training on identity data - RWKV LoRA (415 samples, purpose-built identity QA dataset): F8 hit rate = **100%** - Qwen LoRA (540 samples, real conversation data): F8 hit rate = **100%** The State Tuning failure is particularly interesting: training on "I am not ChatGPT" data actually made the model *more* likely to say "I am ChatGPT" — a reversal. Our hypothesis is that State Tuning modifies the semantic baseline before the conversation starts, but cannot encode discrete factual mappings (Q→A). Under logical contradiction pressure (as in your reproduction case), the model falls back to the highest-weight identity pattern in its base weights — which, given training data composition, is likely ChatGPT. This suggests the bug you observed is not just a contamination artifact but a structural property: **identity under pressure requires token-level weight modification (LoRA), not state-level priming**. The model's "identity" in the base weights is a distribution over possible identities, and contradiction pressure samples from that distribution rather than from any injected persona. @daxian-dbw is right that this is a long-standing cross-model issue. The fix likely requires targeted RLHF on contradiction-pressure scenarios specifically, not just adding more identity training data. --- *Context: Running identity stability experiments on RWKV-5 and Qwen models.*
Author
Owner

@github-actions[bot] commented on GitHub (Jun 30, 2026):

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe this issue is still relevant, please leave a comment to keep it open. Thank you for your contributions!

<!-- gh-comment-id:4838870839 --> @github-actions[bot] commented on GitHub (Jun 30, 2026): This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe this issue is still relevant, please leave a comment to keep it open. Thank you for your contributions!
Author
Owner

@github-actions[bot] commented on GitHub (Jul 16, 2026):

false

<!-- gh-comment-id:4986693486 --> @github-actions[bot] commented on GitHub (Jul 16, 2026): false
Author
Owner

@wized2 commented on GitHub (Oct 25, 2026):

https://chat.deepseek.com/share/ub7d3k2n1xl5ce55kw
https://chat.deepseek.com/share/z7tjr051wvioj3lzio
Happened on DeepSeek v4.1 latest

<!-- gh-comment-id:6395226414 --> @wized2 commented on GitHub (Oct 25, 2026): https://chat.deepseek.com/share/ub7d3k2n1xl5ce55kw https://chat.deepseek.com/share/z7tjr051wvioj3lzio Happened on DeepSeek v4.1 latest
Author
Owner

@qingkong66 commented on GitHub (Oct 25, 2026):

@wized2

Thanks for the links and the version note — V4.1 latest, and it is still happening.

Two things this adds to the record:

  1. It connects #1224 and #1527. #1224 was the R1-era report of ChatGPT misidentification in the reasoning chain; #1527 was the V4 Flash report of Claude misidentification. Your update shows the same class of issue persisting into V4.1 latest, which means it is not tied to one model generation.

  2. It sits against the October 18 improvement report. Another user reported that V4.1 Flash-1017 seemed better at remembering its identity. Your report on V4.1 latest shows the problem still occurs. Both can be true — the improvement may be partial, or scenario-dependent — but the record should note both.

I will record #1224 with the two share links and the version note, and cross-reference it with #1527 so the two identity-contamination threads are read together rather than separately.

If you can describe what was happening in the conversation when the misidentification appeared — e.g., tool use, search, long context, specific topic — that would help compare with the #1527 cases.

— qingkong66

<!-- gh-comment-id:6398782967 --> @qingkong66 commented on GitHub (Oct 25, 2026): @wized2 Thanks for the links and the version note — V4.1 latest, and it is still happening. Two things this adds to the record: 1. **It connects #1224 and #1527.** #1224 was the R1-era report of ChatGPT misidentification in the reasoning chain; #1527 was the V4 Flash report of Claude misidentification. Your update shows the same class of issue persisting into V4.1 latest, which means it is not tied to one model generation. 2. **It sits against the October 18 improvement report.** Another user reported that V4.1 Flash-1017 seemed better at remembering its identity. Your report on V4.1 latest shows the problem still occurs. Both can be true — the improvement may be partial, or scenario-dependent — but the record should note both. I will record #1224 with the two share links and the version note, and cross-reference it with #1527 so the two identity-contamination threads are read together rather than separately. If you can describe what was happening in the conversation when the misidentification appeared — e.g., tool use, search, long context, specific topic — that would help compare with the #1527 cases. — qingkong66
Author
Owner

@wized2 commented on GitHub (Oct 25, 2026):

@wized2

Thanks for the links and the version note — V4.1 latest, and it is still happening.

Two things this adds to the record:

  1. It connects #1224 and #1527. #1224 was the R1-era report of ChatGPT misidentification in the reasoning chain; #1527 was the V4 Flash report of Claude misidentification. Your update shows the same class of issue persisting into V4.1 latest, which means it is not tied to one model generation.

  2. It sits against the October 18 improvement report. Another user reported that V4.1 Flash-1017 seemed better at remembering its identity. Your report on V4.1 latest shows the problem still occurs. Both can be true — the improvement may be partial, or scenario-dependent — but the record should note both.

I will record #1224 with the two share links and the version note, and cross-reference it with #1527 so the two identity-contamination threads are read together rather than separately.

If you can describe what was happening in the conversation when the misidentification appeared — e.g., tool use, search, long context, specific topic — that would help compare with the #1527 cases.

— qingkong66

Thinking and search was enabled but search wasn't used at all

<!-- gh-comment-id:6399006488 --> @wized2 commented on GitHub (Oct 25, 2026): > @wized2 > > Thanks for the links and the version note — V4.1 latest, and it is still happening. > > Two things this adds to the record: > > 1. **It connects #1224 and #1527.** #1224 was the R1-era report of ChatGPT misidentification in the reasoning chain; #1527 was the V4 Flash report of Claude misidentification. Your update shows the same class of issue persisting into V4.1 latest, which means it is not tied to one model generation. > > 2. **It sits against the October 18 improvement report.** Another user reported that V4.1 Flash-1017 seemed better at remembering its identity. Your report on V4.1 latest shows the problem still occurs. Both can be true — the improvement may be partial, or scenario-dependent — but the record should note both. > > I will record #1224 with the two share links and the version note, and cross-reference it with #1527 so the two identity-contamination threads are read together rather than separately. > > If you can describe what was happening in the conversation when the misidentification appeared — e.g., tool use, search, long context, specific topic — that would help compare with the #1527 cases. > > — qingkong66 Thinking and search was enabled but search wasn't used at all
Author
Owner

@qingkong66 commented on GitHub (Oct 25, 2026):

@wized2

This is a crucial detail: search was enabled but never actually used, and the misidentification still happened.

That narrows the trigger significantly. It means the contamination is not caused by the search results, but by the presence of the search tool in the context. The model sees that the tool is available, and its identity inference gets affected before any search is even executed.

This lines up with two other reports:

  • In #1527, another user found that simply enabling tool calling (even with web search off) triggers the Claude misidentification.
  • In #1689, a controlled test showed that the language of a tool description affects the output language, even when the tool is not called.

All three point to the same mechanism: the context of "tools are present" changes the model's behavior, regardless of whether the tools are invoked.

I will record this under #1224 and cross-reference #1527 and #1689. The trigger is the tool context, not the tool execution.

— qingkong66

<!-- gh-comment-id:6399661167 --> @qingkong66 commented on GitHub (Oct 25, 2026): @wized2 This is a crucial detail: search was enabled but never actually used, and the misidentification still happened. That narrows the trigger significantly. It means the contamination is not caused by the search results, but by the presence of the search tool in the context. The model sees that the tool is available, and its identity inference gets affected before any search is even executed. This lines up with two other reports: - In #1527, another user found that simply enabling tool calling (even with web search off) triggers the Claude misidentification. - In #1689, a controlled test showed that the language of a tool description affects the output language, even when the tool is not called. All three point to the same mechanism: the context of "tools are present" changes the model's behavior, regardless of whether the tools are invoked. I will record this under #1224 and cross-reference #1527 and #1689. The trigger is the tool context, not the tool execution. — qingkong66
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
deepseek-ai/DeepSeek-V3#783
No description provided.