|
本帖最后由 student0618 于 2025-3-24 14:13 编辑
0. 前言
网上有不少AI辅助整理文献的工具,其中Standford Storm (https://github.com/stanford-oval/storm) 是个开源、免费的library,特色是会模拟几位不同领域的“专家” 去讨论课题、再总结成一份报告。这工具会先用搜寻引擎找资料,再用LLM整理、生成一篇有引用资料来源的总论。
Standford Storm有一个server可用Google Account登入(我没试),而开放的源码可在github下载。
刚好我的学校有给学生每月的ChatGPT token配额,本想善用资源,却很反感直接用ChatGPT会生成fake reference,对资料真正的作者非常不尊重。偶尔看到有朋友推荐这Storm工具可下载、可自选不同LLM,便花了个周末看看能不能用完本月的token。
非专业、纯属试玩,我写的是完全不客观的个人观点和比较客观试错毕记。个人的python目前是只懂看及基本debug程度,暂无法回答深入的问题。
1. 安装流程
1a. 测试系统
- Microsoft surface pro 7 16GB,intel i7 cpu(普通文书用触控式平板电脑)
- 这电脑OS是Windows 10 ,没试其他OS,理论上用linux 更佳?
- Miniconda3 windows 64-bit 自带的 Anaconda PowerShell prompt
- Torch用的是cpu版
- 源码是github上2025年1月22日版本,测试日期是2025年3月22-23日。
1b. 安装knowledge storm
- git clone 或网页版下载源码
- cd 到storm的directory
- 按照README文件 create conda environment、activate 及pip install -r requirements.txt
- Search engine API 我选用的是可以直接用自己的github帐号 login的tavily free plan, 每月上限1000 credits。未必是最好的选择,胜在不绑卡。因此也要pip install tavily-python。
- 在同一目录开新文件secret.toml放各种API key及LLM server网址,参考README的例子。我的学校提供的GPT是Microsoft Azure的服务,因此OPENAI_API_TYPE="azure",还要加一行AZURE_OPENAI_ENDPOINT="学校提供的API endpoint网址"。我这次选用了tavily search engine API,因此也要加TAVILY_API_KEY="我的tavily API key"。
- 复制examples/storm_examples/run_storm_wiki_gpt.py到当前目录并修改model name。这脚本的openai_kwargs["api_base"] = os.getenv("AZURE_API_BASE") 也要改成 openai_kwargs["azure_endpoint"] = os.getenv("AZURE_OPENAI_ENDPOINT")。具体不同服务提供者或有不同,应参考error message提示。
1c. 安装lightweight demo GUI- cd .\frontend\demo_light
- 按目录下README.md指示pip install -r requirements.txt安装GUI用的库
- 安装的是源码,所以需要Uncomment demo_util.py中import sys及sys.path.append('../..')这两行。
2. 使用笔记
由于Demo GUI给的code里头生成文章的interface没写用tavily的code,没时间改用不了他开new article。因此我用command line跑storm生成文章,用GUI来看稍稍排版整理过、citation附连结的results。
2a. 生成文章
- 回到storm的主目录
- 确认API KEY等放好后运行
- python run_storm_wiki_gpt.py --output_dir ".\frontend\demo_light\DEMO_WORKING_DIR" --do-research --do-generate-outline --do-generate-article --do-polish-article --remove-duplicate --retriever tavily
复制代码
- 稍等几分锺,待“Topic: ”一行出现时输入要生成的文章主题后回车,topic不可有-或_以外的标点。
- 因为打算稍后用GUI看结果,因此这边Output dir设爲".\frontend\demo_light\DEMO_WORKING_DIR"
- 程序会先在Output Dir新增一个名字是所输入topic的资料夹,topic太长的话会自动资料夹名字减掉,不影响实际使用。
- 输入Topic后等他自动跑找资料、LLM生成文章等步骤。试用时最后两步的LLM log及summary有报错,但因没影响生成文章故没有理会,也没时间修。
2b. 用GUI看结果
- cd 到 frontend\demo_light 目录
- 确认2a生成的文件都在DEMO_WORKING_DIR后运行
- 浏览器会打开Storm视窗,首次使用可能会有防火墙的提示。
- 等一会儿让他加载后可以在“My Articles”下方找到先前生成的文章
- 选择其中一个Article后,scroll到最下方“Click here to view the agent's brainSTORMing process!"可以查看“虚拟专家”agents们的“受访内容”
2c.备注:
- 本来装了duckduckgo的API打算比较比较,他能跑却卡rate limit,没再试了。
- 也想过用Google Search API,但没时间。而且如果决定用Google account我大概会直接用Standford Storm的server懒得折腾local installation了。
- CoStorm 我试了几遍还在给error或page not found,就没多花时间排查了,真想试的话大概会用官方的server。
3. 感想及总结
- 生成的报告大概是中规中矩的本科生作业程度,比自己本科时deadline前半小时写的专题报告好些。试了几个不同课题,big picture大概ok的,深入些的内容会理解错误或跑题。这和不少对资料一知半解、囫囵吞枣的学生一样。
- 生成的框架、行文、思路、(部分用词)可以用作不错的参考,但不应直接拿来用,这样做除了不道德还会被行内人取笑。对于打算偷懒用他来交作业的同学来说是很不错...的教训(i.e.是个陷阱),用这个生成报告给我改的话,我会很愉快地批改并大力嘲笑他们。
- 用Abbreviations也可以,如MD,不过较冷门的概念会出错,用full name较好。也不是整篇都错,可能一个段落用对、一个段落用错;或者是report正文用对、但“虚拟专家对话”时用得不对。
- Topic包含多于一个概念的话可能会混乱,尤其是不常见的组合。例如X improvement of method Y to do Z,他可能会给只给X+Y/X+Z/Y+Z的内容 ,或者没连贯性地分开讨论X Y Z。
- 部分内容离题,也有抓错/漏concept/keywords的时候,如Hamiltonian replica exchange 有时变成 temperature replica exchange(只抓到replica exchange);讨论MD算的binding free energy很突兀地谈QM算的energy。
- 搜寻引擎找到到含Non-ASCII character的资料(如希腊字母Tau)后喂给LLM时会报错,停在找资料阶段。
- “虚拟专家”们的分工未必明确,有时也会只出现一位“basic fact writer”。例如我测的其中一个课题和蛋白质-小分子结合相关。几位“虚拟专家”包括一位computational chemist、一位biochemist。照理说会expect后者给点实验角度的讨论,但这两个agent都在聊用docking算binding free energy,内容高度重複。
- 当然,这些缺点有可能是选用的Search engine或LLM可以再优化的关系,例如search engine改用Google可能更好。可选用的LLM我也只是试用了GPT-4o和4o-mini,没试其他。
- 个人意见:目前LLM还是最适用于语言学习,不担心个资的话或许用作心理咨商也可能。用于其他目的要特别小心谨慎。
- 测试了少于30遍,约4-5个课题,每个课题几种不同句式不同长度的topics,而当中有几次是搜寻后才报错的。搜寻引擎API tavily的credit用了约400个,接近free plan 每月上限的一半。LLM token用量因为报错没显示,但暂时还没有超过学校gpt-4o或gpt-4o-mini的每月上限。
|
评分 Rate
-
查看全部评分 View all ratings
|