銷廣告大模型實(shí)戰(zhàn):從文案生成到投放優(yōu)化)
貨拉拉做營(yíng)銷廣告繞不開(kāi)一個(gè)核心問(wèn)題每天要產(chǎn)出成千上萬(wàn)條面向司機(jī)師傅、貨主、搬家用戶、企業(yè)客戶的文案、圖片素材和投放策略純靠人工去寫(xiě)、去定、去調(diào)效率跟不上投放節(jié)奏成本也兜不住。我們內(nèi)部落地了一套以大模型為主干的營(yíng)銷廣告內(nèi)容生產(chǎn)與投放決策系統(tǒng)覆蓋拉新、促活、轉(zhuǎn)化、留存全鏈路從文案自動(dòng)生成、素材批量產(chǎn)出到人群智能圈選和投放策略優(yōu)化基本都過(guò)了一遍大模型。這篇文章就把這套方案的場(chǎng)景拆解、選型邏輯、實(shí)現(xiàn)細(xì)節(jié)和踩過(guò)的坑一次講清楚正在做營(yíng)銷智能化、或者準(zhǔn)備把大模型往業(yè)務(wù)里落地的同學(xué)應(yīng)該能少走不少?gòu)澛贰?. 貨拉拉營(yíng)銷廣告場(chǎng)景的業(yè)務(wù)拆解與需求分析1.1 四個(gè)核心場(chǎng)景文案、素材、人群、策略先梳理貨拉拉營(yíng)銷廣告的實(shí)際業(yè)務(wù)盤(pán)子。貨拉拉的營(yíng)銷分成幾個(gè)大的模塊司機(jī)端、貨主端、搬家C端、企業(yè)版。司機(jī)端要拉新司機(jī)入駐、促活老司機(jī)跑單、配合完單獎(jiǎng)勵(lì)做通知貨主端要看用戶發(fā)單頻次用優(yōu)惠券和滿減活動(dòng)刺激下單搬家C端是典型的高客單價(jià)低頻次場(chǎng)景用戶做一次決策周期長(zhǎng)需要信任感和價(jià)格錨點(diǎn)企業(yè)版則是多角色決策、合同制客戶營(yíng)銷鏈路更重。這些場(chǎng)景落到大模型能摻和進(jìn)來(lái)的環(huán)節(jié)我歸納為四類。第一類是高轉(zhuǎn)化文案生成包括投放平臺(tái)的廣告標(biāo)題、push通知文案、彈窗文案、短信文案、活動(dòng)頁(yè)banner文案。第二類是圖片素材和視頻腳本生成尤其是活動(dòng)頁(yè)KV、投放素材圖、15秒短視頻腳本過(guò)去一張主視覺(jué)要設(shè)計(jì)做三天大模型能把初稿時(shí)間壓縮到分鐘級(jí)。第三類是人群圈選借助語(yǔ)義模型理解用戶畫(huà)像和行為序列把原本需要數(shù)據(jù)分析師寫(xiě)SQL圈選的人群包改成用自然語(yǔ)言描述模型自動(dòng)映射到標(biāo)簽體系。第四類是投放策略優(yōu)化基于大模型對(duì)歷史投產(chǎn)數(shù)據(jù)的理解自動(dòng)生成預(yù)算分配建議、渠道組合方案、出價(jià)調(diào)整策略。這四類不是相互獨(dú)立的。文案生成完要配素材素材要根據(jù)人群偏好變化人群圈選結(jié)果又決定投放策略的方向。我們最后做成的是一個(gè)串聯(lián)鏈路而不是四個(gè)孤立的API。這個(gè)設(shè)計(jì)決策在后面展開(kāi)。1.2 傳統(tǒng)模板和規(guī)則引擎為什么頂不住在沒(méi)上大模型之前貨拉拉的營(yíng)銷內(nèi)容生產(chǎn)依賴兩類工具一類是運(yùn)營(yíng)同學(xué)手寫(xiě)文案另一類是內(nèi)部搭的模板系統(tǒng)。模板系統(tǒng)的邏輯是“前綴活動(dòng)信息后綴”比如“【$城市$】$福利$新老用戶均可領(lǐng)取快來(lái)參與”。這種方案的問(wèn)題很明顯文案千篇一律用戶對(duì)模板話術(shù)的免疫越來(lái)越強(qiáng)點(diǎn)擊率逐年下滑。更麻煩的是模板的組合數(shù)量看著多實(shí)際上同一時(shí)間每個(gè)活動(dòng)只有少數(shù)幾個(gè)可用組合運(yùn)營(yíng)同學(xué)改起來(lái)仍然依賴人工。規(guī)則引擎在人群圈選上也有天花板。標(biāo)簽體系經(jīng)過(guò)多年建設(shè)后維度達(dá)到數(shù)百個(gè)規(guī)則之間經(jīng)常相互沖突比如一個(gè)用戶同時(shí)命中“高活躍貨主”和“價(jià)格敏感型用戶”兩個(gè)人群包到底該進(jìn)哪個(gè)規(guī)則表里沒(méi)有答案。數(shù)據(jù)分析師寫(xiě)SQL圈選一個(gè)人群包要半天做完以后對(duì)策略的反饋又是滯后的整個(gè)迭代周期按周算。大模型的價(jià)值不在于大幅超越人類文案大師的創(chuàng)意水平而在于把“日產(chǎn)百條”的內(nèi)容生產(chǎn)量穩(wěn)定在“日產(chǎn)萬(wàn)條”的規(guī)模同時(shí)把人群圈選的迭代周期從周壓縮到小時(shí)。想清楚這一點(diǎn)后面所有技術(shù)選型都有了解釋。2. 技術(shù)選型與整體方案設(shè)計(jì)2.1 模型選型開(kāi)源底座微調(diào)還是API直調(diào)選型是團(tuán)隊(duì)吵得最兇的環(huán)節(jié)。公版API大模型能力確實(shí)強(qiáng)尤其是長(zhǎng)文本理解和跨領(lǐng)域創(chuàng)意生成直接調(diào)用省去很多訓(xùn)練成本。但貨拉拉的營(yíng)銷場(chǎng)景有幾道坎兒一是數(shù)據(jù)隱私用戶畫(huà)像、交易數(shù)據(jù)不能出內(nèi)網(wǎng)二是業(yè)務(wù)術(shù)語(yǔ)貨運(yùn)行業(yè)的“搶單”“拼車”“多聯(lián)單”“候鳥(niǎo)車隊(duì)”這些詞通用模型理解得很淺三是定制化要求文案要和品牌調(diào)性對(duì)齊不能一股“通用味”。綜合判斷我們最終選擇的是“開(kāi)源底座私有化部署領(lǐng)域微調(diào)”的主路線API模型只用來(lái)做并行候選集的補(bǔ)充。底座模型當(dāng)時(shí)考慮過(guò)幾條線最終選擇了中文能力扎實(shí)、社區(qū)生態(tài)豐富的開(kāi)源系模型核心原因是可控和可改。營(yíng)銷文案場(chǎng)景不需要模型具備非常深的推理能力參數(shù)量在7B到14B之間就夠用這個(gè)規(guī)模在推理成本和生成質(zhì)量之間比較平衡。后續(xù)基于這套底座做了LoRA微調(diào)把貨運(yùn)行業(yè)的知識(shí)和營(yíng)銷話術(shù)注入進(jìn)去。選型過(guò)程里有一個(gè)容易被忽略的點(diǎn)除了看模型跑分還要看模型的商用協(xié)議、社區(qū)活躍度、周邊的推理部署工具鏈?zhǔn)欠癯墒煲约皥F(tuán)隊(duì)是否熟悉其訓(xùn)練框架。跑分最高的模型如果團(tuán)隊(duì)沒(méi)人用過(guò)出了問(wèn)題排查成本極高這不叫選型叫賭博。2.2 生成鏈路與系統(tǒng)架構(gòu)設(shè)計(jì)系統(tǒng)整體是一套內(nèi)容與策略中臺(tái)底層的服務(wù)劃分為四層。最底下是基礎(chǔ)設(shè)施層包含GPU推理集群和向量數(shù)據(jù)庫(kù)。推理集群用vLLM作為推理引擎支撐多模型并發(fā)向量數(shù)據(jù)庫(kù)存的是歷史高轉(zhuǎn)化文案、品牌語(yǔ)料和活動(dòng)規(guī)則的embedding用來(lái)做檢索增強(qiáng)。中間是模型服務(wù)層負(fù)責(zé)文案生成、素材生成、人群語(yǔ)義圈選和策略推薦幾個(gè)核心服務(wù)。上層是業(yè)務(wù)編排層做審核、去重、渠道適配、級(jí)聯(lián)兜底。最頂層是面向運(yùn)營(yíng)同學(xué)的作業(yè)臺(tái)提供批量生成、預(yù)覽修改、一鍵發(fā)布的能力。為什么單獨(dú)搞一個(gè)業(yè)務(wù)編排層而不是所有邏輯都在模型服務(wù)層處理因?yàn)樵谡鎸?shí)業(yè)務(wù)里大模型的輸出永遠(yuǎn)不能直接發(fā)出去要過(guò)三道關(guān)合規(guī)審核關(guān)、品牌一致性關(guān)、渠道適配關(guān)。后面會(huì)具體講這三道關(guān)卡的內(nèi)容。說(shuō)到底大模型在這個(gè)系統(tǒng)里是“發(fā)動(dòng)機(jī)”但整個(gè)車輛還需要變速箱和剎車編排層干的就是這個(gè)活。鏈路設(shè)計(jì)上做了一條主流程運(yùn)營(yíng)發(fā)起需求描述活動(dòng)目標(biāo)、目標(biāo)人群、優(yōu)惠力度和投放渠道系統(tǒng)先通過(guò)RAG拉取相關(guān)的高轉(zhuǎn)化歷史文案作為參照再構(gòu)造prompt交給大模型生成候選集隨后經(jīng)過(guò)規(guī)則審核、模型打分和人工抽檢后輸出最終可用內(nèi)容同時(shí)把本次生成好的內(nèi)容回流進(jìn)向量庫(kù)。整套鏈路跑下來(lái)單次內(nèi)容生產(chǎn)的端到端耗時(shí)控制在30秒左右。2.3 提示詞工程與上下文工程的配合很多人把提示詞工程理解為寫(xiě)幾個(gè)漂亮的prompt模板實(shí)際完全不是這樣。我們?cè)趯?shí)踐里把提示詞工程拆成兩部分一部分是面向大模型的指令設(shè)計(jì)另一部分是基于檢索的上下文管理這兩者合起來(lái)才是完整的上下文工程。在指令設(shè)計(jì)上最開(kāi)始踩了個(gè)坑prompt越詳細(xì)模型反而越容易在一些次要約束上“過(guò)度發(fā)揮”。比如強(qiáng)調(diào)“要有創(chuàng)意”它就給你來(lái)一堆押韻和網(wǎng)絡(luò)熱詞強(qiáng)調(diào)“貼合司機(jī)師傅的口味”它就滿屏“兄弟”“老鐵”。后來(lái)我們把prompt的結(jié)構(gòu)固定下來(lái)分成角色定義、任務(wù)描述、業(yè)務(wù)約束、示例參考、輸出格式五段每一段只做一件事業(yè)務(wù)約束用編號(hào)列舉示例參考只給2到3個(gè)正例。測(cè)試下來(lái)結(jié)構(gòu)化的prompt比長(zhǎng)篇大論的描述在業(yè)務(wù)指標(biāo)上高出大概兩成。上下文工程解決的是檢索增強(qiáng)的問(wèn)題。我們把歷史高轉(zhuǎn)化文案、活動(dòng)規(guī)則、品牌禁忌詞庫(kù)、當(dāng)季投放策略文檔都做了向量化在生成時(shí)根據(jù)當(dāng)前活動(dòng)的語(yǔ)義檢索出最相關(guān)的內(nèi)容拼進(jìn)上下文。這里的關(guān)鍵點(diǎn)是控制上下文總長(zhǎng)度7B模型的上下文窗口雖然有32K營(yíng)銷場(chǎng)景根本用不完上下文太長(zhǎng)反而會(huì)稀釋模型對(duì)核心指令的注意力。我們實(shí)踐下來(lái)單個(gè)生成任務(wù)的上下文控制在1.5K到2K token這個(gè)區(qū)間指令、示例、檢索內(nèi)容的比例大概在1比1比1效果最穩(wěn)。3. 核心環(huán)節(jié)實(shí)現(xiàn)從文案到素材再到定向3.1 高轉(zhuǎn)化文案的生成鏈路實(shí)現(xiàn)細(xì)節(jié)文案生成是整個(gè)系統(tǒng)最先落地、也是價(jià)值最直觀的模塊。實(shí)現(xiàn)的流程是接收活動(dòng)參數(shù)以后先做一次渠道適配判斷。同一個(gè)活動(dòng)在App彈窗、短信、push和抖音投放上的文案風(fēng)格約束完全不一樣推送渠道字?jǐn)?shù)嚴(yán)格受限投放渠道要特別注意標(biāo)題黨風(fēng)險(xiǎn)短信渠道還要考慮運(yùn)營(yíng)商攔截策略。這個(gè)判斷規(guī)則不是讓模型來(lái)做而是編排層先用代碼判斷好再傳不同的約束參數(shù)給模型。prompt構(gòu)造上面已經(jīng)說(shuō)過(guò)舉一個(gè)實(shí)際例子。拉新活動(dòng)“新司機(jī)注冊(cè)完成首單獎(jiǎng)50元現(xiàn)金”的prompt里任務(wù)描述要求輸出一句20字以內(nèi)的push文案和一句15字以內(nèi)的短標(biāo)題業(yè)務(wù)約束是必須包含“首單”“現(xiàn)金”兩個(gè)關(guān)鍵詞不得出現(xiàn)“大師”“穩(wěn)賺”等誘導(dǎo)性詞匯不得使用“最高”“第一”等絕對(duì)化用語(yǔ)示例參考給一條往期點(diǎn)擊率較高的司機(jī)端文案格式嚴(yán)格對(duì)齊輸出要求。模型生成后的候選集會(huì)經(jīng)過(guò)一次去重和相似度過(guò)濾避免十條候選都是同一個(gè)句式。落地過(guò)程中特別注意了一個(gè)問(wèn)題文案的情感傾向調(diào)節(jié)。司機(jī)師傅群體和貨主群體的內(nèi)容偏好差異很大前者更吃“多勞多得”“穩(wěn)定接單”這類表達(dá)后者更在意“便宜”“快”“省心”。我們沒(méi)有在單個(gè)模型里硬調(diào)這兩個(gè)方向而是通過(guò)上下文工程在生成時(shí)注入不同的人群偏好語(yǔ)料讓同一個(gè)底座模型在不同prompt上下文下產(chǎn)出不同風(fēng)格的文案比訓(xùn)練兩個(gè)獨(dú)立模型更容易維護(hù)。3.2 圖片素材與視頻腳本的生成文案上線以后運(yùn)營(yíng)同學(xué)反饋?zhàn)疃嗟氖恰拔陌赣辛藞D呢”于是第二期我們做了素材生成。圖片素材分兩個(gè)方向一類是模板化素材比如優(yōu)惠券彈窗背景圖、banner底圖這些圖不需要復(fù)雜的創(chuàng)意主要是把文案和品牌元素拼起來(lái)另一類是主視覺(jué)KV傳統(tǒng)做法是設(shè)計(jì)師出草稿討論幾輪以后定稿我們?cè)囍汛竽P蜕傻膭?chuàng)意描述直接接到AI繪圖流程上。實(shí)踐中發(fā)現(xiàn)純靠AI繪圖工具直接出圖很難可控經(jīng)常出現(xiàn)品牌元素變形、文字亂碼、風(fēng)格不統(tǒng)一的問(wèn)題。后來(lái)改成“大模型出畫(huà)面描述AI繪圖出草圖設(shè)計(jì)師精修”的半自動(dòng)流程大模型根據(jù)活動(dòng)主題生成構(gòu)圖描述包括主體、場(chǎng)景、色調(diào)、光影、畫(huà)面文字AI繪圖工具根據(jù)描述生成3到5版草稿設(shè)計(jì)師在草稿基礎(chǔ)上選擇一版精修。實(shí)測(cè)單張主視覺(jué)的制作時(shí)間從原來(lái)的8小時(shí)壓縮到3小時(shí)以內(nèi)設(shè)計(jì)師從零開(kāi)始畫(huà)變成了改圖產(chǎn)能釋放非常明顯。視頻腳本生成同樣走了這套思路。15秒短視頻拆成逐幀分鏡描述大模型生成旁白、畫(huà)面建議、字幕內(nèi)容和拍攝提示然后由視頻制作同學(xué)按照分鏡腳本進(jìn)行實(shí)拍或剪輯。這里要提醒一句大模型生成旁白沒(méi)問(wèn)題但讓它直接生成的完整短視頻目前在可控性和素材合規(guī)性上還不適合量產(chǎn)分鏡腳本這個(gè)中間產(chǎn)物是目前最實(shí)用的折中方案。3.3 智能人群圈選與投放策略人群圈選是技術(shù)含量最高、推進(jìn)難度也最大的模塊。我們建設(shè)了一套基于語(yǔ)義標(biāo)簽的人群圈選服務(wù)運(yùn)營(yíng)同學(xué)在界面上用自然語(yǔ)言輸入比如“最近30天發(fā)單超過(guò)5次但沒(méi)有使用過(guò)搬家服務(wù)的同城貨運(yùn)貨主”系統(tǒng)先把自然語(yǔ)言解析成標(biāo)簽組合再自動(dòng)映射到底層用戶畫(huà)像系統(tǒng)生成人群包整個(gè)過(guò)程從過(guò)去的半天縮短到十分鐘以內(nèi)。實(shí)現(xiàn)上依賴兩點(diǎn)一是標(biāo)簽體系本身要完整語(yǔ)義映射才有對(duì)象我們接入了內(nèi)部原有的數(shù)百個(gè)用戶標(biāo)簽二是需要一個(gè)語(yǔ)義理解能力較強(qiáng)的解析層這個(gè)地方我們用大模型完成自然語(yǔ)言到標(biāo)簽表達(dá)式的轉(zhuǎn)換。具體做法是把標(biāo)簽?zāi)夸洝?biāo)簽釋義、標(biāo)簽之間的關(guān)系作為上下文注入prompt讓模型輸出結(jié)構(gòu)化的標(biāo)簽表達(dá)式再用規(guī)則引擎做一次合法性校驗(yàn)防止模型生成了不存在的標(biāo)簽。投放策略優(yōu)化這個(gè)模塊上線比較晚做的是預(yù)算分配建議。模型輸入是各渠道的歷史消耗、轉(zhuǎn)化成本、ROI數(shù)據(jù)和當(dāng)前活動(dòng)目標(biāo)輸出是渠道預(yù)算占比建議。這個(gè)模塊我們沒(méi)有完全交給大模型決定采取的是“大模型出建議、人工確認(rèn)后生效”的半自動(dòng)模式因?yàn)轭A(yù)算分配涉及真金白銀模型的因素分析邏輯再完善也需要業(yè)務(wù)負(fù)責(zé)人兜底。用一個(gè)生活化的比喻大模型是軍師可以出謀劃策但最終拍板的還是主帥。4. 模型微調(diào)實(shí)戰(zhàn)數(shù)據(jù)、參數(shù)與評(píng)估4.1 微調(diào)數(shù)據(jù)從哪來(lái)三個(gè)來(lái)源與構(gòu)造方法微調(diào)是整個(gè)項(xiàng)目里最耗時(shí)、也最決定成敗的環(huán)節(jié)。很多團(tuán)隊(duì)上來(lái)就問(wèn)訓(xùn)練參數(shù)怎么設(shè)其實(shí)如果數(shù)據(jù)質(zhì)量不過(guò)關(guān)參數(shù)調(diào)得再花哨也沒(méi)用。我們的微調(diào)數(shù)據(jù)來(lái)源有三個(gè)。第一是歷史高轉(zhuǎn)化文案的改寫(xiě)。把過(guò)去兩年里點(diǎn)擊率、轉(zhuǎn)化率表現(xiàn)靠前的營(yíng)銷文案找出來(lái)每個(gè)文案配上對(duì)應(yīng)的活動(dòng)信息結(jié)構(gòu)整理成“輸入-期望輸出”的樣本對(duì)。這個(gè)過(guò)程要特別小心高轉(zhuǎn)化文案里有一部分是因?yàn)楫?dāng)時(shí)的投放預(yù)算高不完全是文案本身好人工篩選時(shí)要剔除這類干擾樣本。第二是人工撰寫(xiě)的高質(zhì)量樣例。我們組織了有十年經(jīng)驗(yàn)的運(yùn)營(yíng)專家和資深文案每人基于真實(shí)的業(yè)務(wù)場(chǎng)景手寫(xiě)一批標(biāo)準(zhǔn)答案這批數(shù)據(jù)數(shù)量最少但質(zhì)量最高相當(dāng)于給模型注入“行業(yè)標(biāo)桿”。第三是大模型輔助生成加人工校驗(yàn)。先用公版API大模型生成一批候選然后由人工修改、打分達(dá)標(biāo)后進(jìn)入訓(xùn)練集這個(gè)方式能在有限人力下把數(shù)據(jù)規(guī)模擴(kuò)充起來(lái)。數(shù)據(jù)量方面我們最終微調(diào)用到的有效樣本數(shù)是兩萬(wàn)多條覆蓋文案、素材描述、人群圈選表達(dá)式三類任務(wù)。一開(kāi)始有人建議用十萬(wàn)條數(shù)據(jù)實(shí)測(cè)下來(lái)堆數(shù)量的邊際效益很低當(dāng)樣本覆蓋了核心場(chǎng)景后多出來(lái)的只是重復(fù)模式。每條訓(xùn)練數(shù)據(jù)都做了標(biāo)簽體系校驗(yàn)壞數(shù)據(jù)寧可扔掉也不讓它進(jìn)訓(xùn)練集。4.2 微調(diào)訓(xùn)練的關(guān)鍵細(xì)節(jié)與參數(shù)設(shè)置訓(xùn)練部分我們用的是LoRA方案沒(méi)有做全參數(shù)微調(diào)。原因很務(wù)實(shí)全參數(shù)微調(diào)需要幾十張卡LoRA只需要幾張卡就能跑起來(lái)且底座模型的能力不容易被破壞。LoRA的秩我們?cè)O(shè)置為32通過(guò)alpha設(shè)為64學(xué)習(xí)率設(shè)置在2e-4左右訓(xùn)練輪數(shù)控制在2到3輪。這里有個(gè)容易踩的坑訓(xùn)練輪數(shù)過(guò)多模型在訓(xùn)練集上表現(xiàn)很好但生成內(nèi)容的多樣性斷崖式下降同一個(gè)活動(dòng)中所有文案長(zhǎng)一個(gè)樣。我們專門(mén)做過(guò)一輪測(cè)試把訓(xùn)練輪數(shù)從1加到53輪以后BLEU確實(shí)還在漲但人工評(píng)估的創(chuàng)意分開(kāi)始下跌。后來(lái)固定用早停策略以驗(yàn)證集上的人工評(píng)估分為準(zhǔn)而不是以loss為準(zhǔn)。另外一個(gè)很關(guān)鍵的細(xì)節(jié)是混合訓(xùn)練。開(kāi)始我們按任務(wù)分開(kāi)訓(xùn)練一個(gè)文案模型、一個(gè)人群圈選模型發(fā)現(xiàn)兩個(gè)模型在小樣本任務(wù)上都不太穩(wěn)定。后來(lái)改成混合訓(xùn)練把三類任務(wù)的數(shù)據(jù)合在一起做多任務(wù)微調(diào)。效果出乎意料地好人群圈選模型的準(zhǔn)確率上升了文案模型的風(fēng)格穩(wěn)定性也變好了模型對(duì)任務(wù)的邊界理解更清楚。個(gè)人經(jīng)驗(yàn)是相關(guān)任務(wù)合并訓(xùn)練產(chǎn)生的正向遷移比單一任務(wù)訓(xùn)練的專注優(yōu)勢(shì)更明顯。訓(xùn)練過(guò)程中的顯存優(yōu)化也要說(shuō)一句。雖然LoRA已經(jīng)比全參微調(diào)省顯存但7B模型在batch size調(diào)大的時(shí)候還是容易OOM。我們用到了梯度累積、序列長(zhǎng)度動(dòng)態(tài)padding和混合精度訓(xùn)練實(shí)測(cè)下來(lái)訓(xùn)練顯存可以壓到單卡48G以內(nèi)時(shí)間成本也能接受。4.3 效果評(píng)估體系不能只看ROUGE和BLEU評(píng)估體系建設(shè)是這段實(shí)踐里最有體感的部分。純看ROUGE、BLEU這種文本相似度指標(biāo)在營(yíng)銷文案場(chǎng)景下基本沒(méi)用。一個(gè)文案可能和參考文案完全不重合但用戶就是喜歡點(diǎn)擊率就是高另一個(gè)文案字字接近參考發(fā)出去就是沒(méi)人點(diǎn)。文本相似度指標(biāo)只能用來(lái)篩“病句級(jí)”的錯(cuò)誤篩不出“用戶是否愿意點(diǎn)”。我們的離線評(píng)估體系分三層。第一層是規(guī)則合規(guī)評(píng)估檢查是否包含禁用詞、是否包含必要活動(dòng)信息、字?jǐn)?shù)是否在渠道限制內(nèi)、是否存在誘導(dǎo)性表述這一層在pipeline里用代碼執(zhí)行。第二層是模型偏好打分用一個(gè)小規(guī)模打分模型對(duì)生成文案從賣點(diǎn)突出度、行動(dòng)引導(dǎo)強(qiáng)度、人群匹配度三個(gè)維度打分這個(gè)打分不追求絕對(duì)精確主要是做候選集排序把模型生成的10條候選篩掉明顯的差選項(xiàng)。第三層是人工評(píng)估每周抽取一定比例的生成內(nèi)容由運(yùn)營(yíng)團(tuán)隊(duì)的資深同事按統(tǒng)一評(píng)分卡打分。在線上評(píng)估環(huán)節(jié)我們做的不是整體流量A/B測(cè)試而是把每個(gè)活動(dòng)的文案系統(tǒng)生成版本和人工版本做對(duì)照。剛開(kāi)始上線時(shí)系統(tǒng)版點(diǎn)擊率比人工版低10%左右經(jīng)過(guò)兩輪微調(diào)迭代后基本打平在部分促銷場(chǎng)景下還能高出兩到三個(gè)百分點(diǎn)。這個(gè)結(jié)論很重要大模型文案的目標(biāo)不是碾壓人工文案而是以更低成本達(dá)到和人工相近的效果這就已經(jīng)具備上線價(jià)值了。5. 部署上線與成本調(diào)優(yōu)5.1 推理部署方案與延遲優(yōu)化部署層面我們選擇的推理引擎是vLLM原因是它對(duì)并發(fā)和顯存的管理比較成熟支持連續(xù)批處理和PagedAttention機(jī)制能在同樣的GPU資源下服務(wù)更多并發(fā)請(qǐng)求。模型服務(wù)拆成預(yù)填充和解碼兩個(gè)階段分別優(yōu)化營(yíng)銷文案任務(wù)普遍是短輸入長(zhǎng)輸出預(yù)填充階段算力消耗相對(duì)小解碼階段是主要瓶頸這部分通過(guò)增大并發(fā)批次來(lái)提升吞吐。延遲方面運(yùn)營(yíng)同學(xué)在作業(yè)臺(tái)上點(diǎn)一次“生成”如果等太久體驗(yàn)會(huì)很差。我們的優(yōu)化目標(biāo)是P95延遲小于5秒。實(shí)測(cè)下來(lái)7B模型在單張A10上開(kāi)8并發(fā)單次生成10條短文案的時(shí)間在3秒左右符合預(yù)期。人群圈選表達(dá)式生成的輸入稍長(zhǎng)一些延遲在5到6秒也在可接受范圍。對(duì)于素材生成這類非實(shí)時(shí)任務(wù)我們走的是異步隊(duì)列不需要追求低延遲更看重吞吐和穩(wěn)定性。另外部署時(shí)做了模型的熱切換機(jī)制。新版本模型訓(xùn)練完成后先在小流量上灰度觀察生成質(zhì)量和穩(wěn)定性確認(rèn)沒(méi)問(wèn)題后再切到全量?;叶绕陂g新舊模型并行部署流量按比例分配這套機(jī)制保證了兩輪微調(diào)迭代過(guò)程中線上服務(wù)沒(méi)有出現(xiàn)一次斷檔。很多團(tuán)隊(duì)忽略了這個(gè)工程細(xì)節(jié)模型訓(xùn)練得再好發(fā)布流程不順暢也會(huì)拖累整體進(jìn)度。5.2 成本控制蒸餾、緩存和兜底策略大模型落地的賬必須算清楚。我們先算了一筆賬假如每天白天的生成請(qǐng)求量在五萬(wàn)次左右單次生成平均消耗3000 token一天的token消耗在1.5億左右如果純靠GPU推理支撐按當(dāng)時(shí)的資源價(jià)格一個(gè)月推理成本是筆不小的數(shù)目??刂瞥杀居袔讉€(gè)辦法。第一是模型蒸餾。我們用大模型產(chǎn)出高質(zhì)量樣本去訓(xùn)練一個(gè)參數(shù)量更小的蒸餾模型專門(mén)負(fù)責(zé)離線批量生成和低延遲場(chǎng)景。實(shí)測(cè)下來(lái)小模型的文案質(zhì)量能達(dá)到大模型的八成以上但推理成本不到原來(lái)的三分之一。第二是結(jié)果緩存。營(yíng)銷文案的請(qǐng)求有很強(qiáng)的復(fù)用性同一個(gè)活動(dòng)的文案在多個(gè)渠道、多個(gè)時(shí)間點(diǎn)會(huì)重復(fù)生成類似的內(nèi)容我們把歷史生成的高質(zhì)量結(jié)果按“活動(dòng)類型人群偏好渠道”維度做緩存命中率能到兩成以上這相當(dāng)于直接省掉了對(duì)應(yīng)的推理開(kāi)銷。第三是兜底降級(jí)策略。在線的低成本優(yōu)先模式當(dāng)小模型生成結(jié)果經(jīng)過(guò)質(zhì)量分過(guò)濾達(dá)標(biāo)率過(guò)低時(shí)才升級(jí)到大模型重新生成大模型再生成的結(jié)果如果還不達(dá)標(biāo)就交給人工處理。這一套組合拳打下來(lái)整體推理成本比全量跑大模型節(jié)省了七成左右。我的體會(huì)是不要在模型層面省成本要在一套完整的成本控制機(jī)制里面省成本單一手段能給到的空間始終有限。6. 踩坑合集與常見(jiàn)問(wèn)題速查6.1 踩過(guò)的坑幻覺(jué)、風(fēng)格失控和數(shù)據(jù)污染排第一的坑是模型幻覺(jué)。營(yíng)銷文案里的活動(dòng)信息一旦出錯(cuò)就是事故級(jí)別的。比如把“首單獎(jiǎng)50元”寫(xiě)成“首單獎(jiǎng)100元”文案寫(xiě)得再漂亮都白搭。我們的對(duì)策是在prompt里把活動(dòng)信息結(jié)構(gòu)化傳入再在生成后用代碼解析出文案中的關(guān)鍵實(shí)體和活動(dòng)參數(shù)做逐一比對(duì)不一致就重新生成。寧可損失一點(diǎn)生成速度也要把信息準(zhǔn)確性兜住。第二個(gè)坑是風(fēng)格失控。網(wǎng)上的開(kāi)源語(yǔ)料里充斥著“震驚體”“標(biāo)題黨”和浮夸的網(wǎng)絡(luò)熱詞模型微調(diào)后在不用prompt約束的情況下很容易跑偏。解決方式除了前面說(shuō)的結(jié)構(gòu)化prompt以外我們?cè)谖⒄{(diào)數(shù)據(jù)里刻意加入了大量正常語(yǔ)氣的文案樣本用數(shù)據(jù)量壓住模型的“網(wǎng)感”。這實(shí)際上是在和語(yǔ)料分布對(duì)抗只靠訓(xùn)練后干預(yù)是掰不回來(lái)的。第三個(gè)坑是數(shù)據(jù)污染。有一次我們發(fā)現(xiàn)有網(wǎng)絡(luò)上的營(yíng)銷文案被當(dāng)成正樣本混進(jìn)了高轉(zhuǎn)化樣本模型生成的東西開(kāi)始出現(xiàn)過(guò)度夸張的表述。后來(lái)建立了樣本來(lái)源打標(biāo)機(jī)制人工撰寫(xiě)的、歷史高轉(zhuǎn)化庫(kù)的、大模型生成人工校驗(yàn)的三類來(lái)源分開(kāi)管理評(píng)估時(shí)按來(lái)源分層看效果出現(xiàn)質(zhì)量問(wèn)題時(shí)能快速定位是哪一類數(shù)據(jù)的問(wèn)題。6.2 常用問(wèn)題排查與方法參考最后整理一張問(wèn)題速查表這幾類問(wèn)題是后續(xù)接手這套系統(tǒng)的同學(xué)大概率都會(huì)遇到的。問(wèn)題現(xiàn)象可能原因排查與解決思路生成文案信息錯(cuò)誤prompt約束不夠、關(guān)鍵實(shí)體未結(jié)構(gòu)化檢查活動(dòng)參數(shù)是否結(jié)構(gòu)傳入增加實(shí)體比對(duì)校驗(yàn)錯(cuò)誤則觸發(fā)重生成文案風(fēng)格千篇一律訓(xùn)練輪數(shù)過(guò)多或prompt示例過(guò)少降低訓(xùn)練輪數(shù)增加示例多樣性調(diào)高采樣temperature內(nèi)容審核不通過(guò)率高微調(diào)語(yǔ)料帶入了網(wǎng)絡(luò)不良表達(dá)檢查樣本來(lái)源清洗污染數(shù)據(jù)增加合規(guī)負(fù)樣本人群圈選表達(dá)式語(yǔ)法錯(cuò)誤標(biāo)簽映射語(yǔ)義不清晰或上下文不足完善標(biāo)簽釋義在prompt中加入標(biāo)簽間關(guān)系描述增加校驗(yàn)規(guī)則推理延遲忽高忽低并發(fā)波動(dòng)導(dǎo)致顯存排隊(duì)啟用連續(xù)批處理設(shè)置動(dòng)態(tài)并發(fā)上限離線任務(wù)與實(shí)時(shí)任務(wù)分池線上點(diǎn)擊率低于人工版多輪迭代仍未對(duì)齊人群偏好做分人群效果分析針對(duì)高價(jià)值人群人工補(bǔ)充微調(diào)樣本這套系統(tǒng)現(xiàn)在還在持續(xù)迭代大模型的版本更新很快我們的經(jīng)驗(yàn)是不要追著模型版本跑要把精力放在場(chǎng)景數(shù)據(jù)沉淀和評(píng)測(cè)體系完善上。模型底座是引擎業(yè)務(wù)數(shù)據(jù)和評(píng)測(cè)標(biāo)準(zhǔn)才是方向盤(pán)。方向上把握好營(yíng)銷廣告這個(gè)大模型應(yīng)用場(chǎng)景能挖的潛力還很大尤其是后續(xù)結(jié)合用戶實(shí)時(shí)行為數(shù)據(jù)做個(gè)性化文案生成以及在多模態(tài)素材方向上的進(jìn)一步自動(dòng)化都是值得繼續(xù)投入的方向。