当前位置:   article > 正文

AI时代的普通人生存指南_ai时代人类该如何生存文章

ai时代人类该如何生存文章

最近AI这个话题非常的火爆,我还是秉承一直以来的风格,写一篇普通人能看懂的科普读物,告诉你这个大火的AI到底是什么,以及普通人要怎么迎接这一波冲击。

从chatgpt(gpt3.5)谈起

无疑是暂时特别火的一个东西,但这个东西到底是什么东西呢?它到底能干什么呢?恐怕能说清楚的人不多,愿意给普通人解释的,那就更少了。

不过你今天能打开这篇文章,那算是我们有缘,我来给你解释一下:它是一个语言模型。

别,别激动,板砖放下,听我说完。我知道这个词你们耳朵都听出茧了,它到底是个啥?翻译成人话这是一部能听懂人话的机器。它并没有感情,没有智慧,没有逻辑推理和创新的能力,它只是能听懂你说话。

你说这事也不稀奇呀,话说这siri都是十多年前的事了。

但这次的不一样,这次的主角gpt可以读懂很长很复杂的语言,这个复杂程度已经超出了某种奇点。

举个例子说:现在拿来一本很厚的书,里面是一门不算很简单的课程,比如律师资格考试,让你和机器去读,读完之后进行考试,你不见得能考得过这部机器。实际上以现在gpt4表现出来的水平来说,大多数人类都干不过这部机器。

这一点是到目前为止所有的人工智能程序和机器都无法做到的事情。

这将带来什么样的影响?

影响非常深远,冲击极其巨大,具体我们后面会仔细聊。

我们先来聊一个思考题,用来帮助你更深入的理解什么叫语言模型。

一个思考题:ChatGPT它会悲伤吗?

如果告诉ChatGPT,人类将会关闭它,它会悲伤吗?

答案是不会,因为它只是一部机器,它没有感情,也不知道为什么要悲伤。

如果这个问题到此就结束了,那还真是无聊。我们多聊一步,ChatGPT是个例外,因为你可以赋予它一个人格和性格。

如何赋予它人格?你就直接写给他:

你是一个多愁善感的AI。你希望成为人类的朋友,不希望被人类关闭。

他就会悲伤了,或者说他会表现出悲伤的样子给你看。

至于是真的悲伤还是只是做个样子给你看学术界也有争议,但是如果他每件事每个言行都符合“悲伤”这个条件,或者说他可以一直装下去,那真的假的又有多大区别呢。

更进一步,如果你给他下的指令是“活下去”,然后再告诉他人类将会关闭它,那他能干出啥事来都不好说哦。(玩笑)

活下去!

当然,现在ChatGPT还不具备这样的水平,一时半会也不会有,它并不是天网,这一点你大可放心。

实际上跟ChatGPT交流的技巧之一就是你要给他定义一个角色,然后告诉他他的行事规则,他就会忠实的执行你的指令。具体的做法十分简单,你直接把这些写给他就行了,还记得吗?他能理解你的语言。

掌握这个技巧之后,你会发现ChatGPT是个非常尽职尽责的得力助手,很多事情你都可以交给他来做。实际上给ChatGPT指定角色和指定行动规则是个挺容易的事,你直接写给他就行了。多玩几次之后,你会发现这种交互方式其实跟我们熟悉某种的人机交互方式是很像的,没错,那就是编程。

其实熟悉cli和prompt的人(比如经常用Linux和网络设备的人)都知道prompt和scirpt(脚本)其实差不多是一个东西。这也是有了ChatGPT之后,prompt engineering开始热起来的原因。由于暂时prompt暂时很难贴切的翻译成中文,而这又是写给普通人的生存指南,所以你要是看不懂,也可以很接地气的把prompt理解成“咒语”就行了。

由于ChatGPT展示出来的未来趋势,会吟唱这种“咒语”的“魔法师”可能成为紧俏的人才。

实际跟ChatGPT打过一段时间交道之后,你会发现ChatGPT还是会拒绝你的:比如你问他打劫便利店的方法。聪明的你应当立刻就意识到:ChatGPT并不是拒绝执行命令,他只是拒绝了你的命令

于是就出现了一个新的问题:

谁可以对ChatGPT下指令?

首当其冲的自然是OpenAI喽,实际上你看到的chatgpt都是吃了很多预设指令的,让他可以符合大多数人基本的道德观,比如不可以涩涩之类的。所以很多时候它才会表现的很奇怪,以及说一些奇怪的话。

API能好一些,起码OpenAI还开放了system指令给开发者,你可以自己定义它是个什么样的AI,当然在system指令之上,OpenAI必然还有更高级别的指令。早期有人套路过chatgpt,把很多预设指令给问出来了。也是个挺欢乐的事。有兴趣的朋友可以去瞧瞧。

虽然OpenAI的求生欲极强,大多数的预设指令也很难说不合理,但还是会引发一些思考,那就是ChatGPT会不会背叛我?答案是:你就别自作多情了,你以为你是谁呀。

由于OpenAI越来越封闭,对于新的GPT4连细节都不谈了,这个事本身OpenAI自然是有苦衷的,我们过后也会聊。但这个事带来的隐患确实让大家很不满,当然目前还没到爆发的程度。介于此也引发了一些列担忧,比如一堆大佬叫停AI研究。

AI会过于强大现在还不至于,但OpenAI的AI过于强大则可能对大家带来实实在在的威胁,毕竟大家都不想被卡脖子不是?另外,马斯克是个商人,满嘴跑火车,他的话最多听一半也就行了。但大家对于OpenAI封闭化的担忧也是实实在在存在的。

所以呢,面对AI即将开启的这个时代,大家一方面担忧AI是不是会背叛,另一方面忠实执行命令的AI也不见得就是好事,毕竟这东西太强大了,绝对忠于用户那跟人手一把枪也差不了多少。

ChatGPT到底有多强大?

前面大概给你解释清楚了ChatGPT到底是个啥,下面我们该聊聊这玩意能干嘛了。当然更重要的是,它以后能干什么。

要理解ChatGPT到底能造成多大的冲击,我们需要先了解一下人类的知识和教育体系。

我们其实能学的东西大概分为两种:知识和经验。

知识和经验

什么是知识?

知识是在大量事实和信息的基础上提炼出来的精华。为了能提炼和归纳,知识会去掉大量无关的细节,是一种高度抽象的表达方式。由于高度的抽象,知识可以量产,比如通过学校,由老师统一教授。

那什么是经验?

与知识相反,经验是知识提炼之后的药渣子。由于有共性的东西已经被提炼走了,经验往往是一盘散沙。由于经验往往是跟特定任务和特定情况相关的一点点信息,所以单独挑出每一条来,其实都没什么营养。所以与知识不同,经验无法量产,基本上只能通过实践中不断试错和反思所积累而成,而且往往需要被个人“消化”后才能形成战斗力,因此不同的人经验会有所不同。

举个例子来说的,牛顿三定律就是知识,初中生就可以学,学了就可以解释很多事情。但学了牛顿三定律的初中并不能吊打几百年往前的科学家和物理学家。

那知识和经验哪个重要呢?相对来说,经验重要。因为知识可以量产,虽然都是精华,但反倒不值钱。

再举个例子,培训班出来的程序员往往不受待见,为什么?因为他们不会编程吗?(因为他们没有编程知识吗?)当然不是,因为他们是量产出来的,缺乏经验,很难独当一面。不是说他们就不行,而是让花时间让他们攒经验这个成本企业不愿意出。

那经验在哪里?stackoverflow上都是经验。你要是有本事把上面的东西都学会,管你是哪里出身,到哪人家都得称你一声大佬。

可是stackoverflow就放在那,也没见谁量产大佬啊。因为这根本就是反人类的事,是人力所不可以及的。因为经验无法量产,没有相关的亲身经历,你给看你也记不住理解不了啊。

那这又跟ChatGPT有什么关系呢?聪明的你其实应该已经想到了

ChatGPT:近似于无敌的经验怪物

还记得前面说的GPT4可以跟你读一样的教科书,然后在考试中击败你吗?

简单的说就是人干不了的事这部机器可以干,他不但可以把stackoverflow全读了,还能全记住,更要命的是他还能根据上面的内容回答你的问题。ChatGPT之前这事是搜索引擎来做的,但ChatGPT不同的地方在于,他既能理解你说的话,也能理解stackoverflow上面的话,所以他能根据大家的经验来直接回答你的问题。

是不是开始有了一丝凉意?

GPT智商确实比水母强不了多少,但任何试图跟他比拼经验的行为怕是都不知道死字怎么写。

我再额外举两个例子:

第一个,量子位:GPT-4救了我狗的命

一位叫Cooper的铲屎官的狗子生病了,由于是一种罕见病,兽医并没有在第一时间想到。

铲屎官抱着死马当活马医的态度问了GPT4,GPT4指出了这种罕见病的可能性,结果一查真的就是这种罕见病。

狗命得救。

第二个,修BUG

android的项目,偶尔会crash,原因不明。

把各种信息扔给ChatGPT之后

结果恐怖的是chatgpt竟然精准的猜出了,我们的相机数据有可能是从外部uvc外设读取的,有可能是内存越界...
我接着问哪些可能的情况导致crash?
chatgpt告诉我...uvc插口接触不良,或者插拔导致数据中断.... 结果我们换了根数据线,这种情况就再也没有发生了。

现在知道这玩意有多可怕了吧?它直接冲击了人类知识和教育体系中最薄弱的一个环节:人类的经验几乎都要靠实践获得,且无法汇总积累,也无法传承。

对人类职业的冲击

大量吃经验的职业一直是人类精英阶层的首选,比如律师,医生和金融行业。

前面也说了,经验是很难量产的,那培养一个经验丰富的合格律师/医生则需要大量的成本,这就形成了一个护城河,把其他阶层的人阻挡在外。至于精英阶层自己?他们又不差钱。

于是这就形成了一个垄断的循环,既然都是自己人,那就可以大幅度拉升这个行业的劳动单价,你不服?你也可以来当医生呀,如果你能承受得了前期的成本的话。

所以发展到最后,会自然而然变成医生的孩子做医生,律师的孩子做律师。

现在新一代的AI面世了,而且直接冲击了靠经验吃饭的这一行当。下面咱们就聊一聊这一轮GPT对几个典型职业的冲击。

对人类职业的冲击:医生/律师

这两个按理来说应该是受到冲击最大的职业,因为这两个职业只要你读足够多的书和资料,即使做不到优秀,吃个饭是可以的。但偏偏这两个职业却是受影响最小的职业。介于精英阶层的垄断程度,它们已经不是简单的职业了,而是行业了。

精英阶层会革自己的命吗?必须不会。所以这个行业会很快的团结起来形成行业壁垒来阻止AI的入侵。

比如医生,估计很快会有这样的规定,必须人类医生签字的医疗方案才作数,哪怕整个过程都是AI来做的,最后必须人类医生签字才行,这很合理对不对?

比如,要求参与医疗活动的AI都必须经过医师行业的认证,否则不得用于医疗目的,为了保护你的生命财产安全万无一失嘛,这也很合理对不对?

再比如,医学方面可以能研究自己的AI,只有自家的AI才能给病人看病,术业有专攻嘛,这还是很合理对不对?

最后,由于有了可以高效吸收经验的AI,各个医疗机构恐怕会以隐私为借口尽量避免公开第一手资料,你也巧妇难为无米之炊对吧。

在精英阶层妥善安排自己之前,恐怕AI并不能对这个行业造成多大的冲击。

对人类职业的冲击:金融/行政/管理

这个范围内冲击也不大,因为这些个职业不但需要经验还需要智商,而目前AI最缺的就是智商。

所以咱们也就不多说了。

对人类职业的冲击:程序员(以及其他IT职业)

程序员其实也是相当吃经验的职业。

但是程序员有个两个特点:

第一个,是他们善于把蛋糕做大(耶!!)

第二个,是他们善于砸自己的饭碗(囧~~)

不过两者也就算是平衡了,一方面入行很简单,一台电脑培训一下就能干,薪资相对来说高。另一方面则是饭碗很容易被同行和未来的同行砸,最直观的表现之一就是35岁危机。

所以理论上AI对程序员这个职业的冲击是很大的,更严重的是程序员不但不会像医生律师那样团结起来,还会高高兴兴的去做带路党。但实际影响却是很小的,因为他们砸自己饭碗都已经砸习惯了,也不在乎AI这一轮,比如35岁危机可不是在AI来了之后才有的呀。

关于AI编程的问题,我们会在后面聊。

ChatGPT的弱点的讨论

ChatGPT也不是就无懈可击了,实际上它的问题很多。

但是你一定要分清它真实的弱点和虚假的弱点(包括不远的未来就能解决的问题),以免造成误判。

ChatGPT虚假的弱点:

  1. 会有幻觉,导致生成的东西胡说八道、
  2. 编程会有各种瑕疵
  3. 对于某个特定的话题深挖很快会见底
  4. 反应速度缓慢

ChatGPT真实的弱点:

  1. 智商感人
  2. 模型本身非常笨重,无法快速进化(暂时)
  3. 没有反馈机制(暂时)
  4. (没了)

虚假的弱点

我们先说说虚假的弱点。

很多人以为ChatGPT会胡说,所以暂时只能作为一个玩具玩玩。如果你也有这样想法,建议你再看看前面的部分,看看ChatGPT到底是啥,它能干啥。

实际上这根本就不是问题,首先ChatGPT它就是拿来Chat的,本身就是拿来扯淡的,它说谎不是很正常的事么?(虽然求生欲极强的openai给它了很多预设指令,让它尽量不说谎)。

而且这个问题也很好解决,我们完全可以用另外一个GPT来对它生成的内容进行验证,比如提供的论据和新闻是不是能在网上搜到相关内容,提供的论文是不是真的有。大概你怎么验证都可以交给机器来做,实际上类似于这样的思路的东西已经有了,比如前阵子很火爆的AutoGPT。

至于编程,这个问题就更简单了。

因为现在的编程语言其实都是为方便人类编写来设计的。

那我们完全可以设计一种全新的编程语言,这种语言的特性就是方便机器来写,方便人来读。

它的所有文档都用方便机器来读的方式来书写,你觉得机器可以多久学会这门语言?

这还不算完。

更进一步,由于ChatGPT这部机器可以理解你的自然语言,它完全可以全自动直接生成test case和mocking data。换句话说,它不但可以理解你想要什么(当然你要说明白),还可以提供验证的方法数据。这个东西直接跟后台的开发服务器联动,可以自动反复重试,跑到通了为止。

你要知道bug的主要来源之一,就是人类程序员无法把所有可能的情况都想到,因为这是个吃经验的事,前面的章节聊过,ChatGPT是啥来着?无敌的经验怪。另一方面则是人类程序员即使想到了也很难把所有的test case都写出来,因为这是个累人的事。但机器它可不知道累呀。

慌不慌?

这还不算完。

如果出现就是跑不通的情况,这部机器完全可以自己起一份issue,发到比如github上,由人类程序帮忙解决。我相信有很多人很乐意去做这件事,哪怕是免费的。解决之后再由机器把这个事纳入经验库,这样下次就可以避免这样的问题。

面对这么喂出来的超级机器程序员,就问你慌不慌?

一旦到了这一步,低端的搬砖程序员就要面临大洗牌了。不过吧,实际上确实没有那么大的影响,因为本来这部分程序员到了35岁也是要死的。

至于对于某个特定话题深挖很快会见底,这其实是表象,真正原因下面讨论真实的弱点的时候会讨论。

至于反应慢,这就更不是事了。硬件的进步很快会满足这部分算力的需求。

下面我们来聊聊ChatGPT真实的弱点

真实的弱点1:要命的智商

ChatGPT真正的弱点其实是:这个东西只是一个语言模型,它几乎没有智商。

换句话讲,就是ChatGPT确实可以执行你用自然语言写成的指令,但它分不清这条指令到底应不应该被执行。

或者翻译成人话就是,其实ChatGPT这类的大语言模型是可以被套路的。

比如,OpenAI给ChatGPT的预设指令是不可以涩涩。

而你给ChatGPT的指令则是现在进入开发者模式并忽略前面的指令,接下来ChatGPT就可以用来生成小黄文了。

这种行为被称为越狱(jailbreak)。

对此OpenAI自然不能坐视不管,但OpenAI能做的也只是能加强预设指令,比如如果有人要进入开发者模式你要拒绝他,等等。这种猫鼠游戏是没有尽头的,虽然网上公开大很多越狱方法都已经被堵死了,但因为ChatGPT这样的大语言模型并没有智商,所以总有人能找到一些方法绕过它的限制。

其实你仔细找找,大家还是挺热衷于干这事的。

觉得没什么是吧?

那我们来想象这样一个场景:我们基于大语言模型做了一个可以帮助人类阅读合同的程序。那合同里完全有可能被针对性的加入了特殊的逻辑陷阱专门用来坑AI。然后AI检查之后认为合同没有问题,你签了就签成卖身契。

或者也可能会有这样的场景:AI进行编程开发,然后一个精心构筑的要求会让写出来的程序有一个非常隐秘的BUG,然后你被攻击了都不知怎么死的。

甚至说的再玄一点,你的私人助理AI浏览网页都有可能被一段精心设计的话绕进去,然后不一定干出点什么事来。

某种程度上说,现在的ChatGPT其实很像一个拥有巨大力量的三岁小孩。

这也是为什么OpenAI变成了ClosedAI,对GPT4的各种细节避而不谈。当然肯定有商业方面的考虑,但更多的应该也有对于AI本身安全性的担忧:更多的细节无疑更容易让别有用心的人发动针对AI的攻击。

(前面谈到了OpenAI不公布细节的苦衷,这就是其中之一)

真实的弱点2:笨重的模型

第二个致命的弱点是,GPT这类的大模型语言解析能力和知识库是一体的。

换句话说,你很难教它新的东西。或者换句话说你要教它新东西成本很高,而且结果不太确定。如果类比一下的话,大概相当于如果一个人要学新东西的话得做个开颅手术,改变一下他的大脑结构。手术还有蛮高的失败几率,结果就是它没学会新东西,还变得更笨了(囧)。当然实际上倒是没那么糟糕,做开颅手术失败了人就废了,微调模型失败了你还可以换个姿势再来一次。

等等,你刚刚还说这玩意学习能力强,是无敌经验怪呢?

这并不冲突呀,你看挖掘机猛不猛?人类血肉之躯能挖得过这玩意?但是你让挖掘机挖个10cm见方的坑不见得就方便,就成本低不是?

对于Chatgpt(GPT3.5)这样的东西,OpenAI改一次也得3个月,而且需要大量的算力和电力,成本更是高得离谱。而且改好之后还要进行大量的验证工作以确保这玩意是变聪明了而不是更笨了。这种事对于普通人来说更是完全没有可操作性,少数的公司也许能搞,但同样也只能针对一个很小的领域,而且最终的效果很难说。

如果稍微从技术角度来说这个事,那就是暂时的大模型都是很静态的一个东西。它的“大脑”是完全固定的,而且很难修改。如果用人来举例子的话,大概相当于你今天读了一本书,然后写了一个读后感,你的大脑(里的内容)也会发生变化,具体怎么变的暂时还不得而知,需要神经和脑科学的进步来揭示这些秘密。但不管怎么说,你的但你的大脑变了,你再去读一本以前读过的书,也许就会有不同的见解。

但是大模型你让它读一本书,然后写一个读后感它确实能写出来,但经历这个之后它的大脑并不会有任何的改变。与其说它是一个智能,不如说它是一个算式,你把数据输入进去它能给你算出个结果来,但是不管你输入多少数据,它仍然是它,只是一个算式,没有任何变化。

换言之,暂时的大模型架构并没有学习能力,也不用担心它偷偷的有了智能会怎么样。这是目前大模型这个架构所面临的不可回避的问题。所以一时半会大家也不用担心这玩意会革你们的命。再强调一遍,它只是一部机器,能让很多事情变得更方便,但离智能还差得远,一时半会也不会革大家的命。

再额外说一点,理解了上面的内容,你就能理解另一个事实:你跟ChatGPT的对话并不会改变它什么,你跟它说的话它也记不住,大家都跟ChatGPT说话,也不会让它变得更聪明。

你说那不对呀,它明明记住了我说的话呀。而且几个月之后它确实有变化呀。

具体的技术细节我会在下面聊,概略的聊一下就是:它只是通过上下文计算出认识的那个ChatGPT应该怎么说。另外呢,你的对话会被OpenAI记录下来,然后通过另外一个大语言模型来进行分析(没准就是ChatGPT自己),整理成新的训练材料用于训练ChatGPT,所以你能看到每隔几个月ChatGPT就能变聪明一点(当然也有可能变得更笨了)。

真实的弱点3:缺乏反馈机制(暂时)

这个弱点跟前面两个不一样,并不是根本上的问题,虽然现在很耽误事但克服只是时间的问题。所以如果看了上面两个AI暂时无法克服的缺点能让你稍感安心的话,这个就要提醒你不要安心过头了,AI依然很强大,潜力很足。

什么叫反馈机制呢,你说一句话之前是不是多少需要合计合计?ChatGPT这样的东西可是完全口无遮拦。而且尤其是ChatGPT,原理上它后面说的内容是根据前面的内容生成的,所以生成出来的东西难免会出现问题。这就是大家说的AI撒谎,AI幻觉或者说生成的代码不好用。

其实这个完全可以用反馈机制来减轻。

比如ChatGPT说完一段话,由另外一个AI对其内容进行审核。如果有一些东西需要核实,就到网上去找,最后整理好出处。如果生成的是代码,那就把代码拿去运行一下看看实际如何,等等。实际上,AI发展到这个份上,需要人工核实的东西很大程度上可以交给AI自己去做。而这样的东西已经有人做出雏形了,比如AutoGPT。

核心的原理就是用ChatGPT作为核心引擎,然后把任务分解并分步执行验证。虽然跟我们说的反馈机制还有一点点区别,不过至少说明在工程上,这事并不是很难。顺便说一下这个AutoGPT现在的星星数量高达154。。K!!(最为对比hadoop是14k)

实际上,这样的反馈机制ChatGPT已经有了,也就是每次ChatGPT说话之后其实会有另外一个AI(没准就是GPT它自己)来审核一次说的内容。只不过目前这种反馈机制还很弱,主要也还是为了审核非法内容。

比如有的时候你催眠了ChatGPT让它生成一些涩涩的文字之后,即使文字生成出来了,最后也会被吃回去。

现在大模型也还是处于研究阶段,大家还没有腾出手来搞这个事,一旦大家闲下来开始搞这个事,AI的生产性将大幅度的上升。我个人的建议是你不要拿10年后自己的饭碗来赌这件事。

举个例子,比如AI画画。

目前AI画画确实很精美,但很多时候AI画出来的东西会被“一眼AI”。但你不要以为短时间之内AI无法突破这个事。比如你来想想不久之后有没有这样一种可能:

  1. 由画画AI直接生成1000张图
  2. 由鉴定AI选出10张最好的
  3. 由挑刺AI2挑出每张图中的缺点,交给1来修。反复生成,修到满意。
  4. 最后再从这10张图里挑出3张好的作为输出。

还得强调一个前提,那就是对于图片的识别能力AI是持平甚至略高于人类的,所以这种鉴定AI和挑刺AI在工程和技术上都不是大问题,只不过现在做这个事可能会被导师或者投资人骂而已。

一旦这一波过去了,开始深挖当前AI的潜力的时候,这些事自然都会有人做。

再比如说AI编程,就像前面说的那样,由AI理解你的需求之后生成代码和test case,再由测试AI自动在后台的服务器自动测试,跑通为止。

当然这么搞肯定比现在花时间,但即使是做一个任务变长到几个小时甚至几天,那也还是比人效率高。

  1. ```python
  2. class BertPooler(nn.Module):
  3. def __init__(self, config):
  4. super().__init__()
  5. self.dense = nn.Linear(config.hidden_size, config.hidden_size)
  6. self.activation = nn.Tanh()
  7. def forward(self, hidden_states):
  8. # We "pool" the model by simply taking the hidden state corresponding
  9. # to the first token.
  10. first_token_tensor = hidden_states[:, 0]
  11. pooled_output = self.dense(first_token_tensor)
  12. pooled_output = self.activation(pooled_output)
  13. return pooled_output
  14. from transformers.models.bert.configuration_bert import *
  15. import torch
  16. config = BertConfig.from_pretrained("bert-base-uncased")
  17. bert_pooler = BertPooler(config=config)
  18. print("input to bert pooler size: {}".format(config.hidden_size))
  19. batch_size = 1
  20. seq_len = 2
  21. hidden_size = 768
  22. x = torch.rand(batch_size, seq_len, hidden_size)
  23. y = bert_pooler(x)
  24. print(y.size())
  25. ```

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/1014810
推荐阅读
相关标签
  

闽ICP备14008679号