主頁 >  其他 > 自然語言處理 Paddle NLP - 結構化資料問答-理論

自然語言處理 Paddle NLP - 結構化資料問答-理論

2023-06-27 08:12:24 其他

NLP問答任務
相似度和規則匹配,都是早期的方法,現在主流的方法,都是基于生成的方法
結構化資料問答,有兩種形式,一種是知識圖譜形式、一種是關系型資料庫形式,
image
主要應用在企業中,減少銷售的成本
image
應用于商業智能,用于報告生成,解放了財務能力,降低人力成本
image

結構化資料問答任務

結構化資料問答:基于給定的結構化知識庫和自然語言問題,給出問題對應的答案
任務能力:

  • 推理能力:基于現有知識推理/計算給出答案,E.g. OPPOA93比魅族18貴多少呀
  • 輸出結果可解釋:輸出知識庫查詢陳述句

結構化形式存盤,不盡存盤了問題的知識和答案,這種存盤有利于推理和計算
結構化問答能夠輸出查詢陳述句,是人類可讀可理解的,相對于其它問答形式,這種是可控的,
image

表格問題中,一般用語意決議技術(Text-to-SQL)
表格問答:核心技術,將自然語言問題轉成資料庫上可執行的SQL查詢陳述句
兩大功能:

  • SQL決議功能:比較關鍵,是表格問答的核心技術,如何將自然語言轉成可查詢的SQL陳述句
  • SQL執行功能
    image
    image

評估方法

常用的有兩種,這兩種是不等價的,

  • 精確匹配正確率:評估生成的SQL的正確率,預測SQL與標準SQL相等的問題占比
  • 執行正確率:評估答案正確率,執行預測SQL獲得正確答案的問題占比

分母是問題集合大小N,預測的SQL和標準的SQL相等的問題數量,在判斷相等的時候會忽略順序的影響

問題

這種方式和第一種相比,分子是通過答案相比,這兩種方式是不等價的,

  • 精確匹配正確率:針對同一個問題,有不同的SQL寫法,而且SQL都是正確的,這種情況下,如果使用第一種評估方式,標準的SQL只是正確寫法中的一個,使用這種方式會漏掉一些正確的結果,導致評估的結果會偏低,這種情況就比較適合使用第二種方式(評估答案準確率)
  • 執行正確率:資料庫的不完畢性,有些問題是沒有答案的,這樣的話,就導致正常的SQL沒有答案,錯誤的SQL也沒有答案,按答案判斷兩種情況都是正常的,這樣會導致評估結果會偏高

在實際應用在選擇評估方式時,

    1. 看選擇的測驗資料,提供了哪些資訊,有沒有提供SQL、答案,
    1. 實際應用更關注哪個指標,是關注SQL正常,還是更關注答案

image

資料集

一般是按資料集化分,要么問題在訓練集中,要么在測驗集中,多領域是按資料庫劃分的,在一個資料集中

  • 多領域(cross-domain):訓練/測驗集使用的資料庫是否相同或交叉,資料集是包含多個資料庫的,每個資料庫有一個領域,每個領域有一個或多個資料庫,資料集劃分時,是按訓練集、測驗集劃分的,一個資料庫所有的問題,只能屬于一個集合,要么屬于訓練集,要么屬于測驗集,這會導致測驗集中的資料庫和問題,在訓練集中是沒有見過的,多領域化分,是用來劃分模型的泛化性,同時也給任務帶來很大的挑戰

  • 單/多表(multi-table):構成資料庫的表的數量,多表涉及到表的檢索,一張表為單表,涉及多張表的表示多表

  • 簡單/復雜:從SQL角度評估,是否包含高級從句、集合操作、嵌套等,簡單 SQL只包含SELECT WHERE(答案、條件),復雜:有可能包含排序、分組、集合操作

CSpider 資料庫是英文,問題是中文
image

主流學習方式

基于規則的方式,已經不用了,主流的有以下兩種

  • 有監督方法:以生成的SQL是否正確,來指導模型的學習,這種學習方法依賴于標準資料,由于正確的SQL陳述句標注比較困難

  • 弱監督方法:給出資料庫問題,以及問題對應的答案,標注答案要比標注SQL相對容易很多,在這情況下,SQL是中間輸出,會以答案指導SQL的生成,能夠輸出正常答案的SQL就是正確的,這種需要在整個資料庫中去搜索合理或正常的正確陳述句,搜索空間比較大,這種方式比較適合簡單的資料集,復雜的資料集很難執行下去,

https://github.com/salesforce/WikiSQL
為了各類資料集都適用,后面都是基于有監督方法的介紹
image

encode-decoder 中英文翻譯,中文句子翻譯成英文句子,
encode 把中文句子映射到表示空間上,完成編碼的作用
decode 從表示空間上,解碼出對應的英文句子
image

從下往上看,把多輸入進行拼接,自然語言和DB Schema 的拼接,將拼接輸入給 Encoder 編碼器,解碼器按順序輸出每個元素,直到遇到結束符,最終生成序例(SQL陳述句)
Decode 引入了兩個開關,generate、copy 多領域資料集在劃分訓練集和測驗集時,是按資料庫進行化分的,測驗集中的一些問題在訓練集中沒有見過,如何在生成的時候把這些沒有見過的生成出來,輸出資訊,應該包含在輸入定義的 db schema 資訊中,這時候就可以把定義的輸入資訊copy到輸出資訊中,
對于 SQL 關鍵詞,是生成的,資料庫和問題中的元素是copy的
image

Text-to-SQL任務挑戰

領域泛化:測驗集中資料庫未在訓練集中出現過
輸出結構化:生成的SQL陳述句在資料庫上可執行,即滿足資料庫結構、SQL語法
image

image

Text-to-SQL實體

解決方案
編碼:Relation-awarerepresentation 利用匹配關系強化編碼方式
解碼:Grammar-baseddecoder 利用語法解碼,保證生成的SQL是滿足語法的
image
Encode => 隱式表示 => Decode
image

輸入部分仍然是自然語言+Schema的拼接,在這邊為了更好的識別條件值,增加了條件值的一個拼接,
使用基礎的編碼器,對資料進行一個表示,得到一個隱式表示,
在基礎編碼器上,又增加了一個 Relation-aware Transformer Encoder:用匹配關系增強表示,
接下來在Decode中引入了 Grammar-based Decoder 語法解碼,這種解碼不是在每次輸出時輸出一個個元素,而是輸出的一個語法序列,
image

https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/text_to_sql
image

SchemaLinking

自然語言和資料庫Schema進行匹配映射,把匹配資訊構成匹配關系矩陣,這個矩陣作為后面模塊的輸入,

先對自然語言進行分詞
問題中的每個詞與DB Schema中的成分進行匹配,標注出匹配方式和程度,構建出關系矩陣,顏色表示匹配關系,不同的顏色表示不同的關系
image

Encoding–BasicEncoder

  • 基礎編碼:把輸入映射到隱式空間的程序
    Dataprocess:text2sql/dataproc/ernie_input_encoder_v2.py中類ErnieInputEncoderV2
    Encoder:third/ERNIE或PaddleNLP:from paddlenlp.transformersimport BertModel
    image

Encoding–Relation-awareEncoder

  • 匹配關系增強編碼:利用SchemaLinking 中建立起來的關系矩陣,來指導編碼,進而強化編碼,
    學習輸入中的每個詞對目標詞的權重,
    輸入自然語言和DB Schema進行拼接,
    權重越大,對目標詞的影響越大
    1:08:40
    image

Decoding

  • 語法解碼:解碼程序種通過語法生成語法序列,保證語法的合理性
  • 基于Copy機制的解碼:對應的元素是資料庫元素時,利用copy機制
    image

Grammar-basedDecoder

基本思想:根據SQL語法設定背景關系無關文法,將SQL生成看作文法序列生成,即文法選擇程序
不再生成單獨的 query元素,而是生成符合SQL語言的語法,最后生成的語法序列是可以構成 sql query的,
image

是經過領域泛化的,換一個庫不需要重新標注,除非需要很高的準確率,

應用實體演示:https://ai.baidu.com/unit/v2#/innovationtec/kbqa/skilllist

視頻:https://aistudio.baidu.com/aistudio/course/introduce/24177?sharedLesson=1477808&sharedType=2&sharedUserId=2631487&ts=1686638807733

課件:https://aistudio.baidu.com/aistudio/course/introduce/24177?sharedLesson=1567910&sharedType=2&sharedUserId=2631487&ts=1686638791675

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/556038.html

標籤:其他

上一篇:大模型微調技術LoRA與QLoRA

下一篇:返回列表

標籤雲
其他(161659) Python(38254) JavaScript(25514) Java(18265) C(15238) 區塊鏈(8273) C#(7972) AI(7469) 爪哇(7425) MySQL(7269) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5875) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4606) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2437) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1985) HtmlCss(1972) 功能(1967) Web開發(1951) C++(1942) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 自然語言處理 Paddle NLP - 結構化資料問答-理論

    NLP問答任務 相似度和規則匹配,都是早期的方法,現在主流的方法,都是基于生成的方法 結構化資料問答,有兩種形式,一種是知識圖譜形式、一種是關系型資料庫形式。 ![image](https://img2023.cnblogs.com/blog/80824/202306/80824-202306130 ......

    uj5u.com 2023-06-27 08:12:24 more
  • 大模型微調技術LoRA與QLoRA

    LoRA: Low-Rank Adaptation of Large Language Models 動機 大模型的引數量都在100B級別,由于算力的吃緊,在這個基礎上進行所有引數的微調變得不可能。LoRA正是在這個背景下提出的解決方案。 原理 雖然模型的引數眾多,但其實模型主要依賴低秩維度的內容( ......

    uj5u.com 2023-06-27 08:11:54 more
  • 人人都能生成火爆全網的最不像二維碼的二維碼

    最近有人展示了使用 Stable Diffusion 創建的藝術二維碼。這些二維碼是使用定制訓練的 ControlNet模型生成的。 但是操作門檻有點高。 你需要 GPU,還需要學習如何使用 Stable Diffusion。 現在有一款非常無腦的產品,使用這個產品來創建藝術二維碼,**最大的門檻就 ......

    uj5u.com 2023-06-27 08:11:18 more
  • 如何創建Windows 10 虛擬機

    一 ,新建Windows 10 虛擬機 1.1 創建新的虛擬機 1,點擊創建新的虛擬機 2,選擇典型,點擊下一步 3,選擇稍后安裝作業系統,點擊下一步。 4,作業系統選擇windwos,版本選著Windows10 x64,點擊下一步 5,可以選擇想要給虛擬機的命名,位置選擇想要放置的盤符位置,點擊下 ......

    uj5u.com 2023-06-27 08:10:03 more
  • 云原生周刊:HashiCorp Vault 1.14 發布 | 2023.6.26

    ## 開源專案推薦 ### [Helmfile](https://github.com/helmfile/helmfile) Helmfile 是一個開源工具,使用 Helm charts 簡化復雜應用程式的部署。它提供了一種宣告性的方式來定義 Kubernetes 資源的期望狀態,并管理 Helm ......

    uj5u.com 2023-06-27 08:09:29 more
  • 什么是算力網路

    什么是算力網路?

    是一種根據業務需求,在云、網、邊之間按需分配和靈活調度計算資源、存盤資源以及網路資源的新型資訊基礎設施。“算力網路“是“以網路為中心”的多種融合資源供給網路計算模型,將“新計算”(云計算、邊緣計算、泛在計算)的算力,通過“新聯接”(無處不在的網路)整合起來,實作算力的靈活按需使用... ......

    uj5u.com 2023-06-27 08:09:22 more
  • 新建虛擬機

    # 虛擬機環境配置 ## 一、安裝作業系統win10 ### 1、新建虛擬機。 ![image-20230626100550022](https://img2023.cnblogs.com/blog/3227164/202306/3227164-20230626154945307-196757279 ......

    uj5u.com 2023-06-27 08:07:27 more
  • 磐舟磐基平臺:基于KubeEdge的落地實踐

    摘要:實作統一管理、簡化多集群的運維系統、減少運營成本;同時也成功將前面提到的500臺鯤鵬服務器以及它上面的BC Linux for Euler集群納入磐基PaaS平臺的大家庭之中,運維效率大幅增加。 本文分享自華為云社區《中國移動:磐舟磐基平臺 基于KubeEdge的落地實踐》,作者:中國移動磐舟 ......

    uj5u.com 2023-06-27 08:01:03 more
  • Serverless函式計算介紹

    隨著互聯網和移動互聯網的快速發展,越來越多的應用程式需要具備高可用性、高擴展性和高性能等特點。而云計算作為一種新興的計算模型,可以幫助開發者更快速、更高效地開發和部署應用程式。Serverless函式計算作為云計算的一種重要形式,正在逐漸成為云計算的主流模型。 ......

    uj5u.com 2023-06-27 08:00:24 more
  • 量化投資中的擇時研究

    在進行量化投資策略的研究時,我們通常會基于不同的原則來進行分類,其中包括:根據均線進行擇時、根據估值進行擇時、以及根據策略回撤進行擇時。

    這三種策略各有特點,也各自適用于不同的市場環境和投資風格。例如,根據均線擇時的策略主要關注價格趨勢,以確定最佳的買入和賣出時機;根據估值擇時則主要基于公司的基本... ......

    uj5u.com 2023-06-27 07:58:53 more