帶你自學大語言模型系列 —— 前言

今天開始,我計劃開啟一個系列 《帶你自學大語言模型》,內容也已經準備了一段時間了。

該系列的落腳點是“自學”和“大語言模型”,二者不分伯仲,這也是本系列和其他技術文章不一樣的地方。

至于原因,我不想只做大語言模型知識的傳遞,互聯網上已經有太多同質化的信息了;我希望能以學習大語言模型作為開始,幫助你一步步養成自學的能力,“大語言模型”只是你邁出的第一步。

歡迎關注同名公眾號【陌北有棵樹】,關注AI最新技術與資訊。

我始終堅信并努力踐行一句話:

堅持用正確的方法做對的事,所謂成功,就是解答題高手做對了選擇題。

再進一步,我認為,“正確的自學方法”,是做解答題的必備技能,是需要一輩子的時間來打磨的;“學習大語言模型”是當前環境下的最優解,是選擇題的正確答案。

一、關于「自學」

在我看來,相比于掌握任何一門知識或技能,你更需要掌握的,是 「快速自學」 這門技能。

因為一旦你掌握了自學這個技能,意味著你可以學會任何你想學會的技能。

這里我暫且將技能分為工具類技能和知識類技能,每學會一項新技能,其實相當于你的能力完成了一次內部增強或外部拓展。

工具類技能幫你外部拓展,例如外語,學會它,幫你看得更廣;例如開車,學會它,幫你走得更遠;例如編程,學會它,能給自己外接一個自定義機器;比如大模型,學會它,能給自己外接一個自定義大腦;

知識類技能幫你做內部增強,例如學會心理學,幫你升級內核中的理解人的模塊,例如經濟學,幫你升級內核中理解世界的模塊。

然而,習慣了被“填鴨式教學”的我們,其實絕大部分并不具備自學能力。或許你不認同,請思考下面這個問題,這是本系列我提出的第一個問題。

提問是貫穿在這個系列的核心方法之一。因為,提問的深度,往往決定了你思考的深度。愛因斯坦曾說:“如果我必須用一小時解決一個重要問題,我會花55分鐘考慮我是否問對了問題。”

【說明】在后續的每章里,我會提出很多問題,這些問題是組成章節脈絡的關鍵點,本書里的每個問題我都會給出參考答案,但我不會直接給,而是打散在具體內容里,需要你去歸納總結;同時我更希望的是,你能自己思考每個問題,甚至更進一步,你能夠嘗試提出自己的問題,并嘗試查找資料去解決。

【問題】為什么互聯網上大模型、ChatGPT的教程和資訊鋪天蓋地,同時你又想學,但你沒學會?

再擴展一下,回想你想學任何一項技能,你所需要的所有資料從互聯網上都可以找到,為什么你還是沒學會?

“信息傳遞”不是“學習”,“知識管理” 也不是學習。

互聯網時代的到來,世界早已不缺信息;AI時代的到來,世界也將不缺知識。

技術進步的太快,這世界也變化的太快,隨之帶來的,一定是更進一步的分化,一門手藝吃一輩子可能不復存在。如果不具備自學能力,在未來的幾十年,只能眼睜睜看著自己被時代拋下而無能為力…

不過好在,自學這件事,本身也是可以學習的,是有技巧的,會穿插在這個系列的各章節的適當部分里。

二、關于「大語言模型」

在開始閱讀本系列之前,請先認真思考這個問題:“你為什么要學習大語言模型?”

這個問題我問過很多來向我咨詢如何學習大模型的人,他們的回答大部分都是“現在太火了,不學怕被落下”“多了解一點總沒壞處”之類的,這種我統一稱之為「跟風式學習」。

「跟風式學習」的目的,本質上不是為了學習,是為了緩解焦慮。

畢竟,在這個肉眼可見的飛速發展的世界里,如果你一直原地踏步,又怎么會不焦慮呢?

所以,除了大模型,我相信你也一定抱著這樣的心態學過很多東西,回想一下結果如何?是不是往往都半途而廢了?雖然你看似學了很多東西,但其實這并不是真的“學習”

但也正因為如此,你的信念不夠深,于是稍微遇到點困難就放棄了。

所以,你需要暫停幾分鐘深入思考,你為什么要學習大語言模型?學習它對你是不是必要?
如果只是為了緩解焦慮,那么你讀完本系列的第一部分,就可以結束了。

但如果你想在這條路上走更遠,就還需要作用一些「心理建設」。

我希望你堅持下來,同時又不希望你是靠努力和意志力堅持下來,因為需要努力和意志力才能堅持下來的事情,說明你骨子里根本不愿意做,骨子里不愿意做的事,大概率是做不成的。

好在這件事也是有技巧的,這里我分享兩個:

第一,在開始之前,想辦法為這件事賦予極大的意義。

第二,還可以反向想一下,如果沒有這項技能,你會失去什么?

總之,“動機”是很重要的,它決定了你的信念,要保持你的動機,要么強化繼續前行的理由,要么弱化停下腳步的理由。

我簡單說說我是如何思考這件事的。

首先,大模型是未來至少十年甚至幾十年的最大增量。雖然我承認目前大模型的確被炒得過熱,并且很可能會冷卻下來進入一段低谷,但這與我這個判斷并不沖突,因為人們往往高估了新技術在短期內的影響,而低估了它在長期內的影響。

互聯網技術也是遵循這樣的發展路徑,互聯網泡沫期間,許多與互聯網相關的公司被炒得過高,泡沫破裂后,市場進入了冷靜期,但長期來看,互聯網的發展和普及已經深刻改變了我們的生活和工作方式。

正如Gartner曲線展示的那樣,許多新技術會經歷一個炒作高峰,然后進入一個低谷期,最終達到穩定發展和廣泛應用的階段。

目前來說,大模型的潛力還沒有釋放出來。當前制約大模型發展的主要因素在于計算資源和成本問題,而從歷史中以往經驗來看,成本問題最終都會因為技術的創新和發展被解決。當算力成本下降,大模型會真正普惠到中小企業和個人。

在互聯網時代,國內相較于國外,更擅長在基礎技術之上,做商業模式的創新,但這在接下來的AI時代是否還適用,需要打一個問號。提早掌握大模型的底層原理和相關技術棧下面的所有知識,在未來會有先發優勢。

基于此,我認為學習大模型是一個正確的選項,雖然我們可能會經歷短期的波動和挑戰,但請不要短視,要長期,不要跟風,要看十年后的世界。這也是我對自己的期許,望諸君共勉。

三、本系列大綱

本系列預計更新四個模塊:

【1】走進大語言模型:幫你對大模型有一個定性的認識。

【2】構建大語言模型:幫你對大模型有一個定量的認識,這部分開始加大難度,深入到具體的理論、技術細節、框架、代碼。

【3】典型大語言模型詳細解讀:分析當前熱門大模型的技術細節。

【4】基于大語言模型的應用開發:一些基于大語言模型的開發框架和應用層技術。

第一部分 走進大語言模型

本部分計劃目錄:

  • 第一章 走進大語言模型
    • 第一節 從圖靈機到GPT,人工智能經歷了什么?
    • 第二節 如何讓機器理解人類語言?
    • 第三節 大語言模型,大在哪?
    • 第四節 Transformer做對了什么?
    • 第五節 OpenAI的技術路線帶來的啟示
    • 第六節 大語言模型現狀及未來趨勢
    • 第七節 大語言模型的技術棧和學習路徑

這部分我會盡可能避免使用公式,用最簡明直白的文字。正如我之前說的,大語言模型知識并不高深,但需要你在深入學習他之前,真正認識到他底層的邏輯是什么,從概念上認識到它到底是什么。

這一部分里,我首先會由淺入深的,由表及里的帶你走進大語言模型,前三節我會按照 人工智能 → 自然語言處理 → 語言模型 → 基于神經網絡的語言模型 → 基于預訓練的大語言模型 的順序,梳理從圖靈機到ChatGPT,這中間都發生了什么。接下來回到當下,看時下最火的基于Transformer的架構的大語言模型的現狀,分析OpenAI技術路線的核心,以及目前的大模型還有哪些問題需要繼續探索。最后會從相對宏觀的視角來總結大語言模型的技術棧,以及給出一份學習路線圖。

關于第一部分的學習方法:

在學習任何一個學科的知識時,都有一些很重要的概念,我稱之為「必要核心概念」,掌握這些概念,你就完成了這個領域的“快速入門”,本系列的第一部分就是在帶你完成這件事。

這些核心概念,構建了這個領域的基石。很多人在學習的時候盲目追逐最新的技術和發展,而忽略這些必要核心概念,以前的我也是這樣,現在看來,這真的是舍本逐末的做法。

當需要獲得某項技能的時候,一定要想辦法在最短的時間里弄清楚都有哪些「必須掌握的核心概念」,然后迅速掌握它們。

第一節 從圖靈機到GPT,人工智能經歷了什么

本節我們首先到人工智能和自然語言處理兩個領域的源頭,主要目的是厘清「人工智能」、「自然語言處理」、「語言模型」、「大語言模型」之間的關系。

一個領域的「必要核心概念」,往往在其源頭就被定義了,所以我們要去到知識的源頭,那里的知識濃度和質量最高。

下面是一個問題清單,幫助你在學習一個新領域時,把握其核心脈絡。后面我在細化每個技術細節時,內在邏輯上也會遵循這個問題清單。

  • 最初被提出是為了解決哪些問題?
  • 分別經歷了哪些階段?
  • 在各個階段中,提出了哪些解決方案?
  • 新方案又帶來了哪些新的問題?
  • 這些新的問題在下一個階段是如何被克服的?

當涉及兩個技術時(例如本節的人工智能和自然語言處理),還需要增加幾個問題:

  • 它們之間的關系是什么?是包含,對立,遞進,關聯?
  • 在各自的各個發展階段,有什么交集?
第二節 如何讓機器理解人類語言?

在對人工智能和自然語言處理兩個領域有了基本的認知后,第二節我們深入「語言模型」,
簡而言之,語言模型的最核心任務,就是解決如何讓計算機理解人類語言。
從N-gram到大語言模型,是目前而言,探索出的效果最好的道路。

同理基于上一節的問題清單,我們探尋這條路徑上都有哪些技術值得學習和思考。

第三節 大語言模型,大在哪?

在了解了基于統計的語言模型是如何在自然語言處理領域發揮作用后,本節我們進一步深入,探索大模型相較于之前的語言模型,有什么差別。

首先介紹當模型參數達到一定量級后,所展現出的小模型不具備的“涌現能力”,主要包括上下文理解能力、復雜任務推理能力、通用任務解決能力、指令遵循能力等;還會介紹大模型時代的摩爾定律——“縮放定律”(Scaling Law)的相關理論,并分析縮放定律與大模型涌現能力的關系。

后面幾節的介紹后續陸續補充~~

第二部分 構建大語言模型

通過第一部分的學習,你已經掌握了「大語言模型」領域的“必要核心概念”。接下來,你將進入深水區。

以下是暫定的目錄,后面可能還會動態調整,這一部分會講構建一個大語言模型所涉及的關鍵技術,包括預訓練、微調、 基于人類反饋的強化學習、部署和推理、

  • 第二章 基礎知識
    • 第一節 大語言模型的構建過程
    • 第二節 大模型理論基礎:Transformer (理論+代碼實戰)
    • 第三節 大模型硬件基礎:AI芯片和集群
  • 第三章 預訓練
    • 第一節:預訓練關鍵因素——數據
      (包括數據來源、預處理技術、開源數據集)
    • 第二節:預訓練關鍵因素——分布式集群
      (包括并行策略、現有框架)
    • 第三節:預訓練方法
  • 第四章 有監督微調
    • 第一節 微調指令數據構建
    • 第二節 微調常用方法
    • 第三節 微調實戰(包括框架+實操)
  • 第五章 強化對齊
    • 強化學習基礎
    • 獎勵模型
    • InstructGPT詳解
    • 強化對齊實戰
  • 第六章 部署和推理
    • 大模型部署和量化技術及框架
    • 推理優化技術
    • 上下文擴展技術

關于第二部分的學習方法:

首先,我想告訴你的是,“請不要幻想自己一次就能學會”,任何一個領域都是一個"復雜的集合體",所以,不要低估學習任務的復雜程度,要刻意練習,不斷地重復。

重復的刻意練習,是從笨拙達到熟練的唯一通路。所謂刻意練習,說白了就是反復運用、反復琢磨、反復調整,把不熟練變成熟練。

按照《刻意練習》一書中的觀點,你需要多次重復,以創建有效的心理表征。所謂的“心理表征”,用神經科學的理論解釋,其實就是“通過大量的重復動作,最終使大腦中兩個或者多個原本并無關聯的神經元之間通過反復刺激而產生強關聯”。

所以,耐心是必需的。如果你學不會一個技能,不要推卸給天賦,絕大部分情況只是因為,你重復的次數不夠多…

在這一部分,理論基礎、最新技術進展和框架、代碼實操都是必需的,基本上每個技術點我都會覆蓋這幾個方面。

在對每個技術點的理解上,我推薦使用2W1H框架,具體來講就是,在每一小節的閱讀前,你需要問自己三個問題:What(這門技術是什么),Why(是為了解決什么問題),How(是如何解決的),同時,每個小節里可能有嵌套了多個技術點,每個技術點都包含這三個問題。在學習結束后,要自己列舉出所有涉及的技術點,總結出這三個問題的答案。

代碼實操也是必不可少的,畢竟我們學習的目的是為了應用,針對每個技術點,也都會提供一個實操案例,希望你可以一起動手實踐。

第三部分 典型大語言模型詳細解讀

經過第二部分的學習,你已經掌握了構建大模型所需要的技術,基于這些知識,再去分析當前比較熱門的幾款大模型,會有更加深刻的認識。

暫定會解讀的模型是GPT系列模型、LLaMa系列模型、Qwen系列模型。

第四部分 基于大語言模型的應用開發

之所以把這部分放在最后,是因為大語言模型本身還在發展中,基于大模型的上層框架,目前還處于不穩定的狀態,
從長期主義的角度來看,我更希望找到那些變化中不變的東西。

暫定會寫Prompt工程、RAG、Agent、Langchain等,但可能會有調整。

四、寫在最后

又給自己開了個天坑要填,在給自己挖坑這件事兒上,我一直都很清新脫俗…

求鼓勵求建議,要不然感覺很難堅持下去了哈哈哈…

如果對這個系列有什么想法和訴求,十分歡迎交流討論!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21096.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21096.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21096.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C++】STL中vector常見功能的模擬實現

前言:在上一篇中我們講到了Vector的一些常見功能的使用方式,今天為了進一步的去學習Vector和能夠更深度的去理解Vector的一些底層的原理。 💖 博主CSDN主頁:衛衛衛的個人主頁 💞 👉 專欄分類:高質量C學習 &…

鴻蒙ArkTS聲明式開發:跨平臺支持列表【禁用控制】 通用屬性

禁用控制 組件是否可交互,可交互狀態下響應[點擊事件]、[觸摸事件]、[拖拽事件]、[按鍵事件]、[焦點事件]和[鼠標事件]。 說明: 開發前請熟悉鴻蒙開發指導文檔: gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md點擊或者復制轉到…

【一刷《劍指Offer》】面試題 30:最小的 k 個數

牛客對應題目鏈接:最小的K個數_牛客題霸_牛客網 (nowcoder.com) 力扣對應題目鏈接:LCR 159. 庫存管理 III - 力扣(LeetCode) 核心考點 : topK 問題。 一、《劍指Offer》內容 二、分析題目 1、排序(O(Nlo…

接口interfance的基本使用

一.為什么有接口? 接口:就是一種規則。 二.接口的定義和使用 1.接口用關鍵字interface來定義 public interface 接口名{} 2.接口不能實例化 3.接口和類之間是實現關系,通過implements關鍵字表示 4.接口的子類(實現類) 注意1: 接口和類的實現關系…

43.自定義線程池(一)

ThreadPool是線程池,里面是一定數量的線程,是消費者。 BlockingQueue阻塞隊列,線程池中的線程會從阻塞隊列中去拿任務執行。任務多了線程池處理不過來了,就會到Blocking Queue中排隊,等待執行。鏈表結構,特…

Netfilter/iptables

1. Netfilter組件圖 https://en.wikipedia.org/wiki/Netfilter 其中: etables作用于數據鏈路層,arptables針對ARP, iptables/ip6tables針對IP層。 nftables 是新的包過濾組件. nft是相對應的新的用戶態組件,用于替換etables,arptables,ipt…

從tensorflow導入EarlyStopping能運行但是一直提示未解析

在pycharm中導入早停機的庫時,碰上一個問題 from tensorflow.keras.callbacks import EarlyStopping這一條代碼中,EarlyStopping一直有個紅色波浪線,代表著找不到這個庫,提示未解析啥的。 但是運行是可以運行的,雖然可…

GPT-4o如何重塑AI未來!

如何評價GPT-4o? 簡介:最近,GPT-4o橫空出世。對GPT-4o這一人工智能技術進行評價,包括版本間的對比分析、GPT-4o的技術能力以及個人感受等。 GPT-4o似乎是一個針對GPT-4模型進行優化的版本,它在性能、準確性、資源效率以及安全和…

Anolis OS 8.9安裝Linux 服務器運維管理面板“1Panel”

一、簡介 1.Linux 服務器運維管理面板“1Panel” 使用go語言編寫 2.很多的項目的應用都是采用 docker 技術來實現,這讓 Linux 服務器的運維管理更簡單、更安全。 3.1Panel 采納最新的前端技術,并通過精心設計的UX 交互,為用戶提供更好的用戶…

Linux系統tab鍵無法補齊命令-已解決

在CentOS中,按下tab鍵就可以自動補全,但是在最小化安裝時,沒有安裝自動補全的包,需要安裝一個包才能解決 bash-completion 1.檢查是否安裝tab補齊軟件包(如果是最小化安裝,默認沒有) rpm -q ba…

關于sprintboot3版本以上中的swagger3.0的使用

文章目錄 1.配置pom.xml(添加以下內容,記住點一下右上方maven下載)2.application.properties添加以下配置信息3.新建swagger的config配置信息,文件位置如下4.添加接口注釋信息訪問swagger文檔 1.配置pom.xml(添加以下內容,記住點一下右上方ma…

抽象一個通用的配置沖突解決方案

最近的開發項目中遇到了一個關于配置沖突的解決和產品設計,一直以來都沒有處理好。最近抽空整理了一下思路和設計,并做了抽象,后續的類似使用,可以做到直接復用。 思路和代碼見:github地址:https://github…

spring:解決findMergedRepeatableAnnotations獲取可重復的元注解(meta-annotation)結果不正確問題

spring-core的注解工具提供的方法 AnnotatedElementUtils.findMergedRepeatableAnnotations用于從AnnotatedElement 對象獲取可重復的注解。但如果注解本身也是可以定義在其他注解之上的元注解(meta-annotation),且該注解也是可重復注解。這個方法就可能會失效。這就是我最近在…

基于java18多端展示+ idea hbuilder+ mysql家政預約上門服務系統,源碼交付,支持二次開發

基于java18多端展示 idea hbuilder mysql家政預約上門服務系統,源碼交付,支持二次開發 家政預約上門系統是一種通過互聯網或移動應用平臺,為用戶提供在線預約、下單、支付和評價家政服務的系統。該系統整合了家政服務資源,使用戶能…

RabbitMQ三、springboot整合rabbitmq(消息可靠性、高級特性)

一、springboot整合RabbitMQ(jdk17)(創建兩個項目,一個生產者項目,一個消費者項目) 上面使用原生JAVA操作RabbitMQ較為繁瑣,很多的代碼都是重復書寫的,使用springboot可以簡化代碼的…

Vue3集成Phaser-飛機大戰游戲(設計與源碼)

文章目錄 引言項目初始化游戲設計和結構游戲程序實現Vue頁面嵌入PhaserPreloader 場景加載游戲場景功能實現功能類定義Boom爆炸類Bullet子彈類Enemy敵軍類Player玩家類End游戲結束類 總結 更多相關內容可查看 引言 飛機大戰(也被稱為射擊游戲或空戰游戲&#xff09…

輕松上手MYSQL:優化MySQL慢查詢,讓數據庫起飛

?🌈 個人主頁:danci_ 🔥 系列專欄:《設計模式》《MYSQL應用》 💪🏻 制定明確可量化的目標,堅持默默的做事。 ?歡迎加入探索MYSQL慢查詢之旅? 👋 大家好!我是你們的…

如何優雅簡潔的使用YOLOv8

如何優雅簡潔的使用YOLOv8 目錄訓練調用代碼如何一鍵訓練多個yamlexport模型測試多個yaml是否運行正常predict本文提供了 如何優雅簡潔的使用YOLOv8 ???YOLOv8實戰寶典--星級指南:從入門到精通,您不可錯過的技巧 ??-- 聚焦于YOLO的 最新版本, 對頸部網絡改進、添加局…

Crosslink-NX器件應用連載(11): 圖像(數據)遠程傳輸

作者:Hello,Panda 大家下午好,晚上好。這里分享一個Lattice Crosslink-NX器件實現圖像或數據(衛星數據、雷達數據、ToF傳感器數據等)遠程傳輸的案例(因為所描述的內容頗雜,曬圖不好曬&#xff…

react自用小技巧(持續更新中)

react自用小技巧(持續更新中) 作者:devwolf 導言: 筆者應屆時,投vue2就任一家大食品廠的資訊部后轉成了react,寫了一年出頭的react類組件。然后跳槽到蘇州科技城的一個原做影視渲染的公司開始全面轉hook…