GPT-4o與SQL:大模型改變自身架構的能力有多強?
作者丨David Eastman
編譯丨諾亞
出品| 51CTO技術堆疊(微訊號:blog51cto)
#儘管沒有任何大型語言模型( LLM)駕駛過自行車,但它們顯然理解駕駛行為在人類交通領域中的作用。它們類似於軟體開發者提供的是一種類似語義的現實世界知識,結合了對技術世界的理解。我們在最近的一篇文章中清楚地看到了這一點,僅透過用自然語言描述,我們就能夠產生一個簡單的圖書出版SQL架構。
儘管我對Llama 3創建架構的效能感到滿意,但在我之前在Oracle工作期間的一位同事指出,圖書出版架構是一個相當為人熟知的例子。為了便於理解,這自然是件好事,但為了進一步拓展LLM的能力,本文中我將探索大型語言模型根據英語描述的問題調整自身架構的能力。這次,我將使用OpenAI的GPT-4o,因為它最近在程式碼審查方面為我提供了很好的幫助。
作為出發點,我們將從與第一篇文章相同的問題開始,並總結答案。這個答案與上次相似。這次,GPT-4o不僅為我們提供了一個ERD(實體關係圖),也很好地解釋了各實體間的關係。
圖片
和先前的嘗試類似,它提出了以下這樣的架構:
CREATE TABLE Author ( author_id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), birth_date DATE, nationality VARCHAR(50) ); CREATE TABLE Publisher ( publisher_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), address VARCHAR(255), contact_number VARCHAR(20), email VARCHAR(100) ); CREATE TABLE Book ( book_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(100), genre VARCHAR(50), publication_date DATE, isbn VARCHAR(20) UNIQUE, author_id INT, publisher_id INT, FOREIGN KEY (author_id) REFERENCES Author(author_id), FOREIGN KEY (publisher_id) REFERENCES Publisher(publisher_id) );
我更傾向於讓表名使用所包含物件的複數形式,我認為這是被廣泛接受的標準。
大型語言模型指出了這些關係限制:
圖片
因此,使用上次相同的範例數據,讓我們在SQL沙盒環境DB Fiddle中檢查是否能得到相同的結果。
如果我們填入這些資料並新增上次的檢視…
INSERT INTO Author (first_name, last_name, birth_date) VALUES ('Iain', 'Banks', '1954-02-16'); INSERT INTO Author (first_name, last_name, birth_date) VALUES ('Iain', 'M Banks', '1954-02-16'); INSERT INTO Publisher (name, address) VALUES ('Abacus', 'London'); INSERT INTO Publisher (name, address) VALUES ('Orbit', 'New York'); INSERT INTO Book (title, author_id, publisher_id, publication_date)VALUES ('Consider Phlebas', 2, 2, '1988-04-14'); INSERT INTO Book (title, author_id, publisher_id, publication_date)VALUES ('The Wasp Factory', 1, 1, '1984-02-15'); CREATE VIEW ViewableBooks ASSELECT Book.title 'Book', Author.first_name 'Author firstname', Author.last_name 'Author surname', Publisher.name 'Publisher', Book.publication_dateFROM Book, Publisher, AuthorWHERE Book.author_id = Author.author_idAND Book.publisher_id = Publisher.publisher_id;
#我們就能在下方的表格中從DB Fiddle取得所需的結果檢視:
圖片
第二個姓氏中包含了中間名稱“M”,看起來有些彆扭。接下來,我們將探討與此相關的問題。
1.第一次修改
#正如我在前一篇關於SQL產生的文章中提到的,「Ian Banks」和「Ian M Banks」其實是同一位作者。上次,我們沒有解決這個筆名問題。所以,讓我們要求大模型來修復這個問題:
圖片
所以這是個好的開始。這次它需要將「筆名」這個文學概念映射到它已經產生的現有架構設計上。因此,它不僅要發現現有的解決方案,還必須做更多的工作。首先,我們來看看新建立的關係:
圖片
這看起來是合理的。以下是經過修改的新表格結構:
CREATE TABLE Pseudonym ( pseudonym_id INT AUTO_INCREMENT PRIMARY KEY, pseudonym VARCHAR(100), author_id INT, FOREIGN KEY (author_id) REFERENCES Author(author_id) ); CREATE TABLE Book ( book_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(100), genre VARCHAR(50), publication_date DATE, isbn VARCHAR(20) UNIQUE, pseudonym_id INT, publisher_id INT, FOREIGN KEY (pseudonym_id) REFERENCES Pseudonym(pseudonym_id), FOREIGN KEY (publisher_id) REFERENCES Publisher(publisher_id) );
這感覺也是正確的。架構現在將書籍關聯到筆名,而不是直接關聯到作者。讓我們使用新的架構重新製作一個dbfiddle,輸入經過修改的資料以配合使用,並查看我們是否能再次獲得理想的結果:
圖片
實際上,現在筆名欄只是一個字段,表格看起來更整潔了。
2.另一個修改請求
現在,我將提出進一步的架構修改要求。我們知道一本書可以有多位作者(你可能還記得上次Llama 3在沒有提示的情況下就提出了這一點),所以我們希望GPT-4o再次修改其架構。
圖片
需要增加的那一個新表就是:
CREATE TABLE BookAuthor ( book_id INT, pseudonym_id INT, PRIMARY KEY (book_id, pseudonym_id), FOREIGN KEY (book_id) REFERENCES Book(book_id), FOREIGN KEY (pseudonym_id) REFERENCES Pseudonym(pseudonym_id) );
因此,關係變更如下:
圖片
(注意,在描述了最初幾段關係後出現了奇怪的括號錯誤。這個錯誤在所有關係的描述中都有重複出現。 4o也在遵循單一的對話線索——它將其先前的工作內容納入了上下文考慮。這種廣受讚譽的能力確實使得與它的互動更加自然。總體而言,它表現得很好(並且非常迅速)地解析了我們的英語描述,以調整其建議的架構。
3.在我們太過興奮之前
架構主要關乎事物之間的關係-並不需要對事物本身的深入了解。然而,這並不完全意味著大模型接管資料庫設計的道路已經暢通無阻。
針對SQL查詢和架構進行最佳化一直都有點兒像一門藝術。需要理解哪些常見查詢會最適合某種設計、會涉及多少張表、查詢間的依賴性、索引定義、分區等等。而這只是在處理CAP定理困境──一致性與可用性的權衡──之前。在這些技術抽象之下,是人們對資料檢索遠非簡單的預期。
我毫不懷疑,隨著時間的推移,大型語言模型與專業化的某種結合將逐步解決這些工程問題,但目前我們應該為GPT-4o能夠高效地生成和修改合理架構的能力而感到勝利。
參考連結:https://thenewstack.io/gpt-4o-and-sql-how-well-can-an-llm-alter-its-own-schema/
#想了解更多AIGC的內容,請造訪:51CTO AI.x社群以上是GPT-4o與SQL:大模型改變自身架構的能力有多強?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

想像一下,一個人工智慧模型,不僅擁有超越傳統運算的能力,還能以更低的成本實現更有效率的效能。這不是科幻,DeepSeek-V2[1],全球最強開源MoE模型來了。 DeepSeek-V2是一個強大的專家混合(MoE)語言模型,具有訓練經濟、推理高效的特點。它由236B個參數組成,其中21B個參數用於啟動每個標記。與DeepSeek67B相比,DeepSeek-V2效能更強,同時節省了42.5%的訓練成本,減少了93.3%的KV緩存,最大生成吞吐量提高到5.76倍。 DeepSeek是一家探索通用人工智

本月初,來自MIT等機構的研究者提出了一種非常有潛力的MLP替代方法—KAN。 KAN在準確性和可解釋性方面表現優於MLP。而且它能以非常少的參數量勝過以更大參數量運行的MLP。例如,作者表示,他們用KAN以更小的網路和更高的自動化程度重現了DeepMind的結果。具體來說,DeepMind的MLP有大約300,000個參數,而KAN只有約200個參數。 KAN與MLP一樣具有強大的數學基礎,MLP基於通用逼近定理,而KAN基於Kolmogorov-Arnold表示定理。如下圖所示,KAN在邊上具

特斯拉機器人Optimus最新影片出爐,已經可以在工廠裡打工了。正常速度下,它分揀電池(特斯拉的4680電池)是這樣的:官方還放出了20倍速下的樣子——在小小的「工位」上,揀啊揀啊揀:這次放出的影片亮點之一在於Optimus在廠子裡完成這項工作,是完全自主的,全程沒有人為的干預。而且在Optimus的視角之下,它還可以把放歪了的電池重新撿起來放置,主打一個自動糾錯:對於Optimus的手,英偉達科學家JimFan給出了高度的評價:Optimus的手是全球五指機器人裡最靈巧的之一。它的手不僅有觸覺

目標偵測在自動駕駛系統當中是一個比較成熟的問題,其中行人偵測是最早得以部署演算法之一。在多數論文當中已經進行了非常全面的研究。然而,利用魚眼相機進行環視的距離感知相對來說研究較少。由於徑向畸變大,標準的邊界框表示在魚眼相機當中很難實施。為了緩解上述描述,我們探索了擴展邊界框、橢圓、通用多邊形設計為極座標/角度表示,並定義一個實例分割mIOU度量來分析這些表示。所提出的具有多邊形形狀的模型fisheyeDetNet優於其他模型,並同時在用於自動駕駛的Valeo魚眼相機資料集上實現了49.5%的mAP

FP8和更低的浮點數量化精度,不再是H100的「專利」了!老黃想讓大家用INT8/INT4,微軟DeepSpeed團隊在沒有英偉達官方支援的條件下,硬生在A100上跑起FP6。測試結果表明,新方法TC-FPx在A100上的FP6量化,速度接近甚至偶爾超過INT4,而且比後者擁有更高的精度。在此基礎之上,還有端到端的大模型支持,目前已經開源並整合到了DeepSpeed等深度學習推理框架中。這項成果對大模型的加速效果也是立竿見影──在這種框架下用單卡跑Llama,吞吐量比雙卡還要高2.65倍。一名

為了將大型語言模型(LLM)與人類的價值和意圖對齊,學習人類回饋至關重要,這能確保它們是有用的、誠實的和無害的。在對齊LLM方面,一種有效的方法是根據人類回饋的強化學習(RLHF)。儘管RLHF方法的結果很出色,但其中涉及了一些優化難題。其中涉及訓練一個獎勵模型,然後優化一個策略模型來最大化該獎勵。近段時間已有一些研究者探索了更簡單的離線演算法,其中之一就是直接偏好優化(DPO)。 DPO是透過參數化RLHF中的獎勵函數來直接根據偏好資料學習策略模型,這樣就無需顯示式的獎勵模型了。此方法簡單穩定

在软件技术的前沿,UIUC张令明组携手BigCode组织的研究者,近日公布了StarCoder2-15B-Instruct代码大模型。这一创新成果在代码生成任务取得了显著突破,成功超越CodeLlama-70B-Instruct,登上代码生成性能榜单之巅。StarCoder2-15B-Instruct的独特之处在于其纯自对齐策略,整个训练流程公开透明,且完全自主可控。该模型通过StarCoder2-15B生成了数千个指令,响应对StarCoder-15B基座模型进行微调,无需依赖昂贵的人工标注数

概述LLaMA-3(LargeLanguageModelMetaAI3)是由Meta公司開發的大型開源生成式人工智慧模型。它在模型結構上與前一代LLaMA-2相比沒有太大的變動。 LLaMA-3模型分為不同規模的版本,包括小型、中型和大型,以適應不同的應用需求和運算資源。小型模型參參數規模為8B,中型模型參參數規模為70B,而大型模型參參數規模則達400B。然而在訓練中,目標是實現多模態、多語言的功能,預計結果將與GPT4/GPT4V相當。安裝OllamaOllama是一個開源的大型語言模型(LL
