成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ChatSQL:賦能ChatGPT實現(xiàn)純文本創(chuàng)建SQL查詢

譯文
人工智能
ChatGPT于2020年6月發(fā)布,由OpenAI開發(fā)。它已促使許多領域迎來了革命性變化。其中一個領域就是創(chuàng)建數據庫查詢。數據庫查詢可以通過ChatGPT由純文本生成。它可以幫助您了解您不甚了解的數據庫。

譯者 | 布加迪

審校 | 重樓

ChatGPT20206月發(fā)布,由OpenAI開發(fā)。它已促使許多領域迎來了革命性變化。其中一個領域就是創(chuàng)建數據庫查詢。數據庫查詢可以通過ChatGPT純文本生成。它可以幫助您了解您不了解的數據庫。

隨著ChatGPT大行其道,人工智能已經逐漸融入我們的日常生活當中,并且發(fā)展勢頭正猛。在切入正題之前,不妨先簡單探究一下ChatGPT

為了充分理解ChatGPT的功能,有必要充分掌握其底層架構。ChatGPT是基于GPT架構開發(fā)的。因此不妨先看看Transformer。

要直接訪問該項目,請點擊這里https://github.com/ademakdogan/ChatSQL?ref=hackernoon.com。

圖1. 來自Transformer的編碼器和解碼器圖1. 來自Transformer的編碼器和解碼器

Transformer使用seq2seq框架,從而能夠將一個序列轉換另一個序列。序列定義了排序。舉例來說,我們可以將句子看作是一連串單詞。Transformer還可以用于解決文本翻譯之類的自然語言處理(NLP)問題。我們需要大量的標記數據來訓練這個架構。這對Transformer來說很難學習。我們可以使用遷移學習來解決這個問題。Transformer由兩個部分組成(見1):編碼器和解碼器,它們都擅長獲得熟練的語言表示。

這種熟練程度使我們能夠從每個部分構建語言模型。通過堆疊編碼器,我們獲得Transformer的雙向編碼器表示通常稱為BERT與之相似,通過堆疊解碼器單元,我們可以獲得生成式預訓練(即GPT。在本文這個例子中,我們關注GPT不妨在GPT的背景下考慮遷移學習。當我們從頭開始訓練一個模型時,它通常需要數量龐大的數據,因為參數最初是隨機設置的。然而,想象一下這樣一個場景參數偶然與我們需要的值一致或相對齊。在這種情況下,我們不需要一個廣泛的數據集來獲得我們想要的結果。正如我們所理解,BERTGPT用于遷移學習概念中

因此,GPT訓練分為兩個部分。一個是預訓練部分,我們訓練GPT架構理解語言是什么;另一個是微調部分,我們使用遷移學習來進一步訓練GPT架構,使其針對特定的語言任務表現(xiàn)良好

圖2. 示例性的下一個單詞預測圖2. 示例性的下一個單詞預測

GPT有一種結構,可以將隨機單詞序列作為輸入,并預測下一個最合適的單詞。示例性預測如圖2所示。

語言建模被選為理解語言基本方面的一個理想基礎,而且很容易進行微調。它通常被稱為自監(jiān)督任務,因為句子本身同時可以充當輸入標簽和輸出標簽。

圖3. ChatGPT示意圖圖3. ChatGPT示意圖

不妨繼續(xù)討論ChatGPT。如圖3所示整個ChatGPT過程可以分為三個主要步驟。在第一步中,使用GPT模型,該模型已針對理解語言本身進行了預訓練。下一步涉及對模型進行微調,以便有效地處理用戶提示并根據這些提示生成適當的響應。為了方便這過程,標記員獲得標記數據這些標記員不僅提供提示,還為每個提示指定所需的響應。這便于GPT模型進行監(jiān)督微調,因為既有輸入提示,有相應的輸出響應。

下一步中,使用從第一步獲得的監(jiān)督微調模型。單個提示通過模型傳遞,并生成多個響應。然后,標記人員對這些響應的質量進行評估和評定。每個生成的響應都被分配一個相應的獎勵,這個獎勵被用來訓練另一個GPT模型獎勵模型。獎勵模型本身就是一個模型,其功能是將初始提示和其中一個響應作為輸入,生成獎勵作為輸出。這種獎勵量化了響應的質量或好壞。

在第三步中,一個看不見的提示將被拿來通過監(jiān)督微調模型的復制品來傳遞。這將生成響應,然后使用獎勵模型來評估響應的等級或質量。獲得的等級用于進一步完善我們已經微調過的模型這通過將等級合并PPO模型的損失函數中來實現(xiàn),允許通過反向傳播更新模型的參數。特別吸引人的地方是,這個過程不僅幫助模型表現(xiàn)出無害的行為,使它能夠生成實際的響應。這是由于獎勵本身是基于響應的質量而生成的

ChatSQL

現(xiàn)在不妨使用Python借助ChatGPT創(chuàng)建一個項目。項目使用了LangChain框架。

我們的目標是使用純文本從數據庫檢索信息。為此,我們使用MySQL作為目標數據庫。然而,這種方法也可以用于在其他數據庫上生成查詢。示例數據庫如下所示。

所有代碼都可以在這里找到https://github.com/ademakdogan/ChatSQL

+-----+--------------------------------------------------------+------------------------+-------------------+--------+------------------+
| ID  | Title                                                  | Author                 | Genre             | Height | Publisher        |
+-----+--------------------------------------------------------+------------------------+-------------------+--------+------------------+
|   1 | Fundamentals of Wavelets                               | Goswami, Jaideva       | signal_processing |    228 | Wiley            |
|   2 | Data Smart                                           | Foreman, John          | data_science      |   235 | Wiley            |
|   3 | God Created the Integers                                | Hawking, Stephen       | mathematics       |  197 | Penguin          |
|   4 | Superfreakonomics                                     | Dubner, Stephen        | economics         |  179 | HarperCollins    |
|   5 | Orientalism                                           | Said, Edward           | history           |   197 | Penguin          |
|   6 | Nature of Statistical Learning Theory, The                  | Vapnik, Vladimir       | data_science      |    230 | Springer         |
|   7 | Integration of the Indian States                           | Menon, V P             | history           |    217 | Orient Blackswan |
|   8 | Drunkard's Walk, The                                  | Mlodinow, Leonard      | science           |   197 | Penguin          |
|   9 | Image Processing & Mathematical Morphology             | Shih, Frank            | signal_processing |     241 | CRC              |
|  10 | How to Think Like Sherlock Holmes                      | Konnikova, Maria       | psychology        |   240 | Penguin          |
|  11 | Data Scientists at Work                                 | Sebastian Gutierrez    | data_science      |     230 | Apress           |
|  12 | Slaughterhouse Five                                    | Vonnegut, Kurt         | fiction           |    198 | Random House     |
|  13 | Birth of a Theorem                                     | Villani, Cedric        | mathematics       |   234 | Bodley Head      |
|  14 | Structure & Interpretation of Computer Programs             | Sussman, Gerald        | computer_science  |    240 | MIT Press        |
|  15 | Age of Wrath, The                                      | Eraly, Abraham         | history           |    238 | Penguin          |
|  16 | Trial, The                                             | Kafka, Frank           | fiction           |    198 | Random House     |
|  17 | Statistical Decision Theory'                               | Pratt, John            | data_science      |    236 | MIT Press        |
|  18 | Data Mining Handbook                                  | Nisbet, Robert         | data_science      |    242 | Apress           |
|  19 | New Machiavelli, The                                   | Wells, H. G.           | fiction           |    180 | Penguin          |
|  20 | Physics & Philosophy                                   | Heisenberg, Werner     | science           |    197 | Penguin          |
|  21 | Making Software                                       | Oram, Andy             | computer_science  |    232 | O'Reilly         |
|  .  | .......                                                 | .......                | ....              |    ... | ....             |
|  .  | .......                                                 | .......                | ....              |    ... | ....             |

ChatSQL由兩個主要部分組成。首先,MySQL查詢是通過ChatGPT給定的純文本生成的。執(zhí)行這些生成的查詢。在第二步中,對數據庫中返回的結果進行評估。在這個階段,結果可以直接呈現(xiàn)給用戶,也可以發(fā)回ChatGPT進行進一步的分析和解釋。因此,您可以使用ChatGPT您的數據庫進行互動

假設用戶想要顯示篇幅大于175頁、少于178圖書類型小說。作者不應該是‘Doyle, Arthur Conan’因此,可以在這種情況下使用以下命令。

python3 chatsql.py -p 'Show me the book type fiction which they height bigger than 175 and smaller than 178. The author shouldn't be 'Doyle, Arthur Conan'. '

結果,獲得了如下信息。

CHATGPT QUERY------------------:
SELECT * FROM bt WHERE Genre = 'Fiction' AND Height > 175 AND Height < 178 AND Author != 'Doyle, Arthur Conan'
RAW RESULT------------------:
[(32, 'Pillars of the Earth, The', 'Follett, Ken', 'fiction', 176, 'Random House'), (37, 'Veteran, The', 'Forsyth, Frederick', 'fiction', 177, 'Transworld'), (38, 'False Impressions', 'Archer, Jeffery', 'fiction', 177, 'Pan'), (72, 'Prisoner of Birth, A', 'Archer, Jeffery', 'fiction', 176, 'Pan'), (87, 'City of Joy, The', 'Lapierre, Dominique', 'fiction', 177, 'vikas'), (128, 'Rosy is My Relative', 'Durrell, Gerald', 'fiction', 176, 'nan')]
PROCESSED RESULT------------------ :
The books 'Pillars of the Earth, The' by Ken Follett, 'Veteran, The' by Frederick Forsyth, 'False Impressions' by Jeffery Archer, 'Prisoner of Birth, A' by Jeffery Archer, 'City of Joy, The' by Dominique Lapierre, and 'Rosy is My Relative' by Gerald Durrell are all fiction books with 176 or 177 pages published by Random House, Transworld, Pan, Vikas, and Nan, respectively.

如果數據庫列名稱正確,ChatGPT將理解這些名稱并相應地響應查詢。然而些情況下,數據庫中的列名可能沒有意義,或者ChatGPT可能無法完全搞清楚其上下文。因此,為了確保系統(tǒng)正常運行,有必要向ChatGPT提供有關數據庫的先信息。info.json文件可以用來添加信息。

+-----+--------------------------------------------------------+------------------------+-------------------+------+------------------+ 
| ID | aa                                                     | bb 
| cc               | dd    | ee          |
+-----+--------------------------------------------------------+------------------------+-------------------+------+------------------+ 
| 1 | Fundamentals of Wavelets                                   | Goswami, Jaideva 
| signal_processing  | 228  | Wiley         | 
| 2 | Data Smart                                               | Foreman, John 
| data_science      | 235  | Wiley         | 
| 3 | God Created the Integers                                    | Hawking, Stephen 
| mathematics      | 197  | Penguin       | 
| 4 | Superfreakonomics                                         | Dubner, Stephen 
| economics       | 179   | HarperCollins  | 
| 5 | Orientalism                                               | Said, Edward 
| history          | 197   | Penguin      |
| . | .......                                                     | .......
| ....             | ...    | ....           | 
| .  | .......                                                    | ....... 
| ....             | ...    | ....            |

比如說,我們有一個命名糟糕的數據庫,如下所示。在這種情況下,有關數據庫的必要信息被輸入到info.json文件

{“bt”: “Table Name”, “aa”: “Title of the book”, “bb”: “Author of the book”, “cc”: “Type of book”, “dd”: “Height of the book”, “ee”: “Book Publisher”}

然后使用相同的命令

python3 chatsql.py -p 'Show me the book type fiction which they height bigger than 175 and smaller than 178. The author shouldn't be 'Doyle, Arthur Conan'. '

即使數據庫中的列名選擇不當,ChatGPT也會生成正確的查詢,因為我們提供了正確的信息

{'query': "SELECT aa, bb, cc, dd FROM bt WHERE cc = 'fiction' AND dd > 175 AND dd < 178 AND bb != 'Doyle, Arthur Conan'", 'raw_result': "[('Pillars of the Earth, The', 
'Follett, Ken', 'fiction', 176), ('Veteran, The', 'Forsyth, Frederick', 'fiction', 
177), ('False Impressions', 'Archer, Jeffery', 'fiction', 177), ('Prisoner of Birth, 
A', 'Archer, Jeffery', 'fiction', 176), ('City of Joy, The', 'Lapierre, Dominique', 
'fiction', 177), ('Rosy is My Relative', 'Durrell, Gerald', 'fiction', 176)]", 
'processed_result': '\nThe books "Pillars of the Earth, The" by Ken Follett, "Veteran,
The" by Frederick Forsyth, "False Impressions" by Jeffery Archer, "Prisoner of Birth, 
A" by Jeffery Archer, "City of Joy, The" by Dominique Lapierre and "Rosy is My
Relative" by Gerald Durrell are all fiction and have page lengths of 176 or 177.'}

下一個項目將是使用免費模型(Llama)由提示生成查詢(Mongo和SQL)。

  • 項目代碼倉庫:https://github.com/ademakdogan/ChatSQL
  • GitHub:https://github.com/ademakdogan
  • 領英:https://www.linkedin.com/in/adem-akdo?an-948334177/

原文標題:ChatSQL: Enabling ChatGPT to Generate SQL Queries from Plain Text,作者:Adem Akdogan


責任編輯:華軒 來源: 51CTO
相關推薦

2023-10-10 09:08:50

2018-05-14 10:50:13

SQL查詢語句神經網絡

2023-05-18 15:39:11

人工智能ChatGPT

2025-02-06 10:00:52

RedisSpring高性能

2021-03-31 22:39:04

區(qū)塊鏈司法數字化

2021-08-31 23:54:50

大數據人臉識別人工智能

2023-03-05 19:30:02

人工智能ChatGPT

2023-05-14 19:24:19

DPI技術路由器

2020-10-14 10:30:07

前端Node代碼

2019-04-08 16:48:37

5G數據中心無線連接

2019-11-01 10:00:14

前端業(yè)務代碼

2024-04-28 09:12:16

CSS文本是否溢出前端

2018-09-27 23:29:02

ICT

2023-05-08 08:03:10

2020-12-30 15:14:46

人工智能數據技術

2020-12-14 09:23:16

人工智能教育機器人

2021-06-25 22:14:51

區(qū)塊鏈智慧城市數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷综合激情 | 欧美精品tv | 91成人免费看片 | 亚洲一区免费 | 日韩一区在线视频 | 男女羞羞视频大全 | 91精品国产91久久久久久吃药 | 国产精品波多野结衣 | 国产精品国产三级国产aⅴ中文 | 久久1区| 台湾a级理论片在线观看 | 午夜视频网 | 国产在线中文字幕 | 欧美男人天堂 | 国产探花| 久草网址 | 中文字幕在线观看一区二区 | 久热精品在线播放 | 精品国产一区二区三区久久久蜜月 | 日韩一区二区三区视频在线播放 | 欧美成人猛片aaaaaaa | 成年男女免费视频网站 | 精品福利视频一区二区三区 | 亚洲www啪成人一区二区 | 性色的免费视频 | 国产一区精品 | 欧美a在线| 国产成人免费视频网站高清观看视频 | 成人av免费看 | 欧美久久久久久久久中文字幕 | 一区二区日本 | 欧美日韩成人 | 午夜手机在线 | 日本三级做a全过程在线观看 | 超碰97在线免费 | 欧美激情视频一区二区三区在线播放 | 国产精品日韩 | 欧美在线一区二区视频 | 国产成人网 | 国产在线精品一区 | 日本精品一区二区三区在线观看视频 |