谷歌cloud
1 Aug 2020, I checked to see that the registration page which a week ago showed “we have sufficient beta test takers and registration is closed” is surprisingly active again. I looked through the exam booking calendar to see the latest date on 21 Aug 2020, after which even scrolling till Aug 2021 presented no available slots.
2020年8月1日,我检查了一个注册页面,该页面一周前显示“我们有足够的Beta测试人员并且注册已关闭”,这令人惊讶地又活跃起来了。 我查看了考试预约日历,以查看2020年8月21日的最新日期,此后甚至滚动到2021年8月都没有可用的空位。
GCP exams usually recommend 3+ years of industry experience, including 1+ years of designing and managing solutions using GCP, none of which I had, but you only get to try Beta once, so challenge accepted, and a plan transpired: https://www.meistertask.com/projects/lgkxmr98po/join/
GCP考试通常推荐3年以上的行业经验,其中包括1年以上使用GCP设计和管理解决方案的经验,我没有,但是您只能尝试一次Beta,因此接受了挑战,并制定了计划: https:/ /www.meistertask.com/projects/lgkxmr98po/join/
If you want to make edits, please duplicate the project and then remove yourself as a member from the original project, don’t archive or edit the original because it affects my copy.
如果要进行编辑,请复制项目,然后从原始项目中删除自己的成员身份,请勿归档或编辑原始项目,因为它会影响我的副本。
I knew there was time to go through any material for only one pass, so focus and efficiency is crucial, then I discovered creating flashcards using PowerPoint filled with screenshots (~120) of material I have gone through is really helpful to jogging memory.
我知道只有一段时间才能通过任何材料,因此重点和效率至关重要,然后我发现使用PowerPoint创建的抽认卡充满了我所经历过的材料的屏幕快照(〜120个),确实有助于慢跑记忆。
演示地址
Unfortunately, I did not complete the recommended Machine Learning with TensorFlow on Google Cloud on Coursera and only went through Big Data and Machine Learning Fundamentals, and the first 2 courses (they covered a majority of what’s necessary) of Advanced Machine Learning with TensorFlow on Google Cloud Platform Specialization. However, going through the slides of all the other recommended courses was significantly helpful to the exam (especially the 5th course in the advanced specialization). A significant amount of knowledge covered in the exam also came from Google’s machine learning crash course.
不幸的是,我没有完成在Coursera上使用Google Cloud上的TensorFlow进行机器学习的推荐课程,仅完成了大数据和机器学习基础知识课程,并且通过Google上的TensorFlow进行了高级机器学习的前2门课程(涵盖了大部分必要知识)。云平台专业化。 但是,浏览所有其他推荐课程的幻灯片对考试很有帮助(尤其是高级专业课程中的第五门课程)。 考试涵盖的大量知识也来自Google的机器学习速成课程。
Most of the preparation tips I have are collected in the MeisterTask planner above already, so I will share my thoughts after taking the exam.
我已经掌握的大多数准备技巧已经在上面的MeisterTask规划器中收集,因此在参加考试后,我将分享我的想法。
第1节:机器学习问题框架 (Section 1: ML Problem Framing)
Be able to translate the layman language in the question to machine learning terminology, such as what kind of algorithm to use to solve what real-life problems. Read the question carefully, it is not as straightforward as just looking at the label type. Some questions seemed completely business-oriented and required an understanding of business metrics and what is good for the customer.
能够将问题中的外行语言翻译成机器学习术语,例如用来解决实际问题的算法。 请仔细阅读问题,它不像查看标签类型那样简单。 有些问题似乎完全面向业务,需要理解业务指标以及对客户有什么好处。
第2部分:ML解决方案架构 (Section 2: ML Solution Architecture)
IAM and permissions may have been implicitly tested through the MCQ options provided, so know what GCP products have additional security features beyond the general IAM. Know what products can be used at each stage (ingest, transform, store, analyze) of a data pipeline. Read very carefully the current state of the company in question and do not choose options that repeat what has already been done by the company or what is too far ahead.Know the differences between GPU and TPU acceleration and what makes either option impossible or undesirable so the choice is immediately clear once you see the key points in the question. Learn generally about what KMS, CMEK, CSEK do, and how they are used to deal with privacy requirements.
IAM和权限可能已通过提供的MCQ选项进行了隐式测试,因此请了解哪些GCP产品具有除常规IAM之外的其他安全功能。 知道在数据管道的每个阶段可以使用哪些产品(输入,转换,存储,分析)。 请仔细阅读有问题的公司的现状,不要选择重复公司已经做过的事情或太遥远的事情的选择。了解GPU和TPU加速之间的差异以及导致选择不可行或不受欢迎的原因一旦您看到问题的关键点,就可以立即清楚选择。 大致了解KMS,CMEK,CSEK的功能,以及它们如何用于处理隐私要求。
第三节:数据准备和处理 (Section 3: Data Preparation and Processing)
Be familiar with translating modelling requirements into the right feature engineering steps (hashes, bins, crosses), and hashing for repeatable train-test-split. MLCC (https://developers.google.com/machine-learning/crash-course) is thorough on this. Statistical methods of feature selection should be compared and understood. Quotas and limits are implicitly tested through the options showing substitute products at a particular stage in a pipeline. Knowing common uses of DataFlow vs Cloud Functions would help.Learn how TFrecords feature in data pipelines and the general ML flow involving them, such as when to convert to them, how to train-test-split with them. Be able to identify data leakage and handle class imbalance (MLCC covers this)
熟悉将建模需求转换为正确的要素工程步骤(哈希,分箱,十字)和哈希以实现可重复的火车测试拆分的过程。 MLCC( https://developers.google.com/machine-learning/crash-course )对此很详尽。 应该比较和理解特征选择的统计方法。 通过显示管道中特定阶段的替代产品的选项来隐式测试配额和限制。 了解DataFlow与Cloud Functions的常见用法将有所帮助。了解TFrecords在数据管道中的功能以及涉及它们的常规ML流,例如何时转换为它们,如何使用它们进行训练-测试-分裂。 能够识别数据泄漏并处理类不平衡(MLCC涵盖了这一点)
第4节:ML模型开发 (Section 4: ML Model Development)
Know the spectrum of the modelling tools on GCP(BQML, SparkMLlib, AutoML, ML API, AI Platform) and their degree of no-code to transfer learning to full custom code. Modelling speed and accuracy are competing requirements. Learn how data/code moves in between GCP ML components and look out for import/export shortcuts and their formats.Know what kinds of explanations are available in AI Explanations for what types of data.
了解GCP(BQML,SparkMLlib,AutoML,ML API,AI平台)上的建模工具的种类及其无代码的程度,以将学习转移到完整的自定义代码。 建模速度和准确性是相互竞争的要求。 了解数据/代码如何在GCP ML组件之间移动,并注意导入/导出快捷方式及其格式。了解AI解释中提供了哪些类型的数据类型。
第5节:机器学习管道自动化与编排 (Section 5: ML Pipeline Automation & Orchestration)
Most of the questions were asked at a higher level than I expected, so running through Kubeflow pipelines UI with Qwiklabs, looking at the sample code to see how components connect and understanding how TFX vs Kubeflow differ is sufficient. Note how some things can be done on-prem vs GCP. Learn how to build Kubeflow pipelines fast. There is always a competing concern between no flexibility but fast copy-paste development vs full flexibility but time-consuming development from scratch. Neither is always better, depends on where the company is at in terms of skills and product, and what infrastructure, libraries they currently use or are planning to go towards, so read the question.
大部分问题的提出都比我预期的要高,因此,使用Qwiklabs在Kubeflow管道UI中运行,查看示例代码以查看组件之间的连接方式,并了解TFX与Kubeflow有何不同。 请注意如何在本地与GCP上完成某些工作。 了解如何快速构建Kubeflow管道。 在没有灵活性而是快速复制粘贴开发与完全灵活性但从头开始进行耗时的开发之间始终存在竞争性关注。 两者都不总是更好,这取决于公司在技能和产品方面所处的位置,以及他们当前使用或计划使用的基础设施,库,因此请阅读问题。
第6节:机器学习解决方案的监视,优化和维护 (Section 6: ML Solution Monitoring, Optimization, and Maintenance)
Know the tools to analyze model performance during development. and continuously evaluate model performance in production. Pipeline simplification techniques are introduced in the 2nd course in the Advanced Machine Learning with TensorFlow on Google Cloud Platform Specialization.
了解在开发过程中分析模型性能的工具。 并持续评估生产中的模型性能。 在Google Cloud Platform Specialization上使用TensorFlow进行高级机器学习的第二门课程中,介绍了管道简化技术。
一般考试技巧 (General Exam Tips)
Some questions are really short that you can answer within 5 seconds. Some time burners exist where the options are longer than the question. Some options can be guessed correctly through careful reading of requirements and common sense. Understand what the question wants and go for the option that does things just right, not more, not less. Some options are a subset of other options. Sometimes the best answer does not fulfil 100% of the question’s requirements, but the other options are even more wrong. Sometimes the closest answer suggests you do something undesirable to solve a higher priority problem, so there are elements of sacrifice. There were not many “tick all that is correct” questions. There are general python questions and Tensorflow debugging questions that require real hands-on experience which Qwiklabs will not offer because they can only teach how to succeed, not how to fail.
有些问题确实很简短,您可以在5秒钟内回答。 存在一些时间燃烧器,其中选项比问题更长。 通过仔细阅读需求和常识,可以正确猜出某些选项。 了解问题的要求,然后选择做正确的事情,而不是更多,更少。 一些选项是其他选项的子集。 有时,最佳答案不能满足问题的100%,但是其他选择则更加错误。 有时,最接近的答案表明您为解决更高优先级的问题而采取了一些不受欢迎的措施,因此存在一些牺牲的因素。 没有太多的“勾选所有正确的”问题。 有一些通用的python问题和Tensorflow调试问题需要Qwiklabs无法提供的实际动手经验,因为它们只能教如何成功而不是如何失败。
Read the options first and form a mental decision tree of what are the decision variables to seek from the question. There seems to be very little of the “permute 2 options on 2 decision variables to make up 4 MCQ options”, but mainly slightly different options, with up to 4 all correct, but just meeting the requirements at 0–20%, 50%, 70%, 90–100% effectiveness. Some parts of the multi-part options are repeated so there is no need to choose there. Much of the question could be irrelevant once you parse the options so reading the question anymore is wasting time. Filtering out irrelevant options is an effective speed booster. If it’s not obvious where the variances in the options are and you have to read the whole question, always start from the big picture of the current state of the company, what stage of the SDLC are they in. If you know the question is talking about deployment, all options regarding development can be eliminated. The options being multi-part could confuse people and make it harder, but it also means there are more opportunities for elimination, so even if you don’t understand all the parts of the option, you just need to find one part that makes the whole option wrong.
首先阅读选项,并形成一个心理决策树,该决策树是从问题中寻求的决策变量。 “在2个决策变量上排列2个选项以构成4个MCQ选项”的情况似乎很少,但主要是稍有不同的选项,最多4个都正确,但仅满足0–20%,50%的要求,70%,90-100%的效果。 多部分选项的某些部分被重复,因此无需在那里选择。 解析选项后,大部分问题可能都无关紧要,因此再阅读该问题将浪费时间。 过滤掉无关的选项是有效的速度提升器。 如果不清楚选项的差异在哪里,并且您必须阅读整个问题,请始终从公司当前状况的大背景开始,他们处于SDLC的哪个阶段。如果您知道问题在讨论中,关于部署,可以消除所有与开发有关的选项。 包含多个选项的选项可能会使人们感到困惑并使其更加困难,但这也意味着有更多的消除机会,因此,即使您不了解选项的所有部分,您也只需要找到一个使选项变得更简单的部分即可。整个选项错了。
If time permits, prove not only why your selection is correct, but also why all other options are not on your first pass. If short on time, it is easier to prove options wrong than how the possibly correct one matches all requirements. I had only 24 minutes left to review 58/120 and only managed to review 20.
如果时间允许,不仅要证明选择正确的原因,而且要证明所有其他选择都不在您的第一遍。 如果时间很短,则证明选项错误的方法比可能正确的选项符合所有要求的方法容易。 我只剩下24分钟的时间查看58/120,而仅查看20。
处理考试界面 (Handling the Exam UI)
Questions load page by page and there are 4 buttons on every page (back, forward, review all, submit). Do not submit until all questions are done and reviewed. The review page will show how many were answered and put an asterisk beside those you marked for review. Have a low threshold for marking review (i had 58/120), because it costs a lot of time to click the back button repeatedly and look for something you did not mark for review but later wanted to. However, if you realize in the middle you don’t have 1 min to spare per review, start having a higher threshold for review because having too many asterisks at the end means you could spend time reviewing things you are pretty sure of already rather than on the ones that really need review. The “review all” page only shows you question numbers (with an optional asterisk) and your selection, with no question preview text at all, so unless you have great memory it’s hard to know which number corresponds to which question, so you may have to go through all the asterisks.
问题逐页加载,每页上有4个按钮(后退,前进,全部复查,提交)。 在完成所有问题并进行审核之前,请不要提交。 评论页面将显示回答了多少,并在您标记为要评论的对象旁边加上星号。 标记评论的阈值较低(我为58/120),因为重复单击后退按钮并查找您未标记为评论但后来想要标记的内容会花费大量时间。 但是,如果您发现在中间没有足够的时间来进行每次审核,则可以开始提高审核门槛,因为最后的星号太多意味着您可以花一些时间来审核已经确定的事情,而不是花一些时间而不是那些确实需要审查的内容。 “全部查看”页面仅显示您的问题编号(带有可选的星号)和您的选择,根本没有问题预览文本,因此,除非您有足够的记忆力,否则很难知道哪个编号对应于哪个问题,因此您可能拥有遍历所有星号。
Jot down on first pass in the comments box below every question(not sure if this box is only a beta feature) why certain options are wrong so when coming back to review, you don’t restart the question from nothing and can immediately think through only the possibly correct competing options. Another use for the comment box is to record concepts you are unsure of. There could be future questions you come across that resolve such uncertainty by providing the answer as a given in the question, such as what tools are used together, which tools call which tools. Google has a history of offering non-existent options, but if you see the same option/concept appearing in more than 1 question, it is likely possible.
在每个问题下方的评论框中记下首次通过(不确定此框是否仅是beta功能),为什么某些选项是错误的,因此在重新审阅时,您不会从无到有地重新提问题,可以立即思考只有可能正确的竞争选择。 注释框的另一个用途是记录您不确定的概念。 通过提供问题中给定的答案,您可能会遇到将来解决这些不确定性的问题,例如哪些工具一起使用,哪些工具称为哪些工具。 Google一直提供不存在的选项,但是如果您在一个以上的问题中看到相同的选项/概念,则很有可能。
Don’t click the Back button 2x in succession to prevent accidental submission, because the submit button will be loaded right under your cursor after the 1st click. The back and forward take about 3–5 seconds to load, where the timer stops, so you can get some extra time to think while the page loads. Don’t type in CAPS using shift lest you do a Ctrl+C/X or some other combination that gets your exam locked (i got locked twice, luckily I did it onsite so a proctor was there to unlock, not sure how it works if done remotely).
不要连续两次单击“后退”按钮以防止意外提交,因为第一次单击后,“提交”按钮将立即加载到光标下方。 向前和向后加载大约需要3–5秒钟,计时器会在此位置停止,因此您可以在页面加载时获得更多的时间来思考。 请勿使用班次输入CAPS,以免您执行Ctrl + C / X或其他某种锁定考试的组合(我被锁定两次,幸运的是我在现场进行过锁定,所以督导员在那里解锁,不确定其工作原理如果是远程完成)。
学习策略 (Study Strategy)
If you have time
如果你有时间
Follow the recommended courses first before going to the tutorials (search ai platform on https://cloud.google.com/docs/tutorials and you cover 95%, the rest are GCS, PubSub, Cloud Functions, Bigquery). The courses cover a majority of what’s tested. Another benefit is when you know the concepts already, reading the tutorials will organize the individual tools and concepts into an entire architecture. You can then use the knowledge from tools to ask questions about how a tool performs against another in this architecture, how to stretch its limits, can it be connected to another source/sink, how does 1 tool’s quotas/limits affect another tool’s limits in the pipeline, where/which tools are the common bottlenecks, where is seldom a bottleneck, where are the serverless parts (2 types: can configure vs no need to configure) and which parts are not serverless.
在转到教程之前,请先按照推荐的课程进行操作(在https://cloud.google.com/docs/tutorials上的ai平台上搜索,您占95%,其余为GCS,PubSub,Cloud Functions,Bigquery)。 这些课程涵盖了大部分测试内容。 另一个好处是,当您已经了解概念时,阅读教程会将各个工具和概念组织到整个体系结构中。 然后,您可以使用工具中的知识来询问有关该工具在该体系结构中相对于另一工具的性能如何,如何扩展其限制,是否可以连接到另一个源/接收器,一个工具的配额/限制如何影响其他工具的限制的问题。管道,哪里/哪些工具是常见瓶颈,哪里很少是瓶颈,哪里是无服务器部分(两种类型:可以配置vs无需配置)以及哪些部分不是无服务器的。
Opening multiple tools when doing Qwiklabs is useful, such as always keeping the VM console page on, to learn that your 1-click GKE cluster deployment is actually provisioning 3 VMs by default under the hood with certain settings, or that your “Open JupyterLab” click in AI Platform notebooks has provisioned one VM of certain machine type behind the scenes, or that the startup script that was automatically run when you do some Qwiklabs has set up some git clone behind the scenes already. Keeping the GCS console open is important too since so much of GCP AI tools depend on buckets.
在执行Qwiklabs时打开多个工具很有用,例如始终保持VM控制台页面处于打开状态,以了解您的一键式GKE群集部署实际上是在默认情况下使用某些设置配置了3个VM,或者“ Open JupyterLab”在AI平台中单击笔记本已在幕后预配置了某种机器类型的VM,或者在执行一些Qwiklabs时自动运行的启动脚本已经在幕后设置了一些git clone。 保持GCS控制台保持打开状态也很重要,因为很多GCP AI工具都依赖存储桶。
If you don’t have time
如果你没有时间
Read the tutorials and documentation (overview, best practice, faq) straightaway. This is the more difficult path because there will be many unknown concepts while going through the tutorials, and they may be too in-depth, that level of knowledge covering < 10% of what’s tested. However, they serve as the fastest starting point for the learner to know the unknowns.
立即阅读教程和文档(概述,最佳实践,常见问题)。 这是一条比较困难的路径,因为在学习教程时会遇到许多未知的概念,而且它们可能太深入了,知识水平不足被测内容的10%。 但是,它们是学习者了解未知事物的最快起点。
Know the gcloud SDKhttps://cloud.google.com/sdk/gcloud/referenceThis is the fastest way to know what Google has and how it is named. Expand each section to see the method names and you will have an idea of what services are available without trawling through GCP console UI. This page also alerts you to doc pages you may have missed and helps solve questions that test the correct command to use.
知道gcloud SDK https://cloud.google.com/sdk/gcloud/reference这是知道Google拥有什么以及如何命名的最快方法。 展开每个部分以查看方法名称,您将无需通过GCP控制台UI即可了解哪些服务可用。 此页面还会提醒您可能丢失的文档页面,并有助于解决测试正确使用命令的问题。
“恐怕我是一个新手,实在太难了。” (“I’m afraid I’m too much of a newbie to go for it.”)
Photo by Jonathan Borba on Unsplash 乔纳森·博尔巴 ( Jonathan Borba)在 Unsplash上 拍摄的照片On Day 1, I had totally no idea what 53/81 bullet points in the exam guide meant, or how to achieve those points. After studying https://developers.google.com/machine-learning/crash-course, I also realized some of the 28/81 which I thought I knew, was not what it’s supposed to be.
在第一天,我完全不知道考试指南中的53/81要点是什么意思,或者如何实现这些要点。 在学习https://developers.google.com/machine-learning/crash-course之后 ,我还意识到我认为我知道的28/81中的某些内容不是应该的。
I don’t think having a ton of ML knowledge is necessary for these reasons.
由于这些原因,我认为不需要大量的ML知识。
- The exam has very little implementation/ debugging questions, mostly focusing on GCP tool selection and solution architecting (sometimes open-source tools are given as options but usually GCP tool wins for serverless scalability). I would definitely have not attempted with 20 days of study if any implementation is required. 该考试几乎没有实施/调试问题,主要集中在GCP工具选择和解决方案架构上(有时提供开放源代码工具作为选项,但通常GCP工具因无服务器可伸缩性而获胜)。 如果需要任何实施,我绝对不会尝试20天的学习。
- Even if someone did something before (eg. handling imbalanced data), he may not have done it in the google suggested way. Yes, it’s not as objective and there are indeed google recommended practices to memorize. 即使有人以前做过某事(例如处理不平衡的数据),他也可能未按照Google建议的方式做过。 是的,它不那么客观,确实有google建议的做法可以记住。
- A good portion of the exam is on GCP specific tools, commands, workflows. If someone does not study GCP, he won’t know what’s possible, or how development, test, deploy, monitor workflows are done using GCP tools. Knowing how to do it outside GCP does not mean it’s the correct answer. Often on-prem tools or doing it locally is wrong in the exam context. 考试中有很大一部分是针对GCP专用工具,命令和工作流程的。 如果某人不学习GCP,他将不知道有什么可能,或者不知道如何使用GCP工具完成开发,测试,部署,监视工作流。 在GCP之外知道如何做并不意味着它是正确的答案。 在考试环境中,通常使用本地工具或在本地进行操作是错误的。
- It is not in Google’s favour to make exams incredibly hard. People who have enough experience would not need the certificate to prove anything. Making it too hard discourages people from studying for the exam, which means fewer GCP users, fewer exam fees earned, less open-source companies employing these test takers and switching to GCP on a company level. 使考试变得异常困难不利于Google。 有足够经验的人将不需要证书来证明任何东西。 太难了,不鼓励人们参加考试,这意味着GCP用户减少,考试费用减少,聘用这些应试者的开源公司减少,并在公司一级转换为GCP。
Some arguments supporting the benefit of previous experience:
一些支持先前经验的论点:
- Dataflow is based on Apache Beam, Cloud Composer on Airflow, AI Platform pipelines on Kubeflow, so if you already used the open-source version, you can go through code in tutorials faster, and know why some tools are overkill and obviously the wrong choice compared to another tool in the multiple-choice. But remember again, implementation is rarely tested. What’s more important is knowing what GCP specific source and sinks are available for Dataflow, and how a GCP pipeline allows for certain workflows/shortcuts, which may not have been possible with open source tools. Dataflow基于Apache Beam,Airflow上的Cloud Composer,Kubeflow上的AI Platform管道,因此,如果您已经使用了开源版本,则可以更快地遍历教程中的代码,并且知道为什么某些工具过大并且显然是错误的选择与多项选择中的另一种工具相比。 但请记住,实现很少经过测试。 更重要的是知道哪些GCP特定的源和接收器可用于数据流,以及GCP管道如何允许某些工作流/快捷方式,这在开源工具中是不可能实现的。
- People who read/experience more can better distinguish which business metric to apply for what situation or what ML problem can be framed from given features and vague requirements. However, there is only very basic ML, technical jargon required before common sense can take over. 阅读/经验丰富的人可以从给定的功能和模糊的需求中更好地区分哪种业务指标适用于哪种情况或哪种ML问题。 但是,在常识可以接管之前,只需要非常基本的ML,技术术语。
- People who read/experience more will know more ways to do something or more ways something can go wrong and its negative impact, and use that knowledge to be able to identify and infer what went wrong when presented a scenario and what steps to take to fix it. (eg. Data leakage, bad train-test-split, training-serving skew, underfitting). However, knowing solutions is not enough, because you must also know what to try first, and here comes again google recommended practices to study. 阅读/经验丰富的人们将知道更多的方法去做某事,或者更多的方法可以去做错事及其负面影响,并利用该知识能够识别和推断出出现场景时出了什么问题以及应采取哪些步骤进行修复。它。 (例如,数据泄漏,不良的训练测试拆分,训练服务偏斜,拟合不足)。 但是,仅了解解决方案是不够的,因为您还必须先知道要尝试什么,然后再来一次Google推荐的学习实践。
As a final disclaimer, it is unlikely that anyone can pass this in 20 days without previous experience which helps answer the debugging questions and to react faster to evaluation metrics like (precision, recall, F1, AUC), but this article hopefully motivates people who are considering that it can be done.
作为最后的免责声明,没有任何经验的人不可能在20天之内通过此标准,这有助于回答调试问题并更快地对诸如(精度,召回率,F1,AUC)之类的评估指标做出React,但是本文希望能激发那些正在考虑可以做到的。
Feel free to connect with me on Linkedin if you have any more questions or like to share your experience: https://www.linkedin.com/in/hanqi91/
如果您还有其他疑问或想分享您的经验, 请随时在Linkedin上与我联系: https : //www.linkedin.com/in/hanqi91/
翻译自: https://towardsdatascience.com/20-days-to-google-cloud-professional-machine-learning-engineer-exam-beta-b48909499942
谷歌cloud