摘要:视角引导式提问:给定输入主题,通过调查来自类似主题的现有文章来发现不同的视角,并使用它们来控制提问过程。模拟对话:模拟维基百科作者和基于互联网资源的主题专家之间的对话,使语言模型能够更新对主题的理解并提出后续问题。
今天给大家分享一个单日新增上千STAR的大数据知识管理平台。Let's go!
storm是一个以大数据算法为基础的知识管理系统,可以提供研究一个主题并生成一份包含引文的完整报告,包含通过检索和多角度提问的综合主题大纲。
storm基于互联网搜索从头开始编写类似维基百科的文章。目前已经有超过7万人参与了相关的研究,提供了丰富的测试素材。
storm的工作原理分为两个步骤:
写作前阶段:系统进行基于互联网的研究,收集参考文献并生成大纲。写作阶段:系统使用大纲和参考文献生成带引用的全文文章。同时,storm的内核在于会自动提出好的问题。很多小伙伴可能会有疑问,那如何保障提出问题的深度和广度,storm提供了多种方式,例如:
视角引导式提问:给定输入主题,通过调查来自类似主题的现有文章来发现不同的视角,并使用它们来控制提问过程。模拟对话:模拟维基百科作者和基于互联网资源的主题专家之间的对话,使语言模型能够更新对主题的理解并提出后续问题。基于storm的进阶版本还提出了一种协作话语协议,该协议实施了回合管理策略,以支持以下各方之间的顺利协作:
专家提问:这种类型的代理基于外部知识源生成答案和/或根据话语历史提出后续问题主持人:该代理根据检索者发现的信息生成发人深省的问题,但这些信息在之前的轮次中没有直接使用。问题生成也可以扎根。普通用户:普通用户将主动(1)观察话语以加深对主题的理解,或(2)通过注入话语来引导讨论焦点,从而积极参与对话。storm还维护着一个动态更新的思维导图,将收集到的信息组织成一个分层的概念结构,旨在在普通用户和系统之间建立一个共享的概念空间。思维导图已被证明有助于在话语长而深入时减轻负荷。
安装代码:
gitclone https://github.com/stanford-oval/storm.gitcd stormconda create -n storm python=3.11conda activate stormpip install -r requirements.txt当前支持的api接口
OpenAIModel, AzureOpenAIModel, ClaudeModel, VLLMClient, TGIClient, TogetherClient, OllamaClient, GoogleModel, DeepSeekModel, GroqModel as language model componentsYouRM, BingSearch, VectorRM, SerperRM, BraveRM, SearXNG, DuckDuckGoSearchRM, TavilySearchRM, GoogleSearch, and AzureAISearch as retrieval module components搜索引擎和OpenAI模型的示例:
import osfrom knowledge_storm import STORMWikiRunnerArguments, STORMWikiRunner, STORMWikiLMConfigsfrom knowledge_storm.lm import OpenAIModelfrom knowledge_storm.rm import YouRMlm_configs = STORMWikiLMConfigsopenai_kwargs = {'api_key': os.getenv("OPENAI_API_KEY"),'temperature': 1.0,'top_p': 0.9,}# STORM is a LM system so different components can be powered by different models to reach a good balance between cost and quality.# For a good practice, choose a cheaper/faster model for `conv_simulator_lm` which is used to split queries, synthesize answers in the conversation.# Choose a more powerful model for `article_gen_lm` to generate verifiable text with citations.gpt_35 = OpenAIModel(model='gpt-3.5-turbo', max_tokens=500, **openai_kwargs)gpt_4 = OpenAIModel(model='gpt-4o', max_tokens=3000, **openai_kwargs)lm_configs.set_conv_simulator_lm(gpt_35)lm_configs.set_question_asker_lm(gpt_35)lm_configs.set_outline_gen_lm(gpt_4)lm_configs.set_article_gen_lm(gpt_4)lm_configs.set_article_polish_lm(gpt_4)# Check out the STORMWikiRunnerArguments class for more configurations.engine_args = STORMWikiRunnerArguments(...)rm = YouRM(ydc_api_key=os.getenv('YDC_API_KEY'), k=engine_args.search_top_k)runner = STORMWikiRunner(engine_args, lm_configs, rm)来源:火力冲锋劲
免责声明:本站系转载,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!