[筆記]吳恩達Generative AI with Large Language Models最新大型語言模型線上課程 Week1

Ting
9 min readNov 24, 2023

--

課程連結:Generative AI with Large Language Models

費用:Free(旁聽影片)

Introduction

現今主流的幾個foundation Model(或稱Base),依大到小排序

  • GPT
  • BLOOM
  • FLAN-T5(在課程中使用這個open source model)
  • LLaMa
  • PaLM
  • BERT

因為訓練這些Foundation Model需要大量的運算資源和訓練資料,基本上都是直接使用這些model或者進行微調,而不會自己從頭訓練。

重要名詞定義

  • Prompt: 對Model提出問題
  • Context Window: 輸入Prompt的區域(Space/memory)。每個Model所需要的設定不一樣,但一般都可以輸入上千字。
  • Completion: Model根據Prompt提出的指示,產生出來的結果
  • Inference:Model產生Completen的行爲

Transformers Architecture

「Attention is all you need」提案Transformer 。這領域最重要的論文。

傳統的RNN擅長處理相鄰的訊息。但語言中常常重要的單字是分散在句子兩端。

Ex:大麥町是個全身有黑色班點的()

  • Token:把文字轉換成特定的數字符號(要注意一般不是一個文字對應一串數字,而是用更小單位,ex: played 可能會拆解成play 和ed兩部分)。model一定要用當初Tokenize的方式。
  • Embedding:把Token投射到更高維的向量空間(embedding space)。建立各個Token間的關係。Model可以透過各Token間的距離和角度理解文字間的關係

Transformers的運作簡介:

主要有Encoder和decoder兩部分

  • Encoder: 把Prompt輸入的內容編碼(encode),依據對文本內容的理解,將每一個token都轉換成一組向量
  • Decoder: 依據encoder傳來的向量產生一組新的token

Generating text with transformers

Model有三大類型

  • Encoder Only Model:現今比較少用,只能對應固定序列的文字。可用來做文本內容的分類
  • Encoder Decoder Model: input sequence 和output sequence 可以為不同長度 (Ex: BERT)
  • Decoder Only Model:現在也很熱門,可以用在許多泛用的用途上。(Ex: GPT系列, BLOOM, LLaMa)

Transformers 的介紹建議直接看影片。或者這個網站個人覺得寫得很不錯。The Illustrated Transformer

但講師也提到只要有大概的概念,可以讀懂各個Model的說明文件就可,大部分的人不需要了解到太細節。

Prompting and Prompt engineering

In-context learning: 在prompt的內容中直接給Model學習資料和提示。有下面幾種種類

Zero shot inference: 沒有給任何提示的提問

Prompt內容:

Classify this review:

I loved this movie!

Sentiment:

正確的completion內容:

Classify this review:

I loved this movie!

Sentiment: Positive

One Shot inference:給一個範例的prompt

Prompt內容:

Classify this review:

I loved this movie!

Sentiment: Positive

Classify this review:

I don’t like this chair!

Sentiment: Negative

Few shot inference:給多個範例的prompt

大的模型通常很擅長zero shot inference。但小一點的模型就要逐步增加範例數

當在prompt中加入超過5–6個以上的example也還沒辦法有好的表現時,就需要考慮直接fine-tuning model

Generative configuration

LLM Model常見的參數如下

  • Max_new_token: 最大的token數。回應如果超過這個設定值,會強制中斷。

LLM Model每一次生成Token時,是透過softmax函數列出所有候補Token的機率。這種方式的回應比較固定,也習慣選用特定的字。

  • Greedy方法:選擇有最高機率的Token或Word。
  • Random(-weighted) Sampling: 根據每個token的機率,隨機選擇回應的token。這種方式回應會比較多元,比較有創意。但也有風險,導致Model回答完全不同的
  • Sample top K:限制Model只從top-k(前k名)的候補中選擇
  • Sample top P:限制Model只從機率超過p的候補中選擇
  • Temperature: 控制機率分布的參數。數值高,機率分佈會散佈在許多後部,回應的Random程度高。數值低,機率分佈會集中在少數的token候補,Random程度低。大部分default是1。

Generative AI project lifecycle

設計生成AI的Lifecycle有下面的流程

  • Scope:決定使用的目的或情境(ex:翻譯、生成短文、摘要、搜尋 )
  • Select:選擇使用現成的model,或者自己要pretrain。一般來說都是直接使用現成model
  • Adapt and align model:調整model
  • Prompt engineering:從指令著手
  • Fine-tuning:
  • Align with human feedback:用強化學習的方式改善
  • Evaluate:之後的課程會介紹如何用指標評估LLM
  • Application integration
  • Optimize and deploy model for inference: 優化和部署model
  • Augment model and build LLM powered application:開始應用

Pre-training large language models

從Training data個觀點來理解各種Model的特性和應用

Encoder Only Model:又稱autoencoding model,使用Masked Language Modeling

  • 假設訓練資料的句子是”I like apples”,會把其中一部分字屏蔽掉(ㄇmask),例如”I <mask> apples”要求model 猜出<mask>遮住的字是什麼
  • 善於:情感分析、文字分類
  • Model:BERT、ROBERTA

Decoder Only Model:又稱Autoregressive model,使用Casual Language Model(CLM),用統計方式逐步產生文字

  • 假設訓練資料的句子是”I like apples”,會給model 第一個字“I”然後要機率興去猜下一個是什麼?
  • 善於:生成文章
  • Model:GPT、BLOOM

Encoder Decoder Model: 又稱Sequence-to-sesquence model。使用Span corruption。

  • 假設訓練資料的句子是”I like apples”,會把其中一部分字屏蔽掉(用<x>標示),例如”I <x> apples”。但要猜出<x>的內容和某種叫sentinel token的符號。(沒有聽很懂他的意思)
  • 擅長:翻譯
  • Model:T5、BART

input sequence 和output sequence 可以為不同長度 (Ex: BERT)

一般來說,越多parameter。Model表現越好

Computational challenges of training LLMs

因為LLM model很大。在訓練時每個parameter需要儲存優化用的參數,像是Adam的momentum之類的,因此訓練時需要大約model的20倍的GPU memory。即使只有4G的model,都需要80G的GPU。這在最新的GPU都算很大的資源了。

Quantization(量子化): 把modol中的32-bit floating (FP32)降到FP16或者更小。犧牲單一parameter數值表現的精度,減少Model大小。

Scaling laws and compute optimal model

Model performance 是由三個要件決定:dataset size, Model size, compute budget

泛用的估算運算量單位「1 petaflops/s-day」: floating point operations performed at rate of 1 petaFLOP per second for one day

1 petaflops/s-day大約等於8顆NVIDIA V100s GPU 全力運用24小時的計算力

越好的晶片,提供算力越強。(ex 2顆NVIDIA A100 GPU就有1 petaFLOP/s-day)

可以搜尋各種model類型(GPT, T5, Bert)和各種對應的大小,需要多少訓練時間。

Compute budget vs model performance: 毫無意外預算越多,model越強。目前還沒看到飽和(因此各公司軍備競賽還在繼續)

在固定預算下,增加DATA SIZE和model size都會提升model performance 。

根據chinchilla paper: 試著建議model size和data set size的平衡點。他認為GPT 3 model應該增加data size,減少model size。來達到更好的效能。像是Llama有比較好的平衡。新的BloombergGPT根據chinchilla的建議,利用比較小的model size(50B)也達到了很好的表現

Domain specific training

像是法律、醫療等領域有非常特殊專有名詞和書寫方式的領域,就比較不適合使用泛用的LLM,而是獨自訓練。

--

--

Ting

An engineer. Specializes in Optics and Data Analysis. Sharing some notes on daily life in Japan and self-studied interests. 旅日工程師。專精於光學量測系統優化和資料分析。紀錄在日生活和自學筆記