有用科研工具集锦

网页版

引言

"工欲善其事,必先利其器"当然说的很好,行军打仗,选择一件称手的兵器自然是上阵的前提。作为科研工作者,我们怎么做文献调研?怎么阅读和管理文献?怎么更加高效的设计和实施实验?如何快速完成论文写作中语言润色、画图、编辑公式等等都是费时费力的工作等等。作为计算机科学方向科研小白的我刚入门时,自己摸索文献调研、实验记录、论文写作等等走了不少弯路,很多时候一问老师同学或者上网找经验,原来有捷径啊?原来不需要一个个手动操作?由此便有了这一篇博客,记录和分享科研经历中的一些有意思的工具。

领域调研/文献管理

  1. paper搜索/下载

    1. 开题的时候想快速调研一个领域?有了idea想快速找到相关文献?灵感枯竭想找点有意思的paper?别急,这里都有。
    工具/网站 特点
    搜索引擎 Google/Edge 信息丰富。一些相关博客、开源repo等也会列出
    插件:Scihub addon, Sangerboxnote, EasyScholar 装上插件的浏览器直接如虎添翼,这几个插件显示论文期刊分区、IF、学科分类,帮我们方便快速定位当前文章质量
    学术网站 Google scholar 查找文献的首选,论文质量比较好,还有一些社交订阅等功能,但是文章更新稍有延迟
    Semantic scholar 支持语义搜索,文献更新较快
    Web of Science 资源丰富,非免费
    **知网 除此之外的万方维普等对中文文献非常友好
    工具 关联文献:Connected papers & Research rabbit & litmaps 利用这两个工具,给定一篇paper,迅速找到相关的paper,标记时间和引用,快速找到该领域的大牛和重要paper
    领域调研:paperdigest & aminer 利用LLM,输入领域描述可以帮助写一个简单review,列出related paper.还可以提问(指定会议),比如快速消化ICLR 2024的热点paper。并且aminer 支持按期刊水平等进行检索,可以根据排名方便找到该领域的重要paper、大牛以及新星,侧重AI领域的paper
    其他: researchgate 学术圈的facebook
    下载 期刊官网 直接检索,进入官网下载
    arxiv 一个收集物理学、数学、计算机科学、生物学与数理经济学的论文预印本的网站
    SciHub 懂的都懂
    annas-archive 电子书pdf,资源丰富
    网站集锦 各种网站入口集锦
  2. 阅读/管理

    找到了相关的paper,如何快速阅读?如何更加高效的管理文献?问题接踵而来,下面则是应对之策。

    LLM支持工具网站:chatpdf& txyz &chatgpt & claude LLM驱动的文献快速阅读工具,通过上传pdf或者url等,帮你快速总结文献核心要点。
    笔记:Notion & 飞书 两个工具排版非常方便,支持多人协作文档编辑,还可以方便导出各种文件格式如docx、pdf、markdown、latex等格式
    管理 Endnote 文献管理,方便和word结合起来管理引用,教程比较全面,缺点是付费
    zotero 开源,但是对中文文献不是特别友好
    集成式工具 ivysci 集成搜索、下载、阅读、笔记、管理甚至写作等功能

实验

  1. 有用脚本

    计算机相关专业的从业者,往往需要大量与GPU、conda、服务器、git等名词后面的东西打交道,本节列举一些实验中常用脚本,方便使用。

    1. git相关(更多请参考Git and GitHub

      # 信息配置
      git config --global user.email "XXX@email.com"
      git config --global user.name "NAME"
      

      这个错误通常是因为你没有在本地设置SSH密钥,或者你的SSH密钥没有添加到GitHub的SSH密钥列表中。你可以按照以下步骤来解决这个问题:

      ls -al ~/.ssh #查看你是否已经有一个SSH密钥。id_rsa.pub或者id_ed25519.pub等文件出现表示已存在SSH密钥
      ssh-keygen -t ed25519 -C "your_email@example.com" #若没有,创建一个新的SSH密钥
      eval "$(ssh-agent -s)" #确保ssh-agent是在后台运行的
      ssh-add ~/.ssh/id_ed25519 # 将SSH私钥添加到ssh-agent
      cat ~/.ssh/id_ed25519.pub # 复制输出。接着,打开GitHub网站,点击右上角的头像然后选择"Settings",在左侧选择"SSH and GPG keys",点击"New SSH key",在"Key"字段中粘贴你刚刚复制的公钥。
      

      Git ignore

      1. 创建.gitignore文件
          touch .gitignore
      1. 给.gitignore文件添加条目
      vim .gitignore
      i#进入编辑模式
      #编辑
      #Esc退出编辑模式
      :wq#保存
    2. conda环境管理

      conda create -n NAME python=3.6.1 # 创建开发环境
      pip list --format=freeze >requirements.txt #pip 导出配置文件
      pis install -r requirement.txt
      conda env export --no-builds > environment.yml
      conda env create -f environment.yml
      
      source /opt/conda/bin/activate #可能需要激活conda
      conda activate ENV_NAME
      python XXX.py
       export CUDA_VISIBLE_DEVICES=1; python XXX.py #指定GPU运行
      
    3. 文件

      # rsync文件下载
      rsync -avz --progress -e ssh YOUR_NAME@0.0.0.0:/mnt/inaisfs/user-fs/YOUR_SOURCE_PATH/ YOUR_TARGET_PATH/ #可以仿照在实验室服务器终端运行这个下载
      #文件压缩
      tar -czvf example.tar.gz example.txt
      tar -xzvf example.tar.gz #解压到当前文件夹
      
    4. 终端连接管理

      1. tmux (防止ssh连接断开,提交的任务被终止)
      tmux new -s $session_name #创建并指定session名字
      tmux a -t $session_name  #进入已存在的session
      tmux ls #列出session
      tmux kill-session -t $session_name #删除指定session
      
    5. 代码调试

      import pdb
      pdb.set_trace() ##断点调试
      
      #%% #增加“#%%”可以变成单元格方便调试
      
    6. 有用python绘图脚本(持续更新中)github repo

    7. 项目code框架示意模版(方便code管理和开发)

    8. 其他

      watch -t nvidia-smi #查看GPU使用情况
      jupyter nbconvert --to python NOTEBOOK.ipynb  #将ipynb文件转换为py文件
      
  2. IDE

    虽然传言最强大的程序员使用文本编辑器编程,做到无剑胜有剑,初出茅庐的小白还是拘泥于器,下面则是我最喜欢的两个IDE,足以胜任所有编程工作。

    vscode git相关插件 gitdiff :git diff功能,对比编辑历史,可视化更加方便、明显,并且在编辑的时候自动标记更改方便跟踪实时code修改
    gitlens:显示每一行的编辑历史,提示未commit的修改等
    code相关 copilot:LLM驱动的编程助手,教育学生认证后免费
    EasyCodeAI copilot的替补,LLM辅助解释程序和处理bug
    其他 Path Intellisense(文件路径补全)& Image preview(图片预览)&vscode-pdef & Docx/ODT Viewer & file-size
    文件工具 Final shell ssh链接后,上传和下载文件比较方便稳定,也自带编辑器编写简单的文本。
  3. 实验记录

工具 飞书 & Notion 方便协作和展示
机器学习学习强相关 tensorboard ◦ TensorFlow的官方可视化工具,与TensorFlow紧密集成,免费且开源,支持多种数据可视化类型,如标量、图像、音频、计算图等。 ◦ 功能相对基础,主要针对Tensorflow架构
wandb ◦ 云端服务,方便远程访问实验数据,支持大量的机器学习框架,强大的可视化和报告生成功能,实时监控实验状态,以及与团队成员共享实验结果的功能。 ◦ 需要联网,免费版存储空间和功能有限
mlflow ◦ 开源且支持多种机器学习框架,提供了实验跟踪、模型打包、模型服务部署等全套机器学习生命周期管理功能,可以部署在本地或云端,灵活性高。 ◦ 相比WandB和TensorBoard,社区支持和用户基础较小,配置和使用相对复杂。
Comet.ml ◦ 提供实验跟踪、参数优化等功能,强大的可视化工具和云端存储,支持代码版本控制和实验比较。 ◦ 免费版本功能有限,完整功能需要付费,需要联网。
ClearML ◦ 提供了一个端到端的MLOps平台,支持实验跟踪、数据管理、模型部署等。强大的自动化机器学习流程,支持云端和本地部署。 ◦ 对于初学者来说,功能丰富可能导致上手难度较高,企业级功能需要付费。

论文写作

论文的写作问题令很多人头疼不已,无论是排版、文法、画图等等,都是一个个棘手的挑战。可能是繁琐的低脑力重复工作,可能是文法上当局者迷,也可能是画图是感叹艺术细胞缺失,下面是一些工具帮助解决这些问题。

文本 overleaf 在线latex开发工具,支持多人协作
word 质朴万能工具
公式 在线latex公式编辑 在线公式编辑,方便预览和导出,notion也可以方便导出
在线表格转换工具 在线表格转化
Mathpix snip 扣其他论文的公式,也可以使用GPT4
表格 在线生成表格 在线表格生成编辑,方便导出latex、markdown、html等格式
示意图:PPT & Visio & origin 方便快捷,支持多种模版,方便展示
数据图:Python & Matlab 方便自己调试,自由度高
PPT素材:ML相关 套用一些PPT模版或者素材,减少重复性劳动
其他 语法:grammarly 支持边写边结错,可设置全局使用
润色:ChatGPT 注意辨别用词,LLM此处倾向使用高级词汇

其他

一些其他工具科研生活中也必不可少,如文件格式转换、文件查找等,持续更新中......

文件 Convertio 在线免费网站,支持多种文件格式相互转换
Everything 本地文件查找
笔记 xmind 热门思维导图软件,笔记和展示都非常方便美观
其他 Autothink插件 outlook插件,自动根据来信回复邮件
blog 完成基本信息替换即可搭建个人学术主页

其他补充(in updating)

  1. Anonymize code repo with anonymous github
    1. Create a private repo: PROJECT_NAME
    2. Add your code to this repo (be careful to delete the personal information)
    3. Use https://anonymous.4open.science/ to get anonymous repo
    4. Share the anonymous repo link