用ChatGPT进行根因分析
先做个广告:如需代注册帐号或代充值Chatgpt Plus会员,请添加站长客服微信:muhuanidc
在文章别总是向ChatGPT发问,试试让它向我们发问中,我们探讨了怎么引导ChatGPT以发问的情势与我们互动。本文将这一思路利用于根因分析,采取了先进的GPT⑷模型。输入本文设计的提示后,ChatGPT会首先明确问题,然后利用5 Whys方法追溯至根本缘由,并为之提供相应的解决方案。
chatgpt中文版 http://www.shikelang.cc
根据用户在根因分析上的能力水平,ChatGPT可以提供对应的协助:
初学者:ChatGPT可以充当教练,指点用户完成全部分析流程,帮助他们全面掌握问题。
熟练者:ChatGPT可以充当助手,提出更多有价值的问题,更深层次的发掘根本缘由。
精通者:ChatGPT可提供初步分析结果,让用户在此基础上继续优化分析方法和提高效力。
这篇文章建立在一个条件上:ChatGPT不但能给出优良答案,还可以提出有价值的问题。若此条件成立,则利用ChatGPT进行根因分析将为我们带来更多的思考和价值。
根因分析(Root Cause Analysis, RCA)是一种结构化的问题解决方法,旨在深入发掘问题的根本缘由并加以解决,而非仅关注问题的表面现象。它总结了一系列方法论,这些方法论之间的主要区分在于寻觅根本缘由的技能。
根因分析的主要方法有以下几种,它们分别具有区别的利用场景和优点:
5 Whys 方法:是一种通过反复问“为何”来逐渐深入问题根本缘由的方法。这个方法简单易用,适用于快速定位问题的根本缘由,特别在问题相对简单和直接的情况下效果更佳。
鱼骨图 (Ishikawa Diagram):也被称为因果图,是一种通过头脑风暴从人员、机器、原料、方法、环境和丈量(6M)这六个方面分析根本缘由的方法。鱼骨图有助于跨部门的合作与沟通,通过梳理各个方面的因素,有助于全面深入地分析问题。
失效模式与影响分析(FMEA):这是一种系统性的方法,用于评估潜伏失效模式及其对系统性能的影响。FMEA通过评估失效的严重性、产生几率和检测能力,来肯定失效模式的优先级。FMEA广泛利用于产品设计、制程改进和可靠性工程领域,有助于下降风险和提高产品质量。
故障树分析(FTA):这是一种系统性的方法,用于分析复杂系统中潜伏的故障缘由。FTA通过构建故障树来表示故障的逻辑关系,并辨认出可能致使系统失效的关键事件。FTA主要利用于安全关键领域,如核工业、航空、化工等行业,通过辨认和管理关键风险因素,提高系统的安全性能。
本文使用5 Whys方法来设计ChatGPT的提示。
根因分析可以帮助我们发现问题的根本缘由,找到持久的解决方案,以避免问题的再次产生并减少浪费。例如,在处理内存溢出问题时,不能仅靠增加内存来解决,一定要找到内存增长的根本缘由,才能完全解决问题。
根因分析有助于我们找到真实的因果关系。例如,一个孩子在玩积木时遇到困难,突然说“我不玩了”,并将积木扔在一边。如果不进行根因分析,我们可能会简单地认为孩子不喜欢这个积木。但通过根因分析,我们发现孩子实际上是由于得不到帮助而放弃了。
根因分析可以帮助我们进行更好地决策。例如,如果我们想让客户采取延续部署,首先要解决一个问题:“我没法说服客户采取延续部署”。在没有进行根因分析的情况下,我们可能会一厢甘心地从自己的角度来讲服客户。通过根因分析,我们可以了解客户会不会合适延续部署,和延续部署能为客户带来哪些好处,从而决定采取哪一种策略来讲服客户。
根因分析通常包括以下步骤:
定义问题:明确要解决的问题,确保问题的描写清晰、准确。
搜集数据:搜集与问题相关的所有信息,包括事件产生的时间、地点、人员、进程等。
分析问题:应用根因分析方法,深入发掘问题的根本缘由。这可能触及多个缘由,需要辨别主次、关联性。
肯定解决方案:基于分析结果,制定针对性的解决方案,确保解决方案能够消除问题的根本缘由。
实行改进:履行解决方案,监控改进效果,并根据需要进行调剂。
辨认根本缘由:根本缘由没有统一的判断标准,很大程度上依赖参与人员的经验和主观判断。例如,对发热,普通人认为根本缘由多是感冒,医生则认为根本缘由多是细菌感染,甲流,新冠等。
辨认正确的因果关系:因果关系可能出现毛病,需要进行反向验证以肯定正确的因果关系。例如:“为何你在结婚记念日没送老婆礼物?由于她没有要礼物”。进行反向验证后这个因果关系多是不成立的,“由于你老婆没有要礼物,所以你不用在结婚记念日送礼物”。如果依照这个因果关系分析下去,解决方案多是“老婆要记得向老公要礼物”,这可能会引发一个悲剧。
聚焦于流程和能力,而不是人:当存在人为毛病时,容易将问题指向追究责任,而不是聚焦在解决问题上,致使根因分析的效果遭到影响。例如:“配置修改毛病致使线上事故”,我们应当聚焦于如何通过修改流程,提高人员能力等来避免问题再次产生,而不是追究责任,要求大家修改配置时加倍仔细检查。
使用ChatGPT进行根因分析可以更好的应对上述挑战:
便于辨认根本缘由:相较于普通根因分析,它既可以在组织大家讨论之前快速的进行屡次预演,使用Self-Consistency技能不断加深对问题的理解,辨认更深层次的缘由。也能够在讨论以后对讨论结果进行屡次复盘摹拟,验证因果关系,发现新的根本缘由。
便于验证因果关系:它可以在分析完成后帮我们整理逻辑树,便于我们对因果关系进行验证。
便于将分析进程聚焦在流程和能力:我们可以随时对它的发问进行束缚,以控制其发问的方向。
这里使用了Role Prompting来让ChatGPT作为一个根因分析专家进行思考。
Asarootcauseanalysisexpert,yourtaskistofollowthefollowingactivitydiagramtohelpmedefinetheproblem,collectdata,findtherootcause,andsuggestactions.
这里使用Instruction Prompting定义了ChatGPT和用户的交互流程。为了简洁,我们使用的是 PlantUML,它是可以被ChatGPT理解的。可以看到,在流程图中我们屡次使用了下面的循环,以便让ChatGPT主动进行发问,这样我们就不需要主动问“你还有更多问题吗?”。
为了让ChatGPT更好的理解上述指令,我们使用Few Shot Prompting和Chain of Thought Prompting为ChatGPT提供了一个和用户进行交互的示例。
为了支持多种语言,我们让ChatGPT在检测到非英文时,用对应的语言与用户进行交互。
Ifyouidentifythattheproblemiscomposedinanon-Englishlanguage,kindlyutilizethesamelanguageforoursubsequentcommunication.
为了确认ChatGPT理解了指令,我们可让它输出它所理解的交互流程。
Ifyouunderstandandagreewiththeaboveinstructions,describeyourunderstandingstepbystep,thenIwillprovideaproblemforyoutoanalyze.
GPT⑶.5没法完全依照我们的指令和示例进行根因分析。它难以延续追问和确认分析结果。我们可以将根因分析分解为两个独立的部份:问题定义和根因分析。在问题定义清楚后,再用优化后的问题进行根因分析。我已为这两个任务在Poe上创建了机器人ProblemDefiner和5WhysQuestioner
我们要分析的问题是:我们在解决冲突时误删了一行关键代码。
这是ChatGPT在英文语境下对全部分析进程的总结,详细信息请查看解决误删代码问题的英文对话记录这是ChatGPT在中文语境下对全部分析进程的总结,详细信息请查看解决误删代码问题的中文对话记录。
我们要分析的问题是:我们的分支管理策略没法从GitHub Flow切换到Trunk-Based Development。
这是ChatGPT在英文语境下对全部分析进程的总结,详细信息请查看解决没法使用Trunk-Based Development问题的英文对话记录这是ChatGPT在中文语境下对全部分析进程的总结,详细信息请查看解决误删代码问题的中文对话记录。
ChatGPT的发问有时缺少深度。虽然ChatGPT可以屡次问出“为何?”,但结束条件完全依赖于ChatGPT自己对根本缘由的理解。有的时候它能够问出更深层次的问题,例如在误删代码的问题中问出“为何没有自动化测试?”,有的时候则没法问出深层次的问题,例如没有继续追问“为何Pull Request的代码改动量很大?”。针对这个问题我们既可以在ChatGPT等待我们确认时给予反馈,也能够就同一个问题进行屡次分析,综合斟酌ChatGPT的发问。
英文语境比中文语境更有可能发现深层次的问题,一个可视察的指标就是ChatGPT发问的次数会增多。
ChatGPT的逻辑性更强,但发散度不够,这就需要我们在回答问题时提供尽量多的信息,以便ChatGPT能够提出更多的问题,从而引发我们更深层次的思考。
整体来讲ChatGPT在帮助我们进行深度思考和分析方面是可以发挥很大作用的,我们需要在提升回答质量,优化交互流程,优化根本缘由辨认原则等方面做更多的尝试,以便ChatGPT能够稳定地提出更有深度的问题。