Important
现已加入Vercel配置文件, 可在Vercel直接部署无需服务器
我将带领人类开发CCB直到100%
本项目与 Bilibili UP 主 害怕的狗XGGGGGGGGGGG 的视频你挖币吗?我挖CC币!一同发布,欢迎关注!
- Python
- Flask
- 注册Vercel账号和Github账号
Vercel注册页面:点击跳转
注意: 千万不要使用国内邮箱注册, 否则需要开工单
- 在Github上fork本项目
- 在Vercel上新建项目, 或者直接点击跳转
- 选择Github项目
- 选择fork的项目
- 在项目设置中,选择环境变量, 添加以下环境变量
你也可以直接在仓库页面的
.env.example文件中填写, 随后将其更名为.env(不推荐)
# 请在下方输入您的apikey
OPENAI_API_KEY = ""
# 请在下方输入API的url
OPENAI_API_URL = "https://api.deepseek.com"
# 请在下方输入生成句子的模型的名称
SENTENCE_MODEL = "deepseek-reasoner"
# 请在下方输入生成解释的模型的名称
EXPLAIN_MODEL = "deepseek-chat"
- 点击部署
- 等待部署完成
- 进入项目设置,可添加自己的域名
注意:如果使用Vercel部署,需要存储数据库的功能(查看网友生成的句子)可能会出现问题
git clone https://github.com/haipadegou/CCB.gitpip install -r requirements.txt在.env.example的第填入DeepSeek API url和key, 同时将文件名更换为.env
运行程序,然后进入网站http://127.0.0.1:5000
python app.py通过网站收集到的训练数据,我们基于Qwen2.5-0.5B微调了一个模型,辅助生成CCB文章。此模型只能用于辅助其他模型生成文章,并且模型必须使用相同的tokenizer(Qwen系列模型的tokenizer)
train.ipynb中有训练程序。train_data.json包含部分训练数据。为了保护个人隐私,文件中只包含同意公开显示的数据。
模型的输出可能会和主题无关,如果一次效果不好可以多试几次,或者更换主题。
pip install -r -requirements.txtPyTorch安装方法:https://pytorch.org/get-started/locally/
下载任意Qwen系列的大模型,并将其存放到 model 文件夹。 例如,如果要下载Qwen3-0.6B,可以在当前文件夹使用以下命令(不需要登录):
huggingface-cli download Qwen/Qwen3-0.6B-Base --local-dir model运行程序后,通过命令行交互输入主题,并生成符合规则的 CCB 文章。
python qwen-ccb.py你可以修改程序中的以下常数来调整生成行为:
MAX_LENGTH(长度上限)MIN_LENGTH(长度下限)PRMOPT(提示词)
本项目构建了一个生成特定格式文章的文本生成系统,系统由两个协同工作的子模型组成:
-
主生成模型:负责生成文章主体内容。
-
辅助语言模型:作为语言质量控制模块,用于筛选使句子更加通顺、自然的输出 token。
本系统通过将生成任务拆分为两个互补模块,实现了在数据有限的条件下仍能输出高质量文本的能力:主模型专注于生成内容丰富的文本,辅助模型则保障语言的自然性与流畅性。这种模块化架构充分利用了预训练语言模型在内容生成方面的能力,同时通过对CCB文章微调过的辅助模型弥补了语法和文风上的细节控制。相较于端到端训练大模型,该方法对训练数据的依赖更低,特别适合当前项目的训练数据稀缺的场景。
主模型的核心任务是生成符合给定语义主题的自然语言文本。考虑到小参数量模型在语言结构控制方面存在一定局限性,提示中未直接加入CCB 字符交替规则。这是因为模型在处理这类格式要求时容易产生不连贯或异常短的输出。
为此,我们采用了输出控制函数:该函数在每一步生成时对输出 token 进行控制,仅保留符合 CCB 规则的 token,并强制主模型在候选 token 中选择符合要求的字符。由于该机制可能导致模型在高概率 token 上反复采样,我们对解码参数进行了如下调整,以提升生成多样性并减少重复:
-
Temperature:提高温度以增强采样的随机性。
-
Top-p (nucleus sampling):提高截断阈值,扩大候选 token 的采样空间。
-
Repetition penalty:设置较高的重复惩罚系数,以减少生成内容的重复性。
我们选用了 Qwen2.5 0.5B 作为主模型,主要出于以下考虑:
-
性能优越:Qwen 系列在多个基准评测中表现优异。
-
模型参数规模适中(494M):相比如 DeepSeek-V3 等大规模模型,Qwen2.5 更不易出现过拟合现象,训练稳定性更高。
-
中文语言能力强:与 LLaMA、Mistral 等以英文预训练为主的模型相比,Qwen2.5 更适合中文生成任务。
在仅通过主模型控制生成时,我们发现生成文本在语义连贯性和语言自然度方面存在明显缺陷。为此,我们引入了一个小规模的辅助语言模型,专门用于提升文本的可读性和语法流畅性。
辅助模型通过因果语言建模的方式进行训练,目标是根据前文上下文预测下一个 token,从而学习如何生成流畅的文章。训练数据包含由人工创作和 DeepSeek 模型生成的高质量句子,确保语言风格自然且通顺。
在推理阶段,该模型会对每一个待选 token 的可读性进行评估,仅保留高概率的 token 作为可接受候选集。主模型随后只能从该候选集中选择输出,从而提高最终文本的语言质量。此外,为了简化依赖关系,辅助模型只会考虑当前句子的上下文,因为训练语料主要由短句构成,且句间语义联系较弱。因为训练语料中英文和符号较少,所以这些token不会参与评估,而是一直存在于候选集。
主模型除了在语言流畅性存在缺陷,它还可能生成和主题无关的内容,目前我们还没找到解决这个问题的方法。
训练数据中的人工句子由B站网友贡献,特别感谢以下用户提供的高质量文本数据:
食堂里面开火车、咕噜咕噜、许永豪、阿尔都塞的睡衣、老八、功德台湾、天上飞吧鸡管路、塞琳、紫塔制造机、Bronie、not_beting、CCB大蛇、草超棒、以及所有匿名贡献者。
这些数据在提高模型生成质量方面起到了至关重要的作用。