领域专用大语言模型微调:基于 QLoRA 的中医药命名实体识别 (TCM-NER)

命名实体识别(Named Entity Recognition, NER)是构建医药知识图谱与辅助诊疗系统的核心下游任务。在中医药(TCM)领域,由于其文本具有高度的专业性、语义模糊性以及实体嵌套等特征,传统的基于统计学习或轻量级深度学习(如 BERT-CRF)的方法在处理长距离依赖和跨类语义理解时存在局限。 本项目提出一种基于大语言模型指令微调的方案,利用 Qwen2.5-7B 作为基座模型,通过 QLoRA (Quantized LoRA) 技术在垂直领域语料上进行有监督微调(SFT),实现了针对中药、方剂、证候等 10 类实体的精准抽取。 1. 任务定义与数据工程 1.1 实体体系定义 本项目涵盖了中医药核心本体论中的 10 类关键实体,旨在实现多维度的信息提取。 实体类别 描述 中药 / 方剂 核心药物构成与复方组成 中医诊断 / 证候 / 治则 中医辨证论治的核心逻辑 临床表现 症状、体征的非结构化描述 西医治疗 / 诊断 中西医结合背景下的交叉实体 1.2 数据转换逻辑:从 BIO 到指令集 原始数据采用 BIO (Begin, Inside, Outside) 标注格式。为了适配生成式大模型的推理模式,本项目通过预处理脚本将序列标注转换为指令对齐格式。 转换公式描述: 给定输入序列 $X = {x_1, x_2, …, x_n}$ 及标签序列 $Y = {y_1, y_2, …, y_n}$,构造映射函数 $f(X, Y) \to (Prompt, Response)$。 Prompt: “请识别下面文本中的[实体类别]:$X$” Response: 以结构化 JSON 或特定分隔符输出识别结果。 2. 算法架构与训练策略 2.1 基于 QLoRA 的参数高效微调 针对 7B 规模的模型,本项目采用 QLoRA 技术以平衡训练显存与收敛精度。 ...

January 13, 2026

基于逆向规划的玩家意图识别系统:在 Unity 中的实现与架构分析

在合作型游戏或复杂交互系统中,赋予 AI 智能体“心理理论”(Theory of Mind)能力是提升交互体验的关键。这种能力使 AI 能够通过观察玩家的低级操作(Action),逆向推断其高级意图(Goal)。本文将深入解析在 Unity 引擎中实现的一套逆向规划(Inverse Planning)系统,探讨其如何通过数学建模与启发式搜索实现高效的玩家行动预测。 系统逻辑架构综述 该系统的核心任务是解决一个典型的逆向概率问题:给定当前世界状态 $s$ 和观察到的动作 $a$,推断玩家正在执行特定顶层目标 $\sigma$(如某个特定菜谱)的概率。 系统架构由 GoalLikelihoodEvaluator(似然评估器)作为计算核心,并依赖 RecipeManager(食谱管理器)提供静态的配方依赖关系与动态的游戏状态权威。整个推断流程可以概括为:从原始动作观测开始,经过环境约束过滤、理性代价估算、概率分布转换,最终通过贝叶斯框架完成似然聚合。 1. 约束识别:目标检索与依赖剪枝 推断的第一步是确定在当前环境下,哪些子目标(Subgoals)在逻辑上是可行的。系统不会盲目评估所有潜在任务,而是通过 RecipeManager 查询候选目标 $\sigma$ 的动态依赖图。 通过 GetUnconstrainedGoals 接口,系统会递归检查配方树的执行进度。例如,若“番茄汤”目标要求“切碎的番茄”和“烧开的水”,而环境状态显示水已烧开,则系统会将搜索空间剪枝,仅保留“切碎番茄”作为当前的原始目标(Primitive Goal)。这种基于先验逻辑的过滤极大地降低了后续代价计算的维度。 2. 估值建模:理性决策假设与启发式代价 系统的预测能力建立在**理性假设(Rationality Assumption)**之上:即假设玩家倾向于以最小的代价完成任务。为此,系统需要为每个有效的子目标 $g$ 计算启发式代价 $Q$。 $Q$ 值的计算由两部分组成。首先是空间成本,即智能体位置与所需食材之间的欧几里得距离;其次是状态转换成本,系统会扫描场景快照(WorldStateSnapshot)以寻找最近的交互设备(如砧板或锅具),并将设备距离与操作耗时(如切菜所需的固定时长)累加。若关键道具在当前快照中缺失,系统将施加极大的惩罚项,从而在数学上抑制该目标产生的似然度。 3. 概率转换:玻尔兹曼分布下的噪声处理 原始的代价 $Q$ 值不能直接用于概率推断,因为现实中的玩家行为往往包含噪声或次优决策。系统采用玻尔兹曼分布(Boltzmann Distribution)将代价映射为概率空间: $$P(g | s, \sigma) = \frac{e^{-\beta \cdot Q(s, g)}}{\sum_{g’ \in UC} e^{-\beta \cdot Q(s, g’)}}$$ 在该公式中,$Q(s, g)$ 代表启发式代价,而参数 $\beta$(理性系数)决定了系统对“非理性”行为的容忍度。高 $\beta$ 值意味着系统假设玩家高度专业,细微的代价差异也会导致概率分布的剧烈偏向;低 $\beta$ 值则使系统表现得更加稳健,能够处理操作失误或不确定性带来的干扰。 4. 动作匹配:上下文关联验证 在确定了各子目标的先验概率 $P(g | s, \sigma)$ 后,系统需要验证观察到的实际动作 $a$ 与子目标 $g$ 的匹配程度。这一步通过 IsActionRelevantToGoal 逻辑实现。 ...

January 11, 2026

Unity 角色智能决策架构演进:从 FSM 到 GOAP 的技术选型与实现

在现代游戏开发中,非玩家角色(NPC)的行为逻辑是构建沉浸感的核心要素。随着游戏玩法的日益复杂,简单的脚本化逻辑已难以满足需求。在 Unity 生态中,有限状态机(Finite State Machine, FSM)、行为树(Behavior Tree, BT)与目标导向行动规划(Goal-Oriented Action Planning, GOAP)是三种主流的 AI 决策架构。 本文将从工程实现角度深入剖析这三种架构的运行机制,对比其优劣,并探讨在不同业务场景下的技术选型策略。 一、 有限状态机(FSM):确定性的基石 有限状态机是游戏 AI 中最古老且基础的架构。其核心理念是将 AI 的行为分解为离散的“状态”(State),并通过预设的“条件”(Condition)在状态之间进行转换(Transition)。 1.1 技术实现机制 在 Unity 中,FSM 的实现通常经历两个阶段的演进: 基于 Switch-Case 的硬编码:适用于原型阶段,但在逻辑扩展时极易导致代码臃肿。 基于状态模式(State Pattern)的面向对象封装:将每个状态封装为独立的类(继承自 BaseState),拥有 Enter、Execute、Exit 三个生命周期方法。 状态机的运行依赖于严格的图论逻辑: stateDiagram-v2 [*] --> Idle Idle --> Patrol: 计时器结束 Patrol --> Chase: 发现玩家 Chase --> Attack: 距离 < 攻击范围 Attack --> Chase: 距离 > 攻击范围 Chase --> Patrol: 玩家丢失 1.2 架构局限性 FSM 的最大优势在于确定性与低计算开销。每一时刻 AI 处于且仅处于一个状态,调试路径清晰。 然而,当 AI 逻辑变得复杂(例如一个角色拥有 20 种状态)时,FSM 面临“转换爆炸”问题。每增加一个新状态,可能需要定义它与现有所有状态的转换关系,导致维护成本呈指数级上升($O(N^2)$ 的复杂度)。虽然 Unity 的 Animator Controller 本质上是一个可视化 FSM,但在处理纯逻辑(非动画)时,连线过于复杂会导致“面条式”图表,难以阅读。 ...

January 5, 2026

EVL-LLMs:大语言模型可视化素养(Visualization Literacy)的系统性评估框架

随着多模态大语言模型(MLLMs)的飞速发展,模型不仅需要理解文本,更需要具备处理图形化数据的能力。然而,如何量化评估 LLM 在可视化领域的“素养”——即生成准确数据、构建合规图表以及从视觉表示中提取深度信息的能力——成为了一个关键的科研命题。 EVL-LLMs 项目建立了一套自动化的端到端流水线,通过合成数据生成、视觉渲染与自动化提问,对 LLM 的可视化素养进行闭环评估。 一、 可视化素养(Visualization Literacy)的定义与挑战 可视化素养通常指个体从图形中读取、解释和呈现数据的能力。对于大语言模型而言,这一能力被拆解为两个核心维度: 构造能力(Construction):根据特定语境(Context)生成结构化数据并转化为代码渲染图表。 解读能力(Interpretation):针对生成的图表,识别极值、趋势、异常值或进行数据比较。 在实际评估中,传统的静态数据集易受训练数据污染(Data Contamination)的影响。因此,EVL-LLMs 采用合成数据流水线,确保评估样本的原创性与任务的针对性。 二、 EVL-LLMs 评估流水线架构 该项目实现了一个高度模块化的流水线,其核心逻辑由四个阶段组成:数据合成、视觉渲染、问题生成与闭环验证。 2.1 任务输入与语境定义 系统接收三个关键参数作为元输入: Context (语境):定义数据集的业务背景(如:某专业学生的平均分)。 Chart Type (图表类型):指定视觉表现形式(Line Chart, Bar Chart, etc.)。 Vis Task (视觉任务):定义评估的认知维度(如:Find Extremum, Trend Detection)。 三、 技术实现核心细节 3.1 基于 LLM 的合成数据生成 在 utils.py 中,系统利用 OpenAI API 通过提示词工程(Prompt Engineering)引导模型生成符合统计分布的合成数据。 一致性约束:生成的 dataset.csv 必须严格遵循 context 的语义逻辑。 复杂度控制:根据 vis_task 的难度,动态调整数据量和噪声水平。 3.2 自动化视觉渲染 系统利用 Python 的 pandas 和 matplotlib 库将抽象数据转化为像素。为了确保评估的客观性,渲染过程采用标准化的样式配置,避免了色彩过度修饰对模型识别带来的偏差。 $$\text{Image_Quality} = f(\text{Resolution}, \text{Label_Clarity}, \text{Data_Density})$$ ...

December 28, 2025