受访者| 马勇编辑| 涂敏
制作| CSDN(ID:CSDNnews)
马勇是一位十足的技术老手,拥有24年编程经验,当过软件工程师,深入安全领域,创业,当过技术经理,兼职研究生商科讲师。他翻译过书籍,发明过多项专利,幕后是顶级期刊的审稿人……
马洪丰富多样的人生经历很难描述,但在兴趣的驱使下,马洪不断探索新的旅程,目前正在开发基于广泛模型的代理方向,我们正在一路研究和实施新技术。
在今天的《近匠》访谈专栏中,我们走进这位高级工程师、数据安全专家、人工智能学者的编程生活,评估他职业生涯每个阶段的不同思维方式,探讨大规模模型和人工智能时代网络。我们将澄清之间的关系安全性。最新趋势,如何晋升为新程序员。我们也希望现代工程师在职业发展中可能面临的困惑能够从中得到启发。
马荣
编程入门:学生时代的启蒙,成为最好老师的兴趣
兴趣广泛的马勇从1996年在沉阳上学时,经人介绍接触到学校最新的486电脑后,从未想过自己会继续从事程序员的工作。
起初,“我的爱好是电子制作,”马勇回忆道。毕竟,对于当时对世界感兴趣的青少年来说,能够用自己的双手创造出一些东西,想必给了他们很大的成就感。
图片来源:Microsoft Bing 的Image Creator
不幸的是,由于学生时代的限制,他的爱好很快就被搁置了。幸运的是,随着我在学校长大,我也有机会接触到当时学校拥有的电脑设备,一切都改变了。马勇发现计算机比电子生产更有吸引力,这似乎打开了新世界的大门。
于是我开始尝试不同的方式来开始编程,包括书籍和自学。 “我还记得我接触的第一个编程语言是C,我使用的开发环境是Turbo C 2.0。在学习了一段时间后,我开始开发一个工作模拟。”马勇说。 “一个在DOS下使用的系统,一个练习命令的软件。在开发过程中,我意识到自己缺乏系统的数据结构和算法知识,所以我决定系统地学习理论。我也意识到它是多么重要。”
马勇随后在北京大学正式学习计算机科学与应用,开始理论学习与实践相结合。这段时间研究了类似阿里巴巴的B2B网站,也开发过基于PHP、JavaScript、C++等语言的网站、电信定价系统。
在马勇看来,学习这个方法没有捷径,只有使用正确的方法,往往才能事半功倍。
在整个学习过程中,马勇先生最常用的方法是目标驱动,在各个阶段为自己设定具体的目标,并不断向目标迈进。其中,《Turbo C 技术大全》这本书给我留下了深刻的印象,当时我就把“理解”这本书作为我的学习目标。 “我不断地翻着书页,最终书页变得蓬松,厚度几乎增加了一倍。这本书中包含的C语言运行时函数的解释我仍然记忆犹新。”
马勇坚信,“作为计算机行业的从业者,兴趣是进一步进步的唯一动力。兴趣是最好的老师。”这种信念激励他继续他的学习之路,并继续深入挖掘他对计算机科学的热爱。
技能提升:从软件工程师到CTO,需要摆脱“技术为王”的思维
当时,马勇和大多数计算机专业的学生一样,选择了软件工程作为毕业后的职业。技术开发主要有两个方向可供选择。
一是成为高级技术专家。第二个是技术经理。回顾过去,马蓉认为,要成为一名高级技术专家,需要不断加深技术理解和经验,成为某一领域高度专业化的专家。如果你想成为一名技术经理,你需要:具备领导力和技术战略能力。领导力首先来自于组织的任命,然后来自于个人的技术理解和魅力。
当然,作为一名工程师,你可以有两个发展方向。马勇一步步进步。
但马勇表示,从软件工程师成长为CTO或技术经理时,除了少数因性格原因不适合担任技术负责人的角色外,大多数人都需要积累经验。到以下几点。在行业内建立技术影响力和一定声誉。当然,个人技术能力是基础。后期,你需要培养自己的技术战略意识,了解技术发展的背景,能够为你的企业带来技术创新的力量。
作为公司的技术领导者,你需要明白内部创新需要找到合理的平衡点。创新太快会浪费资源,并且无法为公司创造价值。创新太慢就会导致竞争。通过朋友。因此,“需要清楚地了解技术发展方向和公司资源”是成为一名技术经理必须具备的基本能力之一。
基于此,马勇还为开发者从软件工程师职位晋升为技术经理分享了两点建议。
从技术能力的角度来看,开发人员必须对组织的战略或项目需求有清晰的了解,能够将产品需求分解为技术需求,并具备系统架构能力。系统搭建能力必须从多种基础能力发展而来,包括对计算机理论的了解、开发各种系统(前端、后端、数据存储等)的经验、客户端应用层和内核相关的技术。纵观当前的技术发展,除了传统技术之外,我们还需要对人工智能有很好的认识。人类只能获得其认知范围内的能力,因此技术管理者必须不断扩展其认知能力。 “我个人每天早上至少花两个小时浏览新技术动态,阅读相关学术论文,了解前沿方向。”从领导力的角度来看,初级领导者需要摆脱“技术为王”的思维定式,从:请成为团队的支持者。您需要分解团队的目标,将其分配给合适的人,并从追求个人成功转向团队成功。技术领导者不仅需要在技术上处于领先地位;他们还需要成为领导者。这就需要平等对待团队成员,尊重技术能力强的人,帮助技术能力较弱的人,在需要的时候帮助团队成员解决生活问题,必须提供资源和心理支持,帮助团队实现目标。技术管理者需要承前启后,展现个人魅力。困难的管理风格源于自身的不安全感或者表明管理者自身的能力不足以满足团队的管理要求。创业:技术人员创业必须克服三个障碍:人、钱和商业模式
对于程序员另一种创业方式——,三届创业者马勇敏锐地意识到其中的挑战。
马勇在担任软件工程师的第三年首次进入创业领域,当时主要从事Web开发和一些C++程序。在此过程中,他意识到网络安全的重要性,并需要一种有效的工具来检测它。
于是,马勇和一些朋友创办了一家网络安全扫描软件公司。然而,市场还没有达到发展阶段,业务就提前结束了。
马勇随后创办了另一家科技孵化公司。在之前的创业过程中,他深刻地认识到工程师和投资人是很难连接起来的,所以这次创业的目的就是帮助工程师更好的和资本对接,为技术创业者提供指导,目标就是帮助提供这一点。同样不幸的是,这家公司由于当时技术和投资环境的变化而不得不失败。
创业第三次创业后,马勇重回安全领域老本,在研发过程中意识到行业存在一些尚未解决的核心安全技术问题。于是,他通过自己的研究,找到了一些技术解决方案,最终和同事一起创办了一家公司。经过六年的努力,他们的初创公司被一家知名安全公司收购。马勇将这次失败归咎于市场能力等非技术能力的缺乏,并表示当时公司销量没有增长,无法快速发展。
马勇认为,在市场竞争激烈的今天,很多工程师创业失败的原因就是只注重技术,忽视市场。其实创业需要一些运气,但就像做研究一样,事前做好基础研究是极其重要的,比如充分了解技术的发展和现状,发现技术点和市场机会。技术与市场相结合的发展是可能的。
因此,马勇认为,对于想要创业的工程师来说,首先需要解决三个问题:人力资源、资金、商业模式。里面指的是需要志同道合的人合作,协商好条款,然后再努力,避免后期发生冲突,不光是钱,还有初始种子资金,商业模式还必须包括公司的核心能力、社会影响,并介绍有这种能力的人作为合作伙伴。
OpenAI的ChatGPT及其后继模型和工具,与当今的AI创业相结合,开创了人工智能的新时代,但OpenAI首席执行官Sam Altman曾表示,“你不能只是包装OpenAI。企业注定无法生存”长的。”
对此,马勇也非常认同这一观点。这意味着,每次新的OpenAI技术发布,都意味着一些小企业商业模式的终结,但也带来了一些新的机会。他表示,如果资源充足,初创企业可以从百川、零一心愿等基础模型开始培训,但对于资源有限的中小企业,基础培训我指出需要放弃必要的调整。很多小企业利用有限的资源,利用互联网上的训练数据进行训练,只是希望能够成功,但这是不现实的。业内人士表示,小型初创公司应该利用现有的模型资源来解决特定垂直领域的问题,而不是训练模型。正确的处理模型的方法是“时刻保持谨慎,不要操之过急,根据自己的资源和实际情况,选择合适的模型运用方式”。
总的来说,创业是一个充满挑战和机遇的过程,工程师需要市场洞察、商业模式设计、人际沟通、团队管理等综合能力。只有不断学习、提升自己,才能在竞争激烈的创业环境中取得成功。
机遇:以大规模模型为代表的AGI技术替代人工处理安全事件。
虽然整个行业已经深深拥抱大模型和生成式AI的趋势,但马勇却心存疑虑,他表示,虽然很难确定生成式AI是否是AGI的正确方向,但进展确实是这样,我们已经开创了一个新时代。
正如比尔·盖茨所认为的那样,大型生成模型是可与iPhone 相媲美的技术进步。 iPhone解决的是人与手机的交互问题,而生成式大规模模型解决的是人与AI的交互问题(自然语言交互)。
在马勇看来,当前的生成式人工智能虽然确实存在泡沫成分,但其带来的实实在在的技术进步是无法隐藏的。俗话说,外人看热闹,内人看门。尽管大肆宣传,但真正能从生成人工智能中受益的人是在Bilibili 上销售课程的人(笑),但这并不能否认这将产生的技术影响。生成式人工智能是AGI的早期阶段,一旦启动,就会朝着大多数人期望的人工智能方向发展。
马勇进一步补充道,大规模模型的应用主要分为两个方向:RAG(搜索增强生成)和智能体,而智能体可能是AGI的最终方向和可行路径,我们分析是有的。这一变化真正解放了主要的脑力劳动。
谈到生成式AI时代网络安全将发生的变化,马勇表示,从压缩理论的角度来看,预训练一个大模型,实际上是对训练语料进行压缩,存储在模型中。训练大型模型需要使用大量数据,其中可能包含不需要的敏感信息。例如,敏感的个人信息可以很容易地通过大规模模型引导或通过绕过监控机制来获取。其中包括目前大家都关心的角色扮演攻击、代码隐藏攻击等问题。传统安全侧重于直接信息安全,而大规模模型具有一定的逻辑功能和智能,带来更高的风险。针对这一风险,全球主要人工智能强国纷纷出台针对生成式人工智能的监管立法。
除了等待相应立法的实施,马勇目前是安全行业的资深从业者,领导着一个训练和调优ChatGPT等大规模语言模型用于分析安全信息的团队。
马勇表示,引入大规模模型可以解决安全分析过度依赖人类的问题,大幅降低成本,提高分析能力,是一个有前途的方向,他说是有的。例如,在安全日志分析中,可以将其视为时序异常检测问题,大规模模型的引入使得可以对一些隐藏信息进行详细分析,例如信息变换和特殊编码。大型模型的语言理解能力可以轻松破解这些欺骗,这是传统人工智能技术无法实现的。大规模模型的初步逻辑能力可以替代部分人工判断,提高分析效率,成为人类专家的得力助手。以大规模模型为代表的AGI技术的进步,最终将在很大程度上取代安全事件的人工处理。
开发者建议:大模型不能排除作者
CSDN:随着您的角色从工程师到管理者再到学者的转变,是什么促使您不断学习和进步?迄今为止您遇到过最难忘的挑战是什么?
马勇:我觉得反抗和好奇是我最大的动力。作为一名程序员和一名学者,两者是紧密相连的。程序员的工作就是研发,其实和学术研究类似,只是需要的深度不同。
我在学术研究过程中遇到的最严峻的挑战可以用“生早死晚”来概括。学术研究是一个创新和探索的过程,没有明确的方向,需要不断的尝试和实验。你可能会在早上对想出一个新方法充满信心,但随后花了一天时间尝试,发现它不起作用,让你陷入绝望的状态。然而,这位顺利毕业的博士生想到了新的方法来克服这种状况,为自己建立心理支持,睡前复习,第二天早上再次充满信心。马苏。问题通常是通过一遍又一遍地重复来解决的,这既是科学研究的痛苦,也是科学研究的乐趣。顺利完成博士学业的人不会轻易放弃,有不服输的精神和潜力。我有两个博士同事,在之前的工作失败后又回来了,但一般人可能早就放弃了。当我看到他们失败的时候,我就预言他们会东山再起,果然,他们成功了。这或许就是学术研究给人们带来的最大财富。
CSDN:您认为一个优秀的程序员应该具备哪些重要的品质和特点?您见过的最好的程序员是谁?
马蓉先生:根据我多年的技术经验,我认为普通程序员和优秀程序员的区别就在于技术审核能力。一个好的程序员不仅会写代码,还会考虑技术原理,重构代码。您可能会一遍又一遍地开发相同的功能,这表明您有能力重构代码,而不仅仅是复制和更改。如果只知道结果而不知道原因,你永远成不了技术工匠。要成为所在行业的专家,您需要知道后果并了解原因。
优秀的程序员不会让环境阻止他们。我的朋友虽然只有大学学历,但是对操作系统内核有着很深的了解,他最著名的工作就是内核调试器,并且在一家财富500强公司从事编译器研发工作。在软件行业,这是一项相当深奥的技术,一般人往往会放弃或回避它,但他很喜欢它,并觉得它很深奥。连阿里巴巴的P11专家都对他赞不绝口。
CSDN:请推荐一些对您影响较大或您经常阅读的优质资源,例如书籍、网站或工具资源。
马勇:在选择技术平台时,我首先推荐CSDN和StackOverflow。作为中国最大的程序员社区,CSDN从成立之初就一直陪伴着我,帮助我成长,获得了很多知识和技能。我还打算将我的学习经验和技巧作为存档发布在CSDN上与其他人分享。
作为国际知名的技术社区,StackOverflow 随时可以从国际专家那里获取经验和知识。目前的研究和研究倾向于人工智能方向,包括理论研究和工程应用。访问量最大的平台是HuggingFace (https://huggingface.co/)。它的每日推荐是关于人工智能发展方向的更好的信息来源。行业。另一个是GitHub,大家最喜欢的开源托管网站,也是RapidOCR(https://github.com/RapidAI/RapidOCR)和阿里巴巴的FunASR(https://github.com/alibaba-damo-academy)等开源项目的所在地,请积极参与。 /FunASR)请稍候。
调试能力是程序员的一项基本技能。除了使用打印数据进行调试外,还需要依靠先进的调试工具来解决复杂的问题。我强烈推荐张银贵博士的书《调试大全》。它值得反复阅读,并将帮助您提高调试技能。另一本让我深受感动的书是《DOOM启示录》,讲述了《DOOM》游戏创作者的传奇经历和专一精神。这本书值得学习,展示了成功背后的坚韧和努力。作为一名程序员,为了更好地与产品经理协作,营造和谐的工作环境,了解产品经理的工作非常重要。为了更好地理解产品经理的工作内容,我们推荐《产品启示录》这本书。
至于工具,我没有什么特别的推荐,但是一个名为Zotero(https://www.zotero.org/)的免费纸张管理工具非常有用。除了管理论文外,它还可以作为知识管理工具来管理电子书和网站资源。此外,Zotero 还包括一个方便的文档阅读器,可让您轻松阅读和查看文档。
CSDN:不同的角色都需要付出很大的努力,如何快速提升自己相应的技能?这些人中有没有对你影响比较大的?
马勇:最好的学习方法就是保持好奇心,不要轻易放弃。当我开始学习人工智能的时候,我买了一本书,但我发现读了很长时间都看不懂,我开始怀疑自己。然而,我改变了主意,因为我意识到文字可能不够简洁易懂。于是我买了几本类似的书,读了一遍,直到终于明白了。从这次经历中,我学会了不要轻易怀疑自己。有时我听不懂,不是因为我不够聪明,而是因为学习材料不符合我的逻辑习惯。在学习新技术或理论时,首先阅读简单的书籍以获得良好的背景并巩固一些基础知识,然后再学习更深入的书籍和资料。这缩短了学习曲线,更容易获取新知识。
除了对我影响很大的海外名人之外,还有国内的研发人员,比如吴先生、张银奎先生。 Matt Wu拥有核物理专业背景,目前是国内资深操作系统内核开发人员,对技术问题有独到的见解和较强的学习能力。我与Matt Wu 作为同事共事并接受了多年的技术指导。张银奎是我国著名的调试技术专家。他一步步理解复杂问题的能力令人惊叹。阅读他的技术博客你可以得到很多东西。
CSDN:生成式AI的应用大大降低了程序员的发展门槛,让任何人都可以成为程序员。那么企业程序员需要哪些新技能才能避免被时代淘汰?您怎么看?您有什么建议?开发者有吗?
马勇:大的代码模型极大地提高了程序员的工作效率,让非专家也能完成编程任务。今年,我在北京理工大学做了一个实验,一群不会编程的学生仅依靠ChatGPT就完成了一个编程项目,最终达到了目的。
但这个结果是建立在假设用户有足够的业务知识和相关基础设施,能够调整和判断大规模模型生成的代码的正确性和合理性的基础上的;要求并没有放松。大模型只能替代脚本员和程序员,但不能替代具有足够专业知识和经验的真正程序员。
为了避免被大模型淘汰,需要提高创造力和架构能力。大模型毕竟是机器,只能在见过的情况或者类似的情况下做出正确的判断,而在未知的领域却很薄弱。
大模型最大的问题是视错觉,但是我们如何克服它呢?只要有足够的知识和能力,就可以判断大模型的输出是否正确。提高理论水平和知识广度至关重要。大模型只能排除下限太低的初级程序员,而不能排除它的创造者。
《近匠》是CSDN首发的访谈栏目,寓意“走近工匠”,深度关注开源、云、AIoT、核心技术、数字化转型和切割。您如何看待当前的开发工作,分享精心打造的工具的特点,分析整个行业的发展现状和未来趋势?
为此,如果您和您的团队有报告需求或洞察技术趋势或深度应用,对于开源、云、AIoT、根技术、数字化转型、前沿技术等的新见解地区,联系CSDN提交帖子。联系方式:微信(hanbb120,提交请备注+姓名+公司名称)、邮箱(tumin@csdn.net)。