智能写作分享

智能写作技术路线

​ 在大模型的现有能力框架内,其对于处理长文档级别的智能写作任务存在一定的局限性。针对这一问题,本文深入探讨了长文档智能写作这一应用场景,并在此基础上,提出了一套切实可行的技术解决方案。该方案旨在弥补大模型在长文档处理方面的不足,为从事智能写作的相关人员提供了一种新的思路和方法。通过采纳这一技术解决方案,有望在长文档智能写作领域取得显著成效,进一步提升写作效率和质量。

  • 人类写作工作流

    在探讨如何撰写一篇 高质量 论文的过程中,我们可以以撰写学术论文为例来详细说明。

    以下常规写作流程:

    • 第一步: 首先,研究者需从相关学术期刊下载相应的论文模板,以确保文档格式符合发表要求。
    • 第二步: 接着,研究者在模板的基础上,开始填充内容,包括撰写摘要、构思章节标题、撰写各段落正文等,确保论文内容的完整性和逻辑性。
    • 第三步: 完成初稿后,研究者将论文提交给评审专家或指导老师进行审查。
    • 第四步: 根据评审专家或指导老师的反馈意见,研究者对论文内容进行修订和完善,重复第二步的过程,直至论文达到预期的质量标准。

    人类执行任务的传统工作流模式 中,涉及到 研究者评委 两个关键角色。我们探索利用大模型AI技术来部分替代这些角色,从而缩短写作流程。

    人类执行任务的传统工作流模式 中,在学术论文的撰写与评审过程中,评审专家的任务相对简洁,通常仅需几天时间即可完成,而研究者撰写一篇论文则可能需要数月。遵循从简单到复杂的自然原则,我们倾向于首先考虑让AI技术在智能写作领域扮演评审专家的角色,以此作为AI辅助学术工作的初步尝试。

    在技术层面上考虑大模型解决任务的能力,我们可以观察到:对于生成高质量文本的任务,大模型的处理复杂度高于其在理解文本的任务上的复杂度。

  • AI 写作阶段

    在我的理解中,实现长文档智能写作是一个从简至繁的渐进过程,它包含四个明确的阶段:首先是人填机检阶段,其次是机填人检阶段,然后是机填机检阶段,最终达到机填不检的阶段。这四个阶段共同构成了智能写作的发展路径。

达成预期目标
长文档智能写作
机器检测写作是否符合模板规范
机器初步完成写:类如绪论章节简单任务
机器高度智能化:边写边检查反思
机器高度专业化
人填机检
机填人检
机填机检
机填不检

  • 第一阶段 : 人填机检

    人填机检 的目的主要包括以下几点:

    1. 确保内容准确性:人在填写内容时可能会出现错误,机检可以帮助发现并纠正这些错误,如拼写、语法、数据准确性等。
    2. 提升写作质量:通过机器检查,可以评估文本的流畅性、一致性以及是否符合特定的写作风格和格式要求。
    3. 优化内容结构:机器可以检查文档的结构是否符合逻辑和标准,比如章节标题的层级关系、段落间的连贯性等。
    4. 节省时间:人工检查长文档是一项耗时的工作,机器辅助检查可以大幅缩短审核时间,提高效率。
    5. 提供反馈:机器检查可以为撰写者提供即时的反馈,帮助其学习和改进写作技巧。
    6. 遵循规范:对于需要遵循特定出版或学术规范的文档,机器检查可以确保文本符合这些要求。

    当用户导入模板时,该模板已预设了文档的结构和格式,其中模板中 <|g_mask|> 用作为标识待填充内容或需核查的区域

    用户在指定区域输入具体文本信息后,系统将自动激活模型的自动校准功能,即时提供反馈和修订建议。

    当用户输入内容满足机器审查要求,机器会提示 ‘’录入成功‘’ 字样,并将填充内容 记录到数据库,用于 人填机检 第二阶段训练样本。

    例如:

      	########  CONTEXT_BEFORE  ###########<|g_mask|> **请根据上下文信息,补全中间缺失片段信息**  \<|g_mask|>########  CONTEXT_AFTER  ###########
    
    • 在用户编写过程中,用户根据**##**标识符指令书写(prompt),系统会自动实时检测该区域用户书写内容是否符合规范。这里我写的指令过于宽泛,实际用户 prompt 指定要精准,人类书写 基于该指令回复文本 要聚焦, 答复要 非黑即白

    • 模板设计原则: 从我们的素材库里检索。如果检索不到,用户自己按照《模板设计细则》要求,自己设置模板并上传。《模板设计细则》当然也是由我们来定规则。当上述两者条件无法达到要求时,请让用户开通 VIP 服务权限 ,利用大模型本身固有能力,生成相对粗糙模板范本。


  • 第二阶段 : 机填人检

    在第一阶段生成的数据将作为第二阶段的训练数据,这引发了一个关键问题:如何更有效地利用这些训练数据进行模型的微调,以实现针对特定待填充区域的机器自动填写功能。

    微调模型时,我们依赖于问答数据对。以下是一种直观的方法来构建这些数据对:

    目标(Target): 使用生产数据中用户实际填写的内容。

    查询(Query):

    • 数据来源1: 将特定待填充区域的整个章节段落直接作为查询内容。
    • 数据来源2: 利用特定待填充区域的上文进行检索,选取与特定待填充区域 最相关的N个段落作为查询的补充信息。
    • 数据来源3: 从外部数据库或语料库中进行Rag检索,以获取更广泛的上下文信息。
    • 指令: 模板中预定义prompt ,上文 <|g_mask|> 里的指令。

    通过这些数据来源,我们可以构建出用于微调模型的问答数据对,从而提高模型在特定待填充区域的自动填写能力。

    数据构造模式如下:

    上下文
    指令目标数据来源

    如果在 第一阶段 没有收集到足够数据,或者有一系列的标准文档,但是没有收集到一系列问答对数据,该怎么处理呢?

    这可以采用一种naive 的方法: 自训练(self-training)

    原理很简单: 将标准文档 按章节 拆成 若干段落 graph,标记如下
    d o c u m e n t = [ g r a p h 1 ; g r a p h 2 ; . . . ; g r a p h i − 1 ; g r a p h i ; g r a p h i + 1 ; . . . ; g r a p h n ] document = [graph_1 ;graph_2;...;graph_{i-1}; graph_i ; graph_{i+1};...;graph_n] document=[graph1;graph2;...;graphi1;graphi;graphi+1;...;graphn]

    根据 [ g r a p h i − 1 ; g r a p h i + 1 ] [graph_{i-1};graph_{i+1}] [graphi1;graphi+1] 的上下文的段落间 关联性内容,推导出 g r a p h i graph_i graphi

    此外,为了进一步提升写作效率和质量,可以整合使用其他功能插件,如自动续写、文本优化、校对以及内容扩展等功能,以实现更全面的写作辅助体验。

    AI支持插件
    plugin One 收集材料
    DB/KB数据库检索
    联网搜索
    plugin Two 反馈机制
    信息追加
    反问机制
    plugin Three 写作能力
    风格
    润色
    关键词/短语
    续写
    扩写
    改写

    上述功能模块的提示词大致可以参考如下,由指令 + 格式 完成:

    prompt: 
    """
    <content>{content}</content>
    请帮我继续扩展一些这段话的内容。
    注意:你应该先判断一下这句话是中文还是英文,如果是中文,请给我返回中文的内容,如果是英文,请给我返回英文内容,只需要返回内容即可,不需要告知我是中文还是英文。
    """

    当然,这一功能模块的性能可以通过训练方法迭代优化的方式进行提升,从而提高输出的质量。挑战在于:在构建训练数据集的问答对时,关键是要有效地利用上下文中的数据源信息。换句话说,数据构造的方法直接影响到AI生成文本的质量。


  • 机填机检

    在这个阶段,我们实现了AI 之间的交互与合作,构建了所谓的多智能体系统框架。在这个框架中,一个智能体(AI)负责提出修改建议,而另一个智能体(AI)则根据这些建议执行相应的修改。通过多轮的互动交流,双方共同完成任务。

    • 目前已采用多智能体框架(Metagpt) 实现端到端的长文档生成。

      第一步:先做任务规划,做任务执行调度;(可以理解为 根据 论文标题 题目 生成大纲信息;即 AI 对 全局写作做整体规划)。当然大模型规划的大纲,用户不满意可以进一步人工修改。

      第二步:执行动作 (Action); 根据大纲的每一小章节的小标题和写作向导、章节描述信息,执行 动作,该动作可以结合外部工具,覆盖联网、外部文件检索功能;

      结合以上两点: 很容易以自动化方式生成初稿。

      供应商管理制度
      可选
      yes
      no
      配置大纲生成方式
      文档标题
      关键词
      AI智能生成大纲
      选择人工大纲模板-i
      配置知识库
      关联知识库
      不关联知识库
      开始写作
      初稿

      **终稿:**初稿的文章质量往往不能满足生产要求,因此,需要引入机检 机制,即在每个小节里的 的动作,增加自评判、自改进功能。

      机填机检
      y
      n
      初稿
      开始写作
      llm 按章节依次审核
      自批判
      自改进
      终稿
    • 优点:能够产生符合写作格式的长文档; 缺点:内容上写的很肤浅,很发散,不能聚焦,或者用户输入信息不充足,不能满足生产要求。


  • 机填不检

    机填机检的过程中,由于涉及AI之间的多轮交互,面临着内存和计算资源的限制。此外,AI之间的沟通可能会出现故障或短路,一旦某个AI角色发生故障,可能会引发连锁反应,最终导致整个任务无法顺利完成。

    理想的实现逻辑是采用自动填充而无需检测的模式,这意味着大型模型已经具备了充足的专业知识,并且用户提供的辅助资料也极为详尽。在满足这两个前提条件下,未来我们有望实现自动填充而无需后续检验的目标。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/51459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ts踩坑!使用可选链 ?.处理可能遇到的 undefined 或 null 值的情况,但是仍然收到一个关于可能为 undefined 的警告!

在 TypeScript 中&#xff0c;当你使用可选链&#xff08;Optional Chaining&#xff09;?. 时&#xff0c;你其实已经处理了可能遇到的 undefined 或 null 值的情况。但是&#xff0c;如果你仍然收到一个关于可能为 undefined 的警告&#xff0c;这可能是因为 TypeScript 的类…

关于js函数参数是否会实时更新的问题

遇到一个小问题 export function test001(value, callback) {setTimeout(() > {if (value undefined) {test001(value, callback)} else {callback()}}, 100) }// 调用处 // 要测试的变量 param01 test001(param01, () > {console.log(值不为空啦) }) 这个变量param01…

指针的意义

/指针------------------------------------------------------------------------------------------ // 1&#xff0c;指针是---------- // 通过它能找到以它为地址的内存单元 //int main() //{ // int a 10;//开辟一块空间 // int* p &a;//将变量a的地址取出&…

web自动化6-pytest③实践测试用例-回归用例web自动化

# -*- coding: utf-8 -*- """ lemut_select - 业务受理 Author: duxiaowei Date: 2024/7/17 """ import timeimport allure import pytest from selenium.webdriver.common.by import By# 业务受理 allure.feature("业务受理") class …

Unity Apple Vision Pro 开发:如何把 PolySpatial 和 Play To Device 的版本从 1.2.3 升级为 1.3.1

XR 开发社区&#xff1a; SpatialXR社区&#xff1a;完整课程、项目下载、项目孵化宣发、答疑、投融资、专属圈子 &#x1f4d5;教程说明 本教程将介绍如何把 Unity 的 PolySpatial 和 Play To Device 版本从 1.2.3 升级为 1.3.1。 &#x1f4d5;Play To Device 软件升级 ht…

使用 Visual Studio 2022 自带的 cl.exe 编译 tensorRT自带测试样例 sampleOnnxMNIST

1. 新建任意文件夹&#xff0c;将 D:\install\tensorRT\TensorRT-8.6.1.6\samples\sampleOnnxMNIST 下面的 sampleOnnxMNIST.cpp 文件复制进来&#xff0c;同时 D:\install\tensorRT\TensorRT-8.6.1.6\samples\sampleOnnxMNIST 下面的 sample_onnx_mnist.vcxproj 中的内容&…

Java核心 - 内部类详解

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有疑问和建议&#xff0c;请私信或评论留言&#xff01; 前言 在Java编程中&a…

vite5-macos仿macOS网页osx管理系统|vue3+arcoDesign桌面os

基于vite5.xvue3arco-design原创自研网页版os管理框架ViteWebOS。 使用最新前端技术vite5vue3pinia2arcoDesignsortablejsecharts搭建网页pc版桌面os式后台管理系统解决方案。支持自定义桌面栅格布局引擎、可拖拽桌面图标、多屏分页管理、自定义桌面壁纸主题、毛玻璃虚化背景等…

学Java一篇文章就够了(手把手教你入门)

第11章 枚举&注解&内部类 一、枚举 概念 枚举类型是Java 5中新增特性的⼀部分&#xff0c;它是⼀种特殊的数据类型&#xff0c;之所以特殊是因为它既是⼀种类 (class)类型却⼜⽐类类型多了些特殊的约束&#xff0c;但是这些约束的存在也造就了枚举类型的简洁性、安…

51单片机----开发工具介绍及软件安装

目录 一、硬件工具 二、软件工具 三、软件安装 四、总结 51单片机作为经典的入门级微控制器&#xff0c;因其易学易用、性价比高的特点&#xff0c;被广泛应用于各种电子产品中。想要玩转51单片机&#xff0c;首先需要了解其开发工具和软件安装方法。本文将从硬件和软件两方…

JCR一区级 | Matlab实现TTAO-Transformer-LSTM多变量回归预测

JCR一区级 | Matlab实现TTAO-Transformer-LSTM多变量回归预测 目录 JCR一区级 | Matlab实现TTAO-Transformer-LSTM多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.【JCR一区级】Matlab实现TTAO-Transformer-LSTM多变量回归预测&#xff0c;三角拓扑聚合…

C语言 #具有展开功能的排雷游戏

文章目录 前言 一、整个排雷游戏的思维梳理 二、整体代码分布布局 三、游戏主体逻辑实现--test.c 四、整个游戏头文件的引用以及函数的声明-- game.h 五、游戏功能的具体实现 -- game.c 六、老六版本 总结 前言 路漫漫其修远兮&#xff0c;吾将上下而求索。 一、整个排…

【OSCP系列】OSCP靶机-BTRsys-2.1(原创)

OSCP系列靶机—BTRsys-2.1 原文转载已经过授权 原文链接&#xff1a;Lusen的小窝 - 学无止尽&#xff0c;不进则退 (lusensec.github.io) 一、主机发现 二、端口扫描 1、快速扫描 2、全端口扫描 3、服务系统探测 4、漏洞探测 80端口扫到了一些目录&#xff0c;有wordpress框…

Paimon数据湖详解(第49天)

系列文章目录 一. Paimon数据湖增删改查 二. 查询优化 三. 系统表 四. Lookup Joins 文章目录 系列文章目录前言Paimon数据湖的使用1、创建Table1.1 创建catalog管理的表1.2 分区表1.3 Create Table As&#xff08;了解&#xff09;1.4 Create Table Like1.5 表属性1.6 创建外…

无心剑中译莎士比亚《爱如星辰引迷舟》

莎士比亚十四行诗第116首 Sonnet 116 爱如星辰引迷舟 Let me not to the marriage of true minds Admit impediments. Love is not love Which alters when it alteration finds, Or bends with the remover to remove: O, no! it is an ever-fixed mark That looks on tempe…

C++(week14): C++提高:(一)面向对象设计:设计原则、设计模式

文章目录 一、面向对象设计的概念4.统一建模语言&#xff1a;UML语言StartUML 二、类与类之间的关系0.总结(1)类与类的五种关系(2)区别(3)面向对象 vs 基于对象 1.继承 (泛化耦合)2.组合 (Composition)3.聚合 (Aggregation)4.关联(1)双向关联(2)单向关联 5.依赖 (Dependency) 三…

简单几步,把浏览器书签转换成导航网页

废话不多说直奔主题上干货 Step 1 下载浏览器书签 1&#xff0c;电脑浏览器点击下载Pintree Pintree 是一个开源项目&#xff0c;旨在将浏览器书签导出成导航网站。通过简单的几步操作&#xff0c;就可以将你的书签转换成一个美观且易用的导航页面。 2. 安装 Pintree B…

常见OVS网桥及其链接接口详解

目录 引言OVS简介常见OVS网桥 QBR&#xff08;qbr&#xff09;PLY网桥br-intbr-tunbr-routerbrcps常见网桥链接接口 QVOQVIQVMPatch网桥和接口的工作原理应用场景 虚拟化环境数据中心网络云计算平台 1. 引言 开放虚拟交换机&#xff08;Open vSwitch&#xff0c;简称OVS&…

iOS卡顿优化

概述 怎么优化下面场景离屏渲染的情况 图层阴影(Shadow):设置图层的 shadowOpacity、shadowOffset、shadowRadius 等属性。 图层圆角(Corner Radius):设置图层的 cornerRadius 属性,并同时启用了 masksToBounds。 图层蒙版(Mask):设置图层的 mask 属性或使用 maskT…

【保姆级讲解下QT6.3】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…