首頁  >  文章  >  科技週邊  >  七個很酷的GenAI & LLM技術性面試問題

七個很酷的GenAI & LLM技術性面試問題

PHPz
PHPz原創
2024-06-07 10:06:29471瀏覽

七个很酷的GenAI & LLM技术性面试问题

想了解更多AIGC的內容,請造訪:

51CTO AI.x社群

https ://www.51cto.com/aigc/

譯者| 晶顏

審校| 重樓

不同於網路上隨處可見的傳統問題庫,這些問題需要跳脫常規思維。

大語言模型(LLM)在資料科學、生成式人工智慧(GenAI)和人工智慧領域越來越重要。這些複雜的演算法提升了人類的技能,並在許多產業中推動了效率和創新性的提升,成為企業保持競爭力的關鍵。 LLM的應用範圍非常廣泛,它可以用於自然語言處理、文字生成、語音辨識和推薦系統等領域。透過學習大量的數據,LLM能夠產生文字和回答問題,與人類進行對話,並提供準確和有價值的資訊。 GenAI依賴LLM的演算法和模型,可以產生各種具有創造

然而,儘管GenAI和LLM越來越常見,但我們仍然缺少能深入理解其複雜性的詳細資源。職場新人在進行GenAI和LLM功能以及實際應用的面試時,往往會覺得自己像是陷入了未知領域。

為此,我們編寫了這份指導手冊,記錄了有關GenAI & LLM的技術性面試問題。這份指南配有深入的答案,旨在幫助您更好地迎接面試,以充足的信心來應對挑戰,並更深層次地理解GenAI & LLM在塑造人工智慧和數據科學未來方面的影響和潛力。

1. 如何在Python中使用嵌入式字典建立知識圖譜?

一種方法是使用雜湊(Python中的字典,也稱為鍵值表),其中鍵(key)是單字、令牌、概念或類別,例如「數學」(mathematics)。每個鍵(key)對應一個值(value),這個值本身就是一個哈希:嵌套哈希(nested hash)。嵌套哈希中的鍵也是一個與父哈希中的父鍵相關的單詞,例如“微積分”(calculus)之類的單字。該值是一個權重:“微積分”的值高,因為“微積分”和“數學”是相關的,並且經常出現在一起;相反地,“餐館”(restaurants)的值低,因為“餐館”和「數學」很少出現在一起。

在LLM中,巢狀雜湊可能是embedding(一種將高維資料映射到低維空間的方法,通常用於將離散的、非連續的資料轉換為連續的向量表示,以便於計算機進行處理)。由於嵌套哈希沒有固定數量的元素,因此它處理離散圖譜的效果遠遠好於向量資料庫或矩陣。它帶來了更快的演算法,而且只需要很少的記憶體。

2. 當資料包含1億個關鍵字時,如何進行分層聚類?

如果想要聚類關鍵字,那麼對於每一對關鍵字{A, B },你可以計算A和B之間的相似度,得知這兩個字有多相似。目標是產生相似關鍵字的集群。

Sklearn等標準Python庫提供凝聚聚類(agglomerative clustering),也稱為分層聚類(hierarchical clustering)。然而,在這個例子中,它們通常需要一個1億x 1億的距離矩陣。這顯然行不通。在實踐中,隨機單字A和B很少同時出現,因此距離矩陣是非常離散的。解決方案包括使用適合離散圖譜的方法,例如使用問題1中討論的巢狀雜湊。其中一種方法是基於檢測底層圖中的連接組件的聚類。

3. 如何抓取像Wikipedia這樣的大型儲存庫,以檢索底層結構,而不僅僅是單獨的條目?

這些儲存庫都將結構化元素嵌入到網頁中,使內容比乍看之下更加結構化。有些結構元素是肉眼看不見的,例如元資料。有些是可見的,也出現在抓取的資料中,例如索引、相關項目、麵包屑或分類。您可以單獨檢索這些元素,以建立良好的知識圖譜或分類法。但是您可能需要從頭開始編寫自己的爬蟲程序,而不是依賴Beautiful Soup之類的工具。富含結構資訊的LLM(如xLLM)提供了更好的結果。此外,如果您的儲存庫確實缺乏任何結構,您可以使用從外部來源檢索的​​結構來擴展您的抓取資料。這個過程稱為「結構增強」(structure augmentation)。

4. 如何用上下文令牌增強LLM embeddings?

Embeddings由令牌組成;這些是您可以在任何文件中找到的最小的文字元素。你不一定要有兩個令牌,例如“數據”和“科學”,你可以有四個令牌:“數據^科學”、“數據”、“科學”和“數據~科學”。最後一個表示發現了「數據科學」這個詞。第一個意思是「數據」和「科學」都被發現了,但是在一個給定段落的隨機位置,而不是在相鄰的位置。這樣的令牌稱為多令牌(multi-tokens)或上下文令牌。它們提供了一些很好的冗餘,但如果不小心,您可能會得到巨大的embeddings。解決方案包括清除無用的令牌(保留最長的一個)和使用可變大小的embeddings。上下文內容可以幫助減少LLM幻覺。

5. 如何實現自校正(self-tuning)以消除與模型評估和訓練相關的許多問題?

這適用於基於可解釋人工智能的系統,而不是神經網絡黑匣子。允許應用程式的使用者選擇超參數並標記他喜歡的那些。使用該資訊尋找理想的超參數並將其設為預設值。這是基於使用者輸入的自動強化學習。它還允許用戶根據期望的結果選擇他最喜歡的套裝,使您的應用程式可自訂。在LLM中,允許使用者選擇特定的子LLM(例如基於搜尋類型或類別),可以進一步提高效能。為輸出結果中的每個項目添加相關性評分,也有助於微調您的系統。

6. 如何將向量搜尋的速度提高幾個數量級?

在LLM中,使用可變長度(variable-length)embeddings大大減少了embeddings的大小。因此,它可以加速搜索,以查找與前端提示符中捕獲到的相似的後端embeddings。但是,它可能需要不同類型的資料庫,例如鍵-值表(key-value tables)。減少令牌的大小和embeddings表是另一個解決方案:在一個萬億令牌系統中,95%的令牌永遠不會被提取來回答提示。它們只是噪音,因此可以擺脫它們。使用上下文令牌(參見問題4)是另一種以更緊湊的方式儲存資訊的方法。最後,在壓縮embeddings上使用近似最近鄰搜尋(approximate nearest neighbor,ANN)來進行搜尋。機率版本(pANN)可以運行得快得多,見下圖。最後,使用快取機制來儲存存取最頻繁的embeddings 或查詢,以獲得更好的即時效能。

七个很酷的GenAI & LLM技术性面试问题

機率近似最近鄰搜尋(pANN)

根據經驗來看,將訓練集的大小減少50%會得到更好的結果,過度擬合效果也會大打折扣。在LLM中,選擇幾個好的輸入來源比搜尋整個網路好。對於每個頂級類別都有一個專門的LLM,而不是一刀切,這進一步減少了embeddings的數量:每個提示針對特定的子LLM,而非整個資料庫。

7. 從你的模型中獲得最佳結果的理想損失函數是什麼?

最好的解決方案是使用模型評估指標作為損失函數。之所以很少這樣做,是因為您需要一個損失函數,它可以在神經網路中每次神經元被激活時非常快速地更新。在神經網路環境下,另一個解決方案是在每個epoch之後計算評估指標,並保持在具有最佳評估分數的epoch生成解決方案上,而不是在具有最小損失的epoch生成解決方案上。

我目前正在研究一個系統,其中的評估指標和損失函數是相同的。不是基於神經網路的。最初,我的評估指標是多元Kolmogorov-Smirnov距離(KS)。但如果沒有大量的計算,在大數據上對KS進行原子更新(atomic update)是極其困難的。這使得KS不適合作為損失函數,因為你需要數十億次原子更新。但是透過將累積分佈函數(cumulative distribution)改變為具有數百萬個bins參數的機率密度函數(probability density function),我能夠想出一個很好的評估指標,它也可以作為損失函數。

原文標題:7 Cool Technical GenAI & LLM Job Interview Questions,作者:Vincent Granville

連結:https://www.datasciencecentral.com/7-cool-technical-genai-llm -job-interview-questions/。

想了解更多AIGC的內容,請造訪:

51CTO AI.x社群

https://www.51cto.com/ aigc/

以上是七個很酷的GenAI & LLM技術性面試問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn