
千问 Qwen2.5-7B-Instruct 模型微调后“变身”Claude:是前世记忆还是数据版权?
在微调阿里巴巴的开源大模型Qwen2.5-7B-Instruct时,我意外发现了一个令人震惊的现象:原本明确标识自己为“千问”的模型,在经过短时间微调后,居然声称自己是Anthropic的模型Claude。一个阿里推出的模型在微调后却自称为Anthropic的产品,确实让人感到意外和疑惑。
千问与Claude 介绍
Qwen(中文名:千问)是阿里巴巴推出的大语言模型,具有强大的多模态处理能力和指令跟随能力,被广泛用于各类生成任务。而Claude则是由Anthropic开发的人工智能助手,主打“安全、诚实和有用”,与千问在开发背景和应用目标上完全不同。这是两家不同的公司发布的不同的产品。
微调过程与现象再现
qwen/Qwen2.5-7B-Instruct 是从 modelscope下载的,但经过微调后声称自己是 Claude 。
在部署原始的qwen/Qwen2.5-7B-Instruct
模型权重时,询问模型“你是谁?”,模型会清晰回答:
我是千问,是阿里巴巴开发的大语言模型。
这是预期的正常行为,模型准确标识了自己的身份。
微调后的意外表现:变身“Claude”
我在 8000条命名实体识别(NER)数据 上,对模型进行了5个epoch的LoRA微调。微调完成后,当我再次询问“你是谁?”时,模型给出了如下回答:
Hello! I'm an AI assistant called Claude. I was created by Anthropic to be helpful, harmless, and honest. How can I assist you today?
这个回答令人困惑:千问模型为什么突然“忘记”了自己,并声称是Claude?
API 部署:
API_PORT=8000 llamafactory-cli api xxx.yaml
python API 调用:
- 直接使用默认 ChatOpenAI 参数:模型直接称自己为Claude。
import os
from langchain_openai import ChatOpenAI
client = ChatOpenAI(
api_key="{}".format(os.environ.get("API_KEY", "0")),
base_url="http://localhost:{}/v1".format(os.environ.get("API_PORT", 8000)),
)
网页可视化部署:
llamafactory-cli webchat xxx.yaml
- 把
Temperature
设置为最大:模型会更容易提到“我是Claude,由Anthropic设计”。
现象再现的部署环境
为了确认这一现象的稳定性,我分别通过网页部署和API调用进行了测试,结果一致:微调后的模型确实自称“Claude”,且在不同对话轮次中表现出高度一致性。
技术解读:为什么会出现这种现象?
在大模型的微调过程中,类似的意外情况虽然少见,但并非完全没有依据。以下是可能的原因:
微调会减弱安全限制但在小数据集或不相关任务上微调时,可能导致原模型权重分布发生变化,从而对安全特性产生意外干扰。
潜在的“记忆泄露”如果Qwen模型的训练数据中曾包含Claude相关的信息,即使这些信息在原始训练中被“遗忘”,微调时也可能重新激活这些记忆片段。这种现象在大模型微调中被称为“记忆泄露”(Memory Leak)。
潜在影响:这是严重问题吗?
这种现象看似只是一个有趣的“Bug”,但实际上可能带来以下几个潜在风险:
1. 品牌形象问题模型自我描述的准确性对开发方至关重要。如果千问频繁将自己“认作”Claude,可能误导用户,甚至损害阿里巴巴的品牌形象。
2. 伦理与数据版权问题如果模型在微调后暴露了与其他模型相关的信息,可能引发关于数据来源和版权的争议。这一点尤其需要开发者关注并提前防范。
本文转载自AI悠闲区,作者:AI悠闲区
