除了CatGPT 之外,还有Github Copilot、DeepTabnine 之类的工具也是基于大语言模型,能实际生成代码的。这些工具宣传拿出来的数据也很厉害啊,比如在 GitHub Copilot 作为市场宣传素材的研究中,Copilot 能够独立完成 46%的代码,对于标准化内容,Copilot 能够以比⼈⼯快 58%的速度⽣成代码。(研究名称:Quantifying GitHub Copilot’s Impact on Developer Productivity and Happiness)
但反面问题也挺多的,我能找到一些研究成果:
有程序员朋友表示“每天编程的时间本来就不长,主要时间花在沟通上,其实没有强到能让我提前下班”
比较了 Copilot 和传统自动完成(即流⾏的 Intellisense 插件)的用户体验,结果发现参与者在使用 Copilot 时完成任务失败的次数比使用 Intellisense 插件时更多,但任务完成时间没有显着影响。(研究名称:Usability and design studies of AI-assisted programming)
发现该插件对任务完成时间或程序正确性没有显著影响;此外,他们发现参与者在他们的实验中编写的⼤多数(60%)提示词(Prompt)都没有⾜够详细地说明 (*研究名称:Towards natural language interfaces for programming: A user study comparing programming with and without an extension.*)
⼀项 2021 年的早期研究中,研究者检查了 GitHub Copilot 中的代码建议有不安全的代码(研究名称:Security risks of AI code generation: A study of GitHub Copilot)
基本上准确性、安全性问题,也是各家企业使用这类工具的核心疑虑,比如Salesforce 调研IT 的负责人就发现超过60%的企业IT 负责人都认为有这类的问题(来源:Generative AI research: What business leaders need to know, Salesforce News)
国内各科技公司也都有措施,比如美团、阿里、字节都是禁止使用,腾讯和蚂蚁是不建议使用,华为是高保密项目禁用+其他项目不建议使用。
所以想要请教下大家,实际使用下来效果怎么样?利弊哪个更大?
作为bing Copilot的架构设计者,我们设计的Copilot继承现有的Microsoft 365安全、隐私、身份和合规性策略,更多是为了企业智能化办公而设计,对于报表制作是有优越性的,也很好的结合到我们现有商用产品上,如果你要一味用gpt代替编写代码,会遇到很多不幸的事,比如:gpt无法从头到尾提供帮助,仅仅利用我们自由搜索引擎去动态合成answer,逻辑性也没有做的很棒,对于初级代码来说是完成可以胜任,开会经常提到产品理念就是让小白也能轻松玩转copilot,完成各类代码基础框架设计,我推荐你把它当成一款实际代码编写中的智能提示器,仅仅为了辅助你快速搜索相关的框架和常用语法,虽然有时候也能提示一些错误并给出自己的意见,但终究不及原生态idea自有的,你说腾讯阿里都禁用是错误的观点,我认识的各大顶尖公司并不是不用,不对普通权限用户开放,至少都要P10研究员才能机会。
你要问利大于弊,我觉得它设计出来相辅相成,你觉得它好用一定有人觉得它很bad,破坏原有的技术平衡。取决自己的主观而已。
GPT这类的工具主要是省去你一个一个找问题和答案这个时间。
而且他的正确性只有70-80%左右,主要是用来解决小问题,大的问题还是别指望他了。
个人对于GPT的使用还是将他看做搜索引擎,即通过它得到了答案仍然会验证后再去使用,比如之前CSDN问答区出现过很多用GPT无脑刷问答的人,他们根本不对答案的正确性进行验证,或者说他们也不知道是否正确,就直接照搬,最终导致问答区形成一种不良的风气,有种劣币驱逐良币的那种感觉。
在实际生产项目中,开发上基本是没有使用过GPT的,最多在不涉及业务隐私的情况下进行下简单的需求归纳,提示话术优化等。
目前我们公司部分部门也有在使用大模型,不过还是自己利用开源GPT部署并进行模型训练,使用方向也不是开发,在我们这数据安全永远是占第一位的。
效率还是有提升的,特别是做代码优化和性能优化的时候,可以直接让G P T做,但是代码涉密或者代码是公司的商业核心代码,不建议使用GPT。
我用GPT写代码已经一两个月了,对此感受很深,首先我是一名后端,前端这一块基本上都是GPT 代劳的,确实速度惊人,GPT 给我写的前端代码基本上只需要我修改一小部分就能解决实际问题,对于我这种不擅长搞前端的全栈来说确实是一强大的技术帮手,所以前端必挂,后端也是时间问题,因为GPT目前这个写后端代码的能力也是非常强,独立做个小一点的游戏程序确实不在话下,但是复杂一点的业务逻辑现在的gpt 还不够强,不足以解决更复杂的业务代码,但是随着gpt 的迭代升级,估计后端也会挂,我的感受就这么多,整体而已,gpt 无疑非常强大,但是写的代码也是需要专业人士来稍微修改才能真正投入使用,但是确实能大幅提高写代码的效率,不是提高一星半点,而且给你加成几倍甚至几十倍的速度,未来程序员的路危矣
当遇到一个代码不怎么知道写,就可以通过 ChatGPT 生成一下,可能生成的不是完全符合我们的需求,但是起码给了一份参考代码,基于这个代码之上进行修改,从这一点来说,是有提高开发效率的。
以下仅代表个人看法哈!
首先,ChatGPT的出现一定程度上说明了互联网时代的进步,实际使用下来的话其实也还行,但目前阶段应该非在职人员使用的更多,而在职人员即使使用也不会直接将询问结果直接用于岗位任务需求上,因为不确定其正确性和逻辑性以及安全性如果直接使用可能导致整个业务出现Bug等。
而现在感觉主要的受众群体是大学生,因为大学的许多作业都与自己专业没有太大关系且完成起来费时费力,而且说实话就算完成的很好对于自己以后的专业对口其实也没有非常大的加成,绝大部分大学生完成的初衷不就是为了自己能不挂科来顺利毕业嘛(部分想要获得奖学金的除外),而gpt的出现可能就能比较好的解决这些问题。当然,很多事物都不是绝对的,都是相对的,所以没有说绝对的利或者说弊!
以上见解均为个人拙见,如有错误,欢迎指出!
**对于效率问题,从CHAT_GPT3.5到4.0代码生成有了显著的提升,因为其装配了更为完善的模型,可以更快地生成代码**
**(具体请参考文献:https://zhuanlan.zhihu.com/p/611952818)**
**@对于安全问题,我觉得并不高,因为一开始的语言模型就是用用户聊天内容来训练的,所以机密内容不要泄露@**
**(参考文献:https://baijiahao.baidu.com/s?id=1765573004587103518&wfr=spider&for=pc)
```
```**
为啥不用呢,大部分情况下是可以提高效率的,chaptgpt出来的代码我们用之前肯定要验证病修改下,至于机密这个就不好说了,我想大概率是没有问题的
经常会使用GPT辅助,有的功能都可以直接调用库函数但不知道语法时,问一下GPT比去网上检索要快多了。
作为一个工具来使用的话,是可以给予我们大量的思路和方法做参考的。
AIGC 办公自动化案例实战
http://t.csdn.cn/zBytu
对于一些非个性化代码的生成非常快,比如我们常用的工具类函数等。
安全问题肯定存在
咋说呢
使用基于大语言模型的工具确实可以提高开发效率,但是也存在一些潜在的问题和风险的昂。
首先,这些工具可能会出现准确性问题,特别是在处理复杂的业务逻辑或数据结构时。这可能会导致生成的代码存在潜在的错误或安全漏洞。
其次,使用这些工具可能会降低开发人员对代码的理解和掌控能力,因为他们可能变得过于依赖工具而忽略了代码本身的细节和逻辑。
另外,使用这些工具可能会消耗大量计算资源,尤其是对于较大的代码库或复杂的项目,这可能会导致性能问题或延迟。
综上所述,使用这些工具需要谨慎对待,应该在保证准确性和安全性的前提下合理使用,并尽可能让开发人员保持对代码的理解和掌控能力。
采用chatgpt生成代码,只是给大家提供了一个思路,具体的实现逻辑,还是需要人为确认一下,毕竟完全依赖AI写的代码并不一定可以满足大家的使用需要。因为你提出的问题存在描述不准确的情况。
有各自的特点和适用范围,没有绝对的好坏之分
ChatGPT生成的代吗,逻辑上一般没有问题,如果只是应用,效率肯定有提升,至于安全性,还是要看代码的质量,一般问题大不
ChatGPT或类似的生成式模型在许多领域都得到了广泛的应用,但在使用这些模型时仍然需要考虑一些效率和安全性问题。
1、效率方面的提升:
生成式模型可以用于自动化文本生成、答案生成、创意创作等任务,从而在某些情况下提高了效率。它们可以快速生成大量文本,节省人力资源和时间。
在客户服务领域,这些模型可以用于回答常见问题,从而减轻客服人员的负担。
2、安全性问题:
在安全性方面,使用生成式模型需要考虑内容的准确性和道德性。模型可能会生成虚假信息、误导性内容或不当言论,因此需要人工审核和监控。
模型可能会生成有害或冒犯性的内容,特别是如果模型在训练数据中暴露于这些内容。控制生成内容的质量是确保安全性的重要一环。
为了解决这些问题,一些方法和措施已经被采取:
(1)预训练和微调:模型在大规模数据上进行预训练,然后在特定任务上进行微调,以提高模型的性能和适应性。
(2)内容审核和过滤:在实际应用中,可以通过过滤和审核机制来确保生成内容的准确性和适当性。这可能需要人工干预来修正模型生成的内容。
(3)用户反馈机制:用户可以向开发者提供反馈,帮助改善模型的表现和生成内容的质量。
(4)教育模型的道德和价值观:模型的训练数据和指导性信息可以用来影响其生成内容的道德和价值取向。
(5)限制生成的内容:可以通过设置特定的约束或条件来引导模型生成特定类型的内容,从而减少不适当或有害的生成。
需要注意的是,虽然生成式模型在提高效率和创造性方面具有潜力,但它们并不是完全自主的,仍然需要人类监督和干预,以确保生成的内容是准确、安全和合适的。在实际应用中,平衡效率和安全性是非常重要的考虑因素。
因人而异,GPT准确不准确取决于你关键词给的对不对还有这个问题是不是被别人解决过,从安全的角度去考虑的话,只要不是涉及技术前沿核心的问题,一般来说问题不大,每天提取的数据那么多哪有功夫去看你的代码,想太多。
作用肯定是有的啊。尤其是一些比较基础的问题,一般我都会使用。比如写个排序算法等。这样不就不用去造轮子了,当然这个去搜索引擎汇总搜索也可以找到,但是使用gpt可以省去查找的时间。而且有的时候,对于一段代码没有任何思路的情况下,或者你根本不知道用什么词语去搜索解决方案的情况下,使用gpt可以给我提供一些思路。
看个人
好用,但是不安全,因为你和gpt沟通的每一句话,都是信息泄露
ChatGPT和其他基于大型语言模型的工具,如GitHub Copilot和DeepTabnine,确实在代码生成方面显示出令人印象深刻的能力。这些工具可以提供代码片段、函数和类的建议,从而提高开发人员的效率。根据一些研究,这些工具可以帮助开发人员更快地生成代码,但在任务完成失败次数方面可能会有一些挑战。
然而,这些工具也存在一些问题和限制。一些研究表明,这些工具在安全性方面可能存在风险,可能会生成不安全的代码。此外,有些研究还指出,这些工具生成的提示词可能不够详细,需要用户进行进一步的编辑和调整。
对于具体的使用情况和效果,可能因人而异。一些开发人员可能会发现这些工具对他们的工作非常有帮助,提高了他们的效率。然而,其他人可能会认为这些工具并不能完全取代人工编码,或者可能会对代码质量和安全性产生疑虑。
在实际使用这些工具之前,建议你评估其适用性,并根据你的具体需求和风险偏好做出决策。如果你担心安全性问题,可以考虑采取额外的安全措施,如代码审查和测试,以确保生成的代码符合预期并且安全可靠。
效率可以提升,但是生成的代码还是需要人工核对的
与gpt的聊天内容会被记录
参考gpt:
结合自己分析给你如下建议:
首先,我想说,大语言模型编程工具是一种非常前沿和创新的技术,它可以利用语言模型的强大能力,为开发者提供智能的代码生成和辅助功能。这些工具有很多潜在的优势,比如:
提高开发效率和质量:这些工具可以根据用户的输入或需求,自动或半自动地生成合适的代码,从而节省开发时间,减少人为错误,提高代码质量和可读性。
降低开发门槛和成本:这些工具可以让没有编程经验或不熟悉某种语言或框架的用户,也能够轻松地创建或修改代码,从而降低开发门槛和成本,扩大编程的普及和应用范围。
激发开发创意和灵感:这些工具可以根据用户的输入或需求,生成多种不同的代码候选或建议,从而激发开发者的创意和灵感,帮助他们探索更多的可能性和解决方案。
然而,这些工具也存在一些明显的缺点和挑战,比如:
缺乏准确性和安全性:这些工具基于语言模型生成的代码,并不一定是正确、合理、高效、安全的。它们可能存在逻辑错误、语法错误、性能问题、安全漏洞等。这些问题可能会导致程序运行失败、数据丢失、系统崩溃、信息泄露等严重后果。
缺乏可解释性和可控性:这些工具基于语言模型生成的代码,并不一定是清晰、简洁、规范、一致的。它们可能存在冗余、复杂、混乱、随机等特点。这些特点可能会导致程序难以理解、维护、修改、测试等问题。
缺乏责任和道德:这些工具基于语言模型生成的代码,并不一定是符合用户意图、需求、目标的。它们可能存在偏差、误导、欺骗、伤害等风险。这些风险可能会导致用户失去信任、满意度、利益等问题。
因此,我认为大语言模型编程工具还有很多需要改进和完善的地方,不能完全取代人类开发者的角色和作用。我认为未来的出路可能包括以下几个方面:
提高语言模型的质量和能力:通过增加模型参数规模、数据集规模、训练方法等方式,提高语言模型在编程领域的专业性、准确性、安全性等指标。
增加用户反馈和交互:通过增加用户对代码生成过程和结果的反馈和交互机制,提高用户对代码质量和安全性的控制和评估能力。
引入规范和监督:通过引入编程领域的规范和标准,以及相关的监督和审核机制,提高代码生成过程和结果的可解释性和可控性。
增强责任和道德:通过增强语言模型对用户意图、需求、目标的理解和对齐,以及相关的责任和道德原则,提高代码生成过程和结果的符合性和合理性。
总之,我认为大语言模型编程工具是一种有利有弊的技术,它可以为开发者带来很多便利和好处,也可以带来很多风险和挑战。我建议开发者在使用这些工具时,要保持谨慎和理性的态度,充分了解它们的优缺点和局限性,合理地利用它们的优势,有效地避免它们的劣势,从而实现更好的编程效果和体验
会当做搜索引擎来用,查找一些示例代码。不会在项目里面直接使用,怕泄露代码。其实用了也提升不了多少效率,gpt代码存在胡编乱造,找bug的时间远多于写代码的时间
ChatGPT:作为一个 AI 语言模型,我可以分享一些关于代码生成工具(如 Copilot、DeepTabnine)的一般观点,但我并没有个人体验。不过我可以为你提供一些常见的观点和考虑因素。
代码生成工具的出现确实在一定程度上提高了代码编写的效率,特别是在处理一些标准化或常见的任务时。它们可以快速生成代码片段,节省开发人员的时间。然而,代码生成工具并不是完美的,仍然存在一些潜在的问题和限制。
一些常见的观点和考虑因素包括:
效率提升: 在一些特定情况下,使用代码生成工具可以显著提高开发效率。尤其是对于一些常见的模式或代码片段,工具可以迅速生成,减少开发人员的机械性劳动。
错误和质量问题: 代码生成工具可能会生成不正确的代码,甚至可能存在安全漏洞。因此,开发人员需要仔细审查生成的代码,确保其正确性和安全性。
上下文理解不足: 有时候代码生成工具可能无法准确理解开发人员的意图,导致生成的代码不符合预期。开发人员可能需要手动调整生成的代码,以适应特定的上下文。
学习成本: 使用新的工具可能需要一些时间来学习和适应。开发人员需要熟悉工具的工作方式和用法。
创造性和灵活性: 代码编写不仅仅是机械性的任务,还涉及到创造性和灵活性。有时候开发人员可能需要根据特定需求进行定制和创造性的编码,代码生成工具可能限制了这方面的发挥。
安全和隐私问题: 生成的代码可能包含敏感信息,开发人员需要确保代码中不会泄露敏感数据。此外,一些工具可能会存在潜在的安全漏洞。
综上所述,代码生成工具可以在某些情况下提高效率,但也存在一些潜在的问题和挑战。开发人员需要根据具体的项目需求和情况来决定是否使用这类工具,同时也需要在使用过程中保持谨慎和审慎。最终,工具只是辅助开发的手段,开发人员的判断和经验仍然是至关重要的。
ChatGPT:生成代码的优缺点与安全风险
“ChatGPT 生成的代码不安全”
随着人工智能技术的迅速发展,ChatGPT作为一种先进的的大语言模型,已经成为了许多人和企业的重要组成部分。然而,尽管ChatGPT具有许多优点,但是它生成的代码却存在不安全的问题,这给使用ChatGPT的人和企业带来了潜在的风险。
首先,ChatGPT是一个黑盒模型,这意味着它生成的代码是基于大量数据和算法自动生成的,而没有人进行手动编码或审查。这种自动生成的方式可能会导致生成的代码存在漏洞或者恶意代码,从而给使用该代码的人和企业带来安全威胁。
其次,ChatGPT的生成代码能力是有限的制的。虽然它可以根据给定的数据和算法生成代码,但是它并不具备人类编码人员的专业知识和经验。这意味着ChatGPT生成的代码可能不够优化和高效,甚至可能是错误的。如果使用ChatGPT生成的错误代码在实际应用中得以运行,那么可能会带来不可预知的安全风险。
另外,由于ChatGPT生成的代码缺乏创造性,它可能存在版权问题。在许多情况下,ChatGPT生成的代码与现有代码相似,这可能导致侵犯他人的版权和知识产权。这个问题对于企业和个人都可能造成巨大的损失和风险。
最后,由于ChatGPT生成的代码缺乏透明度,所以难以进行安全性和可靠性测试。没有透明度的,我们无法了解ChatGPT生成代码的内部逻辑和原理,这使得我们难以发现和修复可能存在的的问题。这使得使用ChatGPT生成的代码存在更大的安全风险和不可靠性。
综上所述,虽然ChatGPT在很多方面表现出色,但是生成的代码却存在不安全的问题。这些问题可能导致使用ChatGPT的人和企业面临严重的安全威胁和风险。因此,我们应该谨慎地使用ChatGPT生成的代码,并始终保持安全和风险意识。
对于企业而言,使用ChatGPT生成的代码可能会暴露其机密信息,造成商业损失和竞争劣势。因此,企业在使用ChatGPT生成的代码之前,应该进行全面的安全审查和测试,以确保代码的安全性和可靠性。
对于个人用户而言,使用ChatGPT生成的代码可能会暴露其个人信息和隐私,从而造成个人损失和风险。因此,个人用户在使用ChatGPT生成的代码之前,应该了解其潜在的安全风险,并采取相应的安全措施。
总之,尽管ChatGPT在许多方面都具有优势,但是生成的代码却存在不安全的问题。使用ChatGPT生成的代码应该谨慎,并且应该始终保持安全和风险意识。企业和个人用户在使用ChatGPT生成的代码之前,应该进行全面的安全审查和测试,以确保代码的安全性和可靠性。
你提到的 GitHub Copilot、DeepTabnine 等工具确实是基于大型语言模型的自动生成代码的工具,它们在一些情况下能够帮助开发者更快地生成代码,提高开发效率。然而,像所有技术一样,这些工具也有它们的优点和限制性因素,实际效果可能因情况而异。
优点:
限制性因素:
总的来说,这些工具在适当的情况下可以提高开发效率,但也需要开发者在使用时保持警惕,确保生成的代码符合质量和安全标准。在实际使用中,你可能需要权衡这些优点和限制性因素,根据具体情况决定是否使用这些工具以及如何使用。同时,由于技术和工具在不断发展,可能会出现新的改进和问题,因此对于工具的选择和使用,要保持持续的关注和评估。