规避制裁,全球最大开源代码平台要来中国
► 文 观察者网 白紫文
为了规避美国可能对华采取的强硬措施,美国开源代码平台GitHub计划在中国开设子公司。
GitHub 首席运营官埃里卡·布雷西亚(Erica Brescia)在接受英国《金融时报》采访时表示,公司正在计划分阶段落地中国,首先会考虑设立外资全资子公司,雇佣相应的总经理和雇员,然后探索合资企业以及由中国托管 GitHub 内容的可能性。
GitHub 首席运营官埃里卡·布雷西亚 图自 GitHub
中国对 GitHub 落地国内也表示欢迎。英国《金融时报》称,GitHub受到了中国的热情接待,并已经与中国相关部门商讨了相关事宜。
“(中国)认为开放源代码是建立在他人创新基础上的一种好方法,显然,它提供了更多的安全感,因为它不受美国任何贸易限制的约束,”布雷西亚说道,“我认为中国总体上一直在围绕开源进行战略性推动,因为它提供了一种在不依靠专有技术的情况下,与其他开发世界联系的方式。”
作为全球最大的开源代码社区网站,GitHub去年被微软以75亿美元收购。而美国目前对华的强硬态度让GitHub既担心受制于美国的对华制裁,又担心失去中国用户的信心。
据科技资讯网站“Tom\’s HARDWARE”报道,许多受访的中国软件开发人员对于美国出口禁令表示担忧,他们担心禁令最终会导致他们无法接入GitHub代码库。
而GitHub 访问一旦受限,程序员、科技公司都会头疼。ZAKER科技出品的《硅谷望远镜》介绍称,包括苹果、谷歌、微软等科技巨头的开源程序都存放在 GitHub,比如 TensorFlow ——世界上最受欢迎的开源机器学习框架。
GitHub 曾经就有过限制受美国制裁地区的用户接入GitHub的举措。据科技网站“The Verge”7月29日报道,来自克里米亚和伊朗的GitHub用户都发生过账号被GitHub网站官方限制使用的情况。
而在中国开设子公司则可以很快确保国内用户接入重要的GitHub代码库时不被限制。GitHub并不想因为美国的对华措施而失去庞大的中国市场。
此外,中国对GitHub在中国开设子公司的欢迎态度也被解读为,中国正在采取积极措施,力图摆脱对外国硬件和软件的依赖。这样的措施就包括基于开源项目的相关替代方案,而GitHub上托管着大量的开源代码资源。
另一方面,中国也在尝试开发自己的开源项目。今年早些时候,华为宣布联合其他国内科技公司成立开源基金会,华为消费者BG软件部总裁王成录表示,“我们现在的软件的开发,开源是大家都无法再去把它忘掉的模式,那么这些开源的时候的代码,如果中国没有自己的开源社区去维护管理这些代码,我们中国的所有的软件行业将是非常危险的。”
– 完 –
秒变AI算法专家,还完全免费!这个国际开源AI平台真香
智东西(公众号:zhidxcom)作者 | ZeR0编辑 | 漠影
智东西5月10日报道,近期,一个规模化AI模型生产平台在Github悄然上线。
这个平台叫AI SUITE – YMIR(中文名:挖米匠),能以无代码开发方式,实现数据管理、数据挖掘、模型训练、模型验证等功能。
由于各功能均已开源,你既可以用这个平台高效训练出AI模型,也可以按需任意修改代码,并且无论是个人使用或商用,都完全免费!
其核心发起人阵容亦相当吸睛,有多位知名国际AI大牛,包括:云天励飞首席科学家王孝宇;美国硅谷NEC实验室媒体分析部主管、UCSD教授,印裔科学家Manmohan Chandraker;前谷歌、亚马逊、Snap机器学习研究员,硅谷初创公司Heali联合创始人、首席AI官,法裔科学家William Brendel等等。
▲云天励飞首席科学家王孝宇(图左),印裔科学家Manmohan Chandraker(图中),法裔科学家William Brendel(图右)
王孝宇告诉智东西,有多家美国科技巨头公司的首席AI官担任这个开源项目的顾问。
此前,YMIR主要发起人撰写的论文《YMIR: A Rapid Data-centric Development Platform for Vision Applications》已被国际顶级机器学习会议NIPS 2021收录。
▲YMIR论文
除了大牛云集外,在上手试用YMIR平台后,智东西的感受是,对于有一定编程基础的开发者而言,这个平台绝对会带来生产力的飞跃。
曾经TensorFlow、PyTorch等开源框架,掀起了AI开发普及的盛世,那么如今这些国际AI大牛发起的开源AI基础软件平台,又能带来哪些改变?
相比此前已有的AI模型开发平台,YMIR有哪些独特优势?它通过怎样的核心技术,来满足在真实业务场景中大批量生产模型的需求?
带着问题,智东西联系到了YMIR平台的几位发起人和核心研发成员,挖掘其背后的技术真经。
YMIR项目链接:http://www.viesc.com/Github传送门:https://github.com/IndustryEssentials/ymirYMIR论文链接:https://arxiv.org/pdf/2111.10046.pdf
为什么国际AI科学家们,要联合发起这样一个开源AI模型生产平台?
云天励飞首席科学家王孝宇是YMIR平台的核心发起人之一,据他回忆,发起YMIR的初衷,是希望通过开源AI系统能力,让每一家企业都能拥抱AI,加速AI产业化、平民化。
未来AI会渗入各行各业,AI能力或AI思维将会成为一个从业者需具备的基本素质,但因资源有限,每个企业都招聘很多博士去做AI开发是不现实的。
这也是YMIR核心发起团队的共识:加速AI普及,一定需要一个开源平台,来帮助AI企业低门槛、高质量地完成AI开发。
▲YMIR主页
就像40年前,使用电脑是一项专业技能,而随着Windows操作系统、Office办公软件等工具地发展,如今基本受过高等教育的人都会使用电脑。
AI亦是如此,要从早期过程不标准化、对人才专业度要求高的“快糙猛”研发方式,过渡到大规模应用于各垂类行业阶段,搭建系统性能力平台至关重要。
“业内 虽然已有不少开源项目,但还缺少针对算法研发全流程工作的产品级开源工具。”王孝宇说。
AI算法开发是一整套专业研发环节的组合,包括数据标注、计算框架、神经网络设计、数据挖掘设计等等。这些工作通常需要AI专业的硕士或博士通过编程进行每个环节的设计,并手动将这些环节连接起来形成一整套研发流程。
如果缺乏开源易用的工具,那么高质量的AI研发就只能是“专家的事”。
YMIR团队对国内外的模型生产工具做过详细调研,他们发现,这些工具的开发多由科学家或科研人员主导,缺乏对产业认知,无法真正解决业界痛点。
“算法的研发是持续的过程。”王孝宇说,“根据我们的经验,第一次训练的模型是百分之百不能满足业务需求的,你必须在客户现实的场景中去迭代模型,才能达到业务所需的目标。”
但当前许多模型生产工具都是“一次性”、“理想化”的,训练一遍就不再动了,等模型被用到实际场景,很可能出现偏差。
而YMIR项目由一帮有丰富产品经验的AI算法开发人员参与,他们将此前的经验以数据、流程等可视化的形式沉淀积累,通过流水线流程设计,让AI开发的工作效率飞速转起来。
“以前这么多人可以干一件事情,现在这么多人可以干十件事情,效率更高。”王孝宇说。
无论是小型AI公司,还是有AI开发需求但缺少AI研发人才的企业,都能免费使用这一开源平台,针对目标场景,训练出满足需求的专用AI模型。
据YMIR核心研发成员胡文泽博士透露,一些AI芯片公司也在投入人力向YMIR提交代码,从而批量化生产模型,满足研发芯片期间测试特定算法的需求。
这样一来,高精度AI模型开发,不再只是AI专家的独享技能。
视频加载中…
▲YMIR团队分享的一个简短背景介绍视频
智东西试用后,感觉YMIR极易上手,整个过程无需敲入代码,只用进行鼠标点击或拖拽,每个步骤都有清晰的指引,而且可视化显示界面很方便用户对数据和模型的管理和查看。
YMIR采用项目制管理设计,覆盖了典型AI模型开发过程中端到端的全流程步骤,通过将训练流程标准化和可视化,为数据处理、模型训练、模型评估、模型迭代等业务需求提供一站式服务。
下面我们展示YMIR系统的几个主要用户界面。
在使用YMIR前,你需要先准备好数据集,并安装好英伟达驱动环境,然后就可以进行数据集导入了。
▲界面1:数据集导入
需注意的是,当你导入带标注文件的数据集时,要确保标注类型属于系统已有的标签列表,否则需先进入标签管理界面,添加自定义标签。
完成该任务后,页面会指引进入数据标注步骤。
YMIR支持使用开放的LabelFree标注工具,提供有一键标注服务,对数据集大小、用户数量、项目数量等均无限制。你也可以外接其他标注工具。
▲界面2:LabelFree数据标注
胡文泽告诉智东西,经过其内部测试,YMIR可支持数百万级数据规模的目标检测任务。
深度学习训练需要对大量的数据进行标注,如果全部由人工进行标注,人力和时间成本都很高。
而YMIR平台采用主动学习的方法,通过挖掘、标注和重训练的循环,比将全部数据标注后再训练的方法更加高效,减少了对低质量数据的标注成本。
下图所示是数据挖掘界面。
▲界面3:数据挖掘
在AI模型开发周期中,模型迭代占据90%以上的时间,而数据迭代是模型迭代的关键部分。
YMIR提供的数据集版本管理功能,能自动生成数据集版本,并记录每次对数据集的操作,完整追踪数据集的迭代,对有大量数据挖掘的研发非常友好。
在模型训练界面,你可以清晰地看到训练进度以及一些关键参数。
▲界面4:模型训练
每次模型训练后,YMIR还可以对模型结果进行验证,即通过可视化方式查看模型在真实图片中的表现。如果达到预期,即可下载模型;如果需继续使用该模型挖掘,则可进入下一轮的“挖掘-标注-训练”循环,直至达到预期效果。
▲界面5:模型验证
YMIR以模型与数据集的迭代为核心目标来设计,一套流程走下来,不仅能针对业务场景持续提高模型性能,还能提高开发效率,降低研发门槛。
YMIR核心开发者黄轩介绍,过去用传统研发方式,大概至少需1个月迭代1次数据和模型,现在用YMIR平台1周就能迭代2次。
以前经验丰富的AI算法工程师才能完成的工作,现在,只要具备计算机操作知识,你就能用YMIR平台实现类似的高精度模型结果。
为什么YMIR在降低操作门槛的同时,能确保没有在产出模型质量上做妥协?
我们将在下一章节做进一步解读。
针对不同应用场景,YMIR如何做到发挥稳定地训练出高精度模型?
这主要得益于YMIR采用的数据处理方式。
YMIR是一个数据驱动的AI训练平台,与模型驱动的训练方式相比,在面对具体任务时,往往能更为快速地在目标场景中,迭代出高精度的AI模型。
模型驱动的显著特征是当模型足够准确时,其结果在绝大多数情况下可达到预期甚至取得最优。但在实际应用中,即使对一个具体任务进行精确实验室建模,其也极难在应用场景中达到预期。
而数据驱动的方式,是让模型在数据中不断校验调优,最终得出符合预期需求模型的过程。
这解决了业界的一个主要痛点:模型需要持续迭代。
早在2015年,机器学习泰斗、斯坦福大学教授吴恩达(Andrew Ng)就在演讲中提到“公司的壁垒不是算法,而是数据”。
他认为,要打造一款AI产品,需要让算法利用足够的数据,使得产品运行起来,然后通过产品来获取用户,用户再提供更多的数据……周而复始。
吴恩达预言,在未来的AI研发中,数据迭代带来的性能提升,将大大超过模型架构本身的演进带来的性能提升。
而YMIR的核心理念,便是依靠产品级模型生产流水线平台,以主动学习、数据驱动方式,让更多不具备专业知识和经验的人参与到算法开发中,从而加速AI技术和应用的繁荣。
▲一个典型的YMIR工作流程
YMIR平台先用少量已标注数据训练出一个初始模型,再用该模型从海量数据中挖掘出对优化模型最有利的数据,然后仅针对这些高质量数据进行标注,实现对原本的训练数据集进行高效扩充。
接着,该平台使用更新后的数据集再次训练模型,如此循环往复,模型的质量就会不断提升。
由于YMIR各功能都是开源的,你可以将自己开发的工具对接到YMIR平台提供的开放API,也可以按照自己的想法修改代码,包括数据存储、模型训练、标注工具、可视化界面等等。
据了解,YMIR也参与了云天励飞获得2021年吴文俊人工智能科技进步一等奖的项目,是实现模型快速迭代平台的关键组成。
YMIR核心开发成员向智东西透露,目前已有超过20家机构申请试用YMIR平台。
边际成本是未来十年AI行业的竞争核心要素。目前,AI模型通用性低导致的项目碎片化、交付效率低是行业的普遍痛点。未来高效率、低成本边际成产AI算法将成为行业的竞争焦点。
而拥有流程化、一站式、开放设计、无代码、开源免费五大特点的YMIR平台,对推动AI模型生产更加高效低质的目标,起到积极的推进作用。
总体来说,YMIR平台的使用门槛很低,采用RPA流程化思维设计,一站式覆盖AI模型生产的整个生命周期,支持无代码开发,不需要使用者具备专业AI技能,并且个人、企业均可免费使用不受限。
有编程基础的开发人员,不妨申请试用,也可以参与到这个国际开源社区中交流,或许能被启发或贡献一些新的想法,助力优化AI模型生产流程。
YMIR试用申请地址:https://github.com/IndustryEssentials/ymir#12-apply-for-trial
SpiderFlow – 一个无需写代码的爬虫平台
网络爬虫,是互联网数据抓取的主要方式之一,许多人都会有类似的需求。然而,网络爬虫的编写,通常需要掌握一定的代码编写能力,乃至于比较复杂的项目组织构建能力,有一定的技术门槛。
SpiderFlow,通过可视化的方便,无需编写代码,仅需拖拽链接节点,就能构建一个爬虫应用,十分便捷。
SpiderFlow,是 ssssssss-team 在Gitee上开源的爬虫平台,仓库位于 https://gitee.com/ssssssss-team/spider-flow,目前版本为 v0.5.0。
SpiderFlow 以图形化方式定义爬虫流程,无需代码即可实现一个爬虫。无需编写代码,在线定制爬虫规则;插件丰富,拥有 redis、mongodb、oss、ocr、IP代理池、selenium等插件,高度灵活,扩展方便,规则定制灵活。
SpiderFlow功能丰富,
- 支持Xpath/JsonPath/css选择器/正则提取/混搭提取
- 支持JSON/XML/二进制格式
- 支持多数据源、SQL select/selectInt/selectOne/insert/update/delete
- 支持爬取JS动态渲染(或ajax)的页面
- 支持代理
- 支持自动保存至数据库/文件
- 常用字符串、日期、文件、加解密等函数
- 支持插件扩展(自定义执行器,自定义方法)
- 任务监控,任务日志
- 支持HTTP接口
- 支持Cookie自动管理
- 支持自定义函数
SpiderFlow安装简单,首先准备环境:
下载项目源码后,
- 设置Eclipse仓库,菜单Window->Preferences->Maven->User Settings->User Settings 后边的Browse,然后导入自己的Maven目录的conf目录下的settings.xml文件,然后点Apply,在点OK
- 导入到Eclipse,菜单file->Import,然后选择Maven->Existing Maven Projects,点击Next>按钮,选择工作目录,然后点击Finish按钮,即可导入成功
- 导入数据库,基础表:spider-flow/db/spiderflow.sql
- 打开并运行org.spiderflow.SpiderApplication.java
- 打开浏览器,输入(http://localhost:8088/)
此时就能看到可视化的管理后台了,可以进行爬虫列表的管理:
构建爬虫十分方便,通过可视化面板,使用拖拽组件的方式,就能很快地实现一个网络爬虫:
还支持在线Debug:
并提供了详尽的日志:
SpiderFlow使用不同的节点来组成爬虫逻辑,包括:
- 开始节点:爬虫的起点,所有流程图必须有该节点
- 爬取节点:用于请求HTTP/HTTPS页面或接口
- 定义变量:用于定义变量之后,可以与表达式配套使用,实现动态设置各项参数(如动态请求分页地址)
- 输出节点:主要用于调试,测试时会把输出打印到页面中,另外也可以用来自动保存到数据库或文件
- 循环节点:实现循环逻辑
- 等待结束:等待到该节点之前所有节点执行完毕时才会执行下一级节点
- 执行SQL:主要用于与数据库交互(查询/修改/插入/删除等等)
- 子流程:主要用于调用其他流程
- 执行函数:主要用于调用一些关联性不大,无需返回值的函数,如下载文件,保存文件等
- 连接线:用来流转至下一个节点
一个简单的爬虫流程如下:
运行顺序:A->B->(C->F),(D->E)->G->H
- 先执行A节点
- A节点执行完毕时,执行B节点
- B节点执行完毕时,同时执行C、D节点
- C节点执行完毕时,执行F节点
- D节点执行完毕时,执行E节点
- E、F节点都执行完毕时,执行G节点(G节点是等待结束节点,所以这里会等E、F都结束,否则无论E、F哪个节点执行完毕,都会执行G节点)
- G节点执行完毕时,执行H节点
- H节点执行完毕时,流程结束
由于C节点是循环节点,假设C节点循环次数是3次,则上方从C节点开始则变成C,C,C->F,F,F->G->H
SpiderFlow还提供了丰富的插件,包括:
- redis插件
- mongodb插件
- IP代理池插件
- OSS插件
- OCR插件
- Selenium插件
可以配合使用,实现更为复杂的功能。
SpiderFlow 以图形化方式定义爬虫流程,无需代码即可实现一个爬虫。无需编写代码,在线定制爬虫规则,利用自定义的逻辑图设计方法,很方便就能设计出网络爬虫,且插件丰富,高度灵活,扩展方便,规则定制灵活。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。