【中小学AI人工智能教育】文本生成任务——名字生成(序列补全模式)
Ai创想实验室是专门为中小学AI教育开发的教学平台包含了值计算、图像分类、音频分类、文本分类、数值回归、图像回归、图像分类回归、平衡杆、手写数字生成、文本生成等中小学人工智能学习类项目。无需编程基础、无需添加硬件、无需购买算力、无隐私担忧、无需师资培训即可进行教学实践。本文介绍文本生成模型的构建、数据清洗、训练、预测。使用序列补全模式该模式更易于训练非序列补全模式将在后续文章介绍一、搭建模型对于名字生成任务词汇表无需很大一般几百到上千就可以了首先使用Embedding层然后使用LSTM层注意它们的参数对应关系实际上到这一步就可以进行输出了其输出维度大小即词汇表大小但为了取得更好的训练效果我们添加Dropout层强迫模型学习和全连接层增加一些非线性最终的模型如下JSON{ success: true, modelConfig: { className: Sequential, config: { name: nnblockly_model, layers: [ { className: InputLayer, config: { name: input_layer_1, inputShape: [ 10 ], batchInputShape: [ null, 10 ], dtype: float32, sparse: false } }, { className: Embedding, config: { name: embedding_1, trainable: true, inputDim: 600, outputDim: 64, inputLength: 10, maskZero: true, embeddingsInitializer: { className: RandomUniform, config: { minval: -0.05, maxval: 0.05, seed: null } }, embeddingsRegularizer: null }, inboundNodes: [ [ [ input_layer_1, 0, 0, [] ] ] ] }, { className: LSTM, config: { name: lstm_layer_1, trainable: true, units: 64, activation: tanh, recurrentActivation: sigmoid, returnSequences: true, dropout: 0, recurrentDropout: 0, useBias: true, unitForgetBias: true }, inboundNodes: [ [ [ embedding_1, 0, 0, [] ] ] ] }, { className: Dropout, config: { name: dropout_layer_1, trainable: true, rate: 0.2 }, inboundNodes: [ [ [ lstm_layer_1, 0, 0, [] ] ] ] }, { className: Dense, config: { name: dense_layer_1, trainable: true, units: 64, activation: relu, useBias: true, kernelInitializer: { className: GlorotUniform, config: { seed: null } }, biasInitializer: { className: Zeros, config: [] }, kernelRegularizer: { className: L1L2, config: { l2: 0.0001 } }, biasRegularizer: null, activityRegularizer: null }, inboundNodes: [ [ [ dropout_layer_1, 0, 0, [] ] ] ] }, { className: Dropout, config: { name: dropout_layer_1_1, trainable: true, rate: 0.2 }, inboundNodes: [ [ [ dense_layer_1, 0, 0, [] ] ] ] }, { className: Dense, config: { name: output_layer_1, trainable: true, units: 600, activation: softmax, useBias: true, kernelInitializer: { className: GlorotUniform, config: { seed: null } }, biasInitializer: { className: Zeros, config: [] }, kernelRegularizer: { className: L1L2, config: { l2: 0.0001 } }, biasRegularizer: null, activityRegularizer: null }, inboundNodes: [ [ [ dropout_layer_1_1, 0, 0, [] ] ] ] } ] }, keras_version: tfjs-layers 3.21.0, backend: tensorflow, labelConfig: null, hasLabelInput: false }, metadata: { type: single_output, inputShape: [ null, 10 ], outputShape: [ null, 600 ], layerCount: 7, projectId: 33, exportedAt: 2026-07-17T01:21:29.852Z, blockCount: 7, taskId: null, duration: null }, originalXml: xml xmlns\https://developers.google.com/blockly/xml\block type\nn_input\ id\*dZ,qfrpS3!DeFPI6fW\ x\56\ y\44\field name\SHAPE\(None, 10)/fieldfield name\NAME\input_layer_1/fieldnextblock type\nn_embedding\ id\lQ,]5aDne8o9(.9cE\field name\INPUT_DIM\600/fieldfield name\OUTPUT_DIM\64/fieldfield name\INPUT_LENGTH\10/fieldfield name\MASK_ZERO\TRUE/fieldfield name\NAME\embedding_1/fieldnextblock type\nn_lstm\ id\lHKw-!F?YJ5b)it?H1Y\field name\UNITS\64/fieldfield name\ACTIVATION\tanh/fieldfield name\RECURRENT_ACTIVATION\sigmoid/fieldfield name\RETURN_SEQUENCES\TRUE/fieldfield name\DROPOUT\0/fieldfield name\RECURRENT_DROPOUT\0/fieldfield name\NAME\lstm_layer_1/fieldnextblock type\nn_dropout\ id\GeQGgsI{{6Vz?R[1w1Rl\field name\RATE\0.2/fieldfield name\NAME\dropout_layer_1/fieldnextblock type\nn_dense\ id\FiJ)/Q}jV3?[gl:2IE\field name\UNITS\64/fieldfield name\ACTIVATION\relu/fieldfield name\L2_REGULARIZATION\0.0001/fieldfield name\NAME\dense_layer_1/fieldnextblock type\nn_dropout\ id\{4?_A86kipo5X(#N(xMO\field name\RATE\0.2/fieldfield name\NAME\dropout_layer_1/fieldnextblock type\nn_output\ id\,x%s)bDRRh_S7y5lTm];\field name\TASK_TYPE\classification/fieldfield name\REGRESSION_UNITS\1/fieldfield name\REGRESSION_ACTIVATION\linear/fieldfield name\NUM_CLASSES\600/fieldfield name\CLASSIFICATION_ACTIVATION\softmax/fieldfield name\L2_REGULARIZATION\0.0001/fieldfield name\NAME\output_layer_1/field/block/next/block/next/block/next/block/next/block/next/block/next/block/xml }二、数据清洗如果你使用人名数据集那么需要进行大规模清洗保留几千到一万数据即可达到教学效果。但如果训练效果不好应考虑数据分布问题。一下实验过程的数据是在人名数据集中以固定步长获取的数据这不是一种好办法但最终效果没问题。把清洗后的数据进一步加工为“姓等号名”的形式——默认的序列补全模式分隔符为等号你可以使用其他字符。然后导入到数据管理器可以看到模型设置词汇表600盖了近90%的数据600中有几个作特殊标记剩余的均为字符训练器会自动处理这些细节。三、训练导入模型、训练数据保持默认参数包括分词器而后勾选“序列补全模式”点击“开始训练”即可序列补全模式不会使用滑动窗口来处理数据输入为多少个数据训练对数就是多少。从上图可以看到大约30-40秒即可训练一轮训练十轮左右当模学习进入平台期即可停止训练并导出已训练模型。四、预测将已训练模型导入到预测器输入一个姓而后点击“生成文本”多次点击可以生成多个名字尝试调节控制参数可以使得模型生成产生变化对比输入数据可以看到模型学会了生成“”之后的内容——这正是我们想要的输入一个姓它会生成名并且不仅限于训练数据中该姓对应的名。在浏览器内使用本地算力甚至核显就能训练文本生成模型涉及到AiEduLab.tech——AI创想实验室的大量核心技术暂无公开计划。所以在演示服务器上不提供该任务类型的训练我们计划免费无任何包括后续使用在内的费用为若干试点中小学搭建局域网服务器如果您需要加入试点计划可以直接联系我们咨询具体事项。在AI创想实验室中我们无需编程基础不用学习框架不用配置环境无需购买费用高昂的显卡更不用为云端算力付费使用当前已有的各种硬件仅有核显的个人、办公、机房电脑希沃白板等都能达到理想的教学效果。操作简单但AI核心知识样样俱全无需师资培训就可以进行教学且能取得理想的教学效果。如果加入试点或合作方那么只需要一台局域网服务器无需显卡、服务器不用供算力即可一次投入永久使用全部项目和功能通过后台管理一分钟即可创建一个本地化、校本化的项目实例。演示版本地址www.AiEduLab.tech有任何问题欢迎留言或发送邮件至helloAiEduLab.tech

相关新闻

现代C++工程实践:decltype 与返回类型推导

现代C++工程实践:decltype 与返回类型推导

现代C工程实践:decltype 与返回类型推导 这个仓库已经开源!现代化 C(C11/14/17/20)从基础到进阶的系统教程都在这里,力争做一条完备的现代 C 学习路径!欢迎各位大佬前来参观,喜欢的话点个⭐&…

2026/10/1 7:43:27 阅读更多 →
统一 loss-based 和 delay-based 的拥塞控制

统一 loss-based 和 delay-based 的拥塞控制

前面屡次提到,丢包最终转化为重传时延,而类似 PFC\text{PFC}PFC 憋着不丢则会转化为排队时延,这是时延的交易。 习惯上,人们将拥塞控制算法分类为 loss-based\text{loss-based}loss-based 和 delay-based\text{delay-based}delay-…

2026/10/7 5:37:11 阅读更多 →
你已经努力了很久,怎么判断自己还该不该坚持?

你已经努力了很久,怎么判断自己还该不该坚持?

你已经投入了几年、花了很多钱,也认真熬过低谷。正因为付出是真的,改路才像否定过去。可过去的投入,不能替未来继续下注。“再坚持一下”是个太好用的解释。 项目没人买,可以说市场还没教育好;一种学习方法用了半年没有…

2026/10/7 12:37:30 阅读更多 →

最新新闻

云开发+短信API:零成本搭建员工生日自动提醒系统

云开发+短信API:零成本搭建员工生日自动提醒系统

每年一到员工生日这种日子,行政和HR就开始手忙脚乱。翻Excel、找手机号、挨个发祝福语,还要赶在当天发出,稍微一忙就会漏掉一两个。之前我们团队就是这么干的,直到有一次连续漏了三个同事的生日,被吐槽“公司没有人情味…

2026/10/15 20:02:24 阅读更多 →
Arcpy批量导出地图脚本:从手动出图到自动化流水线

Arcpy批量导出地图脚本:从手动出图到自动化流水线

1. 从手动一张张出图到批量流水线:这个脚本到底解决什么问题如果你做过GIS制图,大概率经历过这样的场景:手头有一份行政区划图层,领导要求按每个乡镇出一张专题图,一共几十上百个。打开ArcMap或ArcGIS Pro,…

2026/10/15 20:02:24 阅读更多 →
离散数学笔记高效整理法:五大板块与复习避坑指南

离散数学笔记高效整理法:五大板块与复习避坑指南

简介:这是一份系统梳理离散数学核心知识点的PDF笔记,围绕数理逻辑、集合论、数论、计数原理、概率论、关系论、代数系统与图论八大板块展开,适合高校本科生、考研复习者及程序员巩固理论基础。笔记从命题逻辑的永真式与范式讲起,依…

2026/10/15 20:02:24 阅读更多 →
python代码学习1

python代码学习1

摘要:f的用法、print中可用的操作、for、列表、ASCII编码一、f的用法:在输出里调整格式1.直接嵌入变量/表达式a 18 print(f"今年{a}岁") # 今年18岁2.保留有效数字pi 3.1415926 print(f"{pi:.2f}") # 3.14 print(f"{pi…

2026/10/15 20:02:24 阅读更多 →
IIS 6.0离线安装包:含全部DLL与注册表修复的SP2兼容部署方案

IIS 6.0离线安装包:含全部DLL与注册表修复的SP2兼容部署方案

简介:本资源为IIS 6.0完整安装支持包,面向Windows Server 2003系统管理员、传统Web运维人员及遗留系统维护开发者,专为解决IIS 6.0原生安装因缺失关键DLL导致失败或功能异常的典型问题。压缩包内含263个文件,涵盖19个核心DLL&…

2026/10/15 20:02:24 阅读更多 →
VMware复制粘贴失效?从VMware Tools到客户机隔离全排查指南

VMware复制粘贴失效?从VMware Tools到客户机隔离全排查指南

你是不是也遇到过这样的场景:虚拟机里装好了系统,想在宿主机和虚拟机之间复制一段代码、一个下载链接、一小段配置,结果CtrlC、CtrlV按了半天一点反应都没有;换成拖放文件,鼠标倒是能移过去,文件却死活拖不…

2026/10/15 20:01:22 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →