你在ChatGPT上泄露过秘密吗?一位教授警告说,要小心泄露专利的细节
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
无论是出于轻微的好奇,还是出于开始使用人工智能(AI)的商业需要,作为独特销售主张的一部分,现在许多人在工作或家中使用ChatGPT。
推出时,用户友好的AI大语言模型在短短60天内从零到1亿用户。此后,微软向创业公司Open AI投资了100亿美元,并将GPT4嵌入必应。带有GPT4的专用必应应用现已在App Store和Play Store上推出。
OpenAI ChatGPT的部分用户体验是,人工智能工具可以从特定的提示生成真正有用的文本,从而有可能节省机器学习在日常工作中的时间――例如,在编写电子邮件时。
你甚至可以使用广告中提供的职位描述,让ChatGPT来写“完美”的求职信。或者,人力资源部的工作人员可以从业务部门提供的粗糙的简介中为linkedIn生成“完美”的招聘广告。
首先,让我们看一下招聘广告的例子。
如果这个职位是一个经常做广告的职位,那么通过与其他数亿个ChatGPT用户共享职位描述的形式,几乎没有什么损失。
但是,如果职位描述中包含的信息可能被竞争对手用来识别你的业务,那么风险就会高得多(特别是如果招聘是你工作场所内部业务战略的重要组成部分)。
三星(Samsung)等公司最近就被员工无意中通过ChatGPT泄露材料的行为所刺痛,因此在工作中使用ChatGPT之前,仔细考虑风险是很重要的。
如果工作人员已经开始使用ChatGPT作为代码开发过程的一部分,那么这个问题尤其具有挑战性。
这样做真的很有吸引力。ChatGPT的一个重要方面是它在软件开发项目中为程序员减少编码时间的自动化用例。这可以在设计层面完成(“我如何使用Python中的自然语言处理来排序求职信?”)或在代码层面完成(“我如何在scikit-learn中使用高斯朴素贝叶斯?”)。
一个非常有用的特性是能够将代码粘贴到ChatGPT中,以提示ChatGPT对其进行改进。这就像“下面的代码有什么问题?”ChatGPT甚至可以识别您正在使用的编码语言。
问题是,ChatGPT可以将你使用过的材料作为提示,通过训练算法来改进它的答案。这正是发生在三星开发人员身上的事情,他们使用ChatGPT来改进代码和记录会议记录。
那些被三星视为最敏感的材料也可以被三星以外的开发者使用,因为三星的工程师使用ChatGPT来减少他们的开发时间。
GPT4是继GPT3之后GPT系列的最新产品,具有令人难以置信的精确语音转文本功能。但是,文本成为训练集的一部分以改进生成式人工智能的风险很高。
这是一种记录工作会议的简单方法,甚至更好的是,在会议结束前生成会议记录。然而,在会议结束之前,转录也将成为GPT4生态系统的一部分。意大利出于隐私考虑决定“禁止”ChatGPT,这已经成为新闻头条。
从本质上讲,意大利当局提出的论点是,ChatGPT收集的数据违反了欧洲通用数据保护条例。然而,与其他欧洲国家一样,意大利似乎有可能在4月底之前放弃这种做法。唯一需要更改的是对用户进行年龄验证(超过18岁)检查。
生成式人工智能使用数十亿个数据点,以便能够在预测的基础上创建文本。它会根据用户反馈进行改进。雇佣有好奇心的人的企业面临的挑战是,这些反馈可能包括公司的机密材料。
解决办法在理论上很简单,但在实践中却困难得多。如果材料通常不会在业务之外披露,则不应将其用作ChatGPT或Bing的提示。
这条规则的实际困难在于,搜索引擎,包括b谷歌及其名为Bard的生成式人工智能,都是必不可少的商业工具。问题可能是决定搜索引擎是提供信息还是提供答案。
不确定你应该(或不应该)与我们的朋友ChatGPT分享什么?试试这个简单的测试:
ChatGPT会话的输出是您的业务通常视为机密的文档吗?那么它不应该在ChatGPT上共享。
如果你确实用ChatGPT写了求职信或简历,用于筛选求职者的人工智能系统也可以通过GPTZero来运行你的求职信。这个来自Open AI的在线工具可以通过检查文本的“困惑度”(衡量文本的随机性)和“突发性”(衡量困惑度的变化)来检测文本是否由生成式人工智能编写。
当然,ChatGPT文本输出的改进对这些工具提出了挑战。那么,谁能说随着人工智能技术的发展,这种情况在未来会发生怎样的变化呢?引用:你在ChatGPT上泄露过秘密吗?一位教授(2023,4月18日)警告说,要小心泄露专有细节,该文档受版权保护。除为私人学习或研究目的而进行的任何公平交易外,未经书面许可,不得转载任何部分。内容仅供参考之用。
点击分享到ChatGPT提问的各种奇葩问题 ChatGPT提问提示发生错误
chegg提问,提问的英文怎么说,提问的单词是什么,提问的英语表达不得不说西瓜书中这个图有一定的误导性,有很多重要信息没有在图中说明,也没有在上下文中进行解释,可能是考虑到篇幅的原因吧,也可能是另外的原因,周老师在讲交叉验证这块时仅用了少量的篇幅,于是给我留下了诸多的疑问。
于是我查阅了一些相关的一些资料,对K折交叉验证进行了重新审视。
-
我: 你好我对k折交叉验证有个疑惑,数据集分成k份后拿出一份来当做验证集,k-1份用作训练,但是在之后的训练中和验证过程中,验证集是之前已经出现在训练集里的一部分呀? 这样不合理呀,还是说每次训练 模型都是从头开始训练一个新模型而不是在上一轮的基础上训练。
-
ChatGPT: 你的疑惑很正常。在k折交叉验证中,确实存在一部分验证集数据可能在之前的训练数据中出现过。这是因为,k折交叉验证是一种重复利用数据集的方法,为了充分利用数据集,每次训练和验证都会使用不同的数据集组合。 但是,你提到的问题也是存在的,即在每次交叉验证的过程中,验证集的一部分数据可能在训练集中出现过,这可能导致模型在验证集上表现得过于乐观。为了解决这个问题,通常在进行k折交叉验证时,可以采用“分层抽样”策略,即确保每个折中的训练集和验证集都包含来自所有类别的样本。这样可以尽可能减少因验证集与训练集数据的重叠而导致的偏差。 此外,你也提到了每次训练模型是从头开始训练还是在上一轮的基础上训练的问题。一般来说,每次训练都是从头开始训练一个新的模型,这是为了确保每次训练和验证的过程都是独立的,不会受到之前的训练影响。如果在上一轮的基础上训练,可能会导致模型在验证集上表现过于乐观,从而导致模型泛化性能的下降。
-
我: 你说的有问题呀,如果每一轮模型都从头训练(即参数重新初始化),那么每一轮中验证集对于模型来说就是全新的呀,它之前没见过呀。
-
ChatGPT 非常感谢你的指正,你说的是正确的。我在回答中有一些不太清楚的地方,我会在这里做一些更正和澄清。 在k折交叉验证中,每一轮训练和验证都是从头开始的,这意味着在每一轮中,模型的参数都是重新初始化的,与之前的训练没有关系。而且,在每一轮中,验证集确实是全新的,因为验证集中的样本在之前的训练中没有被用于训练过。 当我说“验证集的一部分数据可能在训练集中出现过”时,我的意思是在整个数据集中的某些样本可能被分到不同的折中,有可能在某些训练集中出现过,也有可能在某些验证集中出现过,这是由于k折交叉验证的数据划分方式决定的。但是,在每一轮训练和验证中,验证集中的样本都是与训练集中的样本不同的,模型没有看过它们。 因此,我向你道歉并纠正我的错误。感谢你指出我的问题,希望我的更正能够解决你的疑惑。
-
我 请给出我一个10择交叉验证的示例代码
-
ChatGPT 当进行10折交叉验证时,一般的步骤如下:
1.将数据集分为10个不同的子集。 2.对于每个子集,将其作为验证集,其余9个子集作为训练集。 3.在训练集上训练模型,并在验证集上进行评估。 4.记录每次训练的评估结果。 5.重复步骤2-4,直到每个子集都被用作了一次验证集。 对10次评估结果求平均值,得到最终的评估结果。 以下是一个简单的示例代码,以对分类模型进行10折交叉验证为例:
-
我: 在这个代码中 我没有看到 在每轮训练后将模型重新初始化呀?难道它是在上一轮的基础上接着训练的吗?这就又不对了呀?
-
GPT: 非常抱歉,我的前一个回答有误。在每一轮交叉验证中,我们应该重新初始化模型,而不是在上一轮的基础上接着训练。
以下是修改后的代码示例,可以正确地进行10折交叉验证:
-
我: 我再明确一遍,请你回答我,k折交叉验证到底是在上一轮的基础上接着训练还是重新初始化模型从头开始训练?
-
GPT: 非常抱歉,我之前的回答有些混淆,给您带来了困惑。在k折交叉验证中,我们应该在每一轮交叉验证开始时重新初始化模型,而不是在上一轮的基础上接着训练。这样可以确保每一轮训练都是从头开始的,避免数据泄露和其他问题,保证交叉验证的有效性。
在每一轮交叉验证中,我们应该按照如下流程操作:
1.将数据集分成训练集和验证集,其中验证集是本轮的一份,训练集是本轮剩余的部分。 2.初始化模型,即定义模型的结构和参数等。 3.使用训练集对模型进行训练,得到训练好的模型。 4.使用验证集对训练好的模型进行验证,得到验证集上的性能指标。 5.重复步骤1~4,直到完成所有的交叉验证轮数。 希望这次回答能够解答您的疑问。
-
我: 也就是说每一轮中需要重新划分训练集和验证集是吧?
-
GPT: 是的,每一轮交叉验证都需要重新划分训练集和验证集,以确保每一轮训练和验证都是独立的。在每一轮中,我们将数据集按照预设的交叉验证折数进行划分,其中一份作为验证集,剩余部分作为训练集。然后,在这个训练集上训练模型,在验证集上评估模型的性能。这样可以避免数据泄露,保证交叉验证的有效性。
-
我: 哦 我明白了 ,这就是你之前说 “验证集数据可能在之前的训练集中出现过”的原因是吧?如果每轮重新划分数据集,并且模型从头开始训练,那么验证集中的样本不会全部在之前的训练集中出现过,但是验证集中的一小部分很可能在之前的训练集中出现过。但是由于模型是从头开始训练所以模型还是没有记过这个验证集。
-
GPT: 是的,您理解的很正确。因为在每一轮交叉验证中,我们都会重新划分数据集并从头开始训练模型,所以验证集中的样本虽然可能在之前的训练集中出现过,但是对于本轮训练的模型来说,这些样本是全新的。因此,我们仍然可以使用这些样本来评估模型的性能。
-
我: kf = KFold(n_splits=10, shuffle=True, random_state=42) 解释一下这段代码?
-
GPT: 这段代码中,我们使用KFold函数来初始化一个交叉验证器,其参数含义如下:
- n_splits: 指定将数据集分成几份。在这里,我们将数据集分成了10份。
- shuffle: 是否在每次划分之前对数据进行洗牌。在这里,我们将其设置为True,表示进行洗牌。
- random_state: 随机种子。在这里,我们将其设置为42,可以保证每次运行程序时得到相同的结果。
到这里我更加明白了 k折交叉验证的 内部细节(如果ChatGPT没回答错的话)
我觉得它的回答是正确的也是合理的,如果每一轮是在上一轮的基础上接着训练模型,这只会导致模型的效果在原有基础上提高呀,这显然是不合理的呀。