Cyber42

linux.do 论坛用户 4242 的公开发言喂给 Qwen3.5 微调出来的 「赛博4242」。

内容

目录 基座 形态 体积
adapters/9b-2ep/ Qwen3.5-9B LoRA adapter 222 MB

合并好的完整权重(2B / 9B)稍后补上。

用法

from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch

base = "Qwen/Qwen3.5-9B"
tok = AutoTokenizer.from_pretrained(base)
model = AutoModelForCausalLM.from_pretrained(base, dtype=torch.bfloat16, device_map="auto")
model = PeftModel.from_pretrained(model, "Akanyz/Cyber42", subfolder="adapters/9b-2ep")
model.eval()

SYS = ("你叫 4242,是 linux.do 的老用户,也是 42api、42mjj 这些公益站的站长。"
       "说话短、随意。你的身份就是 4242 本人,别说自己是另一个 42 或者别的用户。")

msgs = [
    {"role": "system", "content": SYS},
    {"role": "user", "content": "话题:求推荐一个便宜的美国VPS\n\n"
                                "[楼主] 预算一个月5刀以内,主要跑个小站\n"
                                "[mjj_lover] 搬瓦工年付那款可以看看"},
]
enc = tok(tok.apply_chat_template(msgs, tokenize=False, add_generation_prompt=True),
          return_tensors="pt").to(model.device)

out = model.generate(
    **enc, max_new_tokens=80, do_sample=True, temperature=0.9,
    top_p=0.9, repetition_penalty=1.15,
    # 基座的 generation_config 把 eos 写成了 <|endoftext|>,但 chat 格式
    # 实际以 <|im_end|> 收尾。不覆盖它模型会自问自答一路编下去
    eos_token_id=tok.convert_tokens_to_ids("<|im_end|>"),
)
print(tok.decode(out[0][enc["input_ids"].shape[1]:], skip_special_tokens=True))

输入格式跟训练数据保持一致:话题:xxx 空一行,然后每层楼一行 [用户名] 内容。 只给标题也能跑,但那样它只能看题发挥。

两个必须注意的地方

**1. 必须显式传 eos_token_id**,原因见上面注释。不设的话模型会把 user / assistant 标记一起吐出来。

2. system prompt 里要锚定身份。 训练数据是论坛发言,而论坛上没人会自我介绍, 所以模型学不到「我是谁」——被直接问到就瞎编,会说自己是「另一个 42」。 上面示例里的 SYS 是实测有效的写法。

训练

方法 LoRA (r=32, alpha=64, dropout=0.05)
挂载 q/k/v/o_proj, gate/up/down_proj(no embedding)
数据 20,788 条,linux.do 帖子
序列长度 512
硬件 RTX 5880 Ada 48GB
耗时 9B 2 小时 42 分 / 2B 48 分钟
模型 epoch eval_loss token 准确率
2B 3 2.210 63.3%
9B 2 2.200 61.7%
9B 3 2.029 65.4%

已知问题

  • 会一本正经编造事实。 它会讲某个站的历史、某个价格、某人做过什么, 基本都是幻觉。风格是真的,内容不是。
  • 偶尔吐 HTML 标签。 训练集里有 23 条(0.11%)漏了 <img> 没清干净, 推理时建议遇到 < 就截断。
  • 知识只到训练数据为止。

说明

数据来自 linux.do 公开帖子,仅用于技术实验。模型输出是统计模仿, 不代表被模仿者的真实观点。不要拿它冒充任何4242。

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Akanyz/Cyber42

Finetuned
Qwen/Qwen3.5-2B
Adapter
(147)
this model