找回密码
 注册会员
查看: 144|回复: 0

在计算生物学研究中有效利用ChatGPT/GPT-4的10个小技巧 ...

[复制链接]
online_member 发表于 2023-4-5 22:06:20 | 显示全部楼层 |阅读模式

  • 参考文献 Lubiana T, Lopes R, Medeiros P, et al. Ten Quick Tips for Harnessing the Power of ChatGPT/GPT-4 in Computational Biology[J]. arXiv preprint arXiv:2303.16429, 2023.
    注 : 本文在对上述文献的关键内容进行翻译的同时,增加了一些附注,用于对文中相关的建议进行补充说明。

在计算生物学研究中有效利用ChatGPT/GPT-4的10个小技巧 ...900 / 作者:Ronan62054 / 帖子ID:116450

原文图1 在计算生物学中使用ChatGPT的十个快速技巧(分为五个思考、学习建议及五个实用技巧;每一条都有简化但有效的提示建议。)

Tip 1. Embrace the Technology and Be Ready for Novelty(面对、接受新事物/技术)

        ChatGPT是可以用于代码撰写和学术写作任务的强大工具,正在科学界迅速得到认可。虽然以批判性的眼光看问题、不盲目接受其产生的一切是很重要的,但将ChatGPT纳入工作流程无疑可以提高工作效率。我们赞同van Dis等人的建议,即每个研究团队都应该立即探索和讨论聊天机器人在其工作中的潜在用途。 聊天机器人技术正在迅速发展,每天都有新的工具和应用程序出现。虽然我们的技巧在不久的未来仍有价值,但当我们完成这篇手稿时,ChatGPT已经推出了插件支持和与Wolfram Alpha的新合作伙伴关系,显著扩展了其数学和计算能力。因此,我们能提供的最有价值的技巧之一是要为新事物的出现做好准备,并保持测试新的AI进展的开放性。 这些新事物正在迅速改变我们的工作方式。接受新技术,可以增加您在就业市场和竞争激烈的学术环境中的竞争力。换言之,虽然ChatGPT不会取代计算生物学家,但那些不使用它(和类似工具)的研究人员可能会在(学术)竞争中落后。
附注:围绕ChatGPT/GPT-4设计的扩展工具和类似的改进/简化版应用层出不穷,目前一些比较火(且对科学研究比较有帮助)的包括-

  • ChatGPT学术优化版
    https://github.com/binary-husky/chatgpt_academic
功能描述
一键润色支持一键润色、一键查找论文语法错误
一键中英互译一键中英互译
一键代码解释可以正确显示代码、解释代码
自定义快捷键支持自定义快捷键
配置代理服务器支持配置代理服务器
模块化设计支持自定义高阶的实验性功能与[函数插件],插件支持热更新
自我程序剖析[函数插件] 一键读懂本项目的源代码
程序剖析[函数插件] 一键可以剖析其他Python/C/C++/Java项目树
读论文[函数插件] 一键解读latex论文全文并生成摘要
批量注释生成[函数插件] 一键批量生成函数注释
chat分析报告生成[函数插件] 运行后自动生成总结汇报
arxiv小助手[函数插件] 输入arxiv文章url即可一键翻译摘要+下载PDF
公式显示可以同时显示公式的tex形式和渲染形式
图片显示可以在markdown中显示图片
多线程函数插件支持支持多线调用chatgpt,一键处理海量文本或程序
支持GPT输出的markdown表格可以输出支持GPT的markdown表格
启动暗色gradio主题在浏览器url后面添加/?__dark-theme=true可以切换dark主题
huggingface免科学上网在线体验登陆huggingface后复制此空间
…………


  • HuggingGPT
    Shen Y, Song K, Tan X, et al. HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in HuggingFace[J]. arXiv preprint arXiv:2303.17580, 2023.
    用ChatGPT连接HuggingFace社区中的AI模型,完成各项任务。
  • LMFlow
    https://github.com/OptimalScale/LMFlow
    帮助研究者使用极少的资源微调大模型,生成自己的"专属GPT"
可以预见,未来将会产生一系列围绕ChatGPT/GPT-4的科学研究,就像当年的AlphaFold(https://github.com/deepmind/alphafold)出来之后一样;而且根据ChatGPT的火爆程度,这些研究只会比AlphaFold相关研究出现的更迅速、也更受关注。例如最近刚刚出现的一篇计算生物学领域的文章GeneTuring tests GPT models in genomics(https://doi.org/10.1101/2023.03.11.532238)

Tip 2. Improve Code Readability and Documentation(提高代码可读性和文档化程度)

编程是计算生物学家的核心技能,然而学术界的代码输出,如软件、包、Web应用和分析脚本,大都是由时间紧迫的学生和博士后编写的。这些代码通常不遵循行业最佳实践,需要进行清理和文档化。即使这些代码段在实践中运行良好,我们也希望它们更易读。 因此,开始利用ChatGPT的良好起点是使您喜爱的脚本更易读。简单的提示,如“为这段代码添加说明性注释(Add explanatory comments to this code)”或“重命名变量以增加清晰度(Rename the variables for clarity)“可以为未来的代码读者带来奇迹。ChatGPT还可以通过生成R中完整的roxygen2语法和Python中的docstrings,从变量名称和代码逻辑中推断意义来帮助记录函数信息。一个提示可以是“为该函数生成roxygen2文档(Render roxygen2 documentation for the function)”。
附注:测试了一下这条建议,首先请chatGPT生成一段代码,然后请他为该函数生成roxygen2文档


在计算生物学研究中有效利用ChatGPT/GPT-4的10个小技巧 ...927 / 作者:Ronan62054 / 帖子ID:116450

在计算生物学研究中有效利用ChatGPT/GPT-4的10个小技巧 ...665 / 作者:Ronan62054 / 帖子ID:116450
Tip 3. Write Code Efficiently(高效编写代码)

除了改善代码注释外,ChatGPT在构建脚本方面也可以提供帮助。生物信息学环境多种多样,计算生物学家通常需要充当所有行业的专家,处理多种分析任务。ChatGPT加速了学习新工具的过程,它提供了一个交互式环境,能够对流程中的不同部分进行解析。它可以根据需求提供合理的代码块,并通过将错误信息简单地复制和粘贴到对话框中来帮助修复错误。当然,专业人士应该审查新产生的代码并防止任何语义错误(见Tip.7)。 此外,ChatGPT可以执行多种函数重构。如“提取函数以增加清晰度(Extract functions for increased clarity)”或“重新编写和优化此for循环(Re-write and optimize this for loop)”的提示可以提高代码的模块化程度,节省计算资源。在重构时,设置良好的测试以防止引入错误非常重要。虽然ChatGPT也可以帮助您设置测试(例如“为以下函数编写单元测试并帮助我实现它(Write a unit test for the following function and help me implement it)”),但重要的是检查它所生成的内容是否涵盖了应该涵盖的内容。使用ChatGPT和实现全面LLM应用程序之间的折中方案是通过插件将ChatGPT添加到集成开发环境(IDEs)中。例如,目前可以在Visual Studio Code(VSCode)中使用GPT-3.5和GPT-4,并且开源插件可用(https://github.com/gencay/vscode-chatgpt)。对于使用R和RStudio的生物信息学家,也有一些选项,例如gptstudio(https://github.com/MichelNivard/gptstudio)。
附注:在Tip2的附注中,已经展示了chatGPT编写生物信息学代码的能力,接下来,我们测试一个更复杂的案例。

在计算生物学研究中有效利用ChatGPT/GPT-4的10个小技巧 ...152 / 作者:Ronan62054 / 帖子ID:116450

在计算生物学研究中有效利用ChatGPT/GPT-4的10个小技巧 ...577 / 作者:Ronan62054 / 帖子ID:116450
当然,第二次的答案也不完全对,这次的输出形式是
transcript:Zm00001d012100_T001 gene:Zm00001d012100
我们可以继续提问

在计算生物学研究中有效利用ChatGPT/GPT-4的10个小技巧 ...834 / 作者:Ronan62054 / 帖子ID:116450
这样就圆满解决了我们的问题。
Tip 4. Use ChatGPT to Enhance Data Cleanup (使用chatGPT强化数据清洗)

除了编写脚本外,计算生物学研究还涉及数据清洗和规范化,以确保在分析之前数据是一致且无误的。数据和元数据以各种格式出现,虽然ChatGPT不能识别离群值或修复缺失数据,但它可以提供大多数常见任务的工具和代码片段,还可以与Excel合作提供指导和编写宏代码。如预期的那样,ChatGPT在处理具有自然语言条目的数据集时最为有用。如果您管理数据库或重新分析公共数据集,则可能需要处理提交者的不一致输入。虽然当前的工具不能始终将数据匹配到唯一标识符(例如数据库或本体提供的标识符 ),但它可以增加更多一致性并促进手动或自动生物筛选步骤。一个明显的应用是根据一些示例编写正则表达式,提示如“为R/python/Excel编写正则表达式,该模式将从{}中提取{}(Write me regex for R/python/Excel with a pattern that will extract {} from {})”。
ChatGPT可以极大地帮助直接规范化标签和执行类似人类的复杂自然语言清理,就像那些在开放领域的公式中发现的那样。对于小型数据集,您可以直接在ChatGPT界面中清理数据,提示如“将表格作为一个整体,向该数据集添加一个具有一致标签的新列(Act as a table. Add a new column with consistent labels to this dataset)”。对于较大的应用程序,可以使用附加组件,例如GPT for Google Sheets(https://gptforwork.com/),甚至编写直接使用API的代码(请参见提示9)。
附注:举个简单的案例,例如我从plantregmap(http://plantregmap.gao-lab.org/)复制了一组信息,并让chatGPT将之重新整理成表格。(虽说结果不是特别理想,但是这是复制的内容本身的限制(有空行),可以通过增加提示来解决)

在计算生物学研究中有效利用ChatGPT/GPT-4的10个小技巧 ...889 / 作者:Ronan62054 / 帖子ID:116450
Tip 5. Use ChatGPT to Improve Your Data Visualization(提高数据可视化能力)

数据可视化是计算生物学研究的重要组成部分,ChatGPT可以成为创建有效且信息丰富的图表的有价值工具。这个工具的一个显著特点是它精通流行的可视化库,例如ggplot2和matplotlib(例如,“创建一个具有log10 Y轴的ggplot2小提琴图”)。这种专业能力使其能够帮助用户克服语法难题,提出新的可视化技术,并增强现有图表。
GPT-4的图像解析功能已经发布,但在撰写本文时,尚未对普通用户提供此功能。因此,虽然我们可能很快就能直接获得图像反馈,但我们仍然可以利用GPT-4解析绘图代码的能力,并获得有价值的改进建议。例如,ChatGPT可以帮助您为图表选择合适的颜色,使图表对色盲人士更具可访问性,并建议改进您的可视化布局。一个实际的示例是可以通过询问ChatGPT“更改我的代码以使绘图适合色盲人士(Change my code to make the plot color-blind friendly)”来实现对可视化的有意义的改进。
需要注意的是,ChatGPT的建议应该被用作进一步探索和细化的起点,因为良好的图形设计需要仔细考虑数据、布局和样式。为了充分利用ChatGPT的能力,必须熟悉良好图形设计的原则,这些原则可以在资源中找到,例如PLOS计算生物学文章《十个简单的规则,帮助您制作更好的图表》(https://doi.org/10.1371/journal.pcbi.1003833)。总的来说,通过利用ChatGPT在生成和优化可视化方面的潜力,计算生物学家可以增强他们的研究产出,创建更易于访问的图表,并更有效地传达他们的发现。
附注:关于可视化原则可以参见我的另外两个文献学习文章
颜色编码 https://zhuanlan.zhihu.com/p/563860879
图表设计 https://zhuanlan.zhihu.com/p/567120767
Tip 6. Use ChatGPT to Improve Your Writing(提高写作水平)

ChatGPT已经使科学中的AI辅助写作更广泛地可用于科学家和研究人员。对于写作者,尤其是非英语母语者,ChatGPT最有价值的功能之一是帮助更清晰地表达思想。在计算生物学中,清晰有效的沟通尤为重要,因为专家必须能够使用数学家、生物学家和计算机科学家都能理解的语言,向具有不同科学背景的同事传达复杂的思想。ChatGPT通过提供新的思维排序方式来提高文本的清晰度,例如“给我提供以下句子的几个不同版本(Provide me some different versions of the following sentence)”。
ChatGPT还可以帮助重新格式化文本和总结思想,例如通过提示“在200字的会议摘要中概括这段文本(Summarize this text in a 200-word conference abstract)”来进行。尽管它很少能完全满足您的输出,但它可以打破最初的障。它还可以通过帮助概述文档(从论文到教学计划),通过使用自然语言创建项目列表和将项目列表转换为最终格式,来实现这一点。
除了科学写作外,ChatGPT还可用于其他几个写作任务,例如创建电子邮件、申请报告、教程和文档(请参见提示2),以及为出版物选择适当的关键词。此外,它还可以修改文本以适应不同的读者群体,包括撰写媒体发布、简化非专业人士的研究或将基于生物学家的语言适应为基于计算机科学的语言。
无论您在哪里使用ChatGPT来改进您的写作,请务必披露其使用情况(或其他语言模型)作为写作工具,以防止任何误解。关于聊天机器人作为写作工具的道德使用问题,特别是在发表手稿的情况下,正在出现负责任使用的指南。我们建议研究人员熟悉讨论并在使用ChatGPT进行可出版研究时检查出版商的指南。
附注:这一块其实是大家最认可、最早开始讨论也是讨论最多的。但是请千万注意,不要泄露个人的关键和机密信息,特别是使用非官方API时。
文中提到的负责任使用的指南指的是参考文献中的

  • Stokel-Walker C, Van Noorden R. What ChatGPT and generative AI mean for science.  Nature. 2023;614: 214–216.
  • Tools such as ChatGPT threaten transparent science; here are our ground rules for their use. Nature. 2023. p. 612.
Tip 7. Ensure You Understand - or Know How to Test - What it Generates(理解并测试语言模型生成的内容)

虽然ChatGPT可以成为计算生物学流程中编写代码和文本的强大工具,但在将其应用于复杂分析时需要小心。在某些情况下,ChatGPT可能会产生误读或添加错误信息,从而产生静默错误并导致错误结论。
对于计算编程的初学者,对不存在的函数或库的建议可能是一个重大的障碍,这强调了人工干预的必要性。因此,重要的是要学习开发人员提供的教程和与感兴趣主题相关的出版物。当使用ChatGPT来帮助处理语法时,只向您已经学习过并且能够理解或者至少能测试结果的语法寻求帮助是至关重要的。
在使用ChatGPT撰写文章或解释结果时也应谨慎。请仔细检查您阅读的内容,并确保理解和同意ChatGPT生成的所有内容。最终,您而不是OpenAI或ChatGPT将对文本负责。
附注:能运行、有看起来很像样子的输出但结果不对(特别是研究者自己都不知道结果不对)是最可怕的,可能带来很多负面影响。
Tip 8. Learn the Basics of Prompt Engineering/Design(学习提示工程)


作为一个新兴的领域,提示工程仍在讨论中,但了解如何与一个旨在实现目标结果的非确定性系统进行交互是至关重要的。良好的提示工程/设计需要精心制定提示,以有效地传达上下文、示例、角色和目标,从而生成符合您目标的响应模板。此外,设置评估指标以在可用标记的限制内向模型提供更明确的结果也非常重要。
一个良好的提示的例子是:“ChatGPT,我想了解在生物信息学中使用GATK工具的情况。您能简要介绍一下GATK,它的主要应用以及在生物信息学领域中常用的一些GATK套件中的流行工具吗?请包括这些工具的优势和限制。”这个提示很有效,因为它清楚地说明了上下文(生物信息学),指定了主题(GATK工具),概述了所需的信息(概述、应用、流行工具、优势和限制),并为AI提供了简明而集中的问题。
相比之下,一个不好的例子是“告诉我关于GATK的事情。”这个提示不太有效,因为它缺乏上下文(没有提到生物信息学),关于主题含糊不清(只提到GATK,而不是具体的GATK工具),没有指定所需的信息(没有详细说明GATK的哪些方面要讨论),并提供了一个过于广泛和开放式的问题,可能会导致不相关或不集中的回答。
通过提供更多的上下文、细节和具体的目标,良好的提示更有可能让ChatGPT生成一个相关和有信息价值的回答,而不好的提示可能会导致一个不太满意的结果。在第一次交互中,优先考虑特定性、客观性和完整性以减轻幻觉和偏差的潜在风险是至关重要的。尽管在优化过程中添加新参数是开放的,但必须小心谨慎,因为随着对话变得越来越长、微妙和更复杂,丢失上下文的风险也会增加。因此,初次交互中的特定性、客观性和完整性是非常重要的。
附注:Awesome ChatGPT Prompts https://github.com/f/awesome-chatgpt-prompts
这个库提供了各种有效的提示
Tip 9. Consider the GPT API to Extend Your Applications (使用GPT的API扩展自己的应用)

除了使用图形界面外,OpenAI的API允许对GPT进行微调以更好地适应您的工作。您可以使用API实现用户友好型应用程序的界面,使用户可以使用自然语言与您的软件进行交互,并用GPT将其转换为可执行代码。API也可以成为您自己工作流程的一部分。例如,在文本挖掘和标记化的流程中,可以使用它从文本数据库中提取实体或根据所需的停用词汇总文本。
微调涉及调整四个参数,以调节系统的创造力:temperature, top_p, frequency_penalty, and presence_penaltytemperature and top_p parameters参数控制输出中表现出的大胆程度和非确定性的程度,并且高值减少响应的内容和含义方面的重复性。frequency_penalty和presence_penalty参数调节输出中标记(单词)重复的可能性,这些参数的值越高,重复标记就越少。
请注意,即使固定参数,也无法保证可重复性,因为GPT是非确定性的。然而,微调可能会产生更清洁、不那么重复和更简洁的输出。 当输入的文本大于Web提示允许的文本长度(约为4,000个字符)时,API也可以提供帮助。可以使用像LangChain(https://github.com/hwchase17/langchain)这样的工具来解析大型文档,这些工具能够修改来自不同来源的广泛文档,以便模型访问,并以更有组织的方式促进响应。 这个领域正在迅速发展,开发人员正在迅速地将该模型与解决其限制的工具结合起来。新功能必须及时提供,以跟上进展速度。
Tip 10. Don’t Become Too Dependent on ChatGPT(不要过度依赖)

虽然ChatGPT是一个革命性的工具,但它仍处于早期开发阶段。尽管对许多研究人员来说,它可能看起来像是一种万能工具,但仍需要考虑一些问题。在必要时,记得通过手动操作来完成任务,不要过度依赖ChatGPT,要有备用计划。ChatGPT面临的主要挑战之一是极限访问需求,该平台最近也经历了关机和故障。这可能对那些严重依赖ChatGPT进行工作的研究人员尤其有问题。此外,目前没有ChatGPT的商业替代品,也没有可用的开源或非营利性终端节点。对于那些在Global South的研究者来说,过度依赖任何单一实体可能会破坏他们的科学工作流程,而价格上涨可能会成为一个限制因素。如果您是导师或团队领导者,则需要确保团队不过度依赖ChatGPT,并且他们有成功所需的支持。虽然ChatGPT是一个强大的工具,但它不应该取代心理健康专业人员或与同事合作时产生的社交互动。如果ChatGPT提供的是以前由同事提供的帮助,则重要的是要找到其他方式来培养社交互动,例如编码dojo、成对编程或社交和体育活动。在使用任何AI工具时,始终努力寻求平衡的方法,确保您的团队继续独立开发必要的技能和知识。
awesome-compbio-chatgpt

在文章最后的讨论中,该文章的作者提供了一个awesome-compbio-chatgpt项目(https://github.com/csbl-br/awesome-compbio-chatgpt)来帮助计算生物学家更好地应用ChatGPT等工具。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|UFO中文网

GMT+8, 2024-12-23 17:49

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表