當前位置:
首頁 > 最新 > 鵝廠優文!AI運維的實踐探索

鵝廠優文!AI運維的實踐探索

更多騰訊海量技術文章,請關注騰訊雲+社區:

https://cloud.tencent.com/developer


誕生背景

最近這些年,運維行業提出了不少概念,各種各樣的「XX運維」可以說是你方未唱罷我方已登場。然而,這些概念,都有一個共同點:專註於面向運維同學自身的工具和系統。

這些,其實都隱含了一個前提:DO分離後,開發和運維都做好自己的事情,然後就可以老死不相往來了。哦,還有一個另類,DevOps。雖然這個概念,在運維行業炒得更火,但它的初衷,其實是開發拋開運維單幹吧?只不過運維同學利用自己手握設備資源的優勢,發起了一波反攻,在固有的部署和運營領域以外,趁勢還染指了研發流程。天天忙著敲代碼做需求的開發們,也得了便利,就偃旗息鼓了。

當然,以上只是戲言。但有一點是事實:DO分離後,開發和運維之間,有了無形的隔閡。運維同學不熟悉研發環境,開發同學不熟悉運營系統。運維同學作為業務運營的主要責任方,運維崗位作為支撐崗位,而且是7*24小時支撐崗位,其職責要求能夠隨時隨地支持業務——無論是開發同學的緊急需求,還是硬體設備的自身故障。

開發同學希望運維同學能第一時間響應需求,緊急故障需要運維同學第一時間處理。然而,運維同學也是普通人。工作時間,會有開會,培訓,吃飯之類不處於隨時待命狀態的情況。非工作時間,各種瑣事更是多種多樣。

如何緩解這個矛盾呢?每天給IDC的機器上三炷香自然於事無補。正所謂求人不如求己,我們的幸福生活,需要我們自己來創造。我們專註於運維場景,藉助於AI技術,開發了智能運維機器人,為的就是緩解這一矛盾。


什麼是智能運維機器人?我們所開發的智能運維機器人,就是採用了人工智慧技術的,預設場景定位於日常運維諮詢和操作需求的,面向開發和運維兩類人群的,依託於企業IM工具的客服機器人。

這個定義不怎麼友好。眼見為實。這張截圖,就是披著企業微信外衣的智能運維機器人:

簡單來說,一方面,它是個智能客服機器人,能理解自然語言,能自動回答開發的諮詢問題,能執行開發的操作需求。另一方面,它不是一個單純的客服,它還是一個面向運維同學自己的移動運維平台。

智能運維機器人的這樣設計,自然是針對運維場景的特殊性而來。運維場景最典型的特點有以下三條:

? 操作類需求。不同於一般客服,諮詢需求的佔比並沒有排在第一位,反倒是操作類需求很可能佔到三分之二。所以,定位於運維場景的機器人,不僅要「說到」,更要「做到」。

? 移動運維平台。日常運營中,運維同學會用到一些運營系統或工具。在公司使用自然沒問題,一旦業務有問題時,需要在公司外使用,即使手頭有電腦,也得花好幾分鐘VPN先連到公司內網。第一,時間上不划算,第二,半夜三更的,VPN一次,折騰下來,說不定都就此睡意全消了。一個移動運維平台,對運維同學的工作生活平衡非常重要。

? 腳本開發。很多運維同學都有一定的開發能力。當然,有些運維同學的開發能力還很強。不過,對於不少運維同學來說,手機APP開發,門檻還是高了點。寫寫腳本就能完成的開發,才是他們想要的。

不管依託於哪種企業IM工具,披著什麼樣的「外衣」,智能運維機器人本質上是一個開發自助平台,也是一個移動運維平台。

作為開發自助平台,一方面,它依託於企業IM工具,開發在使用前不需要額外安裝配置。另一方面,通過自然語言處理技術,開發可以用聊天這種最自然的方式提出需求並得到解決。

這兩個特點,可以說,對於開發而言,使用這個自助平台的門檻為零。設計大師唐納德.諾曼說,好的設計,有兩個重要特徵,可視性(discoverability)和易通性(understanding)。簡單來說,就是看了就知道怎麼操作。對於這樣一個也面向開發,而不只是運維自嗨的產品而言,零使用門檻的重要性怎麼強調都不為過。

作為移動運維平台,用戶鑒權和聯通內網環境,企業IM工具已經內嵌了這兩個功能;參數提取,操作識別以及界面交互,智能運維機器人幫你做好。運維同學只需要按照規定的格式實現一個非同步的HTTP任務介面(一個任務發起,一個任務查詢)就可以添加自定義的工具了。

開發工作基本就是簡單的腳本。甚至後續我們會支持同步的HTTP任務介面。這一點切合運維工具定製化強,開發敏捷的特點。而且相比手機APP這個正統的移動運維平台,智能運維機器人的移動運維工具開發門檻低到大多數的運維同學都能夠邁過去。


說了那麼多,來看看我們的智能運維機器人的典型應用場景。智能運維機器人的應用場景可以分為兩類:

? 隨時響應用戶(主要是開發)的諮詢和操作需求

? 非工作時間運行運維自己定製的工具直接處理問題或者提供輔助信息

下面的截圖是幾個實際使用案例。

場景一:隨時隨地響應用戶諮詢

場景二:隨時隨地響應用戶操作需求

場景三:非工作時間手機處理告警

場景四:非工作時間獲取自定義輔助信息

這幾個使用案例只是拋磚引玉。比如,四個案例中,有兩個都是和告警有關的。實際上,理論上來講,告警處理的最高境界,應該是沒有告警,其次是告警出來後自動處理。讓告警發出來,就已經落入了下乘。

不過,一萬年太久,只爭朝夕。在更上乘更完整的解決方案出台前,先自己動手來個可以接受的妥協方案,未嘗不是一件可取的事情。而且,運維工作中,會遇到很多階段性的緊急需求。只要開發門檻足夠低,工具化就是值得的。

有了上述的介紹內容,相信大家對於智能運維機器人是什麼,能做些什麼,已經有了一定的印象。接下來詳細介紹智能運維機器人的技術方案。


智能運維機器人是基於企業IM工具的,它和用戶的交互界面,就是IM工具的會話窗口。我們定義會話有三種模式:

智能模式,這是默認的模式。智能模式下,會對用戶輸入的消息進行文本匹配,返回相應的匹配結果。

操作模式。操作模式不提供主動切換的入口,而是在智能模式下,當識別到用戶的輸入,是一種操作需求時,自動進入操作模式。而操作發起或取消後,又自動切換為默認的智能模式。

人工模式。人工模式是用戶主動點擊切換的。在人工模式下,用戶所有輸入直接透傳給運維賬號的值班人員。

以下是一條消息或一個事件的簡單處理流程:

智能運維機器人流程

考慮到一些小細節,實際處理邏輯比這個更複雜。比如,怎麼避免兩個智能運維機器人賬號相互「灌水」?怎麼回應用戶發送的純表情?又比如一些體驗問題。當FAQ庫里找不到用戶問題的回答時,我們會提供一個快捷菜單,列出一些常見的自助操作或文檔。那麼怎麼設計快捷菜單的出現時機?

作為智能客服的變種,對話系統是智能運維機器人的核心。上述流程圖中,只是簡單地寫了調用對話系統獲取結果。實際上,調用對話系統後的返回,會有幾種情況。具體如下圖所示:

和對話系統的交互

上圖其實透露了一點,我們的對話系統,技術選型並非是當前研究熱點的生成式模型,而是基於檢索的模型。這也是考慮到智能運維機器人的應用場景中,用戶和智能運維機器人交互時,不是想找個人聊聊天放鬆一下,而是想得到一個權威解答。

所以,我們利用運維賬號積累的用戶高頻問題和對應的標準化答案,構成了一個簡單易編輯可擴展的知識庫。對話系統的主要功能,就是把用戶問題和知識庫中的合適答案關聯起來。下圖就是對話系統的結構圖。其中,多輪引擎和圖譜引擎還在實現中。

對話系統結構示意

我們的這一套技術框架里,對於用戶的問題,會使用建有高效索引的檢索系統先召回部分高分的答案,再進行精確的匹配和排序。這種「粗排」和「精排」兩步走的方案,是很多信息檢索系統(包括推薦系統)的標準範式。添加一個「粗排」的步驟,可以排除大部分無關的候選集,大大減少需要精確排序的候選集。在知識庫的知識條目數很大的時候,耗時能夠指數級地減少。

「粗排」過後,我們就可以對召回的那部分候選的知識庫問答對做「精排」了。這個過程中,我們用到了兩大類的匹配模型。

一類是傳統的文本匹配模型。 這些模型都沒有用到深度學習,本質上就是判斷用戶問題和知識庫中的問題(及部分答案信息)的相似度(兩個文本串的相似)。根據匹配的語素單位分,可以基於字、基於詞、基於N-gram的多粒度的匹配。在簡單文本匹配方法里,有編輯距離和扎卡德係數等。在傳統信息檢索方法里,利用領域語料信息的檢索方法,如TFIDF,已經有更好平滑方法的BM25。

另一類,就是神經網路分類模型。 簡單來說,這個模型是這樣的:

神經網路分類模型

圖片比較抽象,接下來我們詳細說明一下。

在搜索引擎這類文本檢索的場景,查詢往往是幾個關鍵字,但是待查詢的文檔卻很長,不用擔心查詢的關鍵字和待查詢文本沒有交集。但是在問答的場景中,用戶問題和知識庫中的問題,很大概率沒有任何一個相同詞,但是仍然表達一個意思。

所以,我們藉助詞向量技術,將任何語素單位(字、詞)表示成一個低維空間的連續變數,這樣可以構建一個字詞之間的有效距離空間,進而更加精確地去匹配兩個文本的語義距離,而不是字面上的距離。我們將詞向量技術同我們的監督任務本身在一個端對端網路中進行訓練。

這種方法也是當前文本表示和文本匹配技術的標準範式。先將字詞等語素單位通過詞向量矩陣映射成連續向量,然後利用CNN/RNN等神經網路去提取文本詞向量之上的高階特徵,再通過這些特徵去構建一個分類任務。

在智能運維機器人場景里,就是對用戶問題和一個個知識庫問題做0/1分類,1表示這兩個問題是同一個意思。由於詞向量矩陣、CNN/RNN參數以及特徵做分類的權重矩陣都是一個網路圖裡面的參數,可以聯合起來訓練,這樣就給了網路更大的靈活性。

與文本表示的場景不一樣,文本匹配的場景更依賴於兩個句子的交互信息。而一維匹配模型分別去建模兩個句子,然後對表示求距離的方式並不能很好地建模兩個句子的交互信息。我們選擇用二維匹配模型,在一開始就構建兩個句子的聯合表示,對這個聯合表示去求特徵,以得到更好的結果。

此外除了詞向量的信息,句子中其它特徵也可以編碼成向量作為CNN/RNN的特徵。比如句子裡面的字詞位置信息、兩個句子相互重疊的位置、詞的詞性信息等信息。同時在自然語言處理領域的attention機制也是文本匹配的關鍵信息,讓句子對特定的字詞更加敏感,這也是符合人類認知的習慣,通過最顯著的部分來抓住信息的關鍵。

所有的傳統文本匹配模型得到的分數,和神經網路分類模型得到最後的分數,用一個回歸模型組合起來,得到用戶問題和知識庫問題的匹配度,最後把匹配度在指定閾值之上的知識庫問題和它的答案返回給用戶。

只是開始

在這個AI的東風吹得滿世界人心躁動的時代,在這個人人談AI,處處見AI的時代,我們做智能運維機器人,確實有著蹭熱點的嫌疑。我們也無意去澄清這個嫌疑。這麼多人,這麼多企業關注AI,投身AI,連國家也將其作為重大戰略,不僅僅出於被AI取代,被時代拋棄的恐懼,更是因為無法拒絕AI給我們帶來的無窮想像空間。

當我們出於降低用戶使用門檻的需求而引入了自然語言處理技術後,發現原本單純的運維客服賬號,瞬間充滿了可能性。騰訊織雲智能運維機器人,只是AI在運維領域的小試牛刀。當越來越多的AI技術引入運維領域後,我們能憧憬,我們的征途,正駛向星辰大海嗎?

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲加社區 的精彩文章:

一個產品經理的社交6問
谷歌向其頂級成員提供了100萬美元的圖靈獎

TAG:雲加社區 |