自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

生成式AI 的爆發(fā)元年

發(fā)布于 2024-6-21 17:09
瀏覽
0收藏
2023年4月,距離chatGPT的正式發(fā)布已經(jīng)過去了四個多月,距離New Bing的發(fā)布過去了兩個月,而GPT4同樣也已經(jīng)發(fā)布了一個月,各式各樣圍繞chatGPT或者說LLM模型的生態(tài)、社區(qū)、工作不斷涌現(xiàn),對Github Trending榜單一直關(guān)注的人可能早就注意到,圍繞chatGPT的各種包裝庫以及各種開源模型工作持續(xù)地在霸占榜單,這屬實罕見。在接下來的篇幅中,我們將以一個程序員的視角探討當(dāng)下生成式AI類工具對技術(shù)人員工作流的改變,以及作為算法工程師,在對LLM模型進(jìn)行實踐時碰到的一系列問題。最后,我們也會關(guān)注這些工具所面臨的挑戰(zhàn)和限制,以及未來的發(fā)展方向。我們希望通過本文,為技術(shù)和產(chǎn)品人員提供有益的洞見,幫助大家更好地利用這些工具。

一、AI導(dǎo)致的工作流變化 

在最近這段時間內(nèi)我們已經(jīng)見證了AI在各行各業(yè)產(chǎn)生的巨大影響。在技術(shù)領(lǐng)域,AI工具已經(jīng)成為一股不可忽視的力量,為程序員、數(shù)據(jù)分析師和設(shè)計師等技術(shù)人員提供了強大的輔助功能。

在編程方面,基于人工智能的代碼補全工具如GitHub Copilot可以極大地幫助開發(fā)者提高編程效率。而在GPT4公布以后Copilot也發(fā)布了自己的升級版本即 GitHub Copilot X,它不僅繼承了原有的代碼補全功能,還圍繞 AI 對話、Pull Request 提交處理、文檔智能檢索與閱讀、命令行改造、代碼審查和質(zhì)量分析甚至是語音生成代碼等功能進(jìn)行了全方位的升級。

生成式AI 的爆發(fā)元年-AI.x社區(qū)

▲ 圖1 GitHub Copilot X新功能[2]

上述工具需要付費或者加入waiting list等待才可以拿到體驗資格,所以如果你想獲得類似的智能工具體驗也可以直接使用Cursor這樣免費的IDE工具,據(jù)官方說這是一個基于gpt4接口開發(fā)的簡易IDE(實際體驗下來應(yīng)該還是GPT3.5),能力同樣足夠強悍,它可以支持用GPT給你寫代碼,也可以支持圍繞你的代碼項目工程問任何問題,并進(jìn)行改進(jìn)。

生成式AI 的爆發(fā)元年-AI.x社區(qū)

▲ 圖2 Cursor功能演示[3]

在數(shù)據(jù)分析領(lǐng)域,AI工具也發(fā)揮著重要作用。近期許多證券公司同樣參與到了chatGPT這個熱潮中,不管是直接借助OpenAI的API調(diào)用還是自研小型的GPT類模型,AI技術(shù)可以幫助分析師高效地總結(jié)和歸納研究報告。通過AI技術(shù)進(jìn)行文本分析和自然語言處理,可以提高信息處理速度,減輕人力負(fù)擔(dān),從而為證券公司帶來更多便利。在筆者深度體驗chatGPT一段時間后,的確發(fā)現(xiàn)它的信息歸納總結(jié)能力非常出色,像目前就有許多利用chatGPT的能力對文獻(xiàn)進(jìn)行快速總結(jié)的工具比如chatPDF,你只需要上傳一個PDF文件就可以基于此進(jìn)行諸多提問。

生成式AI 的爆發(fā)元年-AI.x社區(qū)

▲ 圖3 chatPDF功能演示[4]

在設(shè)計領(lǐng)域,AI工具同樣大放異彩,不過那里的主角是擴(kuò)散模型。例如,DALL-E這樣的AI生成器,可以根據(jù)用戶提供的文本描述,生成相應(yīng)的圖像;除此之外也有像Midjourney這樣已經(jīng)非常完善的產(chǎn)品;在開源社區(qū),這里的生態(tài)也不亞于chatGPT,基于開源的Stable Diffusion模型以及各種插件和Lora小模型所形成的解決方案已經(jīng)非常完善,設(shè)計師們完全可以基于AI輔助進(jìn)行工作。而就在我寫下這篇文章的時間點,基于擴(kuò)散模型、Controlnet以及Segment-Anything[1]的開源工具已經(jīng)出現(xiàn)了。

生成式AI 的爆發(fā)元年-AI.x社區(qū)

▲ 圖4 Sample1-Edit Anything[5]

沒什么感覺?再來一張感受一下:

生成式AI 的爆發(fā)元年-AI.x社區(qū)

▲ 圖5 Sample2-Edit Anything[5]

總之,AI工具在技術(shù)領(lǐng)域的應(yīng)用正變得越來越廣泛和深入,它們已經(jīng)對程序員、數(shù)據(jù)分析師和設(shè)計師等技術(shù)人員的工作流產(chǎn)生了重大影響?;叵肓艘幌伦罱易约涸诠ぷ魃厦娴牧鞒套兓?,首先是使用搜索引擎的頻率大大降低,對于自己不熟悉的領(lǐng)域會優(yōu)先使用chatGPT來進(jìn)行提問學(xué)習(xí),然后再實際驗證準(zhǔn)確性;編程方面雖然沒有使用Github Copilot(基于安全以及隱私的考慮),但是我們私有化的代碼智能補全工具同樣可以提升我的編碼效率,在擴(kuò)散模型方面雖然我沒有設(shè)計方面的需求,但是在開發(fā)IDE插件并發(fā)布到插件市場前,我使用它進(jìn)行l(wèi)ogo的生成,生成效果的確不賴。

生成式AI 的爆發(fā)元年-AI.x社區(qū)

▲ 圖6 Acepilot logo由擴(kuò)散模型生成

二、LLM模型實踐

現(xiàn)在開源社區(qū)有許多類chatGPT的開源實現(xiàn)方案:

■ 駱駝(Luotuo): 開源中文大語言模型[8]

■ Vicuna: 號稱能達(dá)到90% ChatGPT質(zhì)量的開源模型[9]

■ Koala:經(jīng)過在網(wǎng)絡(luò)上收集的對話數(shù)據(jù)并基于Meta的LLaMA微調(diào)訓(xùn)練的模型 [10]

■ Baize:Baize是由Lora技術(shù)訓(xùn)練的開源模型[11]

這些開源方案中所使用的模型都集中在100億參數(shù)量附近,對LLM來說這已經(jīng)是非常輕量化的模型參數(shù)量了,但是即便訓(xùn)練這些輕量模型(包括使用Lora的方案)也需要耗費我們許多算力。在之前的?文章中提到過,我們基于Codegen代碼生成模型進(jìn)行了實踐,并且陸續(xù)開發(fā)了IDE插件供研發(fā)人員使用體驗,最終形成了私有化部署的代碼智能補全工具。后續(xù)隨著工作的持續(xù)開展我們優(yōu)化了模型的生成效果,模型的參數(shù)量也從27億參數(shù)量提升到了60億參數(shù)量,但是對模型進(jìn)行調(diào)優(yōu)和實際優(yōu)化部署時都碰到了許多問題,因此光有模型并沒有用,你需要有模型持續(xù)迭代優(yōu)化的能力和資源,在模型部署上也需要有完善的模型加速手段。

1.模型訓(xùn)練

由于當(dāng)時在進(jìn)行代碼智能補全工具的體驗時許多前端的同事都覺得它在Vue上的補全效果并不理想,因此我們爬取了Github上40個優(yōu)質(zhì)的Vue項目并進(jìn)行了數(shù)據(jù)上的預(yù)處理,因為計算資源有限,我們基于此數(shù)據(jù)首先在2.7Billion參數(shù)量的模型上進(jìn)行了調(diào)優(yōu)嘗試。

生成式AI 的爆發(fā)元年-AI.x社區(qū)

▲ 圖7 27億參數(shù)量模型微調(diào)

這是一個失敗的嘗試,雖然微調(diào)過后的模型的確在Vue上的生成效果有了提升,但是在我們使用了自己收集和構(gòu)建的多語言版本的HumanEval數(shù)據(jù)集進(jìn)行測試發(fā)現(xiàn),微調(diào)后的模型在其他語言上效果是有下降的,這并不符合我們的初衷。然后在測試原版的CodeGen 60億參數(shù)量模型的效果時我們發(fā)現(xiàn)在Vue上它也比微調(diào)過后的27億參數(shù)量模型更加優(yōu)秀,至于其他語言就完全無需比較了。

但是這的確給我們優(yōu)化LLM積累了一些經(jīng)驗和思考。首先是計算資源消耗方面,即使是27億參數(shù)量的模型我們也至少需要兩張32GB的V100顯卡才能比較有效率地微調(diào)我們的模型,在使用分布式訓(xùn)練框架DeepSpeed 在不同的優(yōu)化策略需要的顯存和內(nèi)存占用如下:

生成式AI 的爆發(fā)元年-AI.x社區(qū)

如果我們需要微調(diào)的是60億參數(shù)量的模型,那至少需要4張32GB顯存的V100顯卡才能滿足算力的需求。另外是模型訓(xùn)練的方式上我們還是采用了普通的微調(diào)方法,使用普通微調(diào)方法的好處是對數(shù)據(jù)的質(zhì)量要求沒有那么高,也不需要復(fù)雜的數(shù)據(jù)處理。如果我們收集足夠多的數(shù)據(jù)并把數(shù)據(jù)處理成指令微調(diào)的形式進(jìn)行訓(xùn)練那樣會對模型的生成效果有一個比較大的提升。

2.模型部署

模型的部署至關(guān)重要,針對LLM的模型加速手段必不可少,有許多模型加速技術(shù)可以幫助優(yōu)化模型的性能,例如模型量化、計算圖優(yōu)化等。
模型量化:模型量化是將模型中的權(quán)重和激活值從浮點數(shù)表示轉(zhuǎn)換為低位寬度整數(shù)表示(例如8位或16位整數(shù))的過程。這可以顯著減小模型的體積和內(nèi)存占用,同時提高計算速度。量化后的模型可以在資源受限的設(shè)備(如移動設(shè)備和嵌入式系統(tǒng))上運行,同時保持較高的性能。通常,模型量化會犧牲一定的精度,但在大多數(shù)情況下,這種損失是可以接受的。

生成式AI 的爆發(fā)元年-AI.x社區(qū)

▲ 圖8 模型量化技術(shù)[6]

計算圖優(yōu)化:計算圖是用于表示神經(jīng)網(wǎng)絡(luò)中各層之間連接關(guān)系的有向圖。在模型部署階段,計算圖優(yōu)化可以通過剪枝、融合和重排等操作減少計算量和內(nèi)存占用。剪枝是指移除網(wǎng)絡(luò)中不重要的權(quán)重或神經(jīng)元,以減小模型的體積。融合是將多個操作合并為一個操作,以減少計算量。重排是調(diào)整計算圖中操作的順序,以減少內(nèi)存訪問和數(shù)據(jù)傳輸。通過這些優(yōu)化手段,計算圖優(yōu)化可以在保持模型精度的同時,提高模型在不同硬件平臺上的性能。

其他部署技術(shù):除了模型量化和計算圖優(yōu)化外,還有其他一些技術(shù)可以提高模型部署效果。例如,模型壓縮可以進(jìn)一步減小模型體積,加快加載速度。還可以通過使用高性能的深度學(xué)習(xí)庫(如TensorRT、OpenVINO等)來提高模型在特定硬件上的性能。

然而僅使用上述的優(yōu)化手段已經(jīng)滿足不了我們的性能需求了,因此我們不得不使用更重量級的方法來加速模型的推理,那就是張量并行。

生成式AI 的爆發(fā)元年-AI.x社區(qū)

▲ 圖9 張量并行技術(shù)[7]
張量并行是一種用于加速深度學(xué)習(xí)模型推理的重量級方法,它通過在多個計算設(shè)備(如GPU)上同時執(zhí)行模型中的不同部分來實現(xiàn)。在張量并行中,模型的權(quán)重和計算過程被拆分為多個獨立的部分,每個部分在單獨的計算設(shè)備上運行。這使得大型模型可以在有限的硬件資源下進(jìn)行高效計算。張量并行的主要優(yōu)勢在于其擴(kuò)展性。通過增加計算設(shè)備的數(shù)量,我們可以實現(xiàn)更大規(guī)模模型的快速推理。此外,由于各個設(shè)備上執(zhí)行的操作更小,計算和通信的開銷也相應(yīng)降低。然而,實現(xiàn)張量并行需要在算法和硬件層面進(jìn)行優(yōu)化,以確保各個設(shè)備之間的負(fù)載均衡和通信效率,實現(xiàn)張量并行有一些關(guān)鍵考慮因素:
1. 模型劃分:模型的權(quán)重和計算過程需要在多個計算設(shè)備上進(jìn)行合理劃分。這通常涉及將模型的層或子網(wǎng)絡(luò)分配給不同的設(shè)備。為了確保負(fù)載均衡,應(yīng)當(dāng)使每個設(shè)備承擔(dān)相近的計算量。
2. 通信優(yōu)化:在張量并行中,設(shè)備之間需要進(jìn)行通信以交換中間計算結(jié)果。為了提高通信效率,可以采用高效的通信庫(如NVIDIA NCCL)和優(yōu)化的通信拓?fù)浣Y(jié)構(gòu)。此外,可以通過梯度累積、梯度稀疏化等技術(shù)減少通信量。
3. 同步與異步執(zhí)行:在并行計算過程中,設(shè)備間的同步與異步執(zhí)行需要權(quán)衡。同步執(zhí)行可以保證模型的一致性,但可能導(dǎo)致設(shè)備之間的等待時間。異步執(zhí)行可以減少等待時間,提高設(shè)備利用率,但可能導(dǎo)致模型不穩(wěn)定。合理選擇同步和異步策略對于實現(xiàn)高性能張量并行至關(guān)重要??傊覀冊谑褂昧松鲜鏊械哪P图铀偈侄魏篁?qū)動一個60億參數(shù)量的模型還是需要4張T4推理卡的算力,下面是推理時延和所需要的算力表示:

生成式AI 的爆發(fā)元年-AI.x社區(qū)

▲ 圖10 推理時延與算力需求

三、總結(jié)與思考

相信大多數(shù)人都已經(jīng)感受到AI工具在各行各業(yè)產(chǎn)生了影響,作為技術(shù)人員我們需要不斷地?fù)肀ё兓W(xué)習(xí)新技能和方法,以充分利用AI所帶來的好處。同時我們也需要認(rèn)識到當(dāng)前AI技術(shù)存在的局限性,即使是GPT4,在進(jìn)行很長一段深度使用后我還是可以非常自信地說讓它來代替程序員還太早了??偟膩碚f:

1. 提高效率:AI類工具可以幫助技術(shù)人員更快地完成任務(wù),如代碼智能補全工具在提高編碼效率方面。通過使用先進(jìn)的AI算法,開發(fā)人員可以減少編碼時間,提高生產(chǎn)力,這使得他們可以將更多的時間和精力投入到其他關(guān)鍵任務(wù)上,如設(shè)計架構(gòu)、調(diào)試和優(yōu)化上。

2. 創(chuàng)新與拓展:LLM的火爆給AI領(lǐng)域的從業(yè)人員提供了新的機會和挑戰(zhàn)。例如,如何利用有限的計算資源盡可能高效地訓(xùn)練模型以及在模型部署技術(shù)、模型加速方面的持續(xù)探索,這可以推動整個領(lǐng)域內(nèi)的技術(shù)創(chuàng)新。

3. 適應(yīng)性與持續(xù)學(xué)習(xí):隨著AI技術(shù)的不斷發(fā)展,技術(shù)人員需要不斷適應(yīng)并掌握新的工具和方法。這要求他們具備持續(xù)學(xué)習(xí)的能力,以便跟上行業(yè)的發(fā)展趨勢。

4. 人工智能與人類協(xié)同:雖然AI工具在許多方面都有顯著的優(yōu)勢,但在某些情況下,人類的專業(yè)知識和創(chuàng)造力仍然不可替代。因此,技術(shù)人員需要學(xué)會與AI工具協(xié)同工作,充分利用它們的優(yōu)勢,同時發(fā)揮自己的專業(yè)能力,共同實現(xiàn)更高質(zhì)量和效率的工作成果。

參考文獻(xiàn)

[1]GPT4 

[2] Introducing GitHub Copilot X

[3] Cursor | Build Fast

[4] ChatPDF - Chat with any PDF!

[5] sail-sg/EditAnything: Edit anything in images powered by segment-anything, ControlNet, StableDiffusion, etc.

[6] MindSpore量化算法概述

[7] M. Shoeybi, M. Patwary, R. Puri, P. LeGresley, J. Casper, and B. Catan-

zaro, “Megatron-lm: Training multi-billion parameter language modelsusing model parallelism,” arXiv preprint arXiv:1909.08053, 2019. 

[8] https://github.com/LC1332/Luotuo-Chinese-LLM

[9] https://github.com/lm-sys/FastChat

[10] https://bair.berkeley.edu/blog/2023/04/03/koala

[11] https://github.com/project-baize/baize-chatbot

本文轉(zhuǎn)載自 ??AI遇見云??,作者: 張宇博


標(biāo)簽
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦