本發(fā)明涉及人工智能,也可用于金融領(lǐng)域,尤其涉及一種基于大語言模型實(shí)現(xiàn)自然語言轉(zhuǎn)sql的方法及裝置。
背景技術(shù):
1、本部分旨在為權(quán)利要求書中陳述的本發(fā)明實(shí)施例提供背景或上下文。此處的描述不因?yàn)榘ㄔ诒静糠种芯统姓J(rèn)是現(xiàn)有技術(shù)。
2、自然語言處理(natural?language?processing,nlp)作為人工智能技術(shù)的一個(gè)重要分支,在很多場(chǎng)景中扮演的角色也越來越重要。在數(shù)據(jù)庫查詢場(chǎng)景中,利用自然語言轉(zhuǎn)結(jié)構(gòu)化查詢語言(natural?language?to?structured?query?language,nl2sql)的技術(shù)能夠大大提高數(shù)據(jù)庫查詢的效率。
3、將自然語言轉(zhuǎn)換為sql,就是將人類語言的查詢轉(zhuǎn)化為數(shù)據(jù)庫查詢語言(sql)。例如,對(duì)于一個(gè)查詢“請(qǐng)幫我查詢有多少用戶?”,自然語言轉(zhuǎn)換為sql的技術(shù)目標(biāo)就是將該查詢轉(zhuǎn)化為一個(gè)sql查詢,如“select?count(*)from?user”。用戶自輸入提問相關(guān)信息并選擇相應(yīng)的數(shù)據(jù)庫表結(jié)構(gòu)信息,將上述提問信息以及數(shù)據(jù)庫表結(jié)構(gòu)信息輸入至大語言模型(llm)中,由該大語言模型根據(jù)用戶查詢需求生成一條sql語句,再調(diào)用相應(yīng)的數(shù)據(jù)庫,執(zhí)行sql語句,獲得對(duì)應(yīng)的結(jié)果,最終將結(jié)果返回給用戶呈現(xiàn)。
4、近年來,大型語言模型(llm)的崛起為nl2sql的研究帶來了新的契機(jī)。llm通過深度學(xué)習(xí)和大量的語料庫訓(xùn)練,具備強(qiáng)大的文本生成和理解能力。在nl2sql應(yīng)用中,llm能夠接收自然語言描述的問題,并自動(dòng)生成對(duì)應(yīng)的sql查詢語句,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中數(shù)據(jù)的精準(zhǔn)檢索。
5、然而,在實(shí)際應(yīng)用中,當(dāng)llm處理數(shù)據(jù)庫表以及生成sql時(shí),基于llm的nl2sql轉(zhuǎn)換器面臨一系列技術(shù)挑戰(zhàn)。首先,查詢生成的效率問題影響了用戶體驗(yàn)和系統(tǒng)的整體性能。其次,實(shí)體識(shí)別和映射的不確定性也使得模型難以將自然語言中的實(shí)體準(zhǔn)確映射到正確的數(shù)據(jù)庫字段。此外,llm的輸出存在不固定性和隨機(jī)性,由于生成sql的過程中只有一次生成,輸出隨機(jī)性會(huì)對(duì)生成sql的準(zhǔn)確率有很大影響。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供一種基于大語言模型實(shí)現(xiàn)自然語言轉(zhuǎn)sql的方法,用以降低大語言模型輸出的隨機(jī)性,提高自然語言轉(zhuǎn)化為sql的準(zhǔn)確率,提高用戶體驗(yàn)。
2、為解決上述技術(shù)問題,本技術(shù)提供以下技術(shù)方案:
3、第一方面,本技術(shù)提供一種基于大語言模型實(shí)現(xiàn)自然語言轉(zhuǎn)sql的方法,包括:
4、執(zhí)行如下迭代操作:
5、獲取輸入數(shù)據(jù);其中,所述輸入數(shù)據(jù)包括:自然語言問題、數(shù)據(jù)庫表以及該數(shù)據(jù)庫表對(duì)應(yīng)的輸入數(shù)據(jù)庫;
6、將所述輸入數(shù)據(jù)輸入第一大語言模型生成查詢sql語句;
7、將所述輸入數(shù)據(jù)輸入第二大語言模型生成多條測(cè)試數(shù)據(jù)以及每條所述測(cè)試數(shù)據(jù)對(duì)應(yīng)的相關(guān)性標(biāo)識(shí);其中,所述相關(guān)性標(biāo)識(shí)包括相關(guān)及不相關(guān);
8、將所述查詢sql語句、所述測(cè)試數(shù)據(jù)及所述測(cè)試數(shù)據(jù)對(duì)應(yīng)的相關(guān)性標(biāo)識(shí)輸入至測(cè)試數(shù)據(jù)庫并通過第三大語言模型進(jìn)行一致性檢查;
9、若一致性檢查不通過且不一致次數(shù)小于預(yù)設(shè)閾值,確定出現(xiàn)錯(cuò)誤的大語言模型并反饋錯(cuò)誤結(jié)果至該大語言模型,直至一致性檢查通過或不一致次數(shù)達(dá)到所述預(yù)設(shè)閾值。
10、進(jìn)一步地,所述將所述查詢sql語句、測(cè)試數(shù)據(jù)及所述測(cè)試數(shù)據(jù)對(duì)應(yīng)的相關(guān)性標(biāo)識(shí)輸入至測(cè)試數(shù)據(jù)庫并通過第三大語言模型進(jìn)行一致性檢查包括:
11、清空所述測(cè)試數(shù)據(jù)庫中的數(shù)據(jù);
12、將所述測(cè)試數(shù)據(jù)及所述測(cè)試數(shù)據(jù)對(duì)應(yīng)的相關(guān)性標(biāo)識(shí)輸入所述測(cè)試數(shù)據(jù)庫中;
13、在所述測(cè)試數(shù)據(jù)庫運(yùn)行所述查詢sql語句,得到查詢結(jié)果;
14、將所述測(cè)試數(shù)據(jù)及所述測(cè)試數(shù)據(jù)對(duì)應(yīng)的相關(guān)性標(biāo)識(shí)以及所述查詢結(jié)果輸入所述第三大語言模型進(jìn)行一致性檢查。
15、進(jìn)一步地,所述將所述測(cè)試數(shù)據(jù)及所述測(cè)試數(shù)據(jù)對(duì)應(yīng)的相關(guān)性標(biāo)識(shí)以及所述查詢結(jié)果輸入所述第三大語言模型進(jìn)行一致性檢查包括:
16、通過所述第三大語言模型檢查所述查詢結(jié)果與相關(guān)性標(biāo)識(shí)為相關(guān)的所述測(cè)試數(shù)據(jù)是否一致;
17、在所述確定出現(xiàn)錯(cuò)誤的大語言模型并反饋錯(cuò)誤結(jié)果至該大語言模型之前,還包括:
18、檢測(cè)不一致次數(shù)是否小于所述預(yù)設(shè)閾值。
19、進(jìn)一步地,所述確定出現(xiàn)錯(cuò)誤的大語言模型并反饋錯(cuò)誤結(jié)果至該大語言模型包括:
20、根據(jù)所述輸入數(shù)據(jù)、所述查詢sql語句、所述測(cè)試數(shù)據(jù)及所述測(cè)試數(shù)據(jù)對(duì)應(yīng)的相關(guān)性標(biāo)識(shí)以及所述查詢結(jié)果,判斷所述第一大語言模型和所述第二大語言模型是否存在生成錯(cuò)誤;
21、若所述第一大語言模型或若所述第二大語言模型出現(xiàn)錯(cuò)誤,將錯(cuò)誤結(jié)果至出現(xiàn)錯(cuò)誤的大語言模型;
22、若無法確定所述第一大語言模型或所述第二大語言模型出現(xiàn)錯(cuò)誤,將錯(cuò)誤結(jié)果至所述第一大語言模型及所述第二大語言模型。
23、進(jìn)一步地,在所述獲取輸入數(shù)據(jù)之后,所述方法還包括:根據(jù)所述輸入數(shù)據(jù)生成所述大語言模型的提示語。
24、第二方面,本發(fā)明實(shí)施例還提供一種基于大語言模型實(shí)現(xiàn)自然語言轉(zhuǎn)sql的裝置,用以降低大語言模型輸出的隨機(jī)性,提高自然語言轉(zhuǎn)化為sql的準(zhǔn)確率,提高用戶體驗(yàn),該裝置包括:
25、數(shù)據(jù)采集模塊,用于所述輸入數(shù)據(jù);其中,所述輸入數(shù)據(jù)包括:自然語言問題、數(shù)據(jù)庫表以及該數(shù)據(jù)庫表對(duì)應(yīng)的輸入數(shù)據(jù)庫;
26、第一數(shù)據(jù)生成模塊,用于將所述輸入數(shù)據(jù)輸入第一大語言模型生成查詢sql語句;
27、第二數(shù)據(jù)生成模塊,用于將所述輸入數(shù)據(jù)輸入第二大語言模型生成多條測(cè)試數(shù)據(jù)以及每條所述測(cè)試數(shù)據(jù)對(duì)應(yīng)的相關(guān)性標(biāo)識(shí);
28、數(shù)據(jù)驗(yàn)證模塊,用于將所述查詢sql語句、所述測(cè)試數(shù)據(jù)及所述測(cè)試數(shù)據(jù)對(duì)應(yīng)的相關(guān)性標(biāo)識(shí)輸入至測(cè)試數(shù)據(jù)庫并通過第三大語言模型進(jìn)行一致性檢查;
29、錯(cuò)誤鑒定模塊,當(dāng)一致性檢查不通過且不一致次數(shù)小于預(yù)設(shè)閾值,用于確定出現(xiàn)錯(cuò)誤的大語言模型并反饋錯(cuò)誤結(jié)果至該大語言模型。
30、進(jìn)一步地,所述數(shù)據(jù)驗(yàn)證模塊包括:
31、數(shù)據(jù)清空單元,用于清空所述測(cè)試數(shù)據(jù)庫中的數(shù)據(jù);
32、輸入單元,用于將所述測(cè)試數(shù)據(jù)及所述測(cè)試數(shù)據(jù)對(duì)應(yīng)的相關(guān)性標(biāo)識(shí)輸入所述測(cè)試數(shù)據(jù)庫中;
33、查詢單元,用于在所述測(cè)試數(shù)據(jù)庫運(yùn)行所述查詢sql語句,得到查詢結(jié)果;
34、第二數(shù)據(jù)驗(yàn)證單元,用于將所述測(cè)試數(shù)據(jù)及所述測(cè)試數(shù)據(jù)對(duì)應(yīng)的相關(guān)性標(biāo)識(shí)以及所述查詢結(jié)果輸入所述第三大語言模型進(jìn)行一致性檢查。
35、進(jìn)一步地,所述第二數(shù)據(jù)驗(yàn)證單元,具體用于,通過所述第三大語言模型檢查所述查詢結(jié)果與相關(guān)性標(biāo)識(shí)為相關(guān)的所述測(cè)試數(shù)據(jù)是否一致;
36、所述裝置還包括:檢測(cè)模塊:用于檢測(cè)不一致次數(shù)是否小于所述預(yù)設(shè)閾值。
37、進(jìn)一步地,所述錯(cuò)誤鑒定模塊包括:
38、判斷單元,用于根據(jù)所述輸入數(shù)據(jù)、所述查詢sql語句、所述測(cè)試數(shù)據(jù)及所述測(cè)試數(shù)據(jù)對(duì)應(yīng)的相關(guān)性標(biāo)識(shí)以及所述查詢結(jié)果,判斷所述第一大語言模型和所述第二大語言模型是否存在生成錯(cuò)誤;
39、第一反饋單元,用于若所述第一大語言模型或若所述第二大語言模型出現(xiàn)錯(cuò)誤,將錯(cuò)誤結(jié)果至出現(xiàn)錯(cuò)誤的大語言模型;
40、第二反饋單元,用于若無法確定所述第一大語言模型或所述第二大語言模型出現(xiàn)錯(cuò)誤,將錯(cuò)誤結(jié)果至所述第一大語言模型及所述第二大語言模型。
41、進(jìn)一步地,所述裝置還包括:封裝模塊,用于根據(jù)所述輸入數(shù)據(jù)生成所述大語言模型的提示語。
42、本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述基于大語言模型實(shí)現(xiàn)自然語言轉(zhuǎn)sql的方法。
43、本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述基于大語言模型實(shí)現(xiàn)自然語言轉(zhuǎn)sql的方法。
44、本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述基于大語言模型實(shí)現(xiàn)自然語言轉(zhuǎn)sql的方法。
45、本發(fā)明實(shí)施例提供的一種基于大語言模型實(shí)現(xiàn)自然語言轉(zhuǎn)sql的方法及裝置,
46、本發(fā)明實(shí)施例中,將輸入數(shù)據(jù)分別輸入到第一大語言模型和第二大語言模型中得到查詢sql語句和帶有相關(guān)性標(biāo)識(shí)的測(cè)試數(shù)據(jù),實(shí)現(xiàn)了自然語言轉(zhuǎn)sql;由于大語言模型存在隨機(jī)性,將得到的查詢sql語句和帶有相關(guān)性標(biāo)識(shí)的測(cè)試數(shù)據(jù)輸入到測(cè)試數(shù)據(jù)庫中進(jìn)行一致性檢查,通過引入第二大語言模型,與原有的第一大語言模型形成協(xié)同互補(bǔ),對(duì)生成的查詢sql語句進(jìn)行一致性檢查,提高了生成的查詢sql語句的準(zhǔn)確率;若一致性檢查不通過且不一致次數(shù)小于預(yù)設(shè)閾值,確定出現(xiàn)錯(cuò)誤的大語言模型并反饋錯(cuò)誤結(jié)果至該大語言模型,進(jìn)行多輪迭代,直到通過一致性檢查或不一致次數(shù)達(dá)到預(yù)設(shè)閾值,通過一致性檢查和迭代機(jī)制有效的提高了生成的查詢sql語句的準(zhǔn)確率,極大改善了用戶體驗(yàn)。