普通开发者应该如何入门 AIGC 开发?

我是一个传统的开发者,应该如何学习AI相关的知识?应该如何转成 AI Developer 呢?
这个问题非常多人关注,毕竟作为一个开发者,肯定不想错过即将来临的 AI 浪潮,这个问题,可以看知乎的相关回答: https://www.zhihu.com/question/263823175/answer/3157821046

知乎上的前面几位答主回答的非常专业,但是我认为他们没有讲清楚 AI 开发的方向。我个人认为,目前 AI 有两个方向:

  1. AI 基建开发者
  2. AIGC 开发者

##AI现状分析

大家可以自己多搜索一下相关的资料,我这里根据自己的入门大概总结一下:

首先 AI 开发是一个非常广泛的概念,相关的岗位与领域,不亚于程序员这个职业,也就是说它有很多细分的岗位

大家不要一听到再不学 AI 就要被淘汰了,首先 AI 虽然经过 2023 年的 GPT 发布,整个 AI 似乎爆炸性的增长了,实际上AI目前的处理能力,解决方案等, 还是不够成熟的。

一个图总结一下目前 AI 的现状:

AI 现状

也就是说,AI 到目前为止,暂时还没有很好的落地,或者落地的成本很高,它只能走某个领域有一定的效率提升,AI 发展到后面,可能下面几个方向:

领域专有 AI

比如专门的医学 AI,类似于现在大家用 GPTs,在上面上传一些医学的相关知识,它能回答用户一些医学问题。但是目前的AI还是离专业的医生有一段相当长的距离, 目前国内外许多公司也在研究某个领域专有的 AI,比如训练出一个超级医生之类的.

多模态 AI

这种AI就是目前已 GPT 为代表的全能全知AI,这种AI可能是无所不能的,发展到到最后,可能就是黄仁勋说的,最后可能是资源的争夺(GPU 与 电量),谁能提供 超大规模的AI 资源,谁就能成为下一个AI巨头。

私有可部署小型 AI

现在比较多的人希望能出一个类似于私人助理的 AI,类似于小爱同学,或者 Siri,在手机或电脑上就能独立运行。将AI做小,做精细化,是目前AI比较大的一个 难题,因为AI目前的发展上看,需要的资源还是非常庞大的,尽管部分AI大模型能运行在个人电脑上,但是效果非常差。可能性可以看这篇文章:ai手机-本地部署大模型

如何入门

AI 的相关知识浩如烟海,如果你想全部学会基本也是不太可能的事情,它有机器学习深度学习自然语言处理(NLP),计算机视觉大模型 LLM等等。
相关的领域特别多,并且大部分的门槛也相当的,需要你精通数学或计算机基础。

具体方向

所以如果你需要入门AI开发,一定要先去了解,目前AI有什么领域与方向, 每个大方向上又有需要细分的领域,比如传统的后端开发者,也只是一个统称,包含的职业 不限于:web 开发api 开发数据库管理系统架构师DevOps工程师云计算等等. 所以建议入门之前,先了解一下AI的大方向,以及具体每个方向 上的具体岗位与职业。

AI基建开发者

AI 基建开发开发需要具备一系列技能和知识,除了编程语言,还需要精通机器学习和深度学习,数据处理和分析,算法和模型优化,深度神经网络等等。这些东西都需要 一定的数学功底,以及计算机基础,算法基础。

也就是说,如果一个普通的 AI,想要转变成这样的AI开发者,可以说非常难,大家可以看看我文章开头的链接,这里就不在展开了。

而且俗话说得好,万事开头难,中间难,结果也难。如果你一开始什么AI 基础都不会,只是一个普通开发者,想要直接过渡成AI开发者,可以说是非常难的,这种难度, 会直接卡着你的转变,凡事先易后难,先从入门相对较为容易的 AIGC 开发者入手,再慢慢过渡成AI基础建设开发者者,也是普通开发者更容易走的路。

AIGC 开发者

生成式人工智能AIGC(Artificial Intelligence Generated Content)与AI 基础建设开发不太一样,AI基础建设开发主要集中在构建能够执行特定任务的模型,如分类、回归、聚类等。 而AIGC开发更侧重于生成内容,如文本、图像、音频等,通常使用生成式模型,如生成对抗网络(GANs)或变换器(Transformers)。
AIGC开发更加强调模型的创造性和生成能力,能够生成新颖、有趣的内容,而AI基础建设开发更注重模型在特定任务上的准确性和效率。
需要更复杂的评估方法,如生成内容的质量、多样性、真实性等。 开发主要应用于内容生成、创意产业、艺术创作等领域, 可能涉及更多的伦理和道德考量,因为生成的内容可能会引发版权、隐私、虚假信息等问题,需要更谨慎地处理。

AIGC 开发者更注重的是应用领域,AI基础建设开发者开发的是AI相关技术的技术,基建,算法模型等等。而 AIGC 开发者 则更接近普通大众,是AI 算法模型的应用者。
但不是说那些高数,算法,机器学习不重要,这是AI的基石。
举个不太恰当的例子,AI基础建设开发就好比在开发操作系统,而 AIGC 则是在该系统上编写应用。那应用开发者需不需要理解底层系统原理呢?肯定是需要的,理解了底层的系统原理, 能够帮助我们写出更好的应用程序,但这是两个方向。一个人的精力是有限的,特别是底层AI技术的门槛更高,所以我建议普通开发者,应该学学会如何成本一个 AIGC 开发者, 在此基础上,再研究一些底层的原理,从而更好的帮助我们理解与开发AI应用。

AIGC 方向

AIGC,目前主要关注利用生成式模型来创造各种类型的内容,如文本、图像、音频等。以下是关于AIGC方向的一些重要内容:

  1. 文本生成:在AIGC领域,文本生成是一个重要的应用方向。文本生成模型可以用于生成文章、故事、对话等文本内容,如GPT(生成式预训练模型)系列就是其中的代表。

  2. 图像生成:除了文本生成,AIGC还涉及图像生成。图像生成模型可以生成逼真的图像,Stable DiffusionMidjourney,等模型可以生成艺术风格的图像。

  3. 音频生成:AIGC方向还包括音频生成,例如生成逼真的语音、音乐等。

  4. 视频生成:生成式模型也可以用于视频生成,创造出逼真的视频内容。这涉及到对帧的生成和合成,例如最近非常火的 SoraSora

  5. 创意产业应用:AIGC在创意产业中有着广泛的应用,如广告、艺术、设计等。通过AIGC技术,可以创造出新颖、有趣的内容,拓展创意空间, 比如一键换衣 一键换衣

  6. 安全,监管,对抗,伦理和道德考量:在AIGC的发展过程中,也需要考虑伦理和道德问题,如内容真实性、版权问题、虚假信息等,需要加强监管和规范。
    这个领域可以说是一个确定的,且非常独特的领域。说到监管,很多人就想到政治问题,实际上监管包含的方面也很广泛,也不是说我国的AI才需要监管。
    首先安全这不必多少,必不可少。对抗也是,比如如何识别图片是AI生成的,如何识别文章,或者论文是AI生成的。监管就更不用说,如何让AI原理暴力,政治等, 这些都需要一些非常实际的需求。

##AI印象 如果你从来没有了解过AI 的相关东西,对AI的大部分术语与基础都不太了解,建议你先看看这个: 通往 AGI 之路

这个网上收集了很多AI的相关资料与知识,适合绝大部分人AI入门,里面包含的东西也非常的多,看完之后对AI就有一个大概的印象了,这样对入门 AIGC 开发 打下了基础,方便自己转入AI开发。

需要指出的是这份资料目前也只是让你认识 AI,里面的东西太多了,我还是得强调一个问题,现阶段,大而全就就意味着不是很精,目前这份资料的每个领域还不是很系统化, 也不是很深入,但是作为入门AI的资料还是非常合格的。

AIGC 基础技术

AIGC 由于领域与岗位不同,需要掌握的技术也不尽相同,这里说一下一些我认为作为一个普通的 AIGC 开发者,应该掌握的常规基础知识。

Python 编程语言

Python 是AIGC领域中最常用的编程语言,具有丰富的库和工具,适合快速开发和实验。在这一部分,你可以探讨PythonAIGC中的具体应用、常用的库 (如TensorFlowPyTorch等)以及如何利用Python进行数据处理、模型训练等。 可以这么说,目前几乎所有的AI相关的项目,都需要 Python 来作为入口运行,所以必须要掌握一定Python 基础。

Linux/服务器基础知识

由于AIGC任务通常需要大量计算资源,哪怕一个项目能使用高性能的 PC 个人电脑跑,但它也是比较卡的,而我们作为开发者,是需要将项目部署到线上给用户用的,所以 掌握简单的服务器知识是必须的。熟悉Linux系统和服务器基础知识是至关重要的。

Prompt Engineering

Prompt Engineering是指设计和构建用于生成式AI模型的输入提示(prompts)。这在训练和调整生成式模型时至关重要,可以影响生成内容的质量和准确性。你可以探讨如何设计有效的提示,如何优化提示以获得更好的生成结果等。 这个可能跟技术没什么关系,但是没一个入门的AI开发者都必须掌握的,好的提示词语差的提示词,对AI的效果是完全不同的,这里推荐一下吴恩达老师 联合 OpenAI 出品的 三个课程,每个课程非常值得学习:
《面向开发者的 Chatgpt 提示工程》 B站链接
《使用 Chatgpt 构建系统》 B 站链接
《LLM应用程序开发的LangChain》 B 站链接

我认为每个 AIGC 开发者都应该掌握上面的三个课程,甚至应该成为 AIGC 岗位的面试基本题。

数据处理与特征工程

AIGC开发中,数据处理和特征工程是非常重要的环节。这包括数据清洗、特征提取、数据标注等工作,直接影响到模型的性能和生成内容的质量。

模型训练与调优

了解如何训练和调优生成式模型是成为一名优秀的AIGC开发者所必备的技能。这包括选择合适的模型架构、调整超参数、优化训练过程等方面。
并不是说成为 AIGC 开发者,就不需要优化AI模型的参数,如果是这样的话,那你跟只会调用 API 的程序员没有什么两样,很快就会被替代掉。以使用 StableDiffusion 为例, 我们需要知道如何训练大模型,Lora,以及出图的各种参数,这样成为某个AIGC 领域的专家,而不是一个 CURD boy.

另外有一个趋势是: 目前优秀大模型普通人或者普通公司都是玩不起的,它需要海量的资源支持,而非常优秀的AI模型通常都是闭源的。但是这不妨碍我们针对大模型进行 微调,GPTs 就是一个很典型的代表,只不过 GPTs 把微调的们门槛降低了,人人都可以是AI 的微调师。

我在这里大胆的猜测,未来AI的模型很长一段时间应该都是闭源的,这个是AI公司的核心资产。但是它会开放一些微调能力,这些则需要每个AI相关的人都掌握,它不一定需要 编程能力,但是如果你理解了大模型与微调模型,底层基座之间的关系,对模型调优的帮助肯定非常大!!

伦理与法律考量

AIGC开发过程中,需要考虑到伦理和法律方面的问题,如数据隐私、版权问题、虚假信息等。我们用的大模型,或者某个AI项目是否是可以商用的,用的数据,是否是合法的。 或者是否会产生黄暴内容等等,这些都是需要相关的技术支撑。

入门开发实践

上面的基础技术掌握之后,我们可以先入门一个比较简单的领域,尝试一下 AIGC 的魅力。目前最简单,且可用,又最能提升成就感的AI领域,就是AI 绘画,让你不会从 《入门到精通》变成《入门到放弃》。

AI 绘画入门,可以看我这边文章:AI绘画入门

总结

总的来说,想从一个普通开发者,转成一名 AIGC 开发者,需要:

  1. 先了解一些AI的背景与方向
  2. 再了解一些 AIGC 的领域与方向,现状与技术,略读并尝试通往 AGI 之路中的例子与自己感兴趣的方向
  3. 掌握 AIGC 基础开发知识
  4. 找一个自己感兴趣的领域入门,如:AI绘画入门,或者:手机部署大模型 等等

等基本了解差不多了,再根据AI发展的趋势,以及自己的职业规划,选择一个合适的方向,去深入研究与学习,这样在未来的AI浪潮中,自己就不会被AI所淘汰了。

加油!!!