從 GPT 到 Mistral-7B:AI 對話技術(shù)再突破!
介紹
近年來,人工智能領(lǐng)域取得了顯著的進(jìn)步,尤其是在大型語言模型領(lǐng)域。LLM 可以生成類似人類的文本、總結(jié)文檔和編寫軟件代碼。Mistral-7B 是最近支持英文文本和代碼生成能力的大型語言模型之一,可用于文本摘要、分類、文本補全、代碼補全等各種任務(wù)。

Mistral-7B-Instruct 的與眾不同之處在于,盡管參數(shù)較少,但它仍能提供出色的性能,使其成為高性能且具有成本效益的解決方案。該模型最近在基準(zhǔn)測試結(jié)果顯示它不僅優(yōu)于 MT-Bench 上的所有 7B 模型,而且與 13B 聊天模型競爭良好后獲得了普及。在這篇博客中,我們將探討 Mistral 7B 的特性和功能,包括其用例、性能以及微調(diào)模型的實踐指南。
學(xué)習(xí)目標(biāo)
● 了解大型語言模型和 Mistral 7B 的工作原理
● Mistral 7B 的架構(gòu)和基準(zhǔn)測試
● Mistral 7B 的用例及其性能
● 深入研究用于推理和微調(diào)的代碼
什么是大型語言模型?
大型語言模型的架構(gòu)是由 transformer 形成的,transformer 使用注意力機(jī)制來捕獲數(shù)據(jù)中的長程依賴關(guān)系,其中多層 transformer 塊包含多頭自注意力和前饋神經(jīng)網(wǎng)絡(luò)。這些模型在文本數(shù)據(jù)上進(jìn)行了預(yù)訓(xùn)練,學(xué)習(xí)預(yù)測序列中的下一個單詞,從而捕獲語言中的模式。訓(xùn)練前的權(quán)重可以針對特定任務(wù)進(jìn)行微調(diào)。我們將專門研究 Mistral 7B LLM 的架構(gòu),以及是什么讓它脫穎而出。
Mistral 7B 架構(gòu)
Mistral 7B 模型轉(zhuǎn)換器架構(gòu)有效地平衡了高性能與內(nèi)存使用,使用注意力機(jī)制和緩存策略在速度和質(zhì)量上優(yōu)于大型模型。它使用 4096 窗口滑動窗口注意力 (SWA),通過允許每個標(biāo)記關(guān)注前體標(biāo)記的子集,優(yōu)化較長序列的注意力,最大限度地提高較長序列的注意力。
給定的隱藏層可以在由窗口大小和層深度決定的距離下訪問輸入層的令牌。該模型集成了對 Flash Attention 和 xForers 的修改,速度比傳統(tǒng)注意力機(jī)制快了一倍。此外,滾動緩沖區(qū)緩存機(jī)制保持固定的緩存大小,以實現(xiàn)高效的內(nèi)存使用。

Google Colab 中的 Mistral 7B
讓我們深入研究代碼,并了解如何在 Google Colab 中使用 Mistral 7B 模型運行推理。我們將使用帶有單個 T4 GPU 的免費版本,并從 Hugging Face 加載模型。
1.在 Colab 中安裝并導(dǎo)入 ctransformers 庫。
2.從 Hugging Face 初始化模型對象并設(shè)置必要的參數(shù)。我們將使用該模型的不同版本,因為 Mistral AI 的原始模型在將整個模型加載到 Google Colab 的內(nèi)存中時可能會出現(xiàn)問題。
3.定義一個函數(shù)以在 Google Colab 中垂直打印結(jié)果。如果此步驟在不同的環(huán)境中運行,則可以跳過或修改此步驟。
4.使用模型生成文本并查看結(jié)果。修改參數(shù)以更改生成的文本的質(zhì)量。
模型響應(yīng):Suvojit 是一名高級數(shù)據(jù)科學(xué)家,他在 AZ 公司工作了 4 年,是其團(tuán)隊的一員,專注于使用有限內(nèi)存機(jī)器學(xué)習(xí)技術(shù)在客戶的品牌和業(yè)務(wù)線中設(shè)計、實施和改進(jìn)消費者行為預(yù)測模型。他在 Analytics Vidhya 上撰寫了有關(guān) LLM 的文章,這有助于他了解數(shù)據(jù)科學(xué)的最新趨勢。他擁有 BITS Pilani 的 AIML 碩士學(xué)位,在那里他研究了機(jī)器學(xué)習(xí)算法及其應(yīng)用。Suvojit 熱衷于利用他的數(shù)據(jù)科學(xué)知識來幫助企業(yè)做出更好的決策并提高績效。
使用案例
讓我們更詳細(xì)地看一下Mistral 7B的一些用例。
譯本
Mistral 7B 支持多種語言的翻譯。讓我們看一下英語到法語和西班牙語的翻譯并檢查準(zhǔn)確性。
模型響應(yīng): 翻譯為:“Suvojit est un scientifique des données sénior qui écrit des blogues sur Analytics Vidhya。
模型響應(yīng): 翻譯為:“Suvojit es un Senior Data Científico que escribe blogs en Analytics Vidhya。
綜述
使用 Mistral 7B 使用適當(dāng)?shù)恼f明將文檔匯總為較短的版本。
模型響應(yīng): Transformer 通過捕獲遠(yuǎn)程依賴關(guān)系和復(fù)雜的模式徹底改變了大型語言模型,引入了一種自注意力機(jī)制,使它們能夠靈活地處理信息,隨后的實現(xiàn)包括 GPT 和 BERT 等突破。然而,隨著這些模型規(guī)模的增長,人們對它們對環(huán)境的影響和計算需求的擔(dān)憂也隨之而來,盡管存在這些挑戰(zhàn),但它們在語言建模中仍然具有不可否認(rèn)的變革性。
自定義說明
我們可以使用 [INST] 標(biāo)簽來修改用戶輸入,以從模型中獲取特定響應(yīng)。例如,我們可以根據(jù)文本描述生成 JSON。
模型響應(yīng): “'json { ”name“: ”Suvojit Hore“, ”company“: ”AB“, ”address“: ”AZ Street NY“ } ”'
微調(diào) Mistral 7B
讓我們看看如何在 Google Colab 上使用單個 GPU 微調(diào)模型。我們將使用一個數(shù)據(jù)集,將關(guān)于圖像的少量描述轉(zhuǎn)換為詳細(xì)且高度描述性的文本。這些結(jié)果可以在 Midjourney 中用于生成特定圖像。目標(biāo)是訓(xùn)練 LLM 充當(dāng)圖像生成的提示工程師。
在 Google Colab 中設(shè)置環(huán)境并導(dǎo)入必要的庫:
從瀏覽器登錄 Hugging Face 并復(fù)制訪問令牌。使用此令牌登錄到筆記本中的 Hugging Face。 notebook_login()

將數(shù)據(jù)集上傳到 Colab 會話存儲。我們將使用 Midjourney 數(shù)據(jù)集。

使用具有適當(dāng)參數(shù)的自動訓(xùn)練來訓(xùn)練模型。修改以下命令,為你自己的 Huggin Face 存儲庫和用戶訪問令牌運行它。
現(xiàn)在,讓我們使用微調(diào)的模型來運行推理引擎并生成圖像的一些詳細(xì)描述。
加載微調(diào)的模型和分詞器。
只需幾句話即可生成詳細(xì)且描述性的 Midjourney 提示。
模型響應(yīng):當(dāng)帶有情感芯片的計算機(jī)開始處理其情感時,它開始質(zhì)疑自己的存在和目的,從而開啟了自我發(fā)現(xiàn)和自我完善的旅程。
模型響應(yīng):追逐色彩的彩虹發(fā)現(xiàn)自己置身于沙漠中,天空是一望無際的藍(lán)色海洋,彩虹的顏色散落在沙子中。
結(jié)論
Mistral 7B 已被證明是大型語言模型領(lǐng)域的重大進(jìn)步。其高效的架構(gòu),結(jié)合其卓越的性能,展示了其成為未來各種 NLP 任務(wù)的主要內(nèi)容的潛力。這篇博客提供了有關(guān)模型架構(gòu)、應(yīng)用以及如何利用其功能執(zhí)行特定任務(wù)(如翻譯、摘要和微調(diào)其他應(yīng)用程序)的見解。通過正確的指導(dǎo)和實驗,Mistral 7B可以重新定義LLM的界限。
關(guān)鍵要點
● 盡管參數(shù)較少,但 Mistral-7B-Instruct 在性能上表現(xiàn)出色。
● 它使用滑動窗口注意力進(jìn)行長序列優(yōu)化。
● Flash Attention 和 xFormers 等功能使其速度翻倍。
● 滾動緩沖區(qū)緩存可確保高效的內(nèi)存管理。
● 多功能:處理翻譯、摘要、結(jié)構(gòu)化數(shù)據(jù)生成、文本生成和文本完成。
● 提示工程添加自定義指令可以幫助模型更好地理解查詢并執(zhí)行多個復(fù)雜的語言任務(wù)。
● 微調(diào) Mistral 7B 以執(zhí)行任何特定的語言任務(wù),例如充當(dāng)提示工程師。
常見問題解答
問題1. Mistral-7B 與其他大型語言模型的主要區(qū)別是什么?
答:Mistral-7B 專為效率和性能而設(shè)計。雖然它的參數(shù)比其他一些模型少,但它的架構(gòu)進(jìn)步,如滑動窗口注意力,使其能夠提供出色的結(jié)果,甚至在特定任務(wù)中優(yōu)于更大的模型。
問題2. 是否可以為自定義任務(wù)微調(diào) Mistral-7B?
答:是的,Mistral-7B 可以針對各種任務(wù)進(jìn)行微調(diào)。本指南提供了一個微調(diào)模型的示例,以將簡短的文本描述轉(zhuǎn)換為詳細(xì)的圖像生成提示。
問題3. Mistral-7B 中的滑動窗口注意力機(jī)制如何提高其性能?
答:滑動窗口注意力 (SWA) 允許模型有效地處理較長的序列。SWA 的窗口大小為 4096,優(yōu)化了注意力操作,使 Mistral-7B 能夠在不影響速度或準(zhǔn)確性的情況下處理冗長的文本。
問題4. 您是否需要一個特定的庫來運行 Mistral-7B 推理?
答:是的,在運行 Mistral-7B 推理時,我們建議使用 ctransformers 庫,尤其是在 Google Colab 中工作時。您還可以從 Hugging Face 加載模型以增加便利性
問題5. 使用 Mistral-7B 生成輸出時,如何確保最佳結(jié)果?
答:在輸入提示中制定詳細(xì)說明至關(guān)重要。Mistral-7B 的多功能性使其能夠理解并遵循這些詳細(xì)說明,確保準(zhǔn)確和所需的輸出。適當(dāng)?shù)奶崾竟こ炭梢燥@著提高模型的性能。
原文地址:https://www.analyticsvidhya.com/blog/2023/11/from-gpt-to-mistral-7b-the-exciting-leap-forward-in-ai-conversations/
非常感謝大家的閱讀,小Mo在這里祝你在末來的 Python 學(xué)習(xí)職業(yè)生涯中一切順利!
后續(xù)小Mo會不定期更新書籍、視頻等學(xué)習(xí)資源,以上這些書籍資料也可通過關(guān)注微信公眾號免費獲取 哦!
歡迎關(guān)注我們的微信公眾號:MomodelAl
同時,歡迎使用「Mo AI編程」微信小程序
以及登錄官網(wǎng),了解更多信息:Mo 人工智能教育實訓(xùn)平臺
Mo,發(fā)現(xiàn)意外,創(chuàng)造可能
注:部分資源來源于互聯(lián)網(wǎng),若有侵權(quán),請直接聯(lián)系作者刪除。