我的两分钱 2023-04-21 1240 0 0 0 0
ChatGPT,人工智能,程序员,年初的时候,我第一次接触了ChatGPT,在被深深震撼之后,我意识到一个新的时代正在来临,作为程序员的我有了从未有过的危机感,在海量的信息里浸泡了几周后,我写下了自己的思考:《AI时代,程序员该何去何…

年初的时候,我第一次接触了ChatGPT,在被深深震撼之后,我意识到一个新的时代正在来临,作为程序员的我有了从未有过的危机感,在海量的信息里浸泡了几周后,我写下了自己的思考:《AI时代,程序员该何去何从》,文中提到,作为程序员的我们需要大幅更新自己的技能栈,之后我便开始了更新技能栈的践行。

经过过去几个月的学习,我逐渐度过了不知所措的阶段,慢慢地对以ChatGPT为代表的LLM有了一些感觉,这篇文章就把过去这段时间的学习整理成一个学习路线图,希望能对有志于入门AI的同学有点帮助。

小白应该从哪里开始

假设您和我一样是从小白开始,我建议首先能有一个快速启动,迅速地把ChatGPT用起来,同时也为进一步的学习做好准备,具体我建议:

    1. 有一个自己的ChatGPT账号,有自己OpenAI的API Key,这是一切的起点
    2. 尝试着和ChatGPT聊聊天,试试不同的话题(如写作、摘要、写码、翻译...),对ChatGPT不同方面的能力有所了解
    3. 试着在工作、生活中可能的地方都用ChatGPT试试(比如写周报),开始让ChatGPT为我们实际创造价值
    4. 如果你还没有GitHub账号或Hugging Face账号,那么尽快注册账号,这是未来学习离不开的两个社区,同时学会使用Google的Colab,这里提供一定量免费的GPU使用
    5. 如果你还不熟悉Python,可以快速学习了解下,LLM社区大量的项目都是基于Python的,我们不用追求马上精通Python,了解基本语法,能看懂别人的代码就可以了,几天时间应该就可以入门

从Prompt入手玩转ChatGPT

使用一段ChatGPT后,你很快会发现很多时候要让ChatGPT按自己的期望工作,Prompt是关键,在这个阶段,我建议:

    1. 学习写好Prompt的通用原则
    2. 掌握常见的Prompt技巧(如Few-Shot, Instruction, CoT...),可以参考我的文章《释放ChatGPT的真正潜力:Prompt技巧完整指南
    3. 如果有时间,还可以学习一些高阶的Prompt技巧,这些技巧在处理一些复杂的问题时会有帮助,可以参考《释放ChatGPT的真正潜力:Prompt技巧进阶指南
    4. 学会使用OpenAI Playground,在学习LLM的过程中,你会花大量的时间写Prompt,Playground能帮你节省大量的时间
    5. Prompt是LLM领域讨论最热烈的话题,多看、多搜、多想、多练,很快你就会成为Prompt高手

学习Prompt专业玩法,解决实际问题如果你只是作为使用者玩玩ChatGPT,上面的学习应该已经足够了,如果你作为程序员,想用ChatGPT解决一些实际的业务问题,很多时候光靠手写Prompt是不够的,此时就需要一些专业的玩法了,我建议:

    1. 读一读Prefix-Tuning, P-Tuning, Prompt Tuning, Y-Tuning的相关论文,大家不用对读论文感到恐惧,现在的论文里数学公式越来越少了,更多都是工程实践,只要你能完成一篇论文,读论文这个技能树你就点亮了
    2. 至少动手写码实践上述技巧中的一种,我自己是试着实现了Prompt Tuning,可以参考《当Prompt技巧用尽,Prompt Tuning成就无限:如何找到最优Prompt?
    3. 多搜、多看,这个领域总是不断有新的玩法涌现出来

学会使用必要开发框架和工具

从上一阶段开始,作为程序员的我们已经开始逐步动手实践了,掌握一些开发框架、第三方库能极大地加速我们的开发效率,我建议:

    1. 一定要学习LangChain,虽然LangChain本身只是对LLM调用的一个包装,但是其Agent,Memory,Chain,Prompt的封装能大幅简化开发
    2. 学习如何使用Hugging Face,学习Hugging Face出品的Transformer, Peft这两个绕不开的库
    3. 学习ChatGPT plugin,没准下一个Killer Plugin就是你开发的
    4. 学习至少一种Embedding数据库的基本用法
    5. 如果有时间,多了解PyTorch、NumPy等几乎必然会使用的开发库

开始大量动手实践ChatGPT是LLM工程实践的胜利,同样,学习LLM也需要大量的动手实践,只有在实践中我们才能碰到真正的问题,只有解决真正的问题,我们才能对LLM有深入的理解,我建议:

    1. 首先学会如何通过API调用ChatGPT
    2. 试着在代码里使用之前学习的各种Prompt技巧,通过对用户隐藏一些你对ChatGPT的调用,你能写出一些用户看起来很神奇的应用(比如最近大火的AutoGPT)
    3. 因为每次调用的每个token都有费用,有意学习一些上下文压缩技巧,有意学习一些上下文保持技巧
    4. 实现一个类似于ChatPDF这样的简单应用,学会如何给ChatGPT灌输外部知识,可以参考《我的第一个聊天机器人:从零开始DIY
    5. 有人认为有了ChatGPT,未来的人机交互会像钢铁侠和他的Jarvis一样,所以试着实现一个以对话为交互界面的私人助手,可以参考《让ChatGPT能说更能做:DIY属于自己的个人助理》,如果你有兴趣,还可以通过引入语音转文字,文字转语音,让你的助理更像Jarvis一些,有时间还可以翻一翻AutoGPT的源码,你会发现看起来很炫其实实现很简单
    6. 在实际业务场景,数据隐私很多时候是个顾虑,所以试着找一个ChatGPT的开源平替,看看能不能在自己的机器上跑起来,可以参考《以小博大:Alpaca,您个人电脑上的ChatGPT
    7. 结合自己兴趣,或者实际业务场景,动手做更多实践

进入动手实践的深水区随着实践的不断增加,你会发现无论你怎么使用Prompt技巧,模型都不能按期望工作,此时你将不得不对模型进行训练,也许我们没机会对一个大模型进行全参数的训练,但我们可以进行很多低成本的模型精调,我建议:

更进一步,知其然更知其所以然

如果一步步走到这里,相信你对LLM应该已经有了自己的理解,如果你想进一步深入学习,为未来真正成为LLM的大拿做好准备,那么就需要了解LLM背后的Why,我建议:

    1. 了解ChatGPT的整体架构和详细的工作流程
    2. 了解Transformer架构,了解它和之前的RNN,CNN的区别和联系
    3. 了解Embedding
    4. 了解注意力机制的详细工作原理
    5. 了解机器学习的基础知识
    6. 了解深度学习的基础知识
    7. 了解相关的代数和概率知识

埋头赶路,更要抬头看天AI这个领域,几乎每天都有新的变化和进展,同时我们的学习也是为了创造价值,因此,除了学习各种技巧和技术,我们也需要了解行业里到底在发生什么,我建议:

    1. 多看看大公司的动向,行业的发展往往由他们引领
    2. 多看看投融资领域的大事件,VC的嗅觉是最敏锐的
    3. 多看看产品、技术方面的突破,多从长期视角看本质突破,注意屏蔽那种一惊一乍吸引眼球的噱头,争取让自己起码每个月能看一篇精选的论文
    4. 多关注行业的竞争,多看看开源社区的进展,多看看ChatGPT竞争对手的进展
    5. 更具体地,多关注多模态的方面的进展,多关注降低模型训练、推理成本方面的进展,多关注数据隐私和私有化部署方面的进展

Tag: ChatGPT 人工智能 程序员
相關內容
歡迎評論
未登錄,
請先 [ 註冊 ] or [ 登錄 ]
(一分鍾即可完成註冊!)
返回首頁     ·   返回[ChatGPT]   ·   返回頂部