年初的时候,我第一次接触了ChatGPT,在被深深震撼之后,我意识到一个新的时代正在来临,作为程序员的我有了从未有过的危机感,在海量的信息里浸泡了几周后,我写下了自己的思考:《AI时代,程序员该何去何从》,文中提到,作为程序员的我们需要大幅更新自己的技能栈,之后我便开始了更新技能栈的践行。
经过过去几个月的学习,我逐渐度过了不知所措的阶段,慢慢地对以ChatGPT为代表的LLM有了一些感觉,这篇文章就把过去这段时间的学习整理成一个学习路线图,希望能对有志于入门AI的同学有点帮助。
小白应该从哪里开始
假设您和我一样是从小白开始,我建议首先能有一个快速启动,迅速地把ChatGPT用起来,同时也为进一步的学习做好准备,具体我建议:
- 有一个自己的ChatGPT账号,有自己OpenAI的API Key,这是一切的起点
- 尝试着和ChatGPT聊聊天,试试不同的话题(如写作、摘要、写码、翻译...),对ChatGPT不同方面的能力有所了解
- 试着在工作、生活中可能的地方都用ChatGPT试试(比如写周报),开始让ChatGPT为我们实际创造价值
- 如果你还没有GitHub账号或Hugging Face账号,那么尽快注册账号,这是未来学习离不开的两个社区,同时学会使用Google的Colab,这里提供一定量免费的GPU使用
- 如果你还不熟悉Python,可以快速学习了解下,LLM社区大量的项目都是基于Python的,我们不用追求马上精通Python,了解基本语法,能看懂别人的代码就可以了,几天时间应该就可以入门
从Prompt入手玩转ChatGPT
使用一段ChatGPT后,你很快会发现很多时候要让ChatGPT按自己的期望工作,Prompt是关键,在这个阶段,我建议:
- 学习写好Prompt的通用原则
- 掌握常见的Prompt技巧(如Few-Shot, Instruction, CoT...),可以参考我的文章《释放ChatGPT的真正潜力:Prompt技巧完整指南》
- 如果有时间,还可以学习一些高阶的Prompt技巧,这些技巧在处理一些复杂的问题时会有帮助,可以参考《释放ChatGPT的真正潜力:Prompt技巧进阶指南》
- 学会使用OpenAI Playground,在学习LLM的过程中,你会花大量的时间写Prompt,Playground能帮你节省大量的时间
- Prompt是LLM领域讨论最热烈的话题,多看、多搜、多想、多练,很快你就会成为Prompt高手
学习Prompt专业玩法,解决实际问题如果你只是作为使用者玩玩ChatGPT,上面的学习应该已经足够了,如果你作为程序员,想用ChatGPT解决一些实际的业务问题,很多时候光靠手写Prompt是不够的,此时就需要一些专业的玩法了,我建议:
- 读一读Prefix-Tuning, P-Tuning, Prompt Tuning, Y-Tuning的相关论文,大家不用对读论文感到恐惧,现在的论文里数学公式越来越少了,更多都是工程实践,只要你能完成一篇论文,读论文这个技能树你就点亮了
- 至少动手写码实践上述技巧中的一种,我自己是试着实现了Prompt Tuning,可以参考《当Prompt技巧用尽,Prompt Tuning成就无限:如何找到最优Prompt?》
- 多搜、多看,这个领域总是不断有新的玩法涌现出来
学会使用必要开发框架和工具
从上一阶段开始,作为程序员的我们已经开始逐步动手实践了,掌握一些开发框架、第三方库能极大地加速我们的开发效率,我建议:
- 一定要学习LangChain,虽然LangChain本身只是对LLM调用的一个包装,但是其Agent,Memory,Chain,Prompt的封装能大幅简化开发
- 学习如何使用Hugging Face,学习Hugging Face出品的Transformer, Peft这两个绕不开的库
- 学习ChatGPT plugin,没准下一个Killer Plugin就是你开发的
- 学习至少一种Embedding数据库的基本用法
- 如果有时间,多了解PyTorch、NumPy等几乎必然会使用的开发库
开始大量动手实践ChatGPT是LLM工程实践的胜利,同样,学习LLM也需要大量的动手实践,只有在实践中我们才能碰到真正的问题,只有解决真正的问题,我们才能对LLM有深入的理解,我建议:
- 首先学会如何通过API调用ChatGPT
- 试着在代码里使用之前学习的各种Prompt技巧,通过对用户隐藏一些你对ChatGPT的调用,你能写出一些用户看起来很神奇的应用(比如最近大火的AutoGPT)
- 因为每次调用的每个token都有费用,有意学习一些上下文压缩技巧,有意学习一些上下文保持技巧
- 实现一个类似于ChatPDF这样的简单应用,学会如何给ChatGPT灌输外部知识,可以参考《我的第一个聊天机器人:从零开始DIY》
- 有人认为有了ChatGPT,未来的人机交互会像钢铁侠和他的Jarvis一样,所以试着实现一个以对话为交互界面的私人助手,可以参考《让ChatGPT能说更能做:DIY属于自己的个人助理》,如果你有兴趣,还可以通过引入语音转文字,文字转语音,让你的助理更像Jarvis一些,有时间还可以翻一翻AutoGPT的源码,你会发现看起来很炫其实实现很简单
- 在实际业务场景,数据隐私很多时候是个顾虑,所以试着找一个ChatGPT的开源平替,看看能不能在自己的机器上跑起来,可以参考《以小博大:Alpaca,您个人电脑上的ChatGPT》
- 结合自己兴趣,或者实际业务场景,动手做更多实践
进入动手实践的深水区随着实践的不断增加,你会发现无论你怎么使用Prompt技巧,模型都不能按期望工作,此时你将不得不对模型进行训练,也许我们没机会对一个大模型进行全参数的训练,但我们可以进行很多低成本的模型精调,我建议:
- 了解一些模型精调方法如Adapter,LoRA,MPOP,Sparse Fine Tuning等,这个环节,最好还是读一下相关的论文,这些论文里会有些数学,但内容不多,即使跳过也不影响对论文的理解
- 了解Self-Instruct这个最重要的创建数据(科学薅羊毛)的方法,论文的作者很实在,把自己使用的具体Prompt都在论文中详细列了出来,建议自己动手实现一遍Self-Instruct,可以参考《玩转 ChatGPT 和 Self-Instruct:驯化你的个性化聊天机器人 Alpaca》
- 精调模型离不开好的训练数据,了解开源社区有哪些好的训练数据源
- 真正动手做一次模型精调,如果你有自己的业务场景和业务数据,那这是最理想的模型精调,如果没有也可以用一些开源数据集做练习,可以参考《一杯奶茶让你拥有私人订制ChatGPT,我是如何一步步教会Alpaca中文的》
- ChatGPT的惊艳离不开RLHF这个强大的模型训练方法,虽然因为其成本我们没太多机会直接实践RLHF,但一定要了解其工作原理,可以参考《ChatGPT的RLHF:AI时代的“调速器”,让AI真正可用的关键》,如果你有时间,还可以了解一下其背后关键的PPO算法:《大白话说AI:探秘ChatGPT用到的PPO算法》
更进一步,知其然更知其所以然
如果一步步走到这里,相信你对LLM应该已经有了自己的理解,如果你想进一步深入学习,为未来真正成为LLM的大拿做好准备,那么就需要了解LLM背后的Why,我建议:
- 了解ChatGPT的整体架构和详细的工作流程
- 了解Transformer架构,了解它和之前的RNN,CNN的区别和联系
- 了解Embedding
- 了解注意力机制的详细工作原理
- 了解机器学习的基础知识
- 了解深度学习的基础知识
- 了解相关的代数和概率知识
埋头赶路,更要抬头看天AI这个领域,几乎每天都有新的变化和进展,同时我们的学习也是为了创造价值,因此,除了学习各种技巧和技术,我们也需要了解行业里到底在发生什么,我建议:
- 多看看大公司的动向,行业的发展往往由他们引领
- 多看看投融资领域的大事件,VC的嗅觉是最敏锐的
- 多看看产品、技术方面的突破,多从长期视角看本质突破,注意屏蔽那种一惊一乍吸引眼球的噱头,争取让自己起码每个月能看一篇精选的论文
- 多关注行业的竞争,多看看开源社区的进展,多看看ChatGPT竞争对手的进展
- 更具体地,多关注多模态的方面的进展,多关注降低模型训练、推理成本方面的进展,多关注数据隐私和私有化部署方面的进展
【版權聲明】
本文爲轉帖,原文鏈接如下,如有侵權,請聯繫我們,我們會及時刪除
原文鏈接:https://mp.weixin.qq.com/s/IOM9ujp-fp08ODI_y9MDBQ Tag: ChatGPT 人工智能 程序员