【外评】作为全栈开发人员如何跟上 AI/ML 的发展?

我正在使用由 node.js 和 React 等组成的全栈解决方案。为移动和网络提供不同的应用程序解决方案。我经常看不到人工智能/ML 在我们产品中的任何用例,但我想,如果你对这些工具有一定的经验,就会更容易看到机会。有什么好主意能让我继续学习这些领域的知识,以便长期保持软件工程师的相关性吗?我知道这是一个一般性的话题,但我认为在这个问题上保持与时俱进是很重要的。

 

你也许感兴趣的:

共有 66 条讨论

  1. > 我经常看不到人工智能/ML 的任何用例

    诚然,我对这一切持怀疑态度,所以请慎重对待我接下来要说的话: 你应该相信那个声音。我们正处于一个炒作周期。之前是 VR,再之前是加密货币。大科技公司正极力让你相信你需要这个。他们需要你需要这项技术,因为他们现在正在点燃数十亿美元的火焰,试图让这项技术足够智能,能够做任何有用的事情。如果他们不能在未来 12 到 24 个月内取得真正的奇迹般的突破(可能性很小,但总有机会),投资者们就会受不了,然后关掉喷泉。

    学习和提高技能总是个好主意。我只是不确定这是不是一项有回报的投资。

    1. 我是 ML 研究员。

      我支持你的观点。即使你认为 localghost 对人工智能的看法是错误的,也要始终相信这种怀疑的声音(在一定限度内)。

      但我要说的是,我们正处于一个炒作周期,作为一名研究人员,我对此特别担心。我知道我们必须进行引导,因为你不能说 “我们想把钱花在研究上”(为什么?),但如果你制造了一个泡沫,目标就是在泡沫破灭之前填满它。你炒作得越多,你得到的钱就越多,但泡沫破灭得也越快。我担心的是,过多的炒作会让人难以区分骗子和诚实的人。骗子会从一个冷门话题跳到下一个冷门话题(不要相信曾是 VR 创始人、后来是加密货币创始人、现在又是 ML 创始人的人。要相信有经验的人,他们能在一个话题上坚持的时间比炒作周期更长)。

      最大的危险是,如果江湖骗子主导了这个领域,炒作就会消失,然后大家就都没钱赚了。因此,如果你相信人工智能的可能性,相信人工智能/移动互联网能让世界变得更美好(我真的相信),请确保我们不要过度炒作。过早推出承诺过大的产品已经引起了越来越多的不满。如果你真的相信(就像我一样),你就必须在坏苹果毁掉整个木桶之前把它们赶走。

      1. 你的观点很好,谢谢你的发布。我同意你的说法,在已经发生的所有炒作周期中,我认为这确实有机会成为一件大事。正因为如此,我认为他们会继续砸钱,直到有人想出办法。因为现在的科技领域还有什么可以贪婪的呢?

        1. > 我认为这确实有可能成功。

          如果不是这样,我就不会读博士了。博士学位太可怕了。我很惊讶人们读博士是为了 “钱 ”而不是激情。

          > 正因为如此,我认为他们会继续砸钱,直到有人想出办法。

          我担心的是他们会向谁扔钱,更具体地说,他们不会向谁扔钱。

          一些以地毯式搜索闻名的人,没有任何 ML 经验,却做出了一个任何 ML 研究人员都应该怀疑的低劣演示?
            $_$ 
            博士研究人员把他们的论文变成产品?
            ._.
          

          有点不对劲…. 但我想,当埃里克-施密特(Eric Schmidt)说 “你应该偷窃,然后请求宽恕 ”时,我想任何人都不应该对不道德行为的盛行感到惊讶。

           > 因为现在的科技界还有什么可以偷窃的呢?
           

          l̶i̶f̶e̶Hype finds a way. 总有东西可以骗人。

          要始终认识到的关键一点是:骗子是那些拥有解决方案并正在寻找问题的人(例如,将人工智能束缚在一切事物中),而诚实的人则是那些拥有问题并正在寻找解决方案的人(即,人们了解我们所能做的事情的局限性以及这些事情的细微差别,并正在寻求填补这一空白)。我现在就可以告诉你,任何说要实现端到端人工智能的人都是骗子(包括谷歌搜索)。我们只是还没到那一步。我希望我们能做到,但我们还有很长的路要走。在这些事情上,帕累托是个婊子。

    2. 我不理解那些反对人工智能的人。

      有一天,我想到了一个 Chrome 浏览器插件。我是一名资深开发人员,但从未做过 Chrome 浏览器插件。我问 ChatGPT 4o 我的想法是否可行(确实可行),然后我让它创建一个插件的 MVP。10 秒钟后,我就有了一个完整的插件骨架。然后,我让它进行迭代,逐步增加功能,直到完全开发完成。

      我不得不对样式表进行了一些调整,它还要求了一个我们并不需要的权限,但除此之外,它完全做到了。它为我的扩展轻松完成了 95% 的工作。

      我在 60 分钟内就完成了原本可能需要花几天时间阅读规范和解读 API 的工作。

      我的 Chrome 浏览器插件是衍生产品吗?是的。我们每天做的大部分事情都是衍生产品吗?也是。

      人们怎么还在怀疑 LLM 已经带来的价值?

      1. 这可能是因为它为不同的人提供了不同的价值。对有些人来说,它没有带来任何好处,反而让他们的工作更加困难(我)。他们之所以持怀疑态度,是因为当个人经历与他人不一致时,人们自然不会相信对方。

      2. 这是有史以来最好的 API 搜索器,但大多数人并不搜索 API。他们在等着它给他们做烤奶酪什么的。

        1. 对于使用频率较高的 API 而言,这是最好的 API 搜索器。如果你想做的不是最常见的事情,它可能比没用还糟糕。(我在一个使用 Svelte 5 的项目中就遇到了这种情况,而语言模型只对告诉我/编写 Svelte 4 和 transformers.js 感兴趣,它们往往会转向 tensorflow.js。尽管我明确提到了我正在使用的版本/库,以及为该版本编写的现有代码,但它们还是倾向于转向 tensorflow.js)。

          总之,它们肯定会非常有用,但也会产生黄金路径/获胜团队/车轮车辙效应,这并不总是可取的。

          1. 这只能怪斯维尔特。怎么可能每个大版本都有这么大的变化。

  2. “生成式 “人工智能/ML 在很多方向上都发展得太快,即使你非常努力地保持与时俱进,跟上也是一个挑战!

    我所在的团队正在为实时人工智能用例(语音和视频)构建开发人员工具。对于这些新东西,我觉得自己有三个重叠的观点和目标:

    1. 要想知道我们应该构建什么,我需要很好地了解现在有哪些可能和有用的东西。

    2. 我经常与客户交谈。我的工作之一就是帮助他们了解现在什么是可能的、有用的(以及六个月或一年后可能是什么样子)。

    3. 我认为这是计算机所擅长的功能的阶跃式变化,这真的很令人兴奋,在智力上也很有趣。

    我现在的人工智能信息饮食就是一些播客、twitter 和电子邮件通讯。几个链接:

      - Latent space podcast and newsletter: https://www.latent.space/podcast
      - Ben's Bites newsletter: https://news.bensbites.com/
      - Ethan Mollick newsletter: https://www.oneusefulthing.org/
      - Zvi Mowshowitz newsletter: https://thezvi.substack.com/
      - Rohan Paul twitter: https://x.com/rohanpaul_ai
    1. 我有一个网络电话软件(https://www.mizu-voip.com/Software/SIPSDK/JavaSIPSDK.aspx),我正试图将它作为人工智能与实时音频/视频之间的接口推向市场。它已经具备了实时输入/输出流功能,我只是想添加一些辅助方法,使其在人工智能输入/输出方面更加明显。您能帮我提供一些反馈意见吗?我正试着用人工智能开发人员的思维来思考,我很想知道您对如何为您的软件/服务实现实时交互性的想法?我们的 JVoIP 库是否接近您的要求,还是您打算使用完全不同的东西来与终端用户和/或后台服务进行交互?(您更确切地考虑使用哪种软件/服务来实现这部分功能?)

    2. (非常感谢 kwindla 🙂

      我一直在寻找如何更好地服务这些受众的想法。

      1. 嘿,Swyx,我是一名开发人员,学过您的电子邮件 LLM 课程(非常棒!),所以也许我能提供一些信息。我是 Latent Space Discord 的一员,一直在想课程结束后下一步该做什么。我发现的挑战是,大多数关于 LLM 的在线讨论要么非常基础,要么假设了相当多的背景(Latent Space 讨论/播客以及 Karpathy 的视频都是如此)。

        我一直在努力寻找下一步的最佳方案,从我的角度来看,有以下几种方案似乎很有成效:

        1. Cohere’s LLM University – 似乎更深入地介绍了对我来说还很不清楚的嵌入等术语。2. promptingguide.ai – 出于类似的原因,它涵盖了我经常看到但不甚了解的术语和概念。3. 阅读调查级别的论文。

        我把这些信息包括进来,只是希望对您有用,因为我真的很欣赏您整理的所有内容。

        你或其他人可以做的一件具体事情很简单,但价值很高,那就是创建一个 “你应该阅读的前 20 篇 LLM 论文 ”列表。我一直在寻找这个清单,以积累更多基础知识,但还没有找到。我想这对其他人也会有帮助。

    3. 你在哪家公司工作?我在该领域工作,很好奇产品是什么。

  3. 我的观点需要很多盐,但……这次不一样。

    试试使用 Claude 3.5 聊天工具编写单页网页应用程序或命令行 Python 应用程序。就像在没有键盘的结对编程会话中那样与它互动。当你找到有趣的东西时,让它用另一种语言重写。抱怨错误。问它哪些新功能可能会更好。让它写测试。让它编写 bash 脚本来管理运行。问它如何部署和监控。使用 ollama 在笔记本电脑上运行 llama 3.1。在手机上运行 phi3-mini。

    问题是,每个人都说他们不会变得更好,但没有人有任何数据来证明这一点。如果你仔细倾听,这几乎总是基于缺乏想象力。数据才是最重要的,我们一直在发明新的基准问题,因为他们太擅长老问题了。不要理会支持和反对的声音:这些都不重要。花一些时间使用它们,然后自己做出决定。这次不一样。

    1. 问题是,与 Rails 或 Django 这样带有脚手架的包含电池的框架相比,使用 LLM 编程能给你带来什么?如果问题只需要一个由 LLM 拼凑起来的通用基础架构解决方案,而不是定制的设置,那么为什么不从低代码/无代码 PaaS 解决方案入手呢?除非 LLM 能为您提供比现有工具更好的结果,否则使用 GPU 来完成模板/传统配置/自动完成等已经完成的工作,感觉就像是在浪费资源。

      问题的关键并不在于 LLM 毫无用处,也不在于抽象地说它们不是有趣的技术。问题的关键在于,在解决技术领域的实际问题时,除了能凭空变出艺术品这种真实的娱乐价值之外,并不清楚它们是否比现有的工具和方法更快、更便宜地实现了更多目标。

      你说得没错,现在要有数据来证明它们的实用性可能还为时过早,但考虑到许多公司已经在这方面投入了大量的时间、金钱和精力–恰恰是在没有任何证据来证明其价值的情况下–目前这确实更像是一个炒作周期。

      1. 问题是,与 Rails 或 Django 等包含电池的脚手架框架相比,用 LLM 编程能给你带来什么?

        三年前,LLM 会用对话的方式描述代码的样子。

        两年前,他们可能会举出一些常见的例子,但会有一些小的错别字。

        去年,他能以实习生的水平做一些 StackOverflow 上没有的事情。

        今年早些时候,它能以初级工程师的水平做一些 StackOverflow 上没有的事情。

        上周,我和 Claude 3.5 进行了一次对话,内容大致如下:

         写一个交互式命令行战舰游戏
          为它编写一个鼠标交互式 TUI
          添加一个 cli 标志,连接到 `ollama` 并让它进行猜测
          有一个错误:把人工智能对话写到文件中,这样我就可以给你看了
          尝试其他模型:制作调用 OpenAI 和 Anthropic 的选项
          GPT 和 Anthropic 出现了这个错误(需要切换 API)
          模型的表现不尽如人意:多与它们对话
        

        耗时:几小时。我没有写任何代码。请记住,与 ChatGPT 不同的是,Claude 无法在网上搜索文档–这一切都是 “凭记忆”。

        法律硕士明年会做什么?

        1. 当然可以。我也有过类似的经历,用 GPT 4o 开发一个 Chrome 扩展只用了一个多小时,而我自己做至少需要一天。我不知道人们怎么会认为法律硕士没什么了不起。

          我认为,只有当你是一个完全精通一门学科的灰头土脸的人,而且你的工作也仅限于此,你才有理由这样做。多年来,我和这些人打过交道,他们确实是 Rails 或 Django 方面的奇才。在这种情况下,我可以认为他们在从事自己的专业工作时比 LLM 更有效率。

          我想这就是区别所在。我是一个通才,我经常在我经验很少的技术领域工作。在我看来,法学硕士在这方面是不可多得的人才。他们就像和一个已经记住了 Stack Overflow 所有内容的人结对编程一样。

        2. 你从哪里得知它能找出没有被输入的东西(例如,没有在 Stackoverflow 上输入的东西)?在过去的一年里,没有一个人能够以合理的方式回答我在谷歌上找不到的任何问题。当我的问题没有答案时,他们就非常失败,问题本应更改。

        3. 一年前我玩过这个软件,从那时起它就没怎么改进过。我甚至让它制作了一些与你的战舰演示类似的东西。

          如果大家的最佳想法只是给它提供更多数据(这似乎是 ML 圈子的口头禅),那么明年我也看不到它有多大改进。数据不是无穷无尽的。

      2. > 问题是,使用 LLM 编程比使用 Rails 或 Django 这样带有脚手架的包含电池的框架要好在哪里?

        你可以在这些框架之上使用它们。问题的关键在于,无论你使用什么技术,你 + LLM 一般来说都会更快。

        1. 我们很快就会有人工智能来构建 Drupal 网站。该平台为此做了很好的架构。大部分工作都是生成为网站搭建脚手架的配置文件。目前已经有人工智能集成内容。其表面积相对较小,而且在代码和文档中对选项进行了很好的定义。如果我们首先完成这项工作,我不会感到惊讶。这是目前的项目计划之一。

          编码部分仍然是个难题。前端和模块代码的人工智能仍然非常原始。随着时间的推移,LLM 在这方面的帮助会越来越大。

        2. 我还没有看到使用 LLM 能让编程速度更快的证据。无论是在我自己的工作中,还是其他人的工作中,他们都没有这样的说法。

          1. 我注意到,在使用我不擅长的语言时,LLM 会加快我的速度,但在使用我擅长的语言时,LLM 会减慢我的速度。

            当我听到有人说他们 80-90% 的代码都是用它们编写的时候,我简直不敢相信自己的耳朵。怎么会呢?在我看来,用英语编写疯狂复杂的规范比编写代码更麻烦。

          2. 你是如何评判别人的这种说法的?

            我是一名 FAANG 高级软件工程师,在公司和个人项目中都在使用它,它让我的速度快了很多,但现在我只是 “提出这种说法的其他人”。

            1. 你能发布你的工作流程吗?我正在寻找那些提出这种说法的人的资源。以可重复的方式公布他们的工作流程会有很大帮助。

              我很怀疑我们是否有大量的教程来证明这些非同寻常的说法。

              1. 你说的 “发布我的工作流程 ”是什么意思?你想要博文还是 github md 文件?这很简单。

                最近,我在克劳德 3.5 项目中使用了这种工作流程:https://www.youtube.com/watch?v=zNkw5K2W8AQ。

                举个简单的例子,我想制作一个可点击可见的钢琴键盘。我告诉它我使用的是 Vue,并要求它提供实现该功能的 HTML/CSS(在看过几个看起来相当复杂的 github 和其他示例后)。它在 1 米左右的时间内就吐出了可以直接运行的代码。

                我给了它一个 package.json 文件,该文件由于许多依赖版本相互之间有偏差而变得一团糟,但它马上就修复了这些问题。

                我要求它给出使用 BigQuery SQL 删除重复行的具体方法,同时避免使用某个函数,同样,1 分钟后完成。

                我给它提供了错误代码,并说 “这就是错误”,它就会立即突出显示错误并给出修复方法。

          3. 从这样的评论中我只能推测,你一定是发明了某种完全不合理的 “证据 ”标准,而没有任何东西可以通过。要么就是你根本就没看。

            1. 可能只是工作流程不同。

              我没有从 LLM 的混乱中得到任何东西,但我也没有从 stack overflow 中得到多少帮助,即使有些人每周在那个网站上花费数小时。这不是技能问题,而是工作性质的问题。

          4. 那就是你不懂如何使用这些工具。LLM 对于那些学会如何正确使用提示并且已经很好地掌握了所提问题的领域的人来说是一种加速器。

            1. 你能给我指一个或多个教程,让我清楚地看到所宣称的功效吗?

    2. 我花了一些时间尝试让 chatgpt 用 js 写一个前端。它会使用一个库来绘制,然后当我抱怨一个 bug 时,它会说:“哦,你是对的,这个库没有实现那个常用的方法,请使用这段代码。”然后就会陷入一个循环,吐出有 bug 的代码,修复一个 bug,然后又重新引入一个旧的 bug。

      还行,但有点烦人。我对 js 的理解足以自己调试代码,但我希望它能吐出一些能用的模板。我不记得当时用的是 chatgpt omni,还是 3.5。时间不长了。

      总之,它是很酷的技术,但我不觉得它能提供与类 ML 相同的预测能力,包括针对非常具体的特征集进行拟合、验证、模型选择等。

      1. 你所描述的正是我的经历。我在一次与纠正者的对话中偏离了轨道,以至于我又从头开始了。这项技术能做到这一点固然很好,但为了节省时间,我最好还是手动操作。

        我注意到的另一件事就是你提到的:LLM “自信地认为自己是不正确的”。它对事情的看法非常权威,当我指出它的错误时,它也会同意并纠正。

        我使用这些东西越多(我试着询问多个 LLM),就越对其输出结果保持警惕。在过去的用户使用过程中,公司似乎急于将聊天机器人塞进应用的任何一个角落。我很想知道它们的不正确性是否会开始产生真正的影响。

        1. 当你纠正 LLM 的错误时,他们会 “看到 ”自己的错误,关于这种行为,我注意到一件事,那就是有时我甚至不是在纠正他们,而只是提出一些后续问题,他们会把这些问题理解为我在指出他们的错误。例如

          我:- 写一个 Go 函数,遍历字符串中的字符并逐个打印出来。

          ~克劳德吐出的代码如期工作。

          我:- 你认为我们应该遍历符文吗?

          克劳德: – 你说得太对了!很抱歉我的疏忽,这是代码的修正版:

          我只是想推理一下可能性,但它总是把我的问题当成我在指出错误。这让我对他们的回答没有信心。

    3. >如果你仔细听,这几乎总是基于缺乏想象力。

      实际上,我发现事情恰恰相反。我之所以持怀疑态度,是因为我知道 LLM 所做的是象征性的预测。如果我想要的输出可以通过最有可能的下一个标记来解决,那么当然,这就是一个很好的用例。我完全有能力想象这些情况。那些热衷于人工智能的人似乎并不明白这一点,他们疯狂地想象。

      想象力和魔幻思维是有区别的。

      1. 我的失望来自于对人类所做的按键预测的理解。如果我想要的输出可以通过最有可能的下一次击键来解决,那么当然,这就是一个很好的用例。我完全有能力想象这些情况。那些全心全意关注人类的人似乎并不明白这一点,他们疯狂地想象。

        不要把 “做什么 ”误解为 “怎么做”。我们要求 LLM 做的是预测标记。至于它们是如何做到这一点的,则是一个更难回答的问题,而即使在训练数据和模型大小相同的情况下,它们是如何在这方面做得更好的,就更不清楚了。我们不给它们编程,而是让它们自己训练自己。而且有大量的隐藏变量可能会以奇怪的方式对事物进行编码。

        这些都不是 n-gram 模型,把它们当作 n-gram 模型是无法做出准确预测的。

        1. > 与之前的 GPT 模型一样,GPT-4 基本模型也是为了预测文档中的下一个单词而训练的…

          https://openai.com/index/gpt-4-research/

          人类所做的事情与此大相径庭。当有人问我一个问题时,我不会通过思考 “我回答的第一个词是什么?第二个词是什么?

          我明白,人工智能营销希望我们相信比这句话更神奇的东西,但应该考虑的是模型的实际技术描述。

          另外,怀疑=/=失望,把这两个词换掉会大大改变这句话对我在这件事上的感受。来自 OpenAI 和朋友们的技术不会真的让我失望。我并不指望这不会只是一场圈钱游戏;)

          1. > 我不会在想 “我回答的第一个词是什么?第二个词是什么?

            事实上,我不太确定我们是不是这样做的。这就是为什么叫 “思路”。你有了一个模糊的想法,然后你开始说话,然后你会发现你的想法非常连贯,并且受到语言标记关系的影响和约束。

            试着颠倒句子的顺序来回答问题,你会发现非常困难。你的答案并没有完全形成,只是在等着你的嘴把它说出来。你的答案是一个符号一个符号想出来的。

            1. 和 Heptapod B 一样,“下一个词 ”的说法无处不在,令人失望地荒谬。如果你向 LLM 提出一个逻辑谜题,而它给出了正确答案,那么它是如何 “预测下一个词 ”的呢?是的,输出是以额外词块的形式出现的。但如果这些符号需要逻辑思维,那么把 “什么 ”看成 “如何 ”就是错误的。

  4. 使用 ChatGPT 或 Claude 解决日常问题,无论是否是技术性问题。你很快就会发现,在哪些方面使用谷歌还是更好一些。ChatGPT 能做的可能比你想象的要多,处理的请求也可能比你假设的要复杂。

    关于你的项目,要么就直接加入现有的项目,要么就启动一个新项目。对于前者,目的不是让产品变得更好(确切地说),而是让你学习。对于后一种情况,OpenAI 和 Anthropic API 已经足够好,可以让你胡乱构建很多不同的东西。不要让分析瘫痪阻止你,开始尝试并找出答案吧。

  5. 如果你想最大限度地提高就业能力/薪资水平,也许你可以做一些小的副业项目,只需足够展示好奇心/开放性思维即可。

    例如

    – 使用 ChatGPT 提示创建一个有用的 bash 脚本,并将其写入博客

    – 使用 Xenova / Transformers.js 为你的个人博客创建一个文本摘要组件

    – 使用 ChatGPT 提示和情感分析创建一个电子邮件回复机器人生成器(不一定要实际发送电子邮件,只需调用 ChatGPT 的 API 并将信息打印到屏幕上即可)。

    只需几个小例子,或许再加上一两门课程(如《开发人员的提示工程》),就能让人眼前一亮。

    不过,我怀疑现在有多少公司真正关心这个问题。我最近参加的大多数面试都没有提到过这一点。

    不过话虽如此,也许再过几个月或一年左右,它对大多数工程师来说会变得更加重要。

    1. 你真的认为使用 ChatGPT 提示的有用 bash 脚本值得写在博客上吗?我是真心实意地问你。我一直想重新开始写博客,我主要是一名系统管理员,不过为了与时俱进,我不得不更多地转向 DevOps,而不是像以前那样更像一名 SRE/系统管理员,我现在是 DevOps 与系统管理员的结合体,我不是在帮助编写我们公司的应用程序,而是在做其他所有事情,从 CI/CD、监控、日志仪表板,到使用 terraform、ansible 等创建基础架构。

      所以,我不想让你觉得我的问题是在讽刺你…… 我真的很好奇,你是否认为这种事情在博客上发表是一件有用或有趣的事情,或者只是为了积累简历?

      1. 我认为在非常匆忙的商业环境中,这种技能可以节省时间。

        不久前,我写了一个提示来构建一个脚本,运行 git-reflog 以获取不同作者的列表。经过一些小的调整,我让它大致正常工作了。这大约花了 1 个小时。如果我自己写,肯定要花上好几个小时,尤其是还得学习 git-reflog 的细节。

        不过,我认为这主要是为了简历制作。ChatGPT 不会全面提高我们的工作效率。

        1. 你是否在一小时内完成了原本需要多小时才能完成的工作?

          如果你做到了,那么它就改变了你的工作效率。

      2. 我认为使用聊天机器人编程仍然是一项新技能,因此一个具体的、写得很好的例子是非常有用的文档!

  6. 作为一名 ML 研究员,我给你的建议是:不要

    ML 发展很快,但并不像你想象的那么快。架构上的创新和在领域中的展示是有区别的(两者都有用,都是必要的研究,但它们是不同的)。

    相反,你要紧跟与你相关的工具。如果事情发展得很快,却没有坚持下来,那么从某种程度上来说,它们发展得并不快,不是吗?你只是在追逐炒作,永远跟不上时代的步伐。

    在生产方面,我还发现一个常见的错误,就是过于依赖基准。我理解为什么会出现这种情况,但事实并非如此。在基准上运行良好的东西并不意味着在您的应用中也能运行良好(或比其他产品更好)。ResNet 仍然很常用,对于许多应用来说仍然是一个很好的选择。并非所有应用都需要 1B+ 变压器。请考虑您的限制条件:性能、计算、资源成本、推理时间等所有因素。目前,如果您熟悉(无需专业知识)前馈/线性 FFN、CNN、ResNets 和变换器,您就可以胜任。不过我鼓励你进一步了解 GANs(通常被误认为是一种架构)、无监督预训练(DINO)和调整等训练程序。学习高水平的扩散和 LLM 可能会有所帮助,但这取决于您的使用案例。(只要你感兴趣、有热情,就去学)!不要让需求阻止你,但如果你对这些东西不感兴趣,也不要担心。你不会被落下的)

    如果您不只是在整合工具,还需要调整模型,那么请花时间学习这一点,并将重点放在通用化上。几十年来,我们从中学到的主要经验并没有发生翻天覆地的变化,今后也可能如此。我们确实在不断学习,不断进步,但这并不是突飞猛进的。因此,如果你定期重温,而不是试图实时跟上,也是可以的。因为在现实生活中,改变游戏规则的人并不多见(当然,每个人都想宣传自己是改变游戏规则的人,但我们不会追逐每一种新的编程语言,对吗?) 让时间的考验为你减少噪音吧。

     > 我通常看不到人工智能/ML 在我们产品中的任何用例
    

    这很正常。你可以在任何东西中加入人工智能,但这并不意味着它就是最合适的工具。忽略炒作,关注实用性。有很多噪音,我对此深有同感。

    解决问题,然后选择合适的工具,而不是为了证明工具的合理性而寻找问题(用于教育目的还不错)。

  7. 计划是这样的:

    运行以下模型:

    – 语音到文本 – 文本到文本 – 文本到语音 – 文本到图像 – 图像到文本 – 文本到视频 – 视频到文本

    首先集成第三方应用程序接口,然后转用开源模型。

    使用您喜欢的后端语言实现所有功能。然后,将其连接到您选择的前端框架,创建交互式界面。

    你想使用自己的数据?将其放入数据库并连接到您的后台,然后在您的数据库上运行这些模型。

    完成这些工作后,你就完成了全栈开发培训。

    1. 我认为这是一个很好的观点。这些问题历来都很难在工程中解决,而你只需调用 api 就能获得相当可靠的解决方案。

  8. 听起来你是在了解一项技术,并在寻找一个问题。不要勉强。大多数事情都不需要人工智能。就我个人而言,当一个产品试图在不需要人工智能的产品中强行加入人工智能时,我觉得这很令人反感。这会让我对整个产品嗤之以鼻。

    我的情况与你类似……我有一份工作,但人工智能在这份工作中的应用并不明显。我对这一切的态度是,一旦有合适的人工智能产品出现,我就会使用它们,但最终我还是在等待市场的成熟,以便在泡沫破灭、方向更加明确后,再决定是否以及如何前进。我对在人工智能发展的 “仓鼠轮 ”上奔跑兴趣不大,尤其是我已经有了一份不需要人工智能的工作。

    1. 一般来说,避免寻找问题是个好主意。

      但根据我的经验,这反过来又会产生一个问题,那就是如果你不了解某项技术,你就不会看到它能解决的真正问题。

      因此,有时候,开始用它做一些事情是很有意义的。你很快就会发现它的潜在用途,应用它,学到更多,并克服这个障碍。

      就这样做吧,除了学习新知识,不要指望任何回报。

  9. 比起 “真正的 ”ML,我更愿意从应用的角度来回答这个问题。

    Hacker News 是一个很好的新闻来源。

    至于学习,你必须构建一些东西。

    我建议你从 OpenAI 或 Anthropic 网站上使用聊天完成 API 的示例代码开始。他们有 Node.js 代码。

    reddit 上的 r/locallama 很有趣。

    在 Youtube 上,可以看到 Matt Wolfe、Matthew Berman 和 David Shapiro。这些网站并不真正以开发者为中心,但会提到一些进展。

    您也可以在 Youtube 上搜索 “AI Engineer ”或 “agentic ”或 “LangChain”。

    为了激发兴趣,也许可以玩玩 replicate.com API。它有剪贴示例和许多有趣的模型。

    更多想法:在 X/Twitter 上搜索 “Crew AI”。

  10. 撇开炒作不谈,人工智能的一些应用适合解决一些一般性问题。

    推荐系统、自然语言输入/输出、图像检测、总结、模式匹配和/或分析大型数据集是否会让您的产品受益?

    如果是这样,那么也许 ML 可以帮到你。

    我认为,如果你需要 ML,你最终会意识到这一点,因为你发现的问题解决方案将由 ML 的应用来提供。

    也就是说,在进行研究、尽职调查等工作时,你不可避免地会遇到成功或不成功地使用 ML 的方法。

  11. 我不知道为什么,但似乎大部分高质量的人工智能内容都在 twitter 上。在人工智能开发方法上,Twitter 似乎比 HN 平均领先约 4 个月。

    我建议关注/阅读那些谈论使用 Claude 3.5 sonnet 的人。

    很多人都在使用 3.5 sonnet 开发整个应用程序,有时还集成了光标或其他编辑器。只要你学会如何正确使用这些模型,并且不使用不正确的 LLMs(不幸的是,我经常在 twitter 之外的其他地方看到这个问题),现在这些模型在编写代码方面已经变得相当不错了。就在昨天,Anthropic 发布了一项更新,您现在可以存储整个代码库,以 90% 的代币折扣作为提示调用的一部分。这应该会让已经非常不错的模式变得更好。

    Gumroad 的首席执行官还在 YouTube 上制作了一些很好的内容,介绍了很多这些技术,但这些都是现场直播,所以有很多死角。

    https://www.youtube.com/watch?v=1CC88QGQiEA

    https://www.youtube.com/watch?v=mY6oV7tZUi0

  12. 这里的评论主要集中在 LLM 上,这也是情理之中的,因为这才是炒作的重点。如果你真的不介意忽略细节,你可以将所有大型语言模型视为黑盒子,随着时间的推移,它们会逐渐变得更好。从开发人员的角度来看,与它们进行交互并不困难–发送文本或标记,然后得到文本回复。

    作为用户,绝对值得一试,看看它们能做什么(也能不能做什么)。此外,它们还有一些非常有趣的使用案例,可用于那些从头开始开发会复杂得令人发指的任务,而且 “它就是能用”(忽略提示中毒)。想想解析和总结。如果您是应用程序开发人员,请研究一下边缘模型及其功能。

    否则,可以涉足其他模型类型–图像分类和物体识别也在不断完善。目前,移动图像处理主要由 ML 模型驱动。这是我的研究领域,ResNet 和 UNet 仍然是无处不在的架构。

    如果你想持怀疑态度,请忽略人工智能,转而阅读 ML,并了解这些算法只是你可以使用的另一种工具。它们并不 “智能”。

  13. 在我们的组织(大型美国银行)中,github copilot 的推广非常成功。对我来说,学习如何在日常编码/测试/开发等工作中使用它变得至关重要。现在,我正在编写一段 python 代码,以解析 csv 并创建一份报告。我以前从未学过 Python。

  14. 我一直对人工智能持怀疑态度,因为它的炒作味道很浓。

    尽管如此,我还是开始了一些实验,就像所有被炒作的技术一样,其中也有一些有用的内容。

    我的建议是从一些非常简单和真实的重复性需求开始,并使用助手应用程序接口来完成。

    我首先将一个包含 150 个词条的半结构化 word 文档转化为结构化数据库表。如果是手工操作,我可能会做得更快,但也学不到什么东西。

    我认为,生成式人工智能目前的优势并不在于创造性的工作(创建代码、创建商业交流、内容创建等),而是世俗的、重复性的工作,在这些工作中,使用生成式人工智能一开始似乎有些矫枉过正。

  15. 我是一名全栈工程师,最近转型做全职后端工作。

    我建议学习 pgvector 和文本嵌入模型。一开始似乎很难,但实际上基本概念很容易理解。

    pgvector 是 Postgres 的扩展,因此你可以使用一个良好的传统数据库和矢量数据库功能。

    文本嵌入很容易操作。如果你想在本地或临时完成,可以使用很多模型;如果你不想操心,也可以直接使用 OpenAI 或 GCP 的 api。

    这个组合还兼容多个供应商,因此它是一种很好的入职体验,可以扩展到多个供应商。

  16. 我的情况也差不多,大多数时候我只是确保对新机型进行试驾。在这里和那里也尝试使用它们,找出它们的能力和不足。这样,当我听到消息时,就能更容易地嗅到它们的气味了。

  17. 试着阅读一些关于深度学习的资料;在云 gpu 服务器上试用像 detectron2 这样的开源 AI 库。(即 colab)。学习一些 python,包括环境设置。

  18. 您是想使用人工智能/LM,还是对开发或部署人工智能/LM感兴趣?因为这两个问题截然不同。

    离题了,不过今天我遇到了第一个人工智能可能会影响业务的时刻。我的笔记本电脑出了点问题,在 IT 部门开了个服务台单子。它被分配给了一个真人。经过几天的来回处理,问题得到了解决。我更新了单子,大意是:”是的,我想我们可以关闭这个单子了,如果问题再次出现,我会再开一个新的单子。感谢您的耐心与合作”。几秒钟后,我收到一封电子邮件,说人工智能代理根据我的更新措辞决定关闭我的票单。

    你知道的,我想这很好。因为我们有指标,该死的!”业务部门希望关闭票据。但如果角色颠倒过来,我是服务台代理,看到感谢信和点击 “已解决 ”按钮很可能是让我继续处理票单的唯一动力。让人工智能只做我工作中轻松有趣的部分,只会让我士气低落。

    1. 我正在运营一个相当受欢迎的网站,该网站有很多不成熟的用户。网站上有常见问题解答和教学视频,但一般来说,人们并不阅读或理解这些说明。然后他们给我发电子邮件或打电话。我花了很多时间重复同样的答案。我一直在开发一个支持系统,它可以根据常见问题解答回答这些基本问题,如果它不知道如何回答,就会尝试总结问题,然后将问题发送给我。我很惊讶它的功能如此强大。我不会因为为别人重复同样的事情而产生内啡肽。

  19. 先玩玩,试一试,想法就会冒出来,相信自己的聪明才智

  20. 这个问题有两个方面:使用人工智能/ML/LLM 增强自己的开发能力,以及在自己构建的应用程序中使用人工智能/ML/LLM。

    就前者而言,Copilot 类型的实现在使用时非常直观实用。我觉得它最有用的功能是自动完成,但聊天机器人功能也可以成为 “卡壳时跟鸭子说话 ”的一个不错的、稍好的替代方案。说到这里,我将重点谈谈后者(在实际工作中使用人工智能/ML)。

    通用 AI/ML/LLM,其实就是一个 “黑盒子 API”,就像我们工具袋中的其他工具一样,不管是 Postgres、Redis、SSE、CUDA、Rails,甚至是文件系统和汇编顶层的 C 语言。我们不需要了解这些东西的所有内部工作原理,只要知道如何使用抽象就足够了。在这一点上,你可能会认为何时使用这些东西是理所当然的,但我们之所以使用这些东西,是因为它们对手头的特定问题很有帮助。LLM 也不例外!

    重要的是要认识到 LLM 适合解决哪些类型的问题,以及将它们集成到应用程序中的位置。其中很明显的一类问题是将纯文本解析为结构化数据,以便在应用程序中使用。这很容易促使 LLM 完成。OpenAI 和 WebLLM 在其 NPM 库中提供了一套非常直接的通用 API(其他语言绑定也非常类似)。虽然这还远远称不上是 “标准”,但熟悉这两种语言的工作方式绝对是值得的。

    举个例子,我在社交媒体应用[1]的 “事件 AI ”分支中同时使用了 OpenAI 和 WebLLM,从纯文本中解析社交媒体事件(如电子邮件列表内容等);请随意测试它并查看(AGPL)源代码,以参考我是如何使用这两个 API 来完成这项工作的。

    对于你真正有钱花在 LLM 盒子上的项目,你可能会在 BE 上完成这项工作,而不是像那里演示的那样在 FE 上,但概念的转换应该非常直接。

    如果你有兴趣真正了解 LLM 的内部运作,我不想阻止你!不过,真正进入这个领域似乎最终意味着从全栈软件工程转行到数据科学,因为两者都有我们需要掌握的基础技能。不过,我很高兴自己的判断是错误的!

    [1] 来源:https://github.com/JonLatane/jonline/blob/main/frontends/tam… | 实施:https://jonline.io/event_ai

  21. 当前的 ML 将被根本不同的东西所取代。我们正处于 ML 的前 jquery 时代。

  22. 我发现自己并不需要人工智能或 ML。我就是不用它。

  23. > 当你有一些使用这些工具的经验时,你会更容易发现机会。

    是的,完全正确。据我所知,培养这种直觉的最有效方法(不仅在人工智能/ML 领域,在大多数学科领域都是如此)是多次尝试和失败。你需要了解什么可行、什么不可行以及为什么不可行的界限。选择一个框架(或者,在学习时,你最好从一个框架开始,然后通过自己构建这些部分来发展你的直觉),选择一个项目,并尝试让它运行。如果你想更快地获得这种经验,那么就把重点放在把 ML 部分做扎实上,而不是完成产品(除非你也没有 “产品 ”经验,而且可能会从端到端的一些事情中受益)。

    > 从长远来看,保持相关性

    除了人工智能取代/改变编程行为本身的轻微不确定性之外(对于这一点,除了学习如何利用这些工具之外,我还没有看到很多很好的选择(请记住,如果你这样做,大多数任务的速度都会变慢,所以在你的工作效率恢复到以前的水平之前,你会有一个学习曲线;你不可能用当前一代的人工智能取代一切),反正我们可能会被搞砸),我丝毫不会担心这个问题,除非你出于某种原因明确想要进入人工智能/ML 领域。即使是在人工智能密集型公司,也只有 10% 左右的开发人员会接触到人工智能方面的东西(小型初创公司除外,这些公司的员工人数较少,因此存在更多差异)。其他 90% 的工作还是老样子。

    > 继续我在这些领域的学习

    尝试和失败是极其重要的(也是学习数学、编程和语言学的好方法),除了尝试和失败的一般概念外,我建议在你有足够好的导师或足够好的直觉来感觉哪些趋势是重要的之前,不要积极追求最新的趋势。现在有太多的事情正在发生,有大量的钱在等着你,而且有很多人都在为这股淘金热出售生锈的镐头(很多人是故意的,也有很多人是因为不了解情况)。这将耗费太多时间,而且你的信噪比不够好,不值得这么做。

    一个具体的建议是,开始在 YouTube 上关注 Yannic Kilcher。他报道了大多数重要的最新模型、论文和观点。他在这一领域的大部分观点都很不错。我认为他每天制作的内容不会超过一小时左右(而且语速相对较慢(这正是 YT 普通观众想要的),所以如果你想更快一些,可以使用 2 倍帧频)。或者找一些好的 “基础 ”论文清单来内化(比如 5-20 篇)。在 HN 上发布这些论文很常见;找一些看起来已经研究了一段时间的人。避免听取大牌人工智能名人的建议。找个导师。细节并不太重要,但你要尽可能找到一个适度值得信赖的人,借用他们的专业知识来分辨麦子和谷壳,如果他们的激励机制是提供好的信息而不是大量信息,你就会得到更好的结果。

    一旦你对什么是可能的、它是如何工作的、性能特点……有了一定的背景知识,你就很容易看待一个新想法、新服务、新业务……,并判断它是绝对可行、也许可行,还是充满垃圾。这样,您对库、框架、网络拓扑结构……的选择就变得相当容易了。

    >> 其他人说要用 LLM 做一些简单的事情,并夸夸其谈

    也许吧 玩一件东西是建立直觉的好方法。这与我上面的建议并无二致。不过,在向世界介绍自己时,你要确保建立正确的印象。如果你有证据表明,你可以轻而易举地将法学硕士产品化,那么这就是当下的热门话题。如果你发布了相关代码,这也是证明你有能力编写代码的一个证据。如果你在简历中大力宣传法学硕士,这也是一个信号,表明你没有 “真正的 ”ML 经验。理想情况下,它会与其他信号进行权衡,但你是在为自己画像,你希望这幅画展现出你希望展现的东西。

    > 看不到人工智能/ML 的任何用例

    作为一个经验法则(不是万能的,但假设你没有先建立很多直觉),人工智能/移动语言在以下情况下是一个很好的解决方案:

    (1) 你正在用复杂的规则做大量的事情

    (2) 您有大量与该 “某件事情 ”相关的数据

    (3) 存在某种可以容忍错误的原因

    我不会把它扩展到所有可能的含义,但我会强调几个方面,希望能立刻帮助您建立一些直觉:

    (a) 现代 ML 通常使用动态语言编写,并使用大型模型。这让人们对它的能力产生了奇怪的印象。在工作中,我们每秒要进行数百万次推理。在家里,我在鼠标驱动程序中使用了 ML,以解决 libinput 在处理过程中遇到的问题。如果你有大量数据(鼠标驱动程序会产生数十亿个事件),并且有一些合理的失效策略(鼠标驱动程序的问题只是过滤掉幽灵事件;如果你每毫秒拒绝几个真实事件,那么你的鼠标移动速度就会减慢 0.1%,如果你在意的话,可以在设置中进行调整),你完全可以用一个完美代表你的系统的基本 ML 模型来取代 hysterisis 和所有那些无稽之谈。除此以外,我还做过很多事情,机会之多让我所写的任何东西都相形见绌。低延迟 ML 非常有影响力。

    (b) 即使是复杂的、容易出错的计算机视觉任务,也会有一些容错机制。假设你想一次性捕获一整个家族的野猪(否则它们就会躲起来,生下一窝小问题,然后再也不会进入你的陷阱,因为在这个过程中它们失去了一半的家人)。您想用一种便宜的方法在一段时间内监控捕兽夹,并确定哪些野猪是这个家族的一员。假设你在应该关闭捕兽夹的时候没有关闭。会发生什么?改天再试一次;无伤大雅。假如你在不该关的时候关了呢?如果它的准确率能达到 50%-80%(实际上你可以做得更好),那么你就可以省下无数的工时来除掉猪,而这可能需要几次尝试。

    (c) 看看植物识别应用程序。它们通常都是正确的,它们会将照片与预测结果结合起来,突出显示有毒的同类植物,预测结果会列出每种预测的清单和可信度,从而便于人们通过更可靠的来源(属、种、物理特征描述……)进行调查。我相信肯定会有人无视所有警告,从来不查资料,以为毒芹是一种特别不好吃的胡萝卜就吃了下去,但如果有一本植物鉴别书或一个特别热心的朋友向他们展示野生胡萝卜的样子,这个人很可能就完蛋了,而对于世界上的其他人来说,IMO 应用程序更容易使用,也更可靠,因为他们有机制来处理不可避免的失败。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注