本文歸納了基于大模型能力開發(fā)應用的3種主流方式,對大模型應用開發(fā)的過程有基本了解迹炼,開發(fā)者可以根據(jù)自己的情況按需選用適合自己能力和業(yè)務場景的開發(fā)方式。
一. 基于API應用開發(fā)模式
通過該種方式,開發(fā)者可以快速調用大模型的API双吆,獲取大模型能力在塔,用戶基于百度智能云千帆大模型平臺可快速調用包括文心大模型在內的各種大模型API幻件,針對第三方大模型,平臺還針對性地進行了中文增強蛔溃、性能增強绰沥、上下文增強等優(yōu)化篱蝇。以下是基于該種開發(fā)方式的介紹:
開發(fā)基本步驟:
【AI端】調用API接口(幾行代碼/Python語言),可通過Prompt設計引入相關知識(無需修改模型的結構或參數(shù))
【前端】寫web端/移動端界面徽曲、交互(html/css/js/gradio/streamlit)
【后端】整體任務邏輯/隊列零截、集成和調用AI端能力、返回AI端結果(C++/JAVA/PHP/GO/C#/Python...)
所需能力:無需有AI算法能力秃臣,需有前后端開發(fā)和工程落地能力
局限性:對垂直領域場景的定制能力弱
總結:AI部分難度較小涧衙,無需AI專業(yè)知識,主要開發(fā)工作在前后端和工程化落地甜刻。
二. 基于大模型的微調應用開發(fā)模式
廣泛性預訓練+針對性微調已經成為了當前大模型訓練與落地使用的通用方式绍撞,按照微調方式,又將這種模式細分為以下2種方式:
傳統(tǒng)Fine-tuning
使用開源預訓練模型或調用微調API接口得院,用下游任務的高質量數(shù)據(jù)重新訓練并更新模型參數(shù)傻铣,使其適用于下游應用(需要預訓練模型根據(jù)下游任務調整)
主要方式:Instruct微調、LoRa微調
開發(fā)基本步驟:
-
【AI端】加載已經預訓練好的大模型祥绞,準備和上傳訓練數(shù)據(jù)(與目標任務相關的數(shù)據(jù)非洲,符合fine-tuning文件格式),訓練新的Fine-tuning模型蜕径,也可以加入一些分類層等两踏;模型封裝和部署:高性能/高并發(fā)/高可用
- 【數(shù)據(jù)】數(shù)據(jù)獲取,仿照給定數(shù)據(jù)示例構建新的數(shù)據(jù)集(字段:Prompt-Completion)
【前端】寫web端/移動端界面兜喻、交互邏輯(html/css/js/gradio/streamlit)
【后端】整體任務邏輯/隊列梦染、集成和調用AI端能力、返回AI端結果(C++/JAVA/PHP/GO/C#/Python...)
所需能力:****深度學習算法原理朴皆、跨模態(tài)數(shù)據(jù)處理帕识、模型訓練、模型部署/彈性部署遂铡;前后端開發(fā)和工程落地
優(yōu)勢:可根據(jù)下游任務數(shù)據(jù)做定制化程度較高的產品/服務
局限性:超大規(guī)模模型finetune消耗資源較大(訓練和推理部署)肮疗;數(shù)據(jù)處理工程量較大,數(shù)據(jù)安全性有考驗扒接。
總結:
AI部分難度較大伪货,需懂深度學習原理,會數(shù)據(jù)處理(跨模態(tài)數(shù)據(jù)融合)钾怔,會訓練模型碱呼;算力資源消耗大。
難點主要在于數(shù)據(jù)工程(數(shù)據(jù)采集宗侦、清洗巍举、對齊)和訓練推理資源。
隨著模型規(guī)模增大凝垛,效果提升逐漸飽和懊悯。
2.Prompt-tuning
以特定的prompt模板將下游任務的數(shù)據(jù)轉成自然語言形式,用指令和答案的數(shù)據(jù)訓練(給一些例子來喚醒模型)充分挖掘預訓練模型本身的能力梦皮,讓上游的預訓練模型在盡量不需要標注數(shù)據(jù)的情況下比較好的完成下游的任務(調整下游任務以適應預訓練模型)
主要方式:In-Context Learning炭分、Instruction-tuning、Chain-of-Thought
基本步驟:
-
【AI端】設計預訓練語言模型的任務剑肯、設計輸入模板樣式(Prompt Engineering)捧毛、設計label 樣式及模型的輸出映射到label的方式(Answer Engineering),prompt-completion-label让网;
- 【數(shù)據(jù)】標簽數(shù)據(jù)準備呀忧、Verbalizer準備、prompt模板設定
【前端】寫web端/移動端界面溃睹、交互邏輯
【后端】整體任務邏輯/隊列而账、集成和調用AI端能力、返回AI端結果
所需能力:****Prompt engineering相關技巧因篇、前后端開發(fā)和工程落地
優(yōu)勢:所需訓練數(shù)據(jù)相比finetuning數(shù)量較少泞辐,只對Prompt部分的參數(shù)進行訓練,同時保證整個預訓練模型的參數(shù)固定不變竞滓,隨著模型規(guī)模增大咐吼,性能提升基本呈線性增長(僅需0.01%的微調參數(shù)量)
局限性:定制化效果有限,達到企業(yè)級應用的定制化程度需在Prompt計算/生成方面做較多嘗試商佑。
總結:無需數(shù)據(jù)標注锯茄,難點在于Prompt模板設計(人工設計模板/自動學習模板),需要根據(jù)下游任務和預訓練模型的特性來選擇合適的模板茶没,微調消耗的存儲和運算資源相比傳統(tǒng)finetune有所降低肌幽。
三. 基于大模型API或大模型微調+插件開發(fā)模式
基本步驟:
【AI端】調用大模型API或微調大模型
【前端】寫web端/移動端界面、交互邏輯
【后端】整體任務邏輯/隊列(包含插件的輸入輸出)礁叔、集成和調用AI端能力牍颈、返回AI端結果
以向量知識庫embedding流程為例:將垂直行業(yè)的領域知識向量化并存入向量數(shù)據(jù)庫——用戶提問——用戶問題向量化——查詢向量數(shù)據(jù)庫,得到TopN條匹配知識——構建Prompt琅关,調用 API——返回回答.
所需能力:AI端能力需求較弱煮岁,對任務流程拆解的工程化思考要求較高(節(jié)點/隊列流程設計、彈性部署等)
總結:AI部分難度較小涣易,難點在于整體任務流程的工程化思考和落地画机。