![]() | 這是本書的非官方存儲庫:大語言模型:應用和實施大型語言模型(APRESS)的策略。這本書基於此存儲庫的內容,但筆記本正在更新,我正在整合新的示例和章節。如果您正在尋找本書的官方存儲庫,則使用原始筆記本電腦,您應該訪問Apress存儲庫,在這裡您可以在書中出現時以其原始格式找到所有筆記本。在:[Amazon] [Springer] |
請注意,Github上的課程不包含書中所有信息。
關於大型語言模型及其應用程序的實際自由手是在永久發展中?完成時,我將發布不同的課程和样本。
該課程使用Openai和Hugging Face Library的模型提供了動手體驗。我們將看到並使用大量工具和實踐,這些工具和練習將在我們可以應用新知識的過程中成長的小型項目。
本節中涵蓋的一些主題和技術包括:聊天機器人,代碼生成,OpenAI API,擁抱面,矢量數據庫,Langchain,微調,PEFT微調,軟及時調整,柔軟的及時調整,Lora,Qlora,Qlora,評估模型,知識蒸餾。
每節課都符合筆記本和文章。筆記本包含足夠的信息來理解其中的代碼,文章提供了有關代碼和所涵蓋的主題的更詳細說明。
我的建議是將文章與筆記本旁邊打開,然後跟隨。許多文章提供了有關變體的小技巧,您可以將其介紹給筆記本。我建議跟隨它們以提高概念的清晰度。
大多數筆記本電腦都託管在Colab上,而其中一些則在Kaggle上。與COLAB相比,Kaggle在免費版本中提供了更多的內存,但是我發現複製和共享筆記本在COLAB中更簡單,並且並非每個人都有一個Kaggle帳戶。
一些筆記本需要比COLAB免費版本提供的內存更多。當我們使用大型語言模型時,這是一個普遍的情況,如果您繼續與它們合作,則會復發。您可以在自己的環境中運行筆記本,也可以選擇Pro版本的Colab。
每個筆記本都有一個介質文章,其中詳細說明了代碼。
在課程的第一部分中,我們將學會通過創建兩個小型項目與OpenAI API合作。我們將探究Openai的角色,以及如何通過提示向模型提供必要的說明,以使其按照我們的意願行事。
第一個項目是餐廳聊天機器人,該模型將在其中接收客戶訂單。在此項目的基礎上,我們將構建一個SQL語句生成器。在這裡,我們將嘗試創建一個安全的提示,該提示僅接受SQL創建命令,而無需接受。
我們將利用OpenAI GPT-3.5和麵板開發一個針對快餐店量身定制的簡單聊天機器人。在課程中,我們將探討及時工程的基本面,包括了解各種OpenAI角色,操縱溫度設置以及如何避免及時注射。
| 文章小組 /文章Gradio | 筆記本面板 /筆記本級 |
|---|
遵循上一篇文章中使用的相同框架來創建聊天機器人,我們進行了一些修改,以開發自然語言向SQL Translator開發。在這種情況下,需要與表結構一起提供模型,並進行調整以確保平滑功能並避免任何潛在的故障。有了這些修改,翻譯人員能夠將自然語言查詢轉換為SQL查詢。 @fmquaglia已使用DBML創建了一個筆記本,以描述到目前為止的表格比原始的表。
| 文章 /文章Gradio | 筆記本 /筆記本級 /筆記本dbml |
|---|
我們將探索迅速的工程技術,以改善我們從模型中獲得的結果。就像如何格式化答案並使用幾個鏡頭樣本獲得結構化響應。
| 文章 | 筆記本 |
|---|
對矢量數據庫的簡要介紹,該技術將在整個課程中伴隨著許多課程。我們將使用來自Chromadb中存儲的各種新聞數據集的信息進行檢索增強生成的示例。
如果在大型語言模型的世界中有一個方面的重要性,它正在探索如何利用專有信息。在本課程中,我們探討了一種可能的解決方案,該解決方案涉及將信息存儲在矢量數據庫中,即Chromadb在我們的情況下,並使用它來創建豐富的提示。
| 文章 | 筆記本 |
|---|
我們通過引入語義緩存層能夠確定之前是否提出過類似的問題來增強抹布系統。如果肯定,它將從使用FAISS創建的高速緩存系統中檢索信息,而不是訪問矢量數據庫。
由於該課程:https://maven.com/boring-bot/advanced-llm/1/home來自Hamza Farooq。
| 文章 | 筆記本 |
|---|---|
| WIP | 筆記本 |
Langchain一直是大語言模型宇宙中的圖書館之一,對這次革命做出了最大的貢獻。它使我們能夠將呼叫鏈接到模型和其他系統,從而使我們能夠基於大語言模型構建應用程序。在課程中,我們將多次使用它,創建日益複雜的項目。
在本課程中,我們使用Langchain來增強上一課的筆記本,在該課程中,我們使用了兩個數據集中的數據來創建一個豐富的提示。這次,在Langchain的幫助下,我們建立了一條管道,該管道負責從矢量數據庫中檢索數據並將其傳遞給語言模型。該筆記本設置為使用兩個不同的數據集和兩個不同的模型。其中一種模型是對文本生成的培訓,而另一個則經過培訓用於Text2Text生成。
| 文章 | 筆記本 |
|---|
我們將使用使用Langchain建造的兩種模型管道創建評論響應系統。在此設置中,第二個模型將負責調節第一個模型生成的響應。
防止我們的系統產生不需要的響應的一種有效方法是使用與用戶無直接互動的第二個模型來處理響應生成。
這種方法可以降低第一個模型對用戶條目產生的不希望響應的風險。
我將為此任務創建單獨的筆記本。一個將涉及Openai的模型,而其他模型將利用擁抱臉提供的開源型號。在三個筆記本電腦中獲得的結果非常不同。該系統在OpenAI和Llama2型號中效果更好。
| 文章 | 筆記本 |
|---|---|
| Openai文章 | Openai筆記本 |
| Llama2-7b文章 | Llama2-7b筆記本 |
| 沒有文章 | GPT-J筆記本 |
代理是世界上最強大的工具之一。代理能夠解釋用戶的請求,並使用可用的工具和庫,直到達到預期結果為止。
使用Langchain代理商,我們將僅在幾行中創建最簡單但令人難以置信的強大代理商之一。代理將充當數據分析師助理,並幫助我們分析任何Excel文件中包含的數據。它將能夠識別趨勢,使用模型,進行預測。總而言之,我們將創建一個簡單的代理,我們可以在日常工作中使用該代理來分析我們的數據。
| 文章 | 筆記本 |
|---|
在此示例中,以前看到的兩種技術結合在一起:代理和向量數據庫。醫療信息存儲在Chromadb中,並創建了Langchain代理,只有在必要時才能創建豐富的提示,該提示將被發送到模型以回答用戶的問題。
換句話說,創建了一個抹布系統來協助醫療聊天機器人。
注意力! ! !僅以示例為例。沒有人應該將靴子的建議作為真正的醫生的建議。我對可能給予聊天機器人的使用不承擔所有責任。我僅作為不同技術的示例構建了它。
| 文章 | 筆記本 |
|---|
用於衡量大語模型性能的指標與我們在更傳統的模型中使用的指標完全不同。我們正在從準確性,F1得分或召回等指標上轉移,並朝著Bleu,Rouge或流星等指標轉向。
這些指標是根據分配給語言模型的特定任務量身定制的。
在本節中,我們將探討其中幾個指標的示例,以及如何使用它們來確定一種模型是否優於另一個模型,而對於給定的任務。我們將深入研究這些指標有助於我們就不同模型的性能做出明智的決定的實際情況。
BLEU是評估翻譯質量的首批指標之一。在筆記本中,我們將Google翻譯的質量與來自擁抱面的開源模型中的其他翻譯的質量進行了比較。
| 文章WIP | 筆記本 |
|---|
我們將探討胭脂指標的用法,以衡量語言模型產生的摘要的質量。我們將使用兩種T5型號,其中一種是T5基本模型,另一個是專門設計用於創建摘要的T5基本微調。
| 文章 | 筆記本 |
|---|
在此最初的示例中,您可以觀察如何使用langsmith監視組成代理的各個組件之間的流量。代理是一個抹布系統,它利用矢量數據庫來構建豐富的提示並將其傳遞給模型。 Langsmith既捕獲了代理工具的使用又捕獲了模型做出的決定,並始終提供有關已發送/接收數據的信息,消耗令牌,查詢的持續時間以及所有這些在真正的用戶友好環境中。
| 文章 | 筆記本 |
|---|
以前在筆記本《胭脂指標:評估摘要》中,我們學會瞭如何使用胭脂來評估哪些最佳摘要近似於人類創建的摘要。這次,我們將使用嵌入距離和langsmith來驗證哪些模型產生的摘要與參考文獻更相似。
| 文章 | 筆記本 |
|---|
我們採用作為醫療助理的代理商,並合併Giskard來評估其響應是否正確。這樣,不僅可以評估模型的響應,還可以評估矢量數據庫中的信息檢索。 Giskard是一種允許評估完整的抹布解決方案的解決方案。
| 文章 | 筆記本 |
|---|
Eleutherai的LM-Eval圖書館可輕鬆訪問已成為行業標準的學術基準。它支持OpenAI等提供商的開源模型和API的評估,甚至允許評估使用Lora等技術創建的適配器。
在此筆記本中,我將重點介紹庫的一個小而重要的特徵:評估與擁抱Face的Transfereers庫兼容的模型。
| 文章 - WIP | 筆記本 |
|---|
在“填充與優化”部分中,我們將探索不同的技術,例如及時的微調或洛拉,我們將使用擁抱的臉部PEFT庫有效地調整大語言模型。我們將探索諸如量化之類的技術,以減少模型的重量。
在此筆記本中,使用PEFT庫中的及時調整對兩種型號進行了培訓。該技術不僅允許我們通過修改很少的參數的權重來訓練,而且還使我們能夠在使用相同基礎模型的內存中加載不同的專用模型。
及時調整是一種加性技術,預先訓練模型的權重也沒有修改。在這種情況下,我們修改的權重是我們在提示中添加的虛擬令牌的權重。
| 文章 | 筆記本 |
|---|
經過簡要說明洛拉(Lora)的微調技術的運作方式,我們將從Bloom家族中微調一個模型,以教給它以構建可用於指導大型語言模型的提示。
| 文章 | 筆記本 |
|---|
我們將看到量化的簡要介紹,用於減少大型大語言模型的規模。通過量化,您可以加載大型模型,以減少所需的內存資源。它也適用於微調過程,您可以在單個GPU中微調模型,而無需消耗所有資源。在簡短的解釋之後,我們看到了一個示例,說明如何在Google Colab上微調Bloom 7b型號INA T4 16GB GPU。
| 文章 | 筆記本 |
|---|
本節仍在建設中。目的是建立一個課程,將我們從最簡單的修剪技術帶入使用該領域領先公司採用的相同技術,例如Microsoft,Google,Nvidia或OpenAI來創建模型,以構建其模型。
在第一個筆記本電腦中,修剪過程將應用於Distilgpt2模型的前饋層。這意味著該模型將減少這些特定層的權重。根據其重要性得分選擇修剪的神經元,我們使用其權重的L1規範來計算。對於第一個示例來說,這是一個簡單的剝離,當您要創建一個模擬所有區域的基本模型的修剪模型時,可以使用。
通過更改模型的結構,必須創建一個新的配置文件,以確保其與transformers庫正確合作。
| 筆記本:修剪Distilgpt2型號。 |
|---|
在第一個筆記本中,我們嘗試複製與Distilgpt2模型一起使用的修剪過程,但應用於Llama模型。通過不考慮模型的特性,修剪過程會導致完全無法使用的模型。本筆記本是一種練習,以了解了解將要修剪的模型的結構是多麼重要。
| 筆記本:修剪Llama3.2模型不正確的剝離。 |
|---|
第二個筆記本電腦解決了將相同的修剪過程應用於與Distilgpt2相同的修剪過程時遇到的問題。
正確的方法是將模型的MLP層視為對而不是單個層,並通過考慮兩個層來計算神經元的重要性。此外,我們改用最大絕對重量來確定在修剪層中保留哪些神經元。
| 修剪Llama3文章 | 筆記本:修剪Llama3.2型號正確的侵略。 |
|---|
在本筆記本中,我們將研究深度修剪的示例,該示例涉及從模型中刪除整個層。要注意的第一件事是,從變壓器模型中刪除整個層通常會對模型的性能產生重大影響。與上一個示例所示,與從MLP層中簡單地去除神經元相比,這是一個更加巨大的建築變化。
| 筆記本:深度修剪美洲駝模型。 |
|---|
在這個直接的初始項目中,我們將通過自然語言開發SQL發電機。我們將首先創建提示以實現兩種解決方案:一種使用在Azure上運行的OpenAI模型,另一個使用帶有擁抱面的開源模型。
| 文章 | 筆記本 |
|---|---|
| 為OpenAI創建NL2SQL提示 | 及時創建Openai |
| WIP | 提示為defog/sqlcoder創建 |
| 推理Azure配置。 | 使用Azure推理點 |
在這個小型項目中,我們將創建一個新的模型,將Microsoft-Phi-3模型與DPO保持一致,然後將其發佈到擁抱的臉上。
| 文章 | 筆記本 |
|---|---|
| WIP | 與DPO A PHI3-3模型對齊。 |
在此初始解決方案中,我們為NL2SQL系統設計了一個能夠在大型數據庫上操作的架構。該系統旨在與兩個或三個不同的型號一起使用。實際上,我們在示例中使用了三個模型。
這是一個實現快速項目的體系結構,僅為數據庫中的幾張桌子提供服務,從而使我們可以按照自己的速度添加更多桌子。
在此解決方案中,我們探討了嵌入式和大語言模型(LLM)在金融行業中的客戶風險評估和產品建議中的變革力。我們將改變我們存儲客戶信息的格式,因此,我們還將更改這些信息在系統中傳播的方式,從而實現重要優勢。
請,如果您發現任何問題,請打開問題。我會盡力盡快解決它,並給您信譽。
如果您想做出貢獻或提出主題,請隨時開始討論。我很高興收到任何意見或建議。
不要害羞,與朋友在社交網絡上分享課程。在LinkedIn或Twitter上與我聯繫,並隨時分享您想要的任何內容或提出任何問題。
將星星配給存儲庫。它對我有很大幫助,並鼓勵我繼續添加課程。這是支持這樣的免費開源課程的好方法。
湯姆·科基米(Tom Kocmi),克里斯蒂安·費德曼(Christian Federmann),大型語言模型是翻譯質量的最先進的評估者。用LLM評估LLM。
Pere Martra,大型語言模型的介紹與Openai
反應:在語言模型中協同推理和作用。 Langchain&Agents部分。醫療助理樣本。
比例的參數效率提示調整的力量。微調與優化部分。及時調整樣品。
LORA:大型語言模型的低級改編。微調與優化部分。洛拉微調樣本。
QLORA:量化LLM的有效固定。微調與優化部分。 Qlora微調樣本。
如何提示LLM進行文本到SQL:零射,單域和跨域設置的研究。專案. SQL的自然語言。
Saurav Muralidharan,Sharath Turuvekere Sreenivas,Raviraj Joshi,Marcin Chochowski,Mostofa Patwary,Mohammad Shoeybi,Bryan Catanzaro,Jan Kautz,Jan Kautz,Jan Kautz,Pavlo Molchanov,pavlo Molchanov,“通過降級和知識模型進行降級和知識模型2024。