<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>AI on Zhao Weidong Home Page</title><link>https://wdongz.github.io/blog/tags/ai/</link><description>Recent content in AI on Zhao Weidong Home Page</description><generator>Hugo -- 0.154.4</generator><language>en-us</language><lastBuildDate>Tue, 13 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://wdongz.github.io/blog/tags/ai/index.xml" rel="self" type="application/rss+xml"/><item><title>领域专用大语言模型微调：基于 QLoRA 的中医药命名实体识别 (TCM-NER)</title><link>https://wdongz.github.io/blog/posts/ner-med-log/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><guid>https://wdongz.github.io/blog/posts/ner-med-log/</guid><description>&lt;p&gt;命名实体识别（Named Entity Recognition, NER）是构建医药知识图谱与辅助诊疗系统的核心下游任务。在中医药（TCM）领域，由于其文本具有高度的专业性、语义模糊性以及实体嵌套等特征，传统的基于统计学习或轻量级深度学习（如 BERT-CRF）的方法在处理长距离依赖和跨类语义理解时存在局限。&lt;/p&gt;
&lt;p&gt;本项目提出一种基于大语言模型指令微调的方案，利用 &lt;strong&gt;Qwen2.5-7B&lt;/strong&gt; 作为基座模型，通过 &lt;strong&gt;QLoRA (Quantized LoRA)&lt;/strong&gt; 技术在垂直领域语料上进行有监督微调（SFT），实现了针对中药、方剂、证候等 10 类实体的精准抽取。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-任务定义与数据工程"&gt;1. 任务定义与数据工程&lt;/h2&gt;
&lt;h3 id="11-实体体系定义"&gt;1.1 实体体系定义&lt;/h3&gt;
&lt;p&gt;本项目涵盖了中医药核心本体论中的 10 类关键实体，旨在实现多维度的信息提取。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;实体类别&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;描述&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;中药 / 方剂&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;核心药物构成与复方组成&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;中医诊断 / 证候 / 治则&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;中医辨证论治的核心逻辑&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;临床表现&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;症状、体征的非结构化描述&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;西医治疗 / 诊断&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;中西医结合背景下的交叉实体&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="12-数据转换逻辑从-bio-到指令集"&gt;1.2 数据转换逻辑：从 BIO 到指令集&lt;/h3&gt;
&lt;p&gt;原始数据采用 &lt;strong&gt;BIO (Begin, Inside, Outside)&lt;/strong&gt; 标注格式。为了适配生成式大模型的推理模式，本项目通过预处理脚本将序列标注转换为指令对齐格式。&lt;/p&gt;
&lt;p&gt;转换公式描述：&lt;/p&gt;
&lt;p&gt;给定输入序列 $X = {x_1, x_2, &amp;hellip;, x_n}$ 及标签序列 $Y = {y_1, y_2, &amp;hellip;, y_n}$，构造映射函数 $f(X, Y) \to (Prompt, Response)$。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prompt&lt;/strong&gt;: “请识别下面文本中的[实体类别]：$X$”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Response&lt;/strong&gt;: 以结构化 JSON 或特定分隔符输出识别结果。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2-算法架构与训练策略"&gt;2. 算法架构与训练策略&lt;/h2&gt;
&lt;h3 id="21-基于-qlora-的参数高效微调"&gt;2.1 基于 QLoRA 的参数高效微调&lt;/h3&gt;
&lt;p&gt;针对 7B 规模的模型，本项目采用 QLoRA 技术以平衡训练显存与收敛精度。&lt;/p&gt;</description></item><item><title>基于逆向规划的玩家意图识别系统：在 Unity 中的实现与架构分析</title><link>https://wdongz.github.io/blog/projects/coplayer/</link><pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate><guid>https://wdongz.github.io/blog/projects/coplayer/</guid><description>&lt;p&gt;在合作型游戏或复杂交互系统中，赋予 AI 智能体“心理理论”（Theory of Mind）能力是提升交互体验的关键。这种能力使 AI 能够通过观察玩家的低级操作（Action），逆向推断其高级意图（Goal）。本文将深入解析在 Unity 引擎中实现的一套逆向规划（Inverse Planning）系统，探讨其如何通过数学建模与启发式搜索实现高效的玩家行动预测。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="系统逻辑架构综述"&gt;系统逻辑架构综述&lt;/h2&gt;
&lt;p&gt;该系统的核心任务是解决一个典型的逆向概率问题：给定当前世界状态 $s$ 和观察到的动作 $a$，推断玩家正在执行特定顶层目标 $\sigma$（如某个特定菜谱）的概率。&lt;/p&gt;
&lt;p&gt;系统架构由 &lt;code&gt;GoalLikelihoodEvaluator&lt;/code&gt;（似然评估器）作为计算核心，并依赖 &lt;code&gt;RecipeManager&lt;/code&gt;（食谱管理器）提供静态的配方依赖关系与动态的游戏状态权威。整个推断流程可以概括为：从原始动作观测开始，经过环境约束过滤、理性代价估算、概率分布转换，最终通过贝叶斯框架完成似然聚合。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-约束识别目标检索与依赖剪枝"&gt;1. 约束识别：目标检索与依赖剪枝&lt;/h2&gt;
&lt;p&gt;推断的第一步是确定在当前环境下，哪些子目标（Subgoals）在逻辑上是可行的。系统不会盲目评估所有潜在任务，而是通过 &lt;code&gt;RecipeManager&lt;/code&gt; 查询候选目标 $\sigma$ 的动态依赖图。&lt;/p&gt;
&lt;p&gt;通过 &lt;code&gt;GetUnconstrainedGoals&lt;/code&gt; 接口，系统会递归检查配方树的执行进度。例如，若“番茄汤”目标要求“切碎的番茄”和“烧开的水”，而环境状态显示水已烧开，则系统会将搜索空间剪枝，仅保留“切碎番茄”作为当前的&lt;strong&gt;原始目标（Primitive Goal）&lt;/strong&gt;。这种基于先验逻辑的过滤极大地降低了后续代价计算的维度。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="2-估值建模理性决策假设与启发式代价"&gt;2. 估值建模：理性决策假设与启发式代价&lt;/h2&gt;
&lt;p&gt;系统的预测能力建立在**理性假设（Rationality Assumption）**之上：即假设玩家倾向于以最小的代价完成任务。为此，系统需要为每个有效的子目标 $g$ 计算启发式代价 $Q$。&lt;/p&gt;
&lt;p&gt;$Q$ 值的计算由两部分组成。首先是&lt;strong&gt;空间成本&lt;/strong&gt;，即智能体位置与所需食材之间的欧几里得距离；其次是&lt;strong&gt;状态转换成本&lt;/strong&gt;，系统会扫描场景快照（WorldStateSnapshot）以寻找最近的交互设备（如砧板或锅具），并将设备距离与操作耗时（如切菜所需的固定时长）累加。若关键道具在当前快照中缺失，系统将施加极大的惩罚项，从而在数学上抑制该目标产生的似然度。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="3-概率转换玻尔兹曼分布下的噪声处理"&gt;3. 概率转换：玻尔兹曼分布下的噪声处理&lt;/h2&gt;
&lt;p&gt;原始的代价 $Q$ 值不能直接用于概率推断，因为现实中的玩家行为往往包含噪声或次优决策。系统采用玻尔兹曼分布（Boltzmann Distribution）将代价映射为概率空间：&lt;/p&gt;
&lt;p&gt;$$P(g | s, \sigma) = \frac{e^{-\beta \cdot Q(s, g)}}{\sum_{g&amp;rsquo; \in UC} e^{-\beta \cdot Q(s, g&amp;rsquo;)}}$$&lt;/p&gt;
&lt;p&gt;在该公式中，$Q(s, g)$ 代表启发式代价，而参数 $\beta$（理性系数）决定了系统对“非理性”行为的容忍度。高 $\beta$ 值意味着系统假设玩家高度专业，细微的代价差异也会导致概率分布的剧烈偏向；低 $\beta$ 值则使系统表现得更加稳健，能够处理操作失误或不确定性带来的干扰。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="4-动作匹配上下文关联验证"&gt;4. 动作匹配：上下文关联验证&lt;/h2&gt;
&lt;p&gt;在确定了各子目标的先验概率 $P(g | s, \sigma)$ 后，系统需要验证观察到的实际动作 $a$ 与子目标 $g$ 的匹配程度。这一步通过 &lt;code&gt;IsActionRelevantToGoal&lt;/code&gt; 逻辑实现。&lt;/p&gt;</description></item><item><title>Unity 角色智能决策架构演进：从 FSM 到 GOAP 的技术选型与实现</title><link>https://wdongz.github.io/blog/posts/my-first-game-project/</link><pubDate>Mon, 05 Jan 2026 00:00:00 +0000</pubDate><guid>https://wdongz.github.io/blog/posts/my-first-game-project/</guid><description>&lt;p&gt;在现代游戏开发中，非玩家角色（NPC）的行为逻辑是构建沉浸感的核心要素。随着游戏玩法的日益复杂，简单的脚本化逻辑已难以满足需求。在 Unity 生态中，有限状态机（Finite State Machine, FSM）、行为树（Behavior Tree, BT）与目标导向行动规划（Goal-Oriented Action Planning, GOAP）是三种主流的 AI 决策架构。&lt;/p&gt;
&lt;p&gt;本文将从工程实现角度深入剖析这三种架构的运行机制，对比其优劣，并探讨在不同业务场景下的技术选型策略。&lt;/p&gt;
&lt;h2 id="一-有限状态机fsm确定性的基石"&gt;一、 有限状态机（FSM）：确定性的基石&lt;/h2&gt;
&lt;p&gt;有限状态机是游戏 AI 中最古老且基础的架构。其核心理念是将 AI 的行为分解为离散的“状态”（State），并通过预设的“条件”（Condition）在状态之间进行转换（Transition）。&lt;/p&gt;
&lt;h3 id="11-技术实现机制"&gt;1.1 技术实现机制&lt;/h3&gt;
&lt;p&gt;在 Unity 中，FSM 的实现通常经历两个阶段的演进：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;基于 Switch-Case 的硬编码&lt;/strong&gt;：适用于原型阶段，但在逻辑扩展时极易导致代码臃肿。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;基于状态模式（State Pattern）的面向对象封装&lt;/strong&gt;：将每个状态封装为独立的类（继承自 &lt;code&gt;BaseState&lt;/code&gt;），拥有 &lt;code&gt;Enter&lt;/code&gt;、&lt;code&gt;Execute&lt;/code&gt;、&lt;code&gt;Exit&lt;/code&gt; 三个生命周期方法。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;状态机的运行依赖于严格的图论逻辑：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;stateDiagram-v2
[*] --&amp;gt; Idle
Idle --&amp;gt; Patrol: 计时器结束
Patrol --&amp;gt; Chase: 发现玩家
Chase --&amp;gt; Attack: 距离 &amp;lt; 攻击范围
Attack --&amp;gt; Chase: 距离 &amp;gt; 攻击范围
Chase --&amp;gt; Patrol: 玩家丢失
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="12-架构局限性"&gt;1.2 架构局限性&lt;/h3&gt;
&lt;p&gt;FSM 的最大优势在于&lt;strong&gt;确定性&lt;/strong&gt;与&lt;strong&gt;低计算开销&lt;/strong&gt;。每一时刻 AI 处于且仅处于一个状态，调试路径清晰。&lt;/p&gt;
&lt;p&gt;然而，当 AI 逻辑变得复杂（例如一个角色拥有 20 种状态）时，FSM 面临“转换爆炸”问题。每增加一个新状态，可能需要定义它与现有所有状态的转换关系，导致维护成本呈指数级上升（$O(N^2)$ 的复杂度）。虽然 Unity 的 Animator Controller 本质上是一个可视化 FSM，但在处理纯逻辑（非动画）时，连线过于复杂会导致“面条式”图表，难以阅读。&lt;/p&gt;</description></item><item><title>EVL-LLMs：大语言模型可视化素养（Visualization Literacy）的系统性评估框架</title><link>https://wdongz.github.io/blog/projects/evl-llms/</link><pubDate>Sun, 28 Dec 2025 00:00:00 +0000</pubDate><guid>https://wdongz.github.io/blog/projects/evl-llms/</guid><description>&lt;p&gt;随着多模态大语言模型（MLLMs）的飞速发展，模型不仅需要理解文本，更需要具备处理图形化数据的能力。然而，如何量化评估 LLM 在可视化领域的“素养”——即生成准确数据、构建合规图表以及从视觉表示中提取深度信息的能力——成为了一个关键的科研命题。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EVL-LLMs&lt;/strong&gt; 项目建立了一套自动化的端到端流水线，通过合成数据生成、视觉渲染与自动化提问，对 LLM 的可视化素养进行闭环评估。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="一-可视化素养visualization-literacy的定义与挑战"&gt;一、 可视化素养（Visualization Literacy）的定义与挑战&lt;/h2&gt;
&lt;p&gt;可视化素养通常指个体从图形中读取、解释和呈现数据的能力。对于大语言模型而言，这一能力被拆解为两个核心维度：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;构造能力（Construction）&lt;/strong&gt;：根据特定语境（Context）生成结构化数据并转化为代码渲染图表。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解读能力（Interpretation）&lt;/strong&gt;：针对生成的图表，识别极值、趋势、异常值或进行数据比较。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在实际评估中，传统的静态数据集易受训练数据污染（Data Contamination）的影响。因此，EVL-LLMs 采用&lt;strong&gt;合成数据流水线&lt;/strong&gt;，确保评估样本的原创性与任务的针对性。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="二-evl-llms-评估流水线架构"&gt;二、 EVL-LLMs 评估流水线架构&lt;/h2&gt;
&lt;p&gt;该项目实现了一个高度模块化的流水线，其核心逻辑由四个阶段组成：数据合成、视觉渲染、问题生成与闭环验证。&lt;/p&gt;
&lt;h3 id="21-任务输入与语境定义"&gt;2.1 任务输入与语境定义&lt;/h3&gt;
&lt;p&gt;系统接收三个关键参数作为元输入：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Context (语境)&lt;/strong&gt;：定义数据集的业务背景（如：某专业学生的平均分）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chart Type (图表类型)&lt;/strong&gt;：指定视觉表现形式（Line Chart, Bar Chart, etc.）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vis Task (视觉任务)&lt;/strong&gt;：定义评估的认知维度（如：Find Extremum, Trend Detection）。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="三-技术实现核心细节"&gt;三、 技术实现核心细节&lt;/h2&gt;
&lt;h3 id="31-基于-llm-的合成数据生成"&gt;3.1 基于 LLM 的合成数据生成&lt;/h3&gt;
&lt;p&gt;在 &lt;code&gt;utils.py&lt;/code&gt; 中，系统利用 OpenAI API 通过提示词工程（Prompt Engineering）引导模型生成符合统计分布的合成数据。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;一致性约束&lt;/strong&gt;：生成的 &lt;code&gt;dataset.csv&lt;/code&gt; 必须严格遵循 &lt;code&gt;context&lt;/code&gt; 的语义逻辑。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;复杂度控制&lt;/strong&gt;：根据 &lt;code&gt;vis_task&lt;/code&gt; 的难度，动态调整数据量和噪声水平。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="32-自动化视觉渲染"&gt;3.2 自动化视觉渲染&lt;/h3&gt;
&lt;p&gt;系统利用 Python 的 &lt;code&gt;pandas&lt;/code&gt; 和 &lt;code&gt;matplotlib&lt;/code&gt; 库将抽象数据转化为像素。为了确保评估的客观性，渲染过程采用标准化的样式配置，避免了色彩过度修饰对模型识别带来的偏差。&lt;/p&gt;
&lt;p&gt;$$\text{Image_Quality} = f(\text{Resolution}, \text{Label_Clarity}, \text{Data_Density})$$&lt;/p&gt;</description></item></channel></rss>