首页 > 其他分享 >Google掀桌了,GLUE基准的时代终于过去了?

Google掀桌了,GLUE基准的时代终于过去了?

时间:2023-05-02 10:32:13浏览次数:44  
标签:Google 通用 基准 掀桌 任务 GLUE 数据 模型


Google掀桌了,GLUE基准的时代终于过去了?_算法

文 | Severus

大家好,我是Severus,一个在某厂做中文文本理解的老程序员。

今年11月,Google 在 NeurIPS2021 投稿了一篇文章,名为 AI and the Everything in the Whole Wide World Benchmark,矛头直指评估AI模型“通用”能力的基准(ImageNet、GLUE/SuperGLUE),文章中用词相当凶狠,这里我简单截取几段,给小伙伴们感受一下(手动眼斜)。


Google掀桌了,GLUE基准的时代终于过去了?_人工智能_02

当然以上只是冰山一角。

读过我以往文章(在错误的数据上,刷到SOTA又有什么意义?)的小伙伴都知道,我也对NLP当前卷任务的现状深恶痛绝,但阴阳怪气如我,也不敢写出如此凶猛的言辞,那么我们就一起来看一下,这一发炮弹,究竟装了什么火药吧。

论文标题
AI and the Everything in the Whole Wide World Benchmark

论文地址
http://arxiv.org/abs/2111.15366

这篇文章的标题,化用了一篇童话故事的标题,Grover and the Everything in the Whole Wide World Museum,故事中讲道,一个名叫 Grover 的布偶怪物造访了一个号称展示“世界上所有的东西”的博物馆,博物馆中将展品分为若干个展厅,有些展厅的归类则显得非常随意、主观,例如“你能在墙上找到的东西”,“让你觉得好笑的东西”;有些归类则很奇怪,如“胡萝卜房间”;有些归类则很模糊,如“高高的大厅”等。Grover 最终打开了一扇写着“Everything Else”的房间,发现自己在外面的世界里。

很显然,作者化用了这样一个标题,则也是认为,现在的所谓通用基准也一样,试图使用相当有限的数据,概括世界上所有的事物,这个前提首先是不成立的,那么这些基准也自然如童话故事般荒谬

本文主要以 CV 和 NLU 两个领域中,两大著名的“通用”评测基准——ImageNet 和 GLUE/SuperGLUE 作为切入点,剖析“通用”能力评测基准的若干局限性,以及唯指标风气可能带来的危害。最终,也提出了替代基准的探索路径。

现在的基准能评测通用吗?

作为 CV 领域最有影响力的基准,ImageNet 以其类别数量,和每个类别中图片的绝对量级为优势,一直作为视觉智能领域长期目标的里程碑,其创作者也希望 ImageNet 可以作为视觉智能领域的终极评测基准。

GLUE/SuperGLUE 也长期作为自然语言理解的通用评估基准,其主打优势则是包含多样化的任务,考察能力综合全面,近期被NLU卷友们广泛接受。

这两个基准在历史意义上,有着无可取代的地位:ImageNet 直接引爆了深度学习的火热,而 NLP 领域绕不开的 BERT 则是在 GLUE 初次秀了肌肉,走上了历史的舞台。

但是,这两个数据集,真的可以去评估模型的通用能力吗?

现实中,数据集是被设计的、主观且有限的,并且长期以来,我们忽略了数据中存在的固有偏见、主观倾向,数据集上的指标,几乎成为了评估模型能力的唯一标准,自然也导致模型被误用。事实上,在应用上、或者专用 agent 模型上,我们承认 bias 的存在,甚至人为构造高 bias 的数据集,但如果我们将“通用”作为唯一目标,则理想意义上可以评测“通用”能力数据集,在现实中不可能存在

而仅使用数据集,及性能指标,则会给任务设计、任务的关注焦点带来误导,从而导致算法的优化方向逐渐偏离初衷。

任务设计太武断

一个任务可以看作是从输入空间到输出空间的映射,应被任务的描述,以及一个特定的数据集共同定义。但在机器学习领域中,目前的趋势似乎更加偏重于后者,基准中某一个任务,可能是一拍脑门,想到一个前提,然后就直接收集数据集,完全使用数据集定义了任务形式,却与真正的评测目标、问题空间没有多大关系。

所谓“通用”基准,是用以测试通用的人工认知能力的,那么我们自然希望,评测任务是参考了模型想要模拟的认知能力及相关理论,系统化地选择出来的。而实际上,我们观察到的则是,基准的作者们在选择任务的时候,更像是图方便、省事,所以随意地将若干个任务组合起来,即便它们在理论上不可靠。甚至,一些任务本身,没有任何应用上的意义。

数据集/任务集组合太随意

作者认为,机器学习中,很多任务的目标,并不是人们所真正关心的问题,例如分辨虹膜和蘑菇的模型,似乎对人类没有任何帮助。其实,如果是作为专用 agent 的机器学习系统,这类简单问题,机器相比于人类,处理效率是大大提升的,但如果讨论“通用认知能力”,则的确,这个任务没有显著意义

作为视觉智能领域里程碑式的任务,ImageNet中也存在类似的标签,例如“特定品种的狗”,或“新西兰的海岸”(离了大谱,直接要世界知识bias了)。实际上,ImageNet的标签是直接从WordNet中12个子树中,整体照搬过来的,但没有考虑到,WordNet是英语词汇划分体系,则必然存在英语语境下的 bias,例如 person 子树上,可能就出现了较为政治敏感的 bias(原文说是歧视,但笔者认为仅仅是数据构造者,基于其所熟悉环境和知识背景,所形成的自然局限,而非主观上的歧视)。

GLUE/SuperGLUE 的数据也并非精心挑选。据GLUE的论文中写,最初在构造数据集的时候,大概有30个任务可供选择,而创造者们基于任务的复杂性,难度,以及权限许可等为依据,使用高标准筛选,最终剩下了9个任务。以此为依据,本文作者认为,GLUE基准,没有系统性地描述出“理解”所需的语言技能,也没有呈现出语言知识的多样化,自然也不能说是以其所宣称的“理解”目标为依据,而设计此基准。

所以,在GLUE/SuperGLUE基准的各个任务上,可以定性评测模型的性能,但是分数高低,绝不等同于“语言理解”的能力大小。自然,也不能说模型解决了这些任务,就断言模型具备了“理解”语言的能力。

更具危害的是,GLUE/SuperGLUE 基准的设计思路,被原封不动地照搬到了其他宣称 NLU 通用能力评估的基准中,例如中文基准ChineseGLUE 和 CLUE。ChineseGLUE 中甚至存在机翻的训练集和验证集,对应人翻的测试集。CLUE 中存在着部分数据集,一味考虑任务的复杂性,却在最起码的分布边界划分上(如NER各个类别的边界,如场所、景点类,组织机构及其子类),模糊不清,且数据的一致性无法保证(同一个 span,即可能被标注成“组织机构”,有可能被标注成“公司”,且二者的比例为7:10)。

错误理解了领域知识和问题空间

GLUE/SuperGLUE基准中,除语言学之外,还融合了常识推理、世界(事实)知识等,就好像它们的问题范围是等同的。创建者们似乎希望,模型可以具备应用世界知识、逻辑推理、常识推理等去进行推断,解决任务。所以,数据集中不仅仅包含了语言能力考察,还包含了逻辑推断,获取、运用世界知识相关能力的考察。

的确,人在进行交流的时候,不可避免地在使用这些知识,而不仅仅是使用了单独的语言技能,事实上,什么是单独的语言技能,至少在中文中,是一个难以回答的问题,其似乎与“常识”难以完全剥离开来(如习惯性的构词、表达方式等)。但语言知识(笔者习惯将之称为通用知识)与世界知识不同,语言知识在每段文本中自成结构,在不同的文本,甚至在不同的领域中是相通的。即,一个人可以不知道某一段文本中描述的事实,或完全不知道某一段文本中提到的实体,但他也能看懂这段文本;两个家庭环境、成长环境完全不一样的人,但只要他们语言相通,即可以交流。而世界知识,则更加与“记忆”相关,知道就是知道,不知道就是不知道。世界知识本身也是更加开放、无限、多变的,且其无法枚举(想想每天在互联网上的吃瓜现状)。

也就是说,语言知识和世界知识,在问题范围上完全不等价,却要在同一个只包含文本的基准上被考察,笔者在听中国传媒大学教授的演讲课时,对一句话印象颇深——“文字禁锢了语言的表达”,的确,哪怕是人,在交流的时候,不可避免会带上大脑中的先验知识,双方谈吐时的语气、状态等,这都是在给对方传达用以“理解”的信号,这些都是纯文本的数据集无法传递的。如笔者在之前的文章中所说,如果仅利用任务规则中允许我们用到的知识,人类能否有能力得到该样本中给出的答案

想象一下,如果测试样本中使用了训练样本中出现过的事实知识,模型做对了,但我们很难去说,模型做到了“理解”,只能说做到了拟合,且这种拟合很容易被对抗,例如构造假事实,例如完全使用二义性实体,分别构造训练样本和测试样本。

这个现象在 CLUE基准上甚至变本加厉,如 CLUENER 数据集中,一些类别如不使用世界知识(如:游戏、漫画、小说、电影类),是完全无法判定的,而文本中给出的信息,有时又不足以让人分辨出,该使用什么样的世界知识(无法完成链指),毕竟,游戏改编动画,小说改编电影,小说改编游戏,实在是太常见了。

现状被忽略

在开篇所提的童话故事中,Grover 看到了一个“非常非常亮的东西”的展厅,发现了一块大石头,他说:“错了,这个石头不亮”,并觉得应该把它挪到“非常非常重的东西”的展厅。但他发现,相比于“重东西”,这块石头并不重,而相比于其他石头,这块石头的颜色的确亮一些。

不存在绝对中立的数据集,数据集必然受其创造者本身的背景知识所限,存在其固有的局限性。数据基准测试本就是封闭的、主观的且基于有限数据构造的。但由于大家长期接受并强调,其用于“通用”能力评测的设定,“通用”反倒成为了掩护,开发基准的人以此为借口,逃避了报告基准数据细节(如数据源、可能存在的偏向性)的责任。基准数据集应当有描述文档,但现状是这方面的建设是不发达的,并且数据相关的工作在业界被大大低估。

数据范围受限

ImageNet数据集,其量级、类别数量等,都可称为是超大规模,但即便如此,其仍然受到文化背景及时代的局限,如非西方文化背景的图片明显不足,且绝大多数图片是局限于当代的。同时,ImageNet中的图片,要识别的目标更加倾向于居中——与现实生活中,人类所面对的情境相去甚远

GLUE/SuperGLUE的作者们倒是不以数据的绝对数量为卖点,而是主打任务的多样性。与之前的基准不同,GLUE中引入了多个任务,其论文中宣称:覆盖了多样的文本体裁,数据集大小以及难度,然而,与人类的语言活动相比,GLUE基准很难说是多样,仅包含2个单句分类(CoLA、SST-2),3个相似度和语义解释任务(MRPC、SST-B、QQP),4个语义推断(MNLI、QNLI、RTE、WNLI)。显然,GLUE的作者们也意识到了这个问题,于是在SuperGLUE中增加了问答和共指消解两类任务,SuperGLUE中的任务组成为:4个QA(BoolQ、MultiRC、COPA、ReCoRD),2个推断任务(RTE、CB),1个场景消歧(WiC)和1个共指消解(WSC)。不过我们都知道,即便是增加了SuperGLUE,该基准也远远覆盖不到“通用”的语言理解能力

无独有偶,CLUE基准中,甚至存在着整体分布偏差,例如语义相似度检测 ACQMC 数据集中,数据来源于蚂蚁金服,其中大面积分布着花呗和借呗。整个数据集更加像是纯领域的任务,却冠以通用之名。

基准是主观的

前面我提到:数据集必然受其创造者本身的背景知识所限,也就一定嵌入了其创造者的主观态度,所以也不可能存在绝对中立、全面的数据集。在工业应用(专用 agent 模型)上,我们是可以允许数据集中带有明显的 bias 的,因为每个应用都有其应用范围。可是在“通用”能力评测中,如果将带有明显政治倾向,及主观价值导向的数据集,当作中立、科学的基准来使用,则是完全不负责的行为,必然导致模型误用。例如,一些公司完全信任 AI 系统,使用 AI 系统进行打卡、考评、用药建议、休假审批(这些看似是应用系统,但实际由于面向所有人,也具备“通用”属性)等,正因为其使用训练数据的局限性和主观性,导致模型出现了大规模的错误判断。

笔者偶尔也承接一些 ToB 业务,也深受其害。一方面,做 AI 模型的人都在宣称,其工作有多么强大、智能、通用,却导致客户有过高的估计,而在实际业务上,什么都拿不到,自然也做不到好的模型,从而给客户造成了巨大的落差。

自然,号称评估“通用”的基准中,这类问题必然存在,但“通用”粉饰了一切,以“通用”为幌,大家忽略了必然存在的主观属性,仿佛不承认它存在,它就自然消失了

并且,其分布 bias 并不是随机的,其往往只存在于不同文化背景,也自然对该基准不具备话语权的群体中,如LGBT、非白人种族,非西方、欧美文化背景等。

并且,GLUE/SuperGLUE基准只是评测了特定语言(英语)的理解能力,而非抽象意义上“通用”的语言能力。

笔者按:感觉作者在这方面稍显偏激。“抽象意义上的语言能力”是一个无法描述清楚的概念,就如同人没有办法不使用某一种具体的载体,就表达自己的知识一样。作者似乎在形容底层认知,但不同语言背景的人,底层认知也有从语言而来的差异,例如生活在雪乡的人,其语言中存在各种形态的雪的描述词汇,其对雪的分辨能力则相当强,因为语言直接影响了他们的注意力(也就是感知),但这些对应于其他地方的人,只是“雪”罢了。所以我们有时也发现,翻译没法做到完全的对齐。

ImageNet中,即便其作者将各种语言文化背景下的数据,翻译到最终的英语数据集中,也仍不可避免存在 bias。如地理位置类,有约45%的图片来自于美国,60%以上来自于北美及欧洲的少数西方国家。但作为无论人口,还是国土面积意义上的大国,来自于中国的数据仅有1%,来自于印度的数据仅有1.2%。同时还有一个小 bug,由于开发者们使用了印地语图片查询系统,而非英语的,则出现了一些非常不同的数据。而这份数据集本身扩充的成本是相当大的,而且无论怎么扩充,也极难达到其所宣称的“通用”目标。

危害已经出现

正因为不存在通用的数据集,则所有的基准开发者们,实际都夸大了其基准对“通用”能力的评估作用,并将之宣称为整个领域努力的最终目标,直接导致研究者们不假思索地去追求算法在该基准评估下的性能指标,而忽略了指标与真实世界是不匹配的,做出来的算法也无法解决相关的其他问题。

当科学研究变为竞赛

在科学研究中,一味的追求 SOTA,只关注指标数字的增长,而不去做基于假设的科学研究,本身就非常奇怪。学界苦 SOTA 久矣,本文作者也节选了部分其他人对 SOTA 风气的批判。

只对已有的监督学习策略做各种小修改(tricky),却在benchmark上性能指标上取得增长的无聊(dull) paper 被允许发表。

一味追求指标甚至是一个道德问题,其最终导向是操纵、游戏和短视。

实际应用中,或许有的分类80%的精度就已经足够了(例如虹膜识别),但是有的分类精度却要达到99%甚至更高(如毒蘑菇识别),但是,在“通用”基准中,不同的数据集,却以相同的方式评估,所有数据集的分数取个平均,就草率地成为了“通用”的打分

实际上,跨领域的比较假设,是应用了范围相同但意义不同的指标,所造成的海市蜃楼。性能指标分数上,x%的提升无法代表任何实际意义上的能力,无论是通用性,还是什么其他的能力。因为对不同的数据集,x%的意义也截然不同,而这些指标却被粗暴地计算在了一起。

但讽刺的是,比赛、刷榜似乎成为了学界,甚至工业界算法研发或前沿探索的主流,双脚如同踩在虚空之上,自然也做不出任何可以落地的东西。ImageNet 和 GLUE/SuperGLUE 的基准作者也很乐于将基准发展为比赛,对外公开放榜,号召大家来刷分。

而这种风潮,则必然会导致——

算法优化的关注焦点被转移

前面提到,基准本身是有着相当的历史意义的。一个亟待解决的问题,如果有相应的基准能够定量地评估算法的能力,往往也可以吸引研究者们的兴趣,大家知识共建,将这个问题解决掉。但前文已经论证过,“通用”基准,首先在问题上的定义,就是完全脱离了基础应用,且模糊不清的,那么其基准也难以成为客观的评估标准。

可恰恰是在这样一个基准上的性能指标,成为了该领域成功的标志,随着竞争不断提升,内卷不断加剧,该基准收到的关注也就越来越大,其光芒掩盖了所有的阴影,最终成为了算法性能的最终解释。

基准也在不断地影响着主流算法的发展方向,比如20世纪60年代,正是计算机下棋如火如荼的时候,整个 AI 届都在关注着深度优先搜索和极大极小算法,这两种方法也一度主导了 AI 的发展。所以,机器学习算法发展的趋势,一定程度上的确也是由特定的基准性能驱动的,而“通用”基准带来了什么趋势呢?

没错,“大力出奇迹”趋势,我们肉眼可见的看到,模型的参数量不断地增加,训练数据规模不断地上涨,大模型散发的威力,使得现如今,模型的大小和通用能力划上了等号。

我也曾提到过,负责前沿探索的刷分团队,其成果很多都是两只脚皆踩在虚空之上。他们在试图将自己研发的所谓“算法”落地时,做的事情往往就是:管应用方要一份数据集,把分数刷上去,超过某些方法,就算是交付了,却完全不分析问题。刷分的手段包括但不限于搜参数(提几百个任务爆搜,连训几个 epoch 都要搜),堆大模型,搞集成。不会优先考虑工程上是否能接受,是否具备应对其他情况的泛化能力,或者这个“算法”是否还有未来成长空间。

但也正如前文所说,我们也必须承认,ImageNet 点燃了如今深度学习的火爆,而 BERT 也是在 GLUE 上第一次秀了肌肉。

将基准指标当作应用的性能

如今,即是是在商业营销策略中,也往往会假如通用基准的性能,其打分成为了衡量技术成就的重要依据。基准性能的重要性被严重扭曲,成为了选择算法的工具,和部署模型预期成就的重要标志。例如2021年1月,微软说:“DeBERTa在SuperGLUE上超越了人类性能,被看作是通用AI的重要里程碑”。

ImageNet 也被同样视作是商业模型成功的依据——以至于曾有为获得更大的营销影响力,在此基准上作弊的事件。

过分夸大基准指标的性能,则会导致,一些子任务、子领域上,模型表现不佳,很容易被总体的指标所掩盖,从而导致一个不够可靠,或不够安全的 AI 系统被交付使用。最近一些有关人工智能伦理的讨论中,明显举出了相关的 case,如面部识别系统对有色人种的偏见之类的。

可行的道路

在前文中我们批判了那么多通用基准本身的限制,及其所带来的危害,但我们又不可能放弃使用基准评测,所以就需要找准基准评测在评估模型性能中,真正应该扮演什么样的角色,而不是一味地去修复、扩展、改善现有通用基准。毕竟想要去解决“世界上所有的东西”的方法,不是不断地放新的东西进来。

评估基准如果完全脱离了使用情境、定义范围和特异性,本身就成为了机器学习评估的错误假设。所以,我们可以有两个方向:

  • 按照预期的能力或应用,去开发、展示、解释评测基准,去评估具体的、范围明确的、与情境相关的任务。探索基准指标之外,更为广泛的模型评测目标、行为或能力,不同的领域,探索其他可选的评估方法。
  • 采用软件系统开发的测试思路,模块化地测试模型,从而展示出在模型所应对的问题空间中,尚存哪些缺陷或偏差,及其所带来潜在的危害

也正如我在算法工程师文章中所说,做好 case 分析、归类,确定问题,做好消融分析,并综合的考量技术方案的种种属性,选择合适的算法。

总结

现如今,机器学习领域在遵循着一个逻辑谬误:把基准上的性能指标当作通用能力提升的证明,然而包罗万象的数据集是不可能存在的。而现在看来,受限的基准性能或许只能当作一个定性的指标,即证明模型通用能力的必要不充分条件,可也仅仅适用于基准的数据集未超出任务所描述的能力范围。

基准开发对机器学习发展仍尤为重要,但其有效性不在于武断、虚假的“通用性”,而是用来帮助研究者们了解,一些算法为什么能 work,或为什么不 work。如应用得当,不是作为内卷的比赛,而是将之落地到具体的情境中,适当纳入算法的评估,那么它会成为有影响力的算法的重要评估维度。

而去探索能够替代基准数据集的角色,首先则需要将视野从“描述全世界的一切”这种狭隘的目标中解脱出来。

一些感想

在我看来,或许近两年,SOTA真的是卷不动了。原本,可能今年的小样本学习风潮,可能给SOTA内卷续了个命,但没成想,大厂入场竞技,大力出奇迹长期霸榜,学界也相当难。

我本人也亲眼见证了内卷:我的一位同事,今年在 TPLinker 的基础上,做了一些方法上的改进,结果和 ACL 的一篇论文直接撞了 idea,几个月的工作付诸东流。从今年的风向看,或许真的已经卷无可卷了。上半年,Ng老师推出了以数据为中心的比赛;EMNLP2021 中,最佳 paper 和杰出 paper 中,谈论数据集质量的文章比例明显多了起来;萌屋文章从 ACL’22 投稿情况,速览当下 NLP 研究热点!中也提到,在新发表的paper中,数据相关的工作比例越来越高,数据的价值越来越重要。

无独有偶,12月 Meta 发表的文章中提到,各种对 transformer 中 attention 的优化,虽然在各基准中跑出了提升,但实际测下来,还是不太行,甚至不如传统的 attention ,侧面也说明了,有限的基准给人带来的误解。

这种趋势,虽然是内卷之下无奈的产物,但总归是走向了相对正轨的发展道路。我之前在萌屋发表的文章中,多次强调着数据的重要性,任务设计的合理性,基准指标的缺陷。而今,终于在会议上,也被拿上了台面。诚然本文言论中有偏激的地方,作者的用词也不可谓不凶狠(笔者添油加醋,也好好阴阳怪气了一把),但开启了这方面的讨论,总归是一件好事儿。

Google 发表了这篇文章,则也是给了我更多的信心,让我得以更好地解释,接下来即将发表及开源的工作。

Google掀桌了,GLUE基准的时代终于过去了?_人工智能_03

萌屋作者:Severus

Severus,在某厂工作的老程序员,主要从事自然语言理解方向,资深死宅,日常愤青,对个人觉得难以理解的同行工作都采取直接吐槽的态度。笔名取自哈利波特系列的斯内普教授,觉得自己也像他那么自闭、刻薄、阴阳怪气,也向往他为爱而伟大。


Google掀桌了,GLUE基准的时代终于过去了?_深度学习_04


标签:Google,通用,基准,掀桌,任务,GLUE,数据,模型
From: https://blog.51cto.com/xixiaoyao/6239743

相关文章

  • google map初级尝试
    新建的是googlemap工程packagecom.wt.app;importandroid.os.Bundle;importcom.google.android.maps.GeoPoint;importcom.google.android.maps.MapActivity;importcom.google.android.maps.MapController;importcom.google.android.maps.MapVi......
  • google地图常用方法
    googlemapapiv31.计算两点间距离加载geometry库复制代码代码如下:<scripttype="text/javascript"src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=geometry"></script>计算距离复制代码代码如下:varmeters=google.maps.geometry.spherical......
  • GMaps.js:让你快速集成 Google Maps 服务的 jQuery 插件
    GMaps.js功能除了添加指定经纬度的标准地图之外,GMaps.js还能定义地图放大的级别,添加标注,获取当前用户的地理位置(HTML5geolocation),定义路线,绘制折线,并且实现这些功能只需要简单的几行代码。另外GMaps.js每个动作都有callback函数让你去集成自定义事件。目前GMaps.js没有详......
  • Chrome浏览器中的隐藏用法 - Google浏览器协议
    谷歌浏览器本身自带的协议其实这些协议当我们在打开设置的时候,地址栏也会显示的释放内存chrome://restart,使用这个命令后,浏览器会立刻关闭并重新开启,重新开启时会恢复之前打开的页面谷歌应用chrome://apps,该命令会打开谷歌浏览器的应用,是单独的一个不在浏览器页面的应用谷......
  • java 类似于google搜索提示的功能,文本框输入提示
    需要先导入数据库,并且在SearchSuggest中改数据库连接参数黑色头发:http://heisetoufa.iteye.com/......
  • google play 内购数据拉取
    拉取googleplayconsole后台内购数据收入。1:查看官方文档: https://support.google.com/googleplay/android-developer/answer/6135870?visit_id=638180953496505768-3845517287&p=stats_export&rd=1#export这里采用 从GoogleCloudStorage下载报表-》使用用户端程式库和......
  • Google浏览器 查看http版本是1.1还是2.0
    1、打开网页2、F12进入开发者模式3、找到请求4、找到请求头5、找到ResPonseHeather点击Viewparsed......
  • uniapp 打包aab上传到google play的时候google 登录报异常
    因为App上传到GooglePlay后,会被重新签名(PlayAppSigning)谷歌为你生成的签名SHA-1将谷歌为你生成的签名SHA-1证书指纹复制到本应用已创建的凭据SHA-1处,点击保存后,ClientID并没有变,所以不用重新打包。现在,不用等,你可以试试Google+登录了。Google+登录ok。参考地址:https......
  • Google Cloud磁盘空间占满导致无法ssh进入的解决方案
    GoogleCloud磁盘空间沾满导致ssh无法进入的解决方案我他妈真的吐了,昨天在写apriori算法的时候,chatgpt弄了半天都不对,然后我重新看了下这个算法,发现其实也不难,就暴力写了个。因为python的类型太过自由,一直以2行/分钟的速度在推进度(用C++早tm写完了呀),然后终于跑出来了一些像样的......
  • Google Guava常用的代码示例
    GoogleGuava谷歌出品的,非常实用。包含集合、并发、I/O、散列、缓存、字符串等。依赖:<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version></dependency>JoinerJoiner可以连接字符串。常用方法:Joine......