给AI一个想要了解的主题,AI就能一步步的帮你写出维基百科式的文章。这就是github上最近火热的STORM项目, 全称为Synthesis of Topic Outlines through Retrieval and Multi-perspective Question Asking,一个通过检索和多视角提问,主题概要综合,实现了从零开始撰写类似维基百科文章的系统。
本文结合STORM相关论文和项目文档,探索STORM的原理与使用方式。
什么是STORM
STORM(Synthesis of Topic Outlines through Retrieval and Multi-perspective Question Asking)是一个由斯坦福大学研究人员开发,旨在利用大语言模型(LLMs)自动化从头开始编写具有维基百科页面般的广度和深度的有根据和有组织的长篇文章。
STORM旨在模拟文章写作前的调研过程,通过发掘话题研究中的多样视角、模拟具有不同视角的作者向话题专家提出问题的对话,以及基于这些对话整理收集到的信息来创建文章大纲。
STORM系统设计理念
STORM系统的设计基于两个核心假设:(1)不同的视角可以引出多样化的问题;(2)制定深入的问题需要迭代研究。基于这两个假设,STORM采用了一个新颖的多阶段方法,首先通过检索和分析类似主题的维基百科文章来发现不同的视角,然后模拟多轮对话,让带有不同视角的写作者向基于互联网信任源的专家提出问题。
下面我么来逐步看下系统的工作流程
工作流程
STORM的工作流程可以概括为4个步骤。
-
主题调研与视角发现
STORM首先通过调查相关主题的维基百科文章来识别多种视角,为方便提出后续的问题。 -
模拟对话与问题提出
模拟作者与主题专家之间的对话,由作者根据特定视角提出问题,结合互联网搜索得到的结果得到一个答案。 -
文章大纲的创建
在完成主题研究后,STORM利用LLM生成草稿大纲,并结合模拟对话内容来完善和细化大纲。 -
长篇内容的撰写
基于收集的参考资料和开发的大纲,STORM逐节撰写全文,并最终形成一个完整的、类似维基百科的文章。
生成质量的评估
咋一看经过这么些复杂的流程和操作,生成的文章应该会靠谱很多,实际情况是什么样的呢?如果担心生成的结果不符合预期怎么办?
论文的作者们早已经通过创建一个近期高质量维基百科文章的集合,来评估STORM系统在预写作阶段的表现。与基于大纲的检索增强型基线系统相比,STORM生成的文章在组织性和覆盖面上有显著提升。并且也是完胜那些基于RAG和大纲做检索生成的系统。
看到这些数据,有些跃跃欲试的心动了…
且不说这个系统为自动化写作带来了新的可能性。我觉得一定程度上不仅能帮着减少撰写长篇深度文章所需的时间,也能通过这种广范围的知识检索和组织来促进个人对特定主题的深入学习。
用起来
最后STORM团队推出了在线演示,可以立即尝试。如遇到网站访问量过高问题,导致不可使用,那只能自己部署一套来玩一玩了。
代码都在github上开源了 https://github.com/stanford-oval/storm/tree/main.
需要准备的是Openai或者Azure openai的api-key,以及 You.com 搜索服务的API key。有能力的同学,可以接入不同的搜索引擎,如bing search或者Google等,甚至自己的笔记系统。