专访HuggingFace CTO:开源崛起、创业故事和AI民主化丨智源独家

47dc7e53b33163b98342733e9774c1d1.png

导读

HuggingFace CTO Julien Chaumond认为,在大模型时代,AI民主化至关重要。随着大语言模型和复杂人工智能系统的崛起,持续提升AI技术的可及性有助于确保这些技术的获取和控制不集中在少数强大实体手中。技术民主化促进了机会均等,减少了数字鸿沟,而说起来容易做起来难,事实上滴水穿石,需要长期不懈的努力。

开源社区的目标正是为机器学习的可访问性和民主化做出持续的贡献。Julien在巴黎综合理工学院求学期间,计算机这门学科还类似数学,实行纯纸质考试。神经网络还是个名不见经传的领域,与主流方法背道而驰,巴黎的小圈子内并不看好。而到了斯坦福,他才真正见识到周围人个个代码高手。斯坦福毗邻硅谷创业社区,在校园里他曾与YouTube创始人擦肩而过,身处创业旋涡之中早早萌生了创立公司的想法。经过多年的筹谋,Julien终于与两名学生时代的朋友一道创立了HuggingFace,其中一位好友兼创始人Thomas Wolf热爱量子物理学,他们还曾在同一个摇滚乐队中演出。智源社区与HuggingFace CTO Julien Chaumond进行了深度访谈,讲述了关于创业、开源和长期主义的故事。

要点速览

◆ 斯坦福大学最酷的一点是,当你怀揣一个创办公司的梦想,行走在校园里,你会看到各种知名创始人。印象最深的是,当时我骑着摩托车,停车地方的旁边就停着一辆轿车,车牌上写着YouTube,表明车主是YouTube 的创始人之一。

◆ 我在选择投资者的时候会倾向于那些会支持我们长期愿景的人,而不是催促我们在公司成立的早期就赚很多钱。和投资人之间长期的一致性非常重要。

◆ 开源的真正魅力在于,人类本就在协作上具有天然的兴趣。如果你对某个主题感兴趣,在网上遇到了正在研究同一主题的人,就会诞生更好的想法。比如说我们精心维护的transformers库。我们不需要参与者控制过多,很多事情都是有机自发地协作。

◆ 社区正在推动为机器学习提供更广泛的部署选项,不仅对于大型云厂商,而且在小服务器、少量GPU的场景下,包括边端,甚至在个人电脑、移动设备等。与需要购买100个GPU相比,如果可以在计算机本地运行SOTA模型,会更容易实现。

◆ 我们希望坚持长期主义,持续不断地就同一核心目标进行优化。所以我作为创始人的主要心理状态,例如,基本上在 10 年后,我仍然会做同样的事情,真的不是试图在短期内构建一些东西,而是尝试构建一个10年后仍然在运行的平台。挑战在于更多地考虑长期目标,而不是关注短期问题。

Julien Chaumond

Julien Chaumond毕业于巴黎综合理工学院和斯坦福大学,他是多家基于机器学习的初创公司的创始人或团队成员。他还曾担任法国数字事务部长的顾问。Hugging Face 被描述为现代机器学习中最具影响力的平台。作为联合创始人,Julien 热衷于为每个人普及最先进的 NLP 和 ML。HuggingFace 的愿景是建立一个开放、协作和共享的 AI 社区,使机器学习和 NLP 技术更加可访问和可应用。他们积极支持开源项目,并鼓励用户和开发者之间的知识交流和合作。

智源专访栏目意在通过展现技术研究者和创业者的研究经历和故事,记录技术世界的嬗变,激发当代AI从业者的创新思维,启迪认知、关注突破性进展,为行业注入灵感光芒。

在斯坦福与YouTube创始人擦肩而过,身处创业旋涡

讲讲你的学术和研究历程。

我是学数学出身,在巴黎理工大学(Echo Polytechnique)学的是应用数学专业,然后又在美国学了一年半的电气工程。巴黎理工是一所侧重工程的院校,因此我们虽然接触了一些科研但主要还是应用方面。顺便说一句,我很多年前2001年有幸去中国旅行过一次,只待了一周,留下了非常美好的回忆,总想以后还有机会能再去。那真的是很久以前的事了。有趣且短暂的旅行,我们一大群法国人,大约有五百人同行,在过去的20年来中国确实发生了翻天覆地的变化。

经过应用数学和电气工程上的积累,我开始进入计算机科学领域。我在计算机科学领域工作了大约 15 年或 20 年,参与创立了几家不同的初创公司,在过去的 10 年里我才真正专注于机器学习和人工智能。

你是如何从数学和电子工程转向人工智能的?是什么吸引你开始探索机器学习?

在当时法国的教育体系中,计算机科学几乎就像数学一样,我们参加的考试里不涉及任何需要些代码,而是纯纸质考试,基本上算法设计实际上更像数学而不是计算机科学。其实早在 20 年前就已经有人在谈论神经网络了,但由于当时的神经网络太小,基本上就一层或两层的感知器,所以没有任何用例。所以在某种程度上它就像一个玩具示例,没有实际的具体应用。

我上学的时候老师们都很保守,他们都说,研究神经网络没有意义,看起来很酷,却华而不实。而机器学习当时都还称不上是一个正儿八经的研究领域。所以他们很不愿意我们研究它。话虽如此,从我记事起,我就一直对语言,特别是对语言的自动理解感兴趣。我记得当时做了一些超级简单的基于规则的东西,用超级简单的算法从文本中提取一些信息,它甚至不能说是机器学习,但属于用计算机理解不同语言,这是我很长一段时间的兴趣。

在斯坦福深造期间,谁对你的影响作为深远?

但我们在法国学习的方式和我们在斯坦福学习的方式确实不同,后者确实更注重应用。例如,我讲述的关于法国计算机科学测试是在纸上完成的。我到了美国,每个人都非常擅长写代码,一开始另我相当震惊。我花了一些时间来调整并转向更务实的学习和做事方式。

我在斯坦福大学有幸遇见几位非常优秀的教授,其中脱颖而出的是一位名叫 Héctor García-Molina的数据库教授(墨西哥裔美国计算机科学家,斯坦福大学计算机科学与电气工程系的教授。1993年至1997年,他是Google联合创始人Sergey Brin的导师),不幸的是他现在已经过世了。斯坦福大学最酷的一点是,当你怀揣一个创办公司的梦想,行走在校园里,你会看到各种知名创始人。Hector教授实际上就是谷歌创始人之一的博士生导师,这给我留下了深刻的印象。那时我真的梦想着创办一家公司,所以这在学术层面和商业层面都非常有趣。 

斯坦福的创业氛围异常浓厚,你受到这些人的强烈影响吗?

对,我印象最深的是,当时我骑着摩托车,而且我停车地方旁边就停着一辆轿车,车牌上写着YouTube,表明车主是YouTube 的创始人之一。他当时是回到斯坦福大学攻读博士学位,他已经创立了 YouTube还卖给了谷歌(编者按:这位创始人是Jawed Karim),这是2006、2007年左右,硅谷充满活力,创业氛围如火如荼,也是Facebook这样的公司刚刚起步的时候,到处都是新的初创公司。身处于这种创业“旋涡”之中也是相当令人震惊的经历。我不敢与这些人直接互动,但参加了一些创始人回校后的商业演讲,对我真的很有用。

创立HuggingFace,和共同创始人曾是摇滚乐队队友

HuggingFace诞生之初的故事是什么样的,背后有哪些故事?

那是在 2016 年。正如我所说,基于计算机的自动理解人类语言一直是我感兴趣的事情。因此多年来,我在自然语言领域做了一些副业项目和开源项目。但在 2016 年,我有点想做一些新的尝试。那时我认识了我的联合创始人克莱姆·克莱门特 (Clément Delangue),还认识了托马斯·沃尔夫 (Thomas Wolf),我们志趣相投。我们最初的想法是尝试构建一个对话式AI,当时正好Siri、Alexa这种语音助手兴起。我们想做些更智能的事情,希望语音助手不仅仅是为了提高生产力,还能参与日常讨论。

eec6a1a552dd2a0895c1c0eeac8fc44b.jpeg

于是几个月后,决定围绕这个理念创办一家公司。2015、2016年是机器学习领域的重磅之年。2016年也是HuggingFace的开始,然后在接下来的几年里,我们花了很多时间更多地深入开源机器学习。 

你们三个,是什么让你们走到一起的?你们当时是怎么认识的?

托马斯和我,我们都是理工学院的学生。他更喜欢物理学,比如量子物理学,而我更喜欢计算机科学。但我们的友谊延续至今。有趣的是我们曾经一起在一个摇滚乐队中演出。

我和Clement在2010年左右在巴黎创立第一家公司的时候就认识了,也是这一领域的公司。2010年巴黎的企业家圈子非常小,互相之间基本都认识。那几年我们一直保持联络,我们总是在想,总有一天要一起创办一家公司。直到 2015、2016年,时机成熟了!我感觉是时候尝试开始做点什么了。

三位创始人的职责有何不同?三人之间的模式是什么样的?

Thomas 更多地致力于科学研究和开源方面的工作。所以他是transformers的原始创建者,他在开源和科学方面非常强。

我个人而言,更多致力于社区平台等平台和产品方面一切事务,基础设施,包括初创公司在技术上的一切,包括前端工程、后端社区功能等。作为CEO,Clement处理的事项包括投资者关系、公共关系团队、团队文化等等。我们的分工非常明确清晰,工作互补。

你们的想法总是一致的?很少有分歧?

我们总是对自然语言处理中的相同主题感兴趣,然后扩展到所有机器学习领域。我们的兴趣都是基于计算机来做以前从未做过的真正有趣的事情。我想这就是我们对这份事业充满热情的原因。

谁想出了HuggingFace 这个名字?

Clement和我,我们设想的是一家以表情符号命名的公司,因为表情符号是现代人类交流的重要组成部分。拥抱脸就像我们喜欢的表情符号,它看起来像一台机器,但同时也具有真正的人类属性,因为它给你一个拥抱,真的很人性化。所以这有点像人类和机器之间的交叉点,这确实是机器学习技术应该做的事情。

083c2e8f33213d7828ae383a9049ce29.png

你们觉得如何从头开始组建团队?整个过程遇到了哪些障碍和挑战?

在很长一段时间里,我们都是一个非常小的团队。我并不想让公司发展得太快,第一个加入的团队成员叫安东尼。最初几年陆续有一些团队成员加入。它在很长一段时间内一直是一家小公司。直到2020 年初,整整四年时间,我们公司大概只有七八个人,最大的挑战是找到准确的定位

HuggingFace的员工分布在世界各地,包括纽约和巴黎等全球其他地区,那如何管理这样一个地理分散的团队呢?

我认为HuggingFace的模式之所以行得通,是因为我们正在构建的核心是开源,并且我们在GitHub、Slack等平台上进行开源协作(open source repos),成员之间很多沟通都是通过书面的形式。讨论问题、提出需求,都是采用非同步的书面沟通习惯,从而消除了每个人同时在同一个房间同步会议的需要,节省时间提升效率。这对于不同远程团队之间协同也很有帮助,比如纽约和巴黎的办事处,通过各种通信渠道同步写下他们的工作安排。

开源和闭源,短暂的共存

如何看待开源和闭源?

也许闭源在一段时间内可能会比开源好,但随后开源社区会迎头赶上,通过协作开发出更好的模型。这就像一个永久的循环,有时闭源模型比开源模型要好一点,随后开源模型迅速崛起、赶超。我认为以API为基础的私有模型和开源模型将在很长一段时间内共存。

我记得有一个轶事,你在 GitHub 上传了法国法律。这是真的吗?

那是很久以前的事了,但我试图推动法国政府采取一种更加以技术为中心的法律合作方式。那是一个非常有趣的项目。

你也曾经在法国政府工作过,对吧?这段经历对您的管理风格或目前的业务运营有何影响?

说实话,完全不一样。我只在政府工作了一小段时间,当时正在研究数字事务,几乎就像是法国政府内部的一家初创公司。在这个岗位上,我真正看到了政治决策和技术是如何相互关联的。

AI民主化,如何本地运行大模型

从最初诞生以来,你是如何积累所有这些贡献者的?目前全球有 900 多名贡献者。您如何说服人们为开源做出贡献?

因此,开源的真正魅力在于,人类本就在协作上具有天然的兴趣。如果你对某个主题感兴趣,在网上遇到了正在研究同一主题的人,就会诞生更好的想法。比如说我们精心维护的transformers库,我们每个人都可以尝试从社区中获得尽可能多的贡献,我们的目标更像是提供平台和工具支持,以便于人们自发地保持积极互动,努力创建良好社区。我们不需要参与或者控制过多,很多事情都是有机自发地协作。

推动我前进的动力是来自世界不同地方、有着不同兴趣主题的许多人正在共同努力,以实现机器学习的进步。这对我个人来说确实是一个很大的动力。因此,始终推动我们尝试为机器学习社区构建真正优秀的平台和工具的就是这种协作的意义。开源机器学习社区可以实现合力,比任何一家自己从事机器学习的公司单打独斗都来得更好,即使是像谷歌这样最大的公司,我觉得如果他们不与整个开源社区合作的话,他们在未来几年将很难想出真正先进的人工智能。

HuggingFace 发起了 BigScience 和 BigCode 等开放项目,有很多Datasets和Diffusers这样的库。如何选择项目呢?人工智能领域最需要什么样的研究产品?

所以很多都是真正有机的,我们拥有一支非常优秀的团队。每个人都被自己感兴趣的主题所驱动。最重要的是,如果社区真的对某个主题感到兴奋,我们将尝试为其提供一些工具和基础设施。例如,BigScience是一个非常酷的项目,因为在两年前,只有极少数人知道如何训练真正的大型模型。我们的目标是提供一些工具以及一个场所,让人们可以分享一些有关如何在大型 GPU 集群上训练这些大型模型的知识。

例如,我们尝试优化推理,使其尽可能高效,以便能够在许多不同的设置中将这些模型部署到生产中,不仅对于大型云厂商,而且在小服务器、少量GPU的场景下,包括边端,甚至在个人电脑、移动设备上,社区正在推动为机器学习提供更广泛的部署选项,不断提高机器学习的可访问性。

与需要购买100个GPU相比,如果可以采用最先进的模型并在计算机上本地运行它,它会更容易实现。为了这一目标,社区在机器学习的可访问性和民主化方面做了很多工作。

总结技术创业的经验

创业中最困难的事情是什么?

既有积极的一面,也有消极的一面。挑战是我们想要长期这样做,需要耐力,你不应该感到倦怠。如果你长时间在一个特定的主题上投入过多的精力,那么你就会对自然而然到有点厌倦,并且你会想做别的事情。我们希望坚持长期主义,持续不断地就同一核心目标进行优化。

所以我作为创始人的主要心理状态,例如,基本上在 10 年后,我仍然会做同样的事情,真的不是试图在短期内构建一些东西,而是尝试构建一个10年后仍然在运行的平台。挑战在于更多地考虑长期目标,而不是关注短期问题。

未来 HuggingFace 将提供对哪些先进技术的代码库支持?

我们将自己视为一个平台,为其他公司构建IT"基础设施"。因此,我们尝试专注于其他公司可以使用的底层基本构建模块,并进行更精确的应用。例如,开始有公司在我们的模型存储库或数据集(甚至应用程序部署和托管产品)之上构建东西。

HuggingFace希望招募什么样的员工,或者说在初期,你希望先聚集什么样的人来组建团队?

我的意思是,我们在公司建设过程中最大的幸运是团队成员。我们很幸运,在公司历史的早期,甚至在最近,都有非常聪明的人加入公司,我一直对加入我们的团队成员的素质感到惊讶,与其他公司有点不同的是,我们试图让员工尽可能自我驱动和自主。所以我们没有很多管理层会议。

我们团队中没有很多人告诉其他人该做什么。它更像是真正的有机和协作。我们确实在一些主题上对我们想要构建的东西有长期愿景。但我们也有很多团队成员正在与社区合作,他们机会主义地看到一个主题,对我们来说非常有趣,可以与社区一起构建它。

我们团队成员之间最大的共同点是,他们非常擅长定义自己的目标,并激励自己从事很酷的事情,而无需任何人告诉他们到底要做什么,例如发现有趣和有影响力的主题的自主能力是我们团队成员最大的最大品质。

你会如何定义HuggingFace短期目标和长期愿景呢?

是的,长期愿景是成为机器学习社区最好的协作平台。机器学习社区曾经很小,几年前世界上有几十万人。现在几乎有数百万人积极致力于机器学习。但我们的愿景是,机器学习将在四年内变得与软件工程一样庞大,甚至可能更大,有一两亿人。几年后让机器学习成为人们生活的中心,让尽可能多的人理解它的工作原理和运作方式。

最后的想法,也许您一开始是否遇到过一些资金困难?我们知道HuggingFace已经开始认真融资了,对吧?关于这部分有什么想法吗?

不,我的意思是我们很幸运能够拥有优秀的投资者,我们一直都是如此。正如您提到的,多年来我们筹集了多轮融资,但每次我们都很幸运地找到投资者,他们非常支持我们的愿景,即不要试图快速赚很多钱,而是更愿意建立长期平台,专注于如何让机器学习变得更好,让尽可能多的人更容易使用。

所以我们在愿景上一直高度一致。我想我们之前创办过其他公司,所以我们有一点与投资者打交道的经验,我在选择投资者的时候会倾向于那些会支持我们长期愿景的人,而不是催促我们在公司成立的早期就赚很多钱。和投资人之间长期的一致性非常重要,过去几年早期用户增量大幅提升,公司管理模式也非常简单,这就是能轻松获取融资的原因。

长期的协调非常重要。目前的收入模式是怎样的?

收入模式主要以算力为核心。计算显然是一个很大的市场,因为如果你想部署模型或训练模型,你通常必须为 GPU 支付很多钱,就像基础设施相当昂贵一样。因此,我们通过为云厂商开放算力访问权限,或直接销售算力访问权限来赚取收入。

正如我所说,长期愿景是,我认为机器学习将成为技术的重要组成部分。例如,我认为五年内,大部分云计算将是以人工智能为中心的工作负载。云计算的这些大市场将由大量机器学习模型和人工智能驱动。因此,我们将自己视为算力之上的一个抽象层,通过这种轻松无缝的算力访问来获利,计算市场真的异常庞大。

在HF之前,为什么你创办的公司并没成功?

老实说,我真的不知道,成功需要一个组合。在HuggingFace,我非常幸运能够与非常优秀的联合创始人和非常优秀的团队成员一起创办这家公司,并且在一个曾经并且仍然非常令人兴奋并且不断发展的领域。删除其中任何一项,比如你没有好的联合创始人,或者你正在研究一个发展不那么快的主题,或者你在最初的团队中没有那么幸运。

创业成功显然也有很多运气和坚持,所以就像之前我创办的公司,我在一年后就放弃了,花的时间不够。如果你真的想创办一家成功的公司,就不应该在一年后就放弃,你应该再尝试一段时间。不过,这是很好的学习经历。 

对于想要自己创业的开发者创始人有什么最终建议或指导吗?

现在是从事机器学习工作的非常有趣的时期。我觉得我们都很幸运能够在这个最好的发展迅速的时代致力于机器学习,并且即使在人类进程中也将成为一项真正有影响力的技术。这是一个拐点,人工智能市场相当庞大,很多不同的公司将在未来几年开始,变得超级成功并且超级有影响力。所以我觉得现在是启动人工智能项目的最佳时机,尤其是开源人工智能项目。

更多内容 尽在智源社区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/116818.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

下载安装PyCharm的步骤

1、首先进入Pycharm官网,并进行下载,日常使用社区版也是OK的 官网:https://www.jetbrains.com/pycharm/download/?sectionwindows 2、可以自定义路径进行安装,注意路径要全英哈 3、大家可以根据自己的需要来进行勾选 4、安装完成…

(免费领源码)小程序+spring boot+masql校园志愿者管理系统99213-计算机毕业设计项目选题推荐

摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,校园志愿者管理系统被用户普遍使用,为方便用户…

多态 虚函数表深度剖析 纯干货讲解(2)

💯 博客内容:多态 😀 作  者:陈大大陈 🚀 个人简介:一个正在努力学技术的准C后端工程师,专注基础和实战分享 ,欢迎私信! 💖 欢迎大家:这里是CSD…

两种MySQL OCP认证应该如何选?

很多同学都找姚远老师说要参加MySQL OCP认证培训,但绝大部分同学并不知道MySQL OCP认证有两种,以MySQL 8.0为例。 一种是管理方向,叫:Oracle Certified Professional, MySQL 8.0 Database Administrator(我考试的比较…

Mac安装VMware

去官网下载一下VMware Download VMware Fusion | VMware | SG 下载完成之后,打开直接闪退,参考这篇文章解决 解决macOS13安装Fusion13闪退的问题-CSDN博客 然后即可成功顺行

「视频编码软件」Media Encoder(Me) 2024 Mac/win中文版下载安装

Adobe Media Encoder(Me) 2024是一款专业的视频编码工具,它可以将各种视频格式进行转换、压缩和编码,以满足不同媒体平台和设备的需求。 以下是 Media Encoder 2023 的主要功能和新增功能: 视频编码和转换:支持将各种视频格式进…

idea文件比对

idea文件比对 1.项目内的文件比对2.项目间的文件比对3. 剪切板对比4. 版本历史(不同分支和不同commit)对比 1.项目内的文件比对 在项目中选择好需要比对的文件(类),然后选择Compare Files Mac下的快捷键是Commandd, 这样的比对像是git冲突解决一样 …

Leetcode41缺失的第一个正数

思路:原地哈希表 长度为N的数组,没有出现过的正整数一定是1~N1中的一个。 此时会思考能不能用一个哈希表来保存出现过的1~N1的数,然后从 1 开始依次枚举正整数,并判断其是否在哈希表中 但是题目要求常数级别的空间,就不…

OpenGL_Learn06(纹理)

接着之前的OpenGL_Learn05(纹理)-CSDN博客 1. 修改片段着色器 修改片段着色器,仅让笑脸图案朝另一个方向看 >>>>> 纹理坐标的Y轴没有进行改变,需要改变的是X轴的纹理坐标 片段代码改写如下 #version 330 core out…

SpringCloud 微服务全栈体系(十一)

第十章 RabbitMQ 三、SpringAMQP SpringAMQP 是基于 RabbitMQ 封装的一套模板,并且还利用 SpringBoot 对其实现了自动装配,使用起来非常方便。 SpringAmqp 的官方地址:https://spring.io/projects/spring-amqp SpringAMQP 提供了三个功能&…

九、W5100S/W5500+RP2040树莓派Pico<SNTP 获取网络时间>

文章目录 1 前言2 协议简介2.1 什么是SNTP2.2 SNTP的优点2.3 SNTP原理2.4 应用场景 3 WIZnet以太网芯片4 SNTP网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 随着科技的不断进步和应用需求的不断变…

el-cascader级联选择器选中一个全选中问题

问题 只选中一个却把同级全选中 解决 :props中添加label、value、children属性 label、value、children属性值需要和后端返回的集合中的字段名保持一致 后端返回数据:

AI:55-基于深度学习的人流量检测

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

redis源码分析之IO多路复用

文章目录 1、简述2、多路复用的三个函数3、创建epoll实例4、绑定端口、监听端口5、向epoll实例注册连接事件6、从epoll实例中获取就绪的事件 1、简述 众所周知,redis是一款抗高并发的利器,据官方压测,单机可达10万qps。但背后实际处理命令的…

07、vue : 无法加载文件 C:\Users\JH\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。

目录 问题解决: 问题 vue : 无法加载文件 C:\Users\JH\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。 在使用 VSCode 时,创建 Vue 项目报的错 创建不了 Vue 项目 解决: 因为在此系统上禁止运行该脚本&#xff0…

什么是DITA?从百度的回答说起

▲ 搜索“大龙谈智能内容”关注GongZongHao▲ 什么是DITA? 把这个问题输入百度,获得以下回答: DITA 是“Darwin Information Typing Architecture”(达尔文信息类型化体系结构)的缩写,它是IBM 公司为OASIS 所支持…

交叉编译程序:以 freetype 为例

1 程序运行的一些基础知识 1.1 编译程序时去哪找头文件? 系统目录:就是交叉编译工具链里的某个 include 目录;也可以自己指定:编译时用 “ -I dir ” 选项指定。 1.2 链接时去哪找库文件? 系统目录&#…

面试算法48:序列化和反序列化二叉树

题目 请设计一个算法将二叉树序列化成一个字符串,并能将该字符串反序列化出原来二叉树的算法。 分析 先考虑如何将二叉树序列化为一个字符串。需要逐个遍历二叉树的每个节点,每遍历到一个节点就将节点的值序列化到字符串中。以前序遍历的顺序遍历二叉…

latex设置图片的位置

Latex提供了一些命令来控制图片的位置。我们可以通过使用\begin{figure}[位置选项]来控制图片的位置。位置选项可以有h、t、b、p、!这五个,分别表示以下含义: h:表示放在当前位置,不过有时由于论文的格式限制,可能放不下。 t:表示…

VulnHub jarbas

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…