NLP 相關知識

NLP 相關知識

  • NLP
  • LLM
  • Prompt Chaining
  • LangChain

NLP

NLP(Natuarl Language Processing)是人工智能的一個分支,中文名自然語言處理,專注于處理和理解人類使用的自然語言。它涵蓋了多個子領域,如文本分類、情感分析、機器翻譯、問答系統、語音識別、語義解析等

NLP 的常見技術范式如下:

全監督學習(非神經網絡):僅在目標任務的輸入輸出樣本數據集上訓練特定任務模型

全監督學習(神經網絡):使用特征學習與模型訓練相結合,通過網絡架構學習數據特征

全監督學習(Fully Supervised Learning)是機器學習中的一種基本學習范式,其中每個訓練樣本都帶有完整的標簽信息。在全監督學習中,算法的目標是從給定的輸入數據(特征)和對應的正確輸出(標簽)中學習一個函數或模型,使得該模型能夠在新的未知數據上準確預測標簽

第三種技術范式詩預訓練(Pretraining),預訓練是機器學習,特別是深度學習中的一種重要技術,特別是在自然語言處理(NLP)領域。預訓練是指在大規模未標注數據集上先進行學習,然后將學到的知識轉移到特定任務的微調階段。這個過程通常分為兩個階段:

  1. 預訓練階段: 在這個階段,模型(如 Transformer 架構的 BERT、GPT 或 T5 等)會在一個非常大的文本數據集上進行訓練,這個數據集通常是互聯網抓取的網頁、書籍、新聞等。模型的目標是學習語言的一般規律和模式,而不是針對特定任務。這個過程通常使用無監督學習任務,如自動生成下一個單詞(自回歸預訓練)或填充被遮蔽的單詞(掩碼語言模型預訓練)。大模型的本質,是基于大樣本訓練出的預測模型。模型基于給它輸入的語料,根據概率預測可能的回答。模型的預測結果受語料限制
  2. 微調階段: 預訓練完成后,模型已經具備了一定的語言理解能力。在微調階段,模型會針對特定的下游任務(如文本分類、問答系統、機器翻譯等)進行進一步的訓練,這個階段叫 Fine-tuning。這時,我們會用到帶有標簽的小型數據集,調整模型的參數以優化特定任務的性能。具體來說,是通過人類的反饋來約束模型,從而讓模型回答出人類滿意的答案。當預測模型執行某個任務時,人類可以提供正面或負面的反饋(手動去選擇對錯),以指導模型的行為

預訓練的好處在于,它允許模型在大量數據上學習通用的語言表示,這些表示可以捕捉到語言的豐富結構和語義信息。這樣,在微調時,模型只需要少量的標記數據就能達到較好的性能,尤其對于那些標記數據稀缺的任務來說,預訓練極大地提高了效率和效果

LLM

LLM 是近年來隨著深度學習發展而出現的一種特定類型的 NLP 模型。這些模型非常大,擁有數億甚至數千億個參數

LLM通過訓練大規模的文本數據集(如互聯網上的網頁、書籍、文章等)來學習語言模式和結構。著名的 LLM 包括 Google 的 BERT、Facebook 的 RoBERTa、OpenAI 的 GPT 系列以及阿里云的 Qwen 等

這些模型能夠執行多種 NLP 任務,如回答問題、生成文本、翻譯等,并且由于其規模和復雜性,它們在許多任務上表現出優秀的性能

Prompt Chaining

鏈允許我們將多個組件組合在一起以創建一個單一的、連貫的任務。例如,我們可以創建一個鏈,它接受用戶輸入,使用 PromptTemplate 對其進行格式化,然后將格式化的響應傳遞給 LLM。另外我們也可以通過將多個鏈組合在一起,或者將鏈與其他組件組合來構建更復雜的鏈

熟悉 openai 的都知道,openai 提供的聊天接口 api,本身是不具備“記憶的”能力。如果想要使聊天具有記憶功能,則需要我們自行維護聊天記錄,即每次把聊天記錄發給 gpt 發送的內容也越來越多,那很可能就碰到 token 的限制。聰明的同學會發現,其實我們只保留最近幾次的聊天記錄就可以了,這確實是一種解法,但是不夠完美

Prompt Chaining 確實涉及到使用對話歷史來指導模型生成連貫的響應,但它不僅僅是簡單地將用戶和模型之間的完整對話歷史拼接在一起并一次性發送給模型。在實際應用中,Prompt Chaining 通常更加復雜和精細

LangChain

LangChain 作為一個大語言模型開發框架,是 LLM 應用架構的重要一環。那什么是 LLM 應用架構呢?其實就是指基于語言模型的應用程序設計和開發的架構

LangChian 可以將 LLM 模型、向量數據庫、交互層 Prompt、外部知識、外部工具整合到一起,進而可以自由構建 LLM 應用

LangChain 為使用聊天模型提供了一個標準接口。聊天模型是語言模型的一種變體。雖然聊天模型在內部使用語言模型,但它們所提供的接口略有不同。它們不是暴露一個 “輸入文本,輸出文本” 的 API,而是提供了一個以 “聊天消息” 作為輸入和輸出的接口

聊天模型的接口是基于消息而不是原始文本。LangChain 目前支持的消息類型有 AIMessage、HumanMessage、SystemMessage 和 ChatMessage,其中 ChatMessage 接受一個任意的角色參數。大多數情況下,您只需要處理 HumanMessage、AIMessage 和 SystemMessage

但是如果只是這樣的話,那為什么不直接調用大模型接口呢。所以 LangChain 還提供了很多其他功能,比如緩存 LLM 返回結果。上面介紹了聊天的角色處理以及如何進行批量處理消息。我們都知道向 openAI 調用接口都是要花錢的,如果用戶問同一個問題,對結果進行了緩存,這樣就可以減少接口的調用并且也能加快接口返回的速度

那么怎么判斷用戶下次問了相似的問題呢,這就需要使用到向量庫了,比如 ES。這個更多的是用于文檔、文本或者大量數據的總結、問答場景,一般是和向量庫一起使用,實現向量匹配。其實就是把文本等內容轉成多維數組,可以后續進行相似性的計算和檢索

他相比 fine-tuning 最大的優勢就是,不用進行訓練,并且可以實時添加新的內容,而不用加一次新的內容就訓練一次,并且各方面成本要比 fine-tuning 低很多

向量庫:將一段文本、圖像、音頻拆分成多個緯度的數據,根據用戶傳入,錨定坐標然后選擇最近的點做返回,這大概就是向量數據庫在 LLM 工程(langchain)中的使用,簡單來說就是做緩存

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

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

相關文章

思維導圖麒麟liunx系統

系統管理與計劃任 ” 使用at命令提交任務。 6.2.1 at任務概述 6.1.4 定時任務的使用場景 at任務是指使用at命令安排的,只執行一次的任務它允許用戶指定在未來某個特定時間執行命令或腳本定時更新系統軟件包。定時清理系統臨時文件。自動備份文件和數據庫。 at:用于一…

pytorch 源碼閱讀(2)——torch._dynamo.optimize

0 torch._dynamo.optimize(backend, *, nopython, guard_export_fn, guard_fail_fn, disable, dynamic),TorchDynamo 的主入口點 1 參數說明 backend,一般有兩種情況: 一個包含 torch.fx.GraphModule 和 example_inputs,返回一個…

【websocket】websocket網課視頻記錄

僅個人方便回顧。 【WebSocket入門與案例實戰-嗶哩嗶哩】 https://b23.tv/2p1f9t2 課程對應代碼倉庫: https://gitee.com/duoli-java/websocket-demo.git

C++編程(二)引用

文章目錄 一、C中的引用(一)引用1. 語法格式2. 作用3. 注意事項 (二)常引用2. 其他場景 (三)引用和函數結合使用1. 引用可以作為函數的參數2. 引用可以作為函數的返回值 (四)引用和指…

在 C/C++ 中使用 popen去執行linux命令樣例,失敗場景

在 C/C 中使用 popen 函數去執行 Linux 命令是一種常見的方式,但確實存在多種可能導致失敗的場景。以下是一些可能導致 popen 失敗的常見原因和樣例: 命令不存在或路徑錯誤: 如果你嘗試執行的命令不存在于系統的 PATH 環境變量中,…

記因hive配置文件參數運用不當導致 sqoop MySQL導入數據到hive 失敗的案例

sqoop MySQL導入數據到hive報錯 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Hive exited with status 64 報錯解釋: 這個錯誤表明Sqoop在嘗試導入數據到Hive時遇到了問題,導致Hive進程異常退出。狀態碼…

HarmonyOS Next開發學習手冊——通過startAbility拉起文件處理類應用

使用場景 開發者可以通過調用startAbility接口,由系統從已安裝的應用中尋找符合要求的應用來實現打開特定文件的意圖,例如:瀏覽器下應用下載PDF文件,可以調用此接口選擇文件處理應用打開此PDF文件。開發者需要在請求中設置待打開…

三個方法計算兩張圖片的相似度

import cv2 import numpy as np from skimage.metrics import structural_similarity as ssim import osdef is_similar(image1, image2, threshold0.95):對圖像的顏色信息敏感,能快速計算。對圖像的旋轉、縮放等幾何變換不敏感。缺點:對圖像的結構、紋理等信息不敏…

0625_ARM2

練習: 匯編實現1-100累加,結果保存在r0 .text .global _start start:mov r0,#0mov r1,#1b loop loop:add r0,r0,r1add r1,r1,#1cmp r1,#101bne loop .end思維導圖:

C#——SortedList 排序列表詳情

SortedList 排序列表 SortedList 類用來表示鍵/值對的集合,這些鍵/值對按照鍵值進行排序,并且可以通過鍵或索引訪問集合中的各個項。 我們可以將排序列表看作是數組和哈希表的組合,其中包含了可以使用鍵或索引訪問各項的列表。如果您使用索…

tensorflow學習1.3-創建會話,啟動會話

tensorflow學習1.3-創建會話,啟動會話 會話的由來與作用由來作用 會話的定義與結構定義 用法基本用法上下文管理器執行部分計算圖獲取多個結果 總結 練習代碼報錯原因:TensorFlow 2.x中的Eager Execution使用兼容模式來啟用SessionEager Execution和計算…

AI文檔助手:提升文檔處理效率

隨著人工智能技術的飛速發展,AI文檔助手已經成為我們提升工作效率的重要工具。小編就來和大家分享幾款AI文檔助手,它們能夠通過智能化的功能幫助我們快速、準確地完成各種文檔任務。 1.百度文庫AI助手 百度文庫AI助手是百度基于文心一言重構的一站式智能…

全景圖片/老照片/動漫圖片一鍵無損放大與修復

在日常生活中,我們經常使用系統自帶的圖片處理軟件來對圖片進行縮放操作,從而實現放大或縮小圖片。然而,這種方法會帶來一個問題:如果原始圖片較小,放大后會導致精度損失,使圖片變得模糊。 近年來&#xf…

vue uniapp MEQX JWT認證

1.下載依賴 npm install mqttimport * as mqtt from "mqtt/dist/mqtt.min" ? 我是用的uniapp vue3 vite這里嘗試了很多方式,都導入不進去后來我就采用的本地引入方式, 把mqtt.min.js下載到本地然后在index.html 中導入<script src"./MEQX/mqtt.js" typ…

rapidocr-onnxruntime庫及在open-webui上傳PDF 圖像處理 (使用 OCR)應用

背景 rapidocr-onnxruntime是一個跨平臺的OCR庫&#xff0c;基于ONNXRuntime推理框架。 目前已知運行速度最快、支持最廣&#xff0c;完全開源免費并支持離線快速部署的多平臺多語言OCR。 緣起&#xff1a;百度paddle工程化不是太好&#xff0c;為了方便大家在各種端上進行oc…

終極指南:解決iCloud備份錯誤代碼的全面策略

終極指南&#xff1a;解決iCloud備份錯誤代碼的全面策略 在數字化時代&#xff0c;數據安全至關重要。iCloud作為Apple提供的云服務&#xff0c;為我們的iPhone、iPad等設備提供了便捷的數據備份與恢復功能。然而&#xff0c;在使用過程中&#xff0c;我們可能會遇到各種備份錯…

ros,open3d單線激光雷達數據可視化

之前一直嘗試將可視化寫在ros的回調函數中&#xff0c;visualization一直會阻塞進程&#xff0c;換一種方式可以順利實現可視化 import rospy import open3d as o3d import numpy as np from sensor_msgs.msg import LaserScanglobal scan_data scan_data Nonedef callback_l…

機器學習之對比學習方法SimSiam(Simple Siamese)

SimSiam(Simple Siamese)是一種自監督對比學習方法,由Facebook AI Research于2021年提出。SimSiam的設計旨在避免負樣本對,并且不使用動量編碼器,進一步簡化了對比學習的實現過程。 SimSiam的基本概念 自監督學習: 自監督學習方法通過從數據本身獲取監督信號進行學習,不…

qt 播放音頻 c++

目錄 不能播放&#xff1a; 可以播放&#xff1a; 原因&#xff1a; QT core gui sql network multimedia 不能播放&#xff1a; #include <QMediaPlayer>QMediaPlayer player;// player.setMedia(QUrl("qrc:/res/raw/qs.mp3"));player.setMedia(QU…

近鄰算法基礎概念

近鄰算法&#xff0c;尤其是K-最近鄰&#xff08;K-Nearest Neighbors, KNN&#xff09;算法&#xff0c;是一種基于實例的學習方法&#xff0c;廣泛應用于分類和回歸分析中。 基本概念 目的&#xff1a;KNN算法的目的是對新的未知樣本進行分類&#xff08;或預測其數值&…