機器學習筆記:李宏毅ChatGPT Finetune VS Prompt

1 兩種大語言模型:GPT VS BERT

?2 對于大語言模型的兩種不同期待

2.1 “專才”

2.1.1 成為專才的好處?

Is ChatGPT A Good Translator? A Preliminary Study 2023 Arxiv
箭頭方向指的是從哪個方向往哪個方向翻譯
表格里面的數值越大表示翻譯的越好
可以發現專門做翻譯的工作會比ChatGPT好一些
How Good Are GPT Models at? Machine Translation? A? Comprehensive Evaluation
同樣地,專項翻譯任務上,ChatGPT不如一些專門做翻譯的模型

?2.1.2 使用方式

對于訓練模型進行改造

?bert的先天劣勢就是,他是句子填空,而不是句子接龍,所以希望他進行某一項任務,需要對他進行額外的處理,以及額外的參數微調(finetune)

2.1.2.1 加head

額外地對BERT進行一定的添加,使其能夠輸出希望的結果

?2.1.2.2 微調 Finetune

?2.1.2.3 對訓練模型做改造——加入Adapter

在語言模型里插入額外的模組,語言模型的參數不動,只更新adapter的參數
?

?2.1.2.3.1 為什么需要Adapter?

如果沒有Adapter的話,100個任務就需要存放100個大模型(的參數)

?有了Adapter之后,同樣的100個任務,我們只需要存一個大模型的參數,和100個任務對應Adapter的參數即可。而一般Adapter的參數量比大模型少多了

?

2.2 “通才”

?通過人類給模型下的指令(prompt)實現,

2.2.1 成為通才的好處

?2.2.2 In-context Learning

給大語言模型一個句子,讓他分析句子是正面的還是負面的

?

我們需要告訴模型我們要進行情感分析。怎么告訴呢?

  • 我們給大模型一些例子,(前面那些句子+情感分析結果)
  • 把那些例子串起來,加上我們想要分析的句子,一股腦喂給大模型,讓大模型輸出是正面還是負面

?2.2.2.1? 大模型真的能從這些例子中學到信息?

2.2.2.1.1 Rethinking the Role of Demonstrations: What Makes In-Context Learning Work? 2022 ARXIV

故意給模型輸入一些錯誤的情感分析標注,看模型的分析結果
  • ?No demo是沒有范例
  • 橙色是給了正確的范例
  • 紅色是給了一些錯誤的范例

——>可以發現正確率并沒有下降很多

并沒有從范例里學到很多有用的信息??

?

?

那么,故意給一些不在這個domain里面的,無關的輸入呢?

?這種將無關domain的信息加入的結果就是紫色部分,可以看到如果是來自不同的domain的話,效果會下降

??

?

所以這篇論文中,in-context learning作用的猜測是:“喚醒”模型

?換句話說,大語言模型本身就會情感分析,in-context learning的作用是“喚醒”他,讓語言模型知道接下來做的任務是情感分析

?這篇論文的另一個例子也佐證了這個觀點,我們提供的句子-情感結果對增加,精度漲的不多(如果是finetune的話,精度會提升的很快)

?

?

——>說明并不是靠in-context learning提供的這幾個輸入來學習情感分析。大語言模型本身就已經具備了情感分析的功能了

?2.2.2.1.2?Larger language models do in-context learning differently 2023 arxiv

  • ?每一個圖像中,顏色越深的表示模型越大
  • 橫軸表示in-context learning階段提供給大模型的有多少比例的是錯誤的信息
  • 可以看到大模型受到錯誤范例的影響是很大的,而小模型(GPT3,這里的小是相對的小)受到錯誤范例的影響是不大
    • 上一篇paper考慮的是較小的模型,所以可能會覺得給了錯誤的范例影響不大
  • 同時我們可以看到,在大模型中,當in-context learning的錯誤率為100%(全是相反的結果)的時候,大模型的正確率都是低于50%的,說明他們確實從錯誤的資料中學到了一些知識

與此同時,我們直接讓大模型進行分類任務

我們在in-context learning階段將input和output全部作為輸入提供給大模型,讓大模型來進行分類任務

??

可以看到大模型確實學到了in-context learning中的信息

?

2.2.2.2 讓模型學習 in-context learning

[2110.15943] MetaICL: Learning to Learn In Context (arxiv.org)?

前面的in-context learning都是沒有finetune過程了,這里相當于finetune了一下?

?用別的任務的in-context learning的范例、輸入、輸出進行微調

?2.2.3 instruction tuninging?

大語言模型還是需要進行一定的微調,才能效果比較好,這個微調的過程就是instruction-tuning

訓練(finetune)的時候, 給模型一些指令和對應的答案。測試的時候,給finetune指令之外的其他指令。讓模型自己給出合理的回應。

早期模型如Multitask Prompted Training Enables Zero-Shot Task Generalization就提出了一個T0模型,來達成instruction-tuning的效果

?

?[2109.01652] Finetuned Language Models Are Zero-Shot Learners (arxiv.org)

FLAN也是一個早期做instruction tuning的work

?

首先收集大量的NLP任務和數據集

?

而由于instruction tuning是希望模型理解人類下的指令,所以FLAN每一個NLP的任務想了十種不同的描述方式(template)

??

  • 當測試任務是natrual language inference的時候,finetune訓練的時候就沒有這個任務
  • zero shot 是只有指令,沒有in-context learning
  • few-shot就是in-context learning
  • FLAN就是進行instruction learning的結果

?

?2.2.4 Chain of Thought

[2201.11903] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (arxiv.org)

另一種更詳細地給機器prompting的方法

  • 如果是數學這種需要推理的問題,直接給 in-context learning 往往效果若不好

  • ?而如果我們給范例的時候,同時給推導過程+答案。期望模型輸出答案的時候,也先輸出推導,再輸出答案
    • 這就叫Chain of Thought Prompting

?

  • ?從效果上來看,加了CoT之后的效果更好

?2.2.5 加一些prompting,讓CoT效果更好

[2205.11916] Large Language Models are Zero-Shot Reasoners (arxiv.org)

在進行CoT的時候,范例輸完了,需要模型回答的問題說完了,加一行’Let's think step by step',可以獲得更好的效果

Large Language Models Are Human-Level Prompt Engineers ICLR 2023

加的那一行文字不一樣,效果也不一樣

2.2.6 CoT+Self=consistency

[2203.11171] Self-Consistency Improves Chain of Thought Reasoning in Language Models (arxiv.org)

?

  • 使用CoT讓模型先輸出推導過程,再輸出推導結果,可能每次推導過程不一樣 答案也不一樣
    • 這里讓語言模型產生好幾次推導和對應的結果,出現最多次的答案就是正確答案
    • 當然也可以每個答案 用語言模型算一個幾率(信心分數)權重
      • 但這個權重論文中說沒有什么幫助,所以直接根據數量投票就好

2.2.7 強化學習找Prompt

[2206.03931] Learning to Generate Prompts for Dialogue Generation through Reinforcement Learning (arxiv.org)

2.2.8 直接用LLM來找Prompt

[2211.01910] Large Language Models Are Human-Level Prompt Engineers (arxiv.org)

?

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

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

相關文章

Ceph入門到精通-Linux下Ceph源碼編譯和GDB調試

Ceph版本:14.2.22 Linux版本:ubuntu-server 18.04 第一部分 下載Ceph源碼 1.1 配置Ceph源碼鏡像源 Ceph源碼是托管在Github上,由于某些原因,國內訪問Github網站很慢,所以需要從其他途徑加速獲取源碼。Github官方給出…

【ubuntu18.04】01-network-manager-all.yaml和interfaces和resolv.conf各有什么區別和聯系

文章目錄 01-network-manager-all.yaml、interfaces 和 resolv.conf 是與網絡配置相關的文件,它們在網絡設置中有著不同的作用和使用方式。 01-network-manager-all.yaml: 這是一個配置文件,通常在 Ubuntu 系統上使用 NetworkManager 進行網絡管理時使用…

ChatGPT?保密嗎?它有哪些潛在風險?如何規避?

自2022年11月公開發布以來,ChatGPT已成為許多企業和個人的必備工具,但隨著該技術越來越多地融入我們的日常生活,人們很自然地想知道:ChatGPT是否是保密的。 問:ChatGPT保密嗎? 答:否&#xff0…

C++11并發與多線程筆記(3)線程傳參詳解,detach()大坑,成員函數做線程函數

C11并發與多線程筆記(3)線程傳參詳解,detach 大坑,成員函數做線程函數 1、傳遞臨時對象作為線程參數1.1 要避免的陷阱11.2 要避免的陷阱21.3 總結 2、臨時對象作為線程參數2.1 線程id概念2.2 臨時對象構造時機抓捕 3、傳遞類對象…

VR時代真的到來了?

業界對蘋果的期待是,打造一臺真正顛覆性的,給頭顯設備奠定發展邏輯底座的產品,而實際上,蘋果只是發布了一臺更強大的頭顯。 大眾希望蘋果回答的問題是“我為什么需要一臺AR或者VR產品?”,但蘋果回答的是“…

從零開始學習 Java:簡單易懂的入門指南之MAth、System(十二)

常見API,MAth、System 1 Math類1.1 概述1.2 常見方法1.3 算法小題(質數)1.4 算法小題(自冪數) 2 System類2.1 概述2.2 常見方法 1 Math類 1.1 概述 tips:了解內容 查看API文檔,我們可以看到API文檔中關于Math類的定義如下: Math類…

每天一道leetcode:300. 最長遞增子序列(動態規劃中等)

今日份題目: 給你一個整數數組 nums ,找到其中最長嚴格遞增子序列的長度。 子序列 是由數組派生而來的序列,刪除(或不刪除)數組中的元素而不改變其余元素的順序。例如,[3,6,2,7] 是數組 [0,3,1,6,2,2,7] …

【JavaEE進階】SpringBoot項目的創建

文章目錄 一. SpringBoot簡介1. 什么是SpringBoot?2. SpringBoot的優點 二. SpringBoot項目創建1. 使用IDEA創建2. 使用網頁創建SpringBoot項目 三. 運行SpringBoot項目 一. SpringBoot簡介 1. 什么是SpringBoot? Spring Boot 是一個用于快速構建基于 Spring 框架的應用程序…

Spring對象裝配

在spring中,Bean的執行流程為啟動spring容器,實例化bean,將bean注冊到spring容器中,將bean裝配到需要的類中。 既然我們需要將bea裝配到需要的類中,那么如何實現呢?這篇文章,將來闡述一下如何實…

SOFABoot——基本使用(筆記)

文章目錄 一、前言二、快速開始2.1 基本搭建2.2 測試是否成功2.3 其他部分日志測試異步啟動 三、SOFABoot的模塊化開發3.1 基于Spring上下文的隔離3.2 Root Application Context3.3 模塊并行化啟動3.4 JVM服務與RPC服務的發布與引用3.5 模塊配置Module-NameRequire-ModuleSprin…

wsl2安裝mysql環境

安裝完mysql后通過如下命令啟動mysql service mysql start 會顯示如下錯誤: mysql: unrecognized service 實際上上面顯示的錯誤是由于mysql沒有啟動成功造成的 我們要想辦法成功啟動mysql才可以 1.通過如下操作就可以跳過密碼直接進入mysql環境 2.如果想找到my…

微服務與Nacos概述-5

引入OpenFeign 添加依賴&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><groupId>com.alibaba.cloud</groupId>…

“記賬”很麻煩,看這場競賽中的隊伍與合合信息是如何解決問題的

在我們日常生活中或多或少都會有記賬的情況&#xff0c;以此來對自己的收支和消費習慣進行分析&#xff0c;來幫助自己減少不必要的開支&#xff0c;優化財務決策、合理分配資金&#xff0c;減少財務壓力和不必要的浪費。 但記賬這個動作本身就是一件比較麻煩的。雖然現階段有…

數據結構入門 — 時間復雜度、空間復雜度

前言 數據結構_空間復雜度_時間復雜度講解_常見復雜度對比 本文介紹數據結構中的時間復雜度和空間復雜度 ***文章末尾&#xff0c;博主進行了概要總結&#xff0c;可以直接看總結部分*** 博主博客鏈接&#xff1a;https://blog.csdn.net/m0_74014525 點點關注&#xff0c;后期…

哈夫曼樹(赫夫曼樹、最優樹)詳解

目錄 哈夫曼樹&#xff08;赫夫曼樹、最優樹&#xff09;詳解 哈夫曼樹相關的幾個名詞 什么是哈夫曼樹 構建哈夫曼樹的過程 哈弗曼樹中結點結構 構建哈弗曼樹的算法實現 哈夫曼樹&#xff08;赫夫曼樹、最優樹&#xff09;詳解 哈夫曼樹相關的幾個名詞 路徑&#xff1a;…

2023牛客暑期多校訓練營8(A/H/I/J)

目錄 A.Alive Fossils H.Insert 1, Insert 2, Insert 3, ... I.Make It Square J.Permutation and Primes A.Alive Fossils 思路&#xff1a;一開始題意看半天沒看懂&#xff0c;后面發現只需要輸出t組輸入中&#xff0c;都出現過的字符串即可。 代碼&#xff1a; void s…

實驗三 圖像分割與描述

一、實驗目的&#xff1a; &#xff08;1&#xff09;進一步掌握圖像處理工具Matlab&#xff0c;熟悉基于Matlab的圖像處理函數。 &#xff08;2&#xff09;掌握圖像分割方法&#xff0c;熟悉常用圖像描述方法。 二、實驗原理 1.膚色檢測 膚色是人類皮膚重要特征之一&#xff…

7.原 型

7.1原型 【例如】 另外- this指向&#xff1a; 構造函數和原型對象中的this都指向實例化的對象 7.2 constructor屬性 每個原型對象里面都有個constructor屬性( constructor構造函數) 作用&#xff1a;該屬性指向該原型對象的構造函數 使用場景: 如果有多個對象的方法&#…

Springboot 實踐(4)swagger-ui 測試controller

前文項目操作&#xff0c;完成了項目的創建、數據源的配置以及數據庫DAO程序的生成與配置。此文講解利用swagger-ui界面&#xff0c;測試生成的數據庫DAO程序。目前&#xff0c;項目swagger-ui界面如下&#xff1a; 以”用戶管理”為例&#xff0c;簡單講述swagger-ui測試數據庫…

無涯教程-Perl - s函數

描述 這不是功能。這是正則表達式替換運算符。根據PATTERN中指定的正則表達式,將數據替換為REPLACE。與m //一樣,分隔符由s后的第一個字符定義。 語法 以下是此函數的簡單語法- s/PATTERN/REPLACE/返回值 如果失敗,此函數返回0,如果成功,則返回替換次數。 例 以下是顯示…