本公众号主要关注NLP、CV、LLM、RAG、Agent等AI前沿技术,免费分享业界实战案例与课程,助力您全面拥抱AIGC。
在生成环境中,经常会遇要求新增业务标签进行文本分类,传统的做法是需要从头开始训练,但是容易导致以前学习到的知识灾难性遗忘。

今天介绍的是一种,自适应分类器,可实现动态类添加和持续学习,而不会发生灾难性遗忘。
一、Adaptive classifier解决的问题
通过四项创新,解决了以下问题:
-
动态添加类别:无需重新训练现有知识即可无缝添加新类别
-
基于原型的记忆:使用已学习的类别原型进行高效的基于相似度的分类
-
神经网络自适应:通过轻量级神经网络层持续优化决策边界
-
策略分类:基于博弈论的鲁棒性,抵御对抗性操纵
二、Adaptive classifier
2.1 自适应分类的原理
利用记忆的检索(memory-based retrieval )和neural boundary refinement(神经网络边界决策)两个方案,快速适应新的样本以及进行复杂的决策边界学习。
2.2 技术架构

2.2.1 Prototype Memory system
维护了一个复杂的内存记忆系统, 用于维护一个类原型(class prototypes)用于学习捕捉每个类别的特征。
与传统的K近邻方法不同的地方在于,系统中采用FAISS 优化的相似性搜索,并结合动态原型更新。
对于每个类别,维护的类原型,采用指数加权移动平均值进行更新,公式如下:

-
代表类别
-
代表经过transformer模型得到的嵌入(embedding)
-
代表新增加的,类别的本集合
这个记忆系统采用的优化方式如下:
-
选择性某些示例保留:为每个类别保留最多 k 个代表性示例,并通过 K 均值聚类进行选择,以保持多样性。
-
增量索引更新:仅当累积更新超过阈值时,才会重建 FAISS 索引,从而在准确率和计算效率之间取得平衡。
-
正则化嵌入:所有嵌入均经过 L2 正则化,以实现有意义的余弦相似度比较。
class PrototypeMemory:
def add_example(self, example: Example, label: str):
# Add to examples and update prototype
self.examples[label].append(example)
self._update_prototype(label)
# Conditional index rebuild for efficiency
if self.updates_since_rebuild >= self.update_frequency:
self._rebuild_index()
def get_nearest_prototypes(self, query_embedding: torch.Tensor, k: int = 5):
# FAISS-optimized similarity search
distances, indices = self.index.search(query_embedding.numpy(), k)
similarities = np.exp(-distances[0]) # Convert to similarities
return [(self.index_to_label[idx], sim) for idx, sim in zip(indices[0], similarities)]
2.2.2 神经网络的自适应层
虽然Prototype Memory system提供了小样本的学习能力(few shot), 但是复杂的边界决策,需要更加复杂的建模。
通过引入一个轻量级的前馈网络,来改进分类决。这个自适应网络层,包含:
-
输入层:Transformer embedding(通常为 768 或 1024 维)
-
隐藏层:使用 ReLU 激活函数和 dropout 进行降维
-
输出层:对当前类别集进行 Softmax 输出,并具有动态调整大小的功能
为了防止添加新类别时出现灾难性遗忘,采用弹性权重合并(EWC)来保存现有类别的知识:

-
表示参数的费舍尔信息矩阵的对角线
-
表示先前任务的最优参数。
3.2.3 策略分类框架
策略分类——是一种在对抗条件下实现稳健分类的博弈论方法。这解决了用户可能试图通过策略性地修改输入来操纵分类的现实问题。
威胁模型(Threat model):模拟策略性用户,通过计算成本函数的成本, 将其输入 x 修改为 ,以最大化其效用:

-
表示分类器对所需类别的置信度。
成本函数(cost fucntions):实现了两种
-
线性成本函数(linear costs):

-
其中 α 表示每个特征修改成本
-
可分离成本函数(sparable costs):

-
实现更复杂的战略行为
策略分类器可在多种模式下运行:
-
常规模式:使用原型(prototype)和神经网络(neural)预测进行标准分类
-
战略模式:预测战略智能体将如何移动其输入
-
稳健模式:考虑潜在博弈的反操纵预测
-
双重模式:融合常规预测和战略预测两种模式,以实现均衡的性能
# 配置方式
config = {
'enable_strategic_mode': True,
'cost_function_type': 'linear',
'cost_coefficients': {'sentiment_words': 0.5, 'length_change': 0.1},
'strategic_blend_regular_weight': 0.6,
'strategic_blend_strategic_weight': 0.4
}
classifier = AdaptiveClassifier("bert-base-uncased", config=config)
# 不同的策略
dual_predictions = classifier.predict(text)
strategic_predictions = classifier.predict_strategic(text)
robust_predictions = classifier.predict_robust(text)
4 实战应用
4.1 幻觉检测器
RAG中,幻觉是进行知识问答无法回避的问题,adaptive calssifier专门提供了一个幻觉检测器。
from adaptive_classifier import AdaptiveClassifier
detector = AdaptiveClassifier.from_pretrained("adaptive-classifier/llm-hallucination-detector")
# Evaluate RAG output
context = "France is in Western Europe. Capital: Paris. Population: 67 million."
query = "What is France's capital and population?"
response = "Paris is the capital. Population is 70 million."
input_text = f"Context: {context}nQuestion: {query}nAnswer: {response}"
prediction = detector.predict(input_text)
if prediction[0][0] == 'HALLUCINATED' and prediction[0][1] > 0.6:
print("⚠️ Warning: Response may contain hallucinations")
4.2 自动优化LLM参数配置

LLM推理时,温度参数的分类:
-
DETERMINISTIC (0.0-0.1 ) : 需要精度的事实查询 -
**FOCUSED(0.2-0.5 ) : 具有轻微灵活性的技术响应 -
BALANCED (0.6-1.0):自然对话响应 -
CREATIVE(1.1-1.5):各种和富有想象力的产出 -
EXPERIMENTAL(1.6-2.0):头脑风暴的最大可变性
4.3 智能路由LLM
自适应分类器通过在高能力(昂贵)和标准能力(经济)模型之间智能路由查询来实现具有成本效益的LLM部署。
路由的类别:
-
高 : 复杂的查询,需要高级推理,代码生成,多步骤问题 -
低 : 直接查询, 事实问题, 基本格式化任务
https://github.com/codelion/adaptive-classifier
推荐阅读
-
Manus,自动编程+爬虫二合一” data-itemshowtype=”0″ linktype=”text” data-linktype=”2″>3.4KStar 字节跳动扔出王炸LangManus,自动编程+爬虫二合一
-
MCP服务器!企业级AI应用首选方案” data-itemshowtype=”0″ linktype=”text” data-linktype=”2″>一行代码FastAPI秒变MCP服务器!企业级AI应用首选方案
-
DeepSeek过度思考「自省式推理」登顶多跳问答榜” data-itemshowtype=”0″ linktype=”text” data-linktype=”2″>清华ReaRAG,严防Deepseek过度思考「自省式推理」登顶多跳问答榜