ChatGPT 存在很大的隐私问题

Posted 网络研究院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ChatGPT 存在很大的隐私问题相关的知识,希望对你有一定的参考价值。

当 OpenAI 发布时 2020 年 7 月的 GPT-3,它提供了用于训练大型语言模型的数据的一瞥。

根据一篇技术论文,从网络、帖子、书籍等中收集的数百万页被用于创建生成文本系统。

在此数据中收集的是您在网上分享的一些关于您自己的个人信息,这些数据现在让 OpenAI 陷入困境。 

3 月 31 日,意大利数据监管机构 发布了一项临时紧急决定,要求 OpenAI 停止使用其训练数据中包含的数百万意大利人的个人信息。

根据监管机构的说法,OpenAI 没有合法权利在 ChatGPT 中使用人们的个人信息。

作为回应,OpenAI 已阻止意大利人访问其聊天机器人,同时它向正在进一步调查的官员提供答复。 

这是西方监管机构首次针对 ChatGPT 采取的行动,凸显了围绕创建巨大的生成式 AI 模型的隐私紧张,这些模型通常在大量互联网数据上进行训练。

正如艺术家和媒体公司抱怨生成式 AI 开发人员未经许可使用他们的作品一样,数据监管机构现在对人们的个人信息也是如此。

整个欧洲都可能做出类似的决定。在意大利宣布调查后的几天里,法国、 德国和爱尔兰的数据监管机构已联系 Garante,要求提供有关其调查结果的更多信息。

如果商业模式只是在互联网上搜索你能找到的任何东西,那么这里可能会出现一个非常重要的问题,挪威数据保护机构国际负责人称该机构正在监测事态发展。

如果一个模型是建立在可能被非法收集的数据之上的,那么就会引发关于是否任何人都可以合法使用这些工具的问题。

意大利对 OpenAI 的打击也发生在对大型人工智能模型的审查稳步增加之际。

3 月 29 日,技术领导者呼吁暂停 ChatGPT 等系统的开发,担心其未来的影响。意大利的决定凸显了更紧迫的担忧。

从本质上讲,我们看到迄今为止的 AI 开发可能存在巨大的缺陷。

欧洲的 GDPR 规则涵盖了组织收集、存储和使用人们个人数据的方式 ,保护了整个大陆 4 亿多人的数据。

这些个人数据可以是从人名到 IP 地址的任何内容,如果它可以用来识别某人,就可以算作他们的个人信息。

与美国州级隐私规则的拼凑不同,GDPR 的保护适用于人们的信息可在网上免费获得的情况。

简而言之:仅仅因为某人的信息是公开的并不意味着您可以将其抽空并用它做任何您想做的事。

意大利的 Garante 认为 ChatGPT 在 GDPR 下存在四个问题:

OpenAI 没有年龄控制来阻止 13 岁以下的人使用文本生成系统;它可以提供有关人员的不准确信息;人们还没有被告知他们的数据已被收集;也许最重要的是,它的第四个问题是在用于训练 ChatGPT 的海量数据中收集人们的个人信息“没有法律依据”。

在欧盟看来确实很明显这违反了数从广义上讲,公司要根据 GDPR 收集和使用人们的信息,他们必须依赖 六种法律理由之一,从某人的许可到合同要求的信息。

在这种情况下,基本上有两种选择:获得人们的同意,OpenAI 没有这样做或者争辩说它有“合法利益”来使用人们的数据,这“很难”做到。

OpenAI 的隐私政策没有直接提及其在训练数据中使用人们的个人信息的法律原因,但表示它在“开发”其服务时依赖于“合法利益”。

与 GPT-3 不同,OpenAI 没有公布任何进入 ChatGPT 的训练数据的细节,而 GPT-4 被认为要大几倍。

然而,GPT-4 的技术文件包括一个关于隐私的部分,其中说它的训练数据可能包括来自多个来源的“公开可用的个人信息”。

该论文称,OpenAI 采取措施保护人们的隐私,包括“微调”模型以阻止人们询问个人信息,以及“在可行的情况下”从训练数据中删除人们的信息。

如何合法地收集数据用于训练数据集,用于从常规算法到一些非常复杂的人工智能的一切,这是一个现在需要解决的关键问题,因为我们正处于这种技术采用的临界点结束了。

意大利监管机构的行动也正在 对 Replika 聊天机器人采取行动,有可能成为检查 OpenAI 数据实践的众多案例中的第一个。

GDPR 允许在欧洲设有基地的公司指定一个国家来处理其所有投诉。例如,爱尔兰与谷歌、Twitter 和 Meta 打交道。

然而,OpenAI 在欧洲没有基地,这意味着根据 GDPR,每个国家都可以对它提出投诉。 

OpenAI 并不孤单。专家表示,意大利监管机构提出的许多问题可能会触及机器学习和生成人工智能系统所有开发的核心。

欧盟正在制定人工智能法规,但到目前为止,在隐私方面针对机器学习系统的发展采取的行动相对较少。

牛津大学人工智能伦理研究所高级研究员、数据实践作者表示:这项技术的构建模块的基础已经腐烂,我认为这将很难治愈。她指出,许多用于训练机器学习系统的数据集已经存在多年,而且在将它们放在一起时可能很少考虑隐私问题。 

数据最终如何进入 GPT-4 之类的东西,存在这种分层和复杂的供应链,从来没有真正设计或默认的任何类型的数据保护。

2022 年,一个广泛使用的图像数据库的创建者建议对数据集中的人脸图像进行模糊处理,该数据库已帮助训练 AI 模型达十年之久 。 

在欧洲和加利福尼亚,隐私规则允许人们 在信息不准确时要求删除或更正信息。但是,从 AI 系统中删除不准确或某人不想要的内容可能并不简单,尤其是在数据来源不明的情况下。

专业人士都质疑 GDPR 从长远来看是否能够对此采取任何措施,包括维护人们的权利。纽卡斯尔大学的爱德华兹说:对于如何使用这些非常大的语言模型来做到这一点,没有任何线索,他们对此没有规定。

到目前为止,至少有一个相关的例子,当时美国联邦贸易委员会命令以前称为慧俪轻体的公司删除根据其无权使用的数据创建的算法。

但随着审查的加强,此类命令可能会变得更加普遍。

显然,根据技术基础设施,可能很难完全清除用于训练它的所有个人数据的模型,如果模型随后通过非法收集的个人数据进行训练,这将意味着你基本上可能无法使用你的模型。

xmpp ejabberd - 查询用户存在

【中文标题】xmpp ejabberd - 查询用户存在【英文标题】:xmpp ejabberd - query for user presence 【发布时间】:2016-01-29 04:13:46 【问题描述】:

如果用户的订阅类型是“两者”,有没有办法在 XMPP 中查询用户存在?

自从我为移动平台构建以来,我已经使用隐私列表阻止了所有传入的存在节。在我的用例中,一个用户至少会订阅 500 个用户,处理这么多的出席信息节会给移动设备带来很大的压力。

因此,我不想处理所有用户节,而是希望仅在查询用户时才获得用户的存在。

【问题讨论】:

【参考方案1】:

目前 ejabberd 内部没有这样的功能,但这绝对是您可以开发为插件的东西。您可以编写一个插件,该插件将使用 HTTP 网络服务器处理 http 请求,并在响应用户存在之前执行您想要的任何处理和安全检查。

【讨论】:

【参考方案2】:

为了将来的参考,我已经设法收集了一些代码(感谢 mod_last.erl)并构建了一个可以让您查询用户存在的模块。建议和反馈将不胜感激。

-module(mod_query_presence).
-behaviour(gen_mod).

-export([start/2, stop/1,
    process_sm_iq/3
]).

-include("ejabberd.hrl").
-include("jlib.hrl").
-include("logger.hrl").

-include("mod_privacy.hrl").

-define(NS_QUERY_PRESENCE, <<"jabber:iq:qpresence">>).

start(Host, Opts) ->
    IQDisc = gen_mod:get_opt(iqdisc, Opts, fun gen_iq_handler:check_type/1,
                             one_queue),
    gen_iq_handler:add_iq_handler(ejabberd_sm, Host, 
                                  ?NS_QUERY_PRESENCE, ?MODULE, process_sm_iq, IQDisc),
    ?INFO_MSG("Loading module 'mod_iqtest' v.01", []).

stop(Host) ->
    gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_QUERY_PRESENCE),
    ?INFO_MSG("Stoping module 'mod_iqtest' ", []).

process_sm_iq(From, To,
              #iqtype = Type, sub_el = SubEl = IQ) ->
    case Type of
      set ->
          IQ#iqtype = error, sub_el = [SubEl, ?ERR_NOT_ALLOWED];
      get ->
          User = To#jid.luser,
          Server = To#jid.lserver,
          Resource = xml:get_tag_attr_s(list_to_binary("resource"), SubEl), 
          Subscription, _Groups =
              ejabberd_hooks:run_fold(roster_get_jid_info, Server,
                                      none, [], [User, Server, From]),
          if (Subscription == both) or (Subscription == from) or
               (From#jid.luser == To#jid.luser) and
                 (From#jid.lserver == To#jid.lserver) ->
                 UserListRecord =
                     ejabberd_hooks:run_fold(privacy_get_user_list, Server,
                                             #userlist, [User, Server]),
                 case ejabberd_hooks:run_fold(privacy_check_packet,
                                              Server, allow,
                                              [User, Server, UserListRecord,
                                               To, From,
                                                #xmlelname = <<"presence">>,
                                                       attrs = [],
                                                       children = [],
                                               out])
                     of
                   allow -> get_presence(IQ, SubEl, User, Server, Resource);
                   deny ->
                       IQ#iqtype = error, sub_el = [SubEl, ?ERR_FORBIDDEN]
                 end;
             true ->
                 IQ#iqtype = error, sub_el = [SubEl, ?ERR_FORBIDDEN]
          end
    end.

get_presence(IQ, SubEl, LUser, LServer, LResource) ->
  case ejabberd_sm:get_session_pid(LUser, LServer, LResource) of
        none ->
            IQ#iqtype = error,
                      sub_el = [SubEl, ?ERR_SERVICE_UNAVAILABLE];
        Pid ->
            _U, _Resource, Status, StatusText = ejabberd_c2s:get_presence(Pid),
            IQ#iqtype = result,
                    sub_el =
                          [#xmlelname = <<"query">>,
                              attrs =
                                  [<<"xmlns">>, ?NS_QUERY_PRESENCE,
                                   <<"status">>, Status,
                                   <<"StatusText">>, StatusText],
                                   children = []]
    end.

IQ 请求格式

<iq id='id' to='56876c654366178e0e75a8cd@192.168.1.150' type='get'>
    <query xmlns='jabber:iq:qpresence' resource='Smack'/>
</iq>

用户在线时的IQ回复格式

<iq from='56876c654366178e0e75a8cd@192.168.1.150' to='56876c654366178e0e75a8cd@192.168.1.150/Smack' id='last1' type='result'>
    <query xmlns='jabber:iq:qpresence' status='dnd' StatusText='YO'/>
</iq>

如果用户不在线,你会得到一个服务不可用的错误。

【讨论】:

以上是关于ChatGPT 存在很大的隐私问题的主要内容,如果未能解决你的问题,请参考以下文章

ChatGPT 使用 拓展资料:用 Rasa Open Source 和 ChatGPT 回答有关结构化数据的问题

ChatGPT遭多国调查,OpenAI凌晨就安全问题发文,GPT-5要暂缓?

ChatGPT的应用场景和创新应用

ChatGPT如何推荐测试工具?

生活工作经验 十ChatGPT模型对话初探

ChatGPT应用场景与工具推荐