专栏进度02 / 10 (配套工具篇)在 AI 业界这种方法被称为 Synthetic Data Generation合成数据生成。当原始数据稀缺或涉及隐私无法导出时我们会先定义“知识元”再利用更高阶的模型如 DeepSeek-V3 或 GPT-4o来批量生产“教案”。一、 核心逻辑从“知识点”到“对话对”我们将数据集构建分为三个维度基础定义解释行业术语。场景实战模拟具体故障或需求。异常处理当规则冲突时模型该如何权衡。二、 Python 实战自动化生成脚本这个脚本模拟了从“行业规范”中提取逻辑并转化为微调样本的过程。Pythonimport json定义行业“知识种子” (Knowledge Seeds)假设我们要微调一个“企业内网安全专家”模型seeds[{topic:SSH 登录策略,rule:严禁使用密码登录必须强制使用 RSA 4096 位密钥且尝试次数超过 3 次锁定 IP 24 小时。,scenarios:[配置检查,攻击防范,合规咨询]},{topic:数据库脱敏,rule:生产环境查询手机号必须展示前3后4中间4位掩码。严禁导出未脱敏的明文数据。,scenarios:[SQL 审计,权限申请,操作指南]}]构造 SFT 数据生成器defgenerate_sft_data(seeds):dataset[]forseedinseeds:# 场景 1基础问答dataset.append({instruction:f请简述公司关于{seed[topic]}的安全规范。,input:,output:f根据公司安全审计要求{seed[rule]}})# 场景 2实战应用 (带 Input)dataset.append({instruction:请分析以下配置是否符合合规要求。,input:f当前配置允许密码登录SSH 尝试锁定时间为 10 分钟。针对主题{seed[topic]},output:f不符合合规要求。原因{seed[rule]}。当前配置过于宽松存在暴力破解风险。})returndataset保存为微调专用的 JSONL 格式sft_resultsgenerate_sft_data(seeds)withopen(security_expert_data.jsonl,w,encodingutf-8)asf:forentryinsft_results:f.write(json.dumps(entry,ensure_asciiFalse)\n)print(f成功生成{len(sft_results)}条微调样本)三、 如何大规模扩充LLM-as-a-Service上面的脚本只是骨架。在工业界我们会编写一个 Prompt 循环让大模型批量执行以下任务给大模型的指令“你现在是一名资深网络安全专家。基于‘SSH 强制密钥登录’这一规则请为我生成 20 组不同的对话。要求5 组是正向咨询。5 组是反向报错拦截。5 组是针对新员工的科普说明。5 组是针对资深架构师的底层逻辑探讨。输出格式必须为标准 JSONL。”四、 避坑指南合成数据的“纯度”检查同质化严重如果 Prompt 写得不好模型生成的 100 组数据可能只是在换词。对策在指令中加入 Temperature0.9 增加多样性。逻辑幻觉合成数据可能包含错误结论。对策抽样 10% 进行人工校验或者用另一个模型如 Claude 3.5进行交叉审核。
【模型手术室】外传:无中生有 —— 用 Python 自动化构建“行业黑话”数据集
专栏进度02 / 10 (配套工具篇)在 AI 业界这种方法被称为 Synthetic Data Generation合成数据生成。当原始数据稀缺或涉及隐私无法导出时我们会先定义“知识元”再利用更高阶的模型如 DeepSeek-V3 或 GPT-4o来批量生产“教案”。一、 核心逻辑从“知识点”到“对话对”我们将数据集构建分为三个维度基础定义解释行业术语。场景实战模拟具体故障或需求。异常处理当规则冲突时模型该如何权衡。二、 Python 实战自动化生成脚本这个脚本模拟了从“行业规范”中提取逻辑并转化为微调样本的过程。Pythonimport json定义行业“知识种子” (Knowledge Seeds)假设我们要微调一个“企业内网安全专家”模型seeds[{topic:SSH 登录策略,rule:严禁使用密码登录必须强制使用 RSA 4096 位密钥且尝试次数超过 3 次锁定 IP 24 小时。,scenarios:[配置检查,攻击防范,合规咨询]},{topic:数据库脱敏,rule:生产环境查询手机号必须展示前3后4中间4位掩码。严禁导出未脱敏的明文数据。,scenarios:[SQL 审计,权限申请,操作指南]}]构造 SFT 数据生成器defgenerate_sft_data(seeds):dataset[]forseedinseeds:# 场景 1基础问答dataset.append({instruction:f请简述公司关于{seed[topic]}的安全规范。,input:,output:f根据公司安全审计要求{seed[rule]}})# 场景 2实战应用 (带 Input)dataset.append({instruction:请分析以下配置是否符合合规要求。,input:f当前配置允许密码登录SSH 尝试锁定时间为 10 分钟。针对主题{seed[topic]},output:f不符合合规要求。原因{seed[rule]}。当前配置过于宽松存在暴力破解风险。})returndataset保存为微调专用的 JSONL 格式sft_resultsgenerate_sft_data(seeds)withopen(security_expert_data.jsonl,w,encodingutf-8)asf:forentryinsft_results:f.write(json.dumps(entry,ensure_asciiFalse)\n)print(f成功生成{len(sft_results)}条微调样本)三、 如何大规模扩充LLM-as-a-Service上面的脚本只是骨架。在工业界我们会编写一个 Prompt 循环让大模型批量执行以下任务给大模型的指令“你现在是一名资深网络安全专家。基于‘SSH 强制密钥登录’这一规则请为我生成 20 组不同的对话。要求5 组是正向咨询。5 组是反向报错拦截。5 组是针对新员工的科普说明。5 组是针对资深架构师的底层逻辑探讨。输出格式必须为标准 JSONL。”四、 避坑指南合成数据的“纯度”检查同质化严重如果 Prompt 写得不好模型生成的 100 组数据可能只是在换词。对策在指令中加入 Temperature0.9 增加多样性。逻辑幻觉合成数据可能包含错误结论。对策抽样 10% 进行人工校验或者用另一个模型如 Claude 3.5进行交叉审核。