基于ChatGPT的智能客服助手
導(dǎo)讀
傳統(tǒng)客服領(lǐng)域,具有大量依賴人工,數(shù)據(jù)密集等特點(diǎn)。面對大量的用戶提問,人工客服需要根據(jù)用戶的問題,從大量數(shù)據(jù)中找出與用戶問題相關(guān)的數(shù)據(jù),再組織語言進(jìn)行回答。響應(yīng)時(shí)間受限于人工客服的工作經(jīng)驗(yàn)和業(yè)務(wù)場景的復(fù)雜程度,耗時(shí)較長時(shí)會嚴(yán)重影響用戶的購物體驗(yàn)。
智能客服,是指借助Large Language Model(LLM)擁有的出色的自然語言處理與理解能力,融合私有數(shù)據(jù)構(gòu)建特定場景的智能客服系統(tǒng),為人工客服提供有力支持,提高人工客服的服務(wù)效率與服務(wù)質(zhì)量。
1.應(yīng)用場景與系統(tǒng)框圖
用戶看到的商品展示界面有詳細(xì)的商品參數(shù)和質(zhì)檢報(bào)告,商品參數(shù)包含商品的基本信息,質(zhì)檢報(bào)告為轉(zhuǎn)轉(zhuǎn)質(zhì)檢部門出具的權(quán)威檢測報(bào)告,方便用戶了解二手商品的真實(shí)狀況。
商品詳情頁
用戶在轉(zhuǎn)轉(zhuǎn)App上與客服的談話內(nèi)容大致可分成:商品參數(shù)咨詢,質(zhì)檢報(bào)告咨詢,優(yōu)惠活動咨詢,平臺政策咨詢,售后咨詢,閑聊問候六大類。人工客服在遇到用戶咨詢商品參數(shù)和質(zhì)檢報(bào)告時(shí),需要從種類繁多的商品詳情和質(zhì)檢項(xiàng)中找到客戶問題相關(guān)的項(xiàng),再給出用戶相應(yīng)的解答。從用戶點(diǎn)擊商品的全部數(shù)據(jù)中搜索答案是比較耗時(shí)的,需要人工客服對用戶咨詢的商品參數(shù)較為了解,以便快速響應(yīng)用戶的問題。
讓我們利用ChatGPT的自然語言處理與理解能力,輔助人工客服實(shí)現(xiàn)從大段的商品詳情和質(zhì)檢報(bào)告中找出用戶感興趣的項(xiàng),并解答用戶的問題吧。
整個(gè)智能客服系統(tǒng)的框圖如下圖所示:用戶發(fā)起人工咨詢對話,首先分配客服,用戶的點(diǎn)擊商品信息同步給客服,然后智能客服系統(tǒng)給出輔助信息,客服決定采納與否,給用戶提供解答,一次會話結(jié)束。
系統(tǒng)框圖
智能客服系統(tǒng)分為三個(gè)模塊:用戶問題分類模塊,知識篩選模塊和ChatGPT智能客服模塊。一期系統(tǒng)只有ChatGPT智能客服模塊,二期和三期優(yōu)化增加了用戶問題分類模塊和知識篩選模塊。讓我們一起來看看它的創(chuàng)建流程吧。
2.搭建基于ChatGPT的智能客服助手
2.1 ChatGPT原理
ChatGPT為Open AI開發(fā)的LLM,GPT的全稱是Generative Pre-Trained Transformer。ChatGPT屬于GPT系列的預(yù)訓(xùn)練語言模型,GPT系列模型包括GPT-1,GPT-2和GPT-3,GPT系列模型的參數(shù)量見下表。
模型 | 發(fā)布時(shí)間 | 層數(shù) | 參數(shù)量 |
GPT-1 | 2018-06 | 12 | 1.17億 |
Bert | 2018-10 | 12 | 1.15億 |
GPT-2 | 2019-02 | 48 | 15億 |
GPT-3 | 2020-05 | 96 | 1750億 |
模型規(guī)模的指數(shù)級擴(kuò)張,帶來了模型理解能力質(zhì)的躍升。但是模型的理解并沒有與用戶的意圖做對齊。ChatGPT以GPT-3為基礎(chǔ),訓(xùn)練網(wǎng)絡(luò)采用了提示學(xué)習(xí)(Prompt Learning)和人類反饋的強(qiáng)化學(xué)習(xí)來訓(xùn)練網(wǎng)絡(luò),使模型可以聽從指令,輸出對人類有用,可信和無害的回答[1-2]。提示學(xué)習(xí)屬于元學(xué)習(xí)的一種,通過將任務(wù)信息告訴模型,訓(xùn)練網(wǎng)絡(luò)學(xué)會學(xué)習(xí)(learn to learn)。這種方式將NLP各種任務(wù)都?xì)w一為文本生成任務(wù)。提示學(xué)習(xí)挖掘模型本身已經(jīng)學(xué)到的知識,指令(Prompt)可以激發(fā)模型的補(bǔ)全能力。而基于人類反饋的強(qiáng)化學(xué)習(xí),根據(jù)人類對預(yù)測內(nèi)容的偏好,訓(xùn)練了一個(gè)獎(jiǎng)勵(lì)函數(shù),將這個(gè)反應(yīng)人類偏好的獎(jiǎng)勵(lì)函數(shù)作為強(qiáng)化學(xué)習(xí)的獎(jiǎng)勵(lì),通過最近策略優(yōu)化(proximal policy optimization)訓(xùn)練網(wǎng)絡(luò)策略使獎(jiǎng)勵(lì)最大。
2.2 Prompt設(shè)計(jì)
ChatGPT好比一個(gè)知識庫,想要從這個(gè)知識庫獲取我們需要的知識,需要清晰的指令。通過清晰指令告訴ChatGPT它要完成的工作是什么,以及要完成工作需要的詳細(xì)步驟,同時(shí)給出一些簡單的示例,可以幫助ChatGPT更好地理解并執(zhí)行我們的指令。一個(gè)標(biāo)準(zhǔn)的指令由以下五部分組成:
(1)任務(wù)描述
(2)背景知識注入
(3)輸出格式地約定
(4)舉例說明,包括樣例輸入,樣例輸出
(5)給出輸入數(shù)據(jù)
這里以轉(zhuǎn)轉(zhuǎn)智能客服為例,設(shè)計(jì)這個(gè)場景的Prompt:
現(xiàn)在你的身份是一個(gè)電商客服,請根據(jù)下面給出的商品信息和質(zhì)檢信息,回答用戶的問題,回答問題時(shí)要根據(jù)商品信息和質(zhì)檢信息相關(guān)項(xiàng)給出精簡的答案。商品參數(shù):{$product_info},質(zhì)檢信息:{$quality_info}。
AI:請問您有什么問題要咨詢的嗎?
user:電池有維修更換嗎?
AI:根據(jù)質(zhì)檢報(bào)告電池檢測項(xiàng),該電池由平臺更換,更換電池品牌為全新海斯電池。
User:電池容量是多大?
整個(gè)Prompt可劃分為四部分,第一部分介紹任務(wù),第二部分做知識注入,變量product_info和quality_info分別對應(yīng)商品詳情和質(zhì)檢報(bào)告,第三部分做任務(wù)舉例,第四部分給出用戶問題。LLM具有few-shot學(xué)習(xí)能力,通過幾個(gè)簡單的例子告訴模型期待的答案是什么,可以引導(dǎo)LLM按照我們預(yù)期的方式完成任務(wù)。此時(shí)我們得到的ChatGPT的答復(fù)是電池容量為2815mAh。
這里以人工客服采納智能客服建議的接納度來衡量智能客服的服務(wù)質(zhì)量。商品參數(shù)咨詢問題的采納度為20%,質(zhì)檢項(xiàng)咨詢的采納度為6.4%,而閑聊問候和優(yōu)惠活動這種類型的咨詢更偏好人工客服?;贑hatGPT的智能客服,用戶問題的響應(yīng)耗時(shí)在5-10s,人工客服的響應(yīng)耗時(shí)在30s左右,智能客服的響應(yīng)速度更快。ChatGPT API的調(diào)用按token收費(fèi)。目前智能客服運(yùn)行成本0.12元/會話。
3.智能客服系統(tǒng)二期優(yōu)化之用戶問題分類
不同類型的用戶咨詢,智能客服給出建議的采納度也有較大差異。在商品參數(shù)咨詢和質(zhì)檢項(xiàng)咨詢問題上,智能客服意見的采納度較高,幫助人工客服提高用戶問題的響應(yīng)速度。而對于閑聊問題等問題,智能客服給出的建議采納度較低。
在ChatGPT智能客服模塊前置一個(gè)用戶問題分類模型,將分類結(jié)果為商品參數(shù)咨詢和質(zhì)檢報(bào)告咨詢的問題送至基于ChatGPT的智能客服系統(tǒng),進(jìn)一步降本增效。用戶問題分類模型采用 Bert做文本分類任務(wù)。接下來簡要介紹Bert分類在該場景的應(yīng)用。
3.1 Bert簡介
Bert為2018年谷歌提出的預(yù)訓(xùn)練語言模型[3],模型采用了Transformer的Encode端,基于多頭自注意力機(jī)制捕獲句子中的上下文信息。預(yù)訓(xùn)練階段采用完形填空任務(wù)和上下句判斷任務(wù)訓(xùn)練網(wǎng)絡(luò)。應(yīng)用于下游任務(wù)時(shí),可采用CLS位的特征向量作為句向量,在網(wǎng)絡(luò)后接入Linear層進(jìn)行句子的分類。
Bert結(jié)構(gòu)圖
Bert模型在預(yù)訓(xùn)練階段采用了33億文本語料進(jìn)行訓(xùn)練,網(wǎng)絡(luò)對自然語言已有基本認(rèn)知?;贐ert預(yù)訓(xùn)練模型,去微調(diào)下游任務(wù),在很多領(lǐng)域都取得了很好的效果。
3.2 用戶問題分類網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)
人工標(biāo)注用戶問題分類的數(shù)據(jù)耗時(shí)較長,這里采用ChatGPT給出用戶問題的分類,作為Bert 微調(diào)階段的訓(xùn)練數(shù)據(jù)。
設(shè)計(jì)分類任務(wù)的Prompt:
請對用戶問題進(jìn)行文本分類,需要按照要求將用戶的問題分類到:[ '商品參數(shù)咨詢', '質(zhì)檢報(bào)告咨詢','售后咨詢', '平臺政策', '活動優(yōu)惠', '閑聊問候']類別中。
User:這個(gè)手機(jī)內(nèi)存是多大?
AI:商品參數(shù)咨詢
User:電池有拆修嗎?
AI:質(zhì)檢報(bào)告咨詢
User:下單后從哪里發(fā)貨?
AI:售后咨詢
User:支持7天無理由退貨嗎?
AI:平臺政策
User:你好
AI:閑聊問題
User:謝謝!
AI:閑聊問候
User:待機(jī)時(shí)長是多久?
3.3訓(xùn)練分類模型
訓(xùn)練數(shù)據(jù)集準(zhǔn)備好后,開始微調(diào)Bert。網(wǎng)絡(luò)的輸入為句子,文本經(jīng)過分詞器進(jìn)行分詞后,得到切分好的token序列。Bert輸入token的最大長度不得超過512,對于超長的序列,進(jìn)行截?cái)嗖僮?。在文本的頭尾加入”[cls]”和”[sep]”后,會進(jìn)行padding操作,方便網(wǎng)絡(luò)進(jìn)行批量化訓(xùn)練。根據(jù)Bert的字典將處理好的序列映射為對應(yīng)的id,就可以送入網(wǎng)絡(luò)進(jìn)行訓(xùn)練。由于自注意力無法捕捉位置信息,Bert在token embedding上疊加了位置embedding。
Bert輸入組成
接下來定義模型的結(jié)構(gòu),代碼如下:
Import torch.nn as nn
from transformers import BertModel
class Classifier(nn.Module):
def __init__(self,bert_model_path,num_classes):
super(Classifier,self).__init__()
self.bert = BertModel.from_pretrained(bert_model_path)
self.dropout = nn.Dropout(0.1)
self.fc = nn.Linear(768, num_classes)
def forward(self,tokens,masks):
_, pooled_output = self.bert(tokens, attention_mask=masks,return_dict=False)
x = self.dropout(pooled_output)
x = self.fc(x)
return x
Bert模型產(chǎn)出的特征維度為768,經(jīng)過Dropout層隨機(jī)mask一定比例的權(quán)重,送至Linear層,將特征向量映射到Label空間,num_classes對應(yīng)了Label空間的維度,這里我們要分類的種類有6類。訓(xùn)練采用AdamW優(yōu)化器,學(xué)習(xí)率為1e-5,訓(xùn)練了10輪。測試集上準(zhǔn)確率76.6%,f1 0.754。商品參數(shù)咨詢的f1 0.791,質(zhì)檢報(bào)告咨詢的f1 0.841。
圖片
訓(xùn)練loss與準(zhǔn)確率
通過前置的用戶問題分類模型,幫助智能客服系統(tǒng)篩選掉了一些采納度低,適合人工客服回答的問題,智能客服系統(tǒng)響應(yīng)用戶會話的成本降到了0.033元/會話,運(yùn)行費(fèi)用降低了72.5%。
4.智能客服系統(tǒng)三期優(yōu)化之商詳和質(zhì)檢項(xiàng)相關(guān)知識篩選
搭建智能客服時(shí)Prompt包含了商品的全部商品詳情和質(zhì)檢項(xiàng)信息,并未考慮這些項(xiàng)與用戶問題的相關(guān)性。比如用戶問題是電池相關(guān)的,做商品詳情和質(zhì)檢項(xiàng)的知識注入時(shí),可以只注入電池相關(guān)的知識。token數(shù)量越長,ChatGPT處理所需時(shí)間也會越長。通過篩選與用戶問題相關(guān)的商詳和質(zhì)檢項(xiàng)做知識注入,可以進(jìn)一步壓縮完成一次會話所需token的數(shù)量,降低智能客服的運(yùn)行成本的同時(shí),也提升智能客服的響應(yīng)速度。
Bert計(jì)算兩個(gè)句子相似度時(shí),把兩個(gè)句子同時(shí)輸入Bert,進(jìn)行信息交互,計(jì)算速度是比較慢的,無法事先計(jì)算好句向量,語義搜索時(shí)比較慢。Sentence-Bert借鑒了孿生網(wǎng)絡(luò)的框架,將兩個(gè)句子送入兩個(gè)Bert模型中,這兩個(gè)模型的參數(shù)是共享的,網(wǎng)絡(luò)結(jié)構(gòu)[4]如下圖所示。Bert網(wǎng)絡(luò)輸出每個(gè)token的embedding向量,通過pooling策略生成句向量的表征。論文中分別用"[CLS]"位,平均池化,最大池化生成句向量的表征,實(shí)驗(yàn)表明pooling策略采用平均方式效果最好。得到的句向量計(jì)算兩者的余弦相似性,用來衡量這兩個(gè)句子的相似度。
SBert結(jié)構(gòu)圖
假設(shè)用戶問客服“電池具體多少?”,客服拿到的用戶點(diǎn)擊商品的詳情:95新 iPhone 12 128G 紫色 移動5G 聯(lián)通5G 電信5G 國行;網(wǎng)絡(luò)制式:全網(wǎng)通;購買渠道:國行;保修情況:過?;蛐∮?0天;電池健康值:85%-90%;系統(tǒng)版本:iOS 16.5.1;充電次數(shù):562;SIM卡:支持雙卡;來源:二手優(yōu)品;IMEI:352***833;履約服務(wù)信息:真的官方驗(yàn)、7天無理由、一年平臺質(zhì)保、順豐包郵、手機(jī)服務(wù)權(quán)益卡、寄存于長沙流轉(zhuǎn)中心,現(xiàn)在下單預(yù)計(jì)8月17日送達(dá);CPU型號:蘋果 A14;電池容量:2815mAh;CPU主頻:3.0GHz;解鎖方式:面部識別;是否支持快充:支持;充電峰值功率:20W;分辨率:2532*1170;屏幕尺寸:6.1英寸;主屏材質(zhì):OLED;上市時(shí)間:2020-10;操作系統(tǒng):iOS;屏幕類型:全面屏;后置攝像頭:1200萬像素+1200萬像素;前置攝像頭:1200萬像素;攝像頭總數(shù):三攝像頭(后二);機(jī)身重量:162g;機(jī)身尺寸:146.7*71.5*7.4mm;機(jī)身類型:直板。
客服拿到的用戶點(diǎn)擊商品的質(zhì)檢報(bào)告樣例(省略部分質(zhì)檢項(xiàng)):外殼外觀的情況-碎裂:無;外殼外觀的情況-劃痕:無;外殼外觀的情況-磨損:無;外殼外觀的情況-變形:無;外殼外觀的情況-脫膠/縫隙:無;外殼外觀的情況-外殼/其他:正常;外殼外觀的情況-刻字/圖:無;外殼外觀的情況-磕碰/掉漆:無;攝像頭外觀的情況-閃光燈:正常;攝像頭外觀的情況-前置攝像頭:正常;拆修浸液的情況-主板:無維修;拆修浸液的情況-機(jī)身:無維修更換;拆修浸液的情況-零件維修/更換:無維修更換;拆修浸液的情況-零件缺失:無缺失;拆修浸液的情況-浸液痕跡:無浸液痕跡;充電的情況-無線充電:正常;充電的情況-有線充電:正常;電池檢測的情況-電池:無維修更換;包裝及配件的情況-包裝盒:1;包裝及配件的情況-數(shù)據(jù)線:無;包裝及配件的情況-充電器:無。
可以看到商品詳情和質(zhì)檢項(xiàng)里只有少數(shù)項(xiàng)與用戶問題相關(guān),全部商詳和質(zhì)檢項(xiàng)做知識注入會浪費(fèi)很多token,導(dǎo)致ChatGPT需要在很長的序列里找相關(guān)信息回答用戶問題,響應(yīng)速度較慢,效率不高。這里通過Sentence-Bert計(jì)算用戶問題和商詳、質(zhì)檢項(xiàng)的句向量,根據(jù)余弦相似性挑選出最相關(guān)的top5商詳和質(zhì)檢項(xiàng)做知識的注入,ChatGPT基于該商品電池相關(guān)的知識給出用戶響應(yīng)。Top5商詳如下:電池容量:2815mAh,電池健康值:85%-90%,充電次數(shù):562,充電峰值功率:20W,機(jī)身尺寸:146.771.57.4mm,top5質(zhì)檢項(xiàng)如下:充電的情況-有線充電:正常,電池檢測的情況-電池:無維修更換,充電的情況-無線充電:正常,按鍵的情況-電源鍵:正常,包裝及配件的情況-充電器:無。此時(shí)ChatGPT智能客服給出的響應(yīng)為“電池容量為2815mAh”。原始知識注入token數(shù)為1228,經(jīng)過相關(guān)知識篩選,token數(shù)降為132,token數(shù)下降了89%。
知識篩選
5.總結(jié)
LLM具有的出色自然語言理解能力可以為各行各業(yè)賦能。傳統(tǒng)人工客服領(lǐng)域具有高度依賴人工,數(shù)據(jù)密集等特點(diǎn),大量未被充分處理的數(shù)據(jù)為LLM在這個(gè)場景落地提供了沃土。這里基于ChatGPT搭建的智能客服系統(tǒng)已上線,助力客服提高服務(wù)質(zhì)量與服務(wù)效能。
6.參考文獻(xiàn)
[1] Ouyang L , Wu J , Jiang X ,et al.Training language models to follow instructions with human feedback[J].arXiv e-prints, 2022.DOI:10.48550/arXiv.2203.02155.
[2] Brown T B , Mann B , Ryder N ,et al.Language Models are Few-Shot Learners[J]. 2020.DOI:10.48550/arXiv.2005.14165.
[3] Devlin J , Chang M W , Lee K ,et al.BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[J]. 2018.DOI:10.48550/arXiv.1810.04805.
[4] Reimers N , Gurevych I .Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks[J]. 2019.DOI:10.18653/v1/D19-1410.
關(guān)于作者
王安,資深NLP算法專家,負(fù)責(zé)搜索場景的用戶意圖理解,基于ChatGPT的智能客服的落地,在文本分類,實(shí)體識別,關(guān)系配對,問答場景有豐富落地經(jīng)驗(yàn)。微信號:tiantian_375699720,歡迎建設(shè)性交流。