偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

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

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

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

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

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

▲ 圖2 Cursor功能演示[3]

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

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

▲ 圖3 chatPDF功能演示[4]

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

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

▲ 圖4 Sample1-Edit Anything[5]

沒(méi)什么感覺(jué)?再來(lái)一張感受一下:

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

▲ 圖5 Sample2-Edit Anything[5]

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

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

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

二、LLM模型實(shí)踐

現(xiàn)在開(kāi)源社區(qū)有許多類(lèi)chatGPT的開(kāi)源實(shí)現(xiàn)方案:

■ 駱駝(Luotuo): 開(kāi)源中文大語(yǔ)言模型[8]

■ Vicuna: 號(hào)稱(chēng)能達(dá)到90% ChatGPT質(zhì)量的開(kāi)源模型[9]

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

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

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

1.模型訓(xùn)練

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

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

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

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

但是這的確給我們優(yōu)化LLM積累了一些經(jīng)驗(yàn)和思考。首先是計(jì)算資源消耗方面,即使是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顯卡才能滿(mǎn)足算力的需求。另外是模型訓(xùn)練的方式上我們還是采用了普通的微調(diào)方法,使用普通微調(diào)方法的好處是對(duì)數(shù)據(jù)的質(zhì)量要求沒(méi)有那么高,也不需要復(fù)雜的數(shù)據(jù)處理。如果我們收集足夠多的數(shù)據(jù)并把數(shù)據(jù)處理成指令微調(diào)的形式進(jìn)行訓(xùn)練那樣會(huì)對(duì)模型的生成效果有一個(gè)比較大的提升。

2.模型部署

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

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

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

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

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

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

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

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

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

▲ 圖10 推理時(shí)延與算力需求

三、總結(jié)與思考

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

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

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

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

4. 人工智能與人類(lèi)協(xié)同:雖然AI工具在許多方面都有顯著的優(yōu)勢(shì),但在某些情況下,人類(lèi)的專(zhuān)業(yè)知識(shí)和創(chuàng)造力仍然不可替代。因此,技術(shù)人員需要學(xué)會(huì)與AI工具協(xié)同工作,充分利用它們的優(yōu)勢(shì),同時(shí)發(fā)揮自己的專(zhuān)業(yè)能力,共同實(shí)現(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遇見(jiàn)云??,作者: 張宇博


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