製藥公司藉由執(zhí)行嚴(yán)格的測試來衡量所生產(chǎn)藥物的關(guān)鍵性品質(zhì)屬性。當(dāng)特定批次的產(chǎn)品出現(xiàn)問題時,製造團(tuán)隊(duì)必須盡快找出根本原因,以避免造成交貨延遲和關(guān)鍵藥物的短缺。
由於各式各樣的原始資料、生產(chǎn)機(jī)臺、以及藥品製程當(dāng)中的多項(xiàng)處理步驟,要執(zhí)行準(zhǔn)確且及時的根本原因分析(root case analysis)具有高度的挑戰(zhàn)性。在從前,團(tuán)隊(duì)會將原始材料的標(biāo)籤和從機(jī)器印出的紙本資料手動輸入到工作表進(jìn)行分析,不過這種方法需要花費(fèi)很多的時間,而且容易出錯。除此之外,當(dāng)時還沒有可以一口氣分析如此龐大資料集的工具及方法。
在Cipla,我們的團(tuán)隊(duì)使用一個網(wǎng)路應(yīng)用程式(app)來進(jìn)行先進(jìn)的製程解析。這個使用MATLAB建立的app可以自動收集資料、使用機(jī)器學(xué)習(xí)模型來分析資料、並且將結(jié)果視覺化呈現(xiàn)出來(圖1)。

圖1 : Cipla透過在MATLAB建立的app執(zhí)行藥物製造分析 |
|
以前需要耗費(fèi)幾個星期來找出根本原因,有了這個app之後,只需要幾天就可以完成。而且我們可以預(yù)測特定批次的潛在問題並立即採取修正措施,而不是等待長達(dá)14天,收到成品品質(zhì)控制測試結(jié)果後才進(jìn)行處理。
資料的收集和前處理
藥物製造團(tuán)隊(duì)需要分析的資料高度異質(zhì)(heterogeneous),資料來源也不全相同,不過這些資料大致上可以區(qū)分為兩大類別:關(guān)鍵材料屬性(critical material attributes;CMAs)和關(guān)鍵流程參數(shù)(critical process parameters;CPPs)。
CMAs包含製程中使用的原始材料特性,像是材料的密度和實(shí)際的尺寸失真,以及材料的供應(yīng)商、年份和保存期限。通常一項(xiàng)產(chǎn)品會由大約20種原始材料組成,每一種材料包含至少十幾個CMAs。CPPs則包括在製造過程之中多個單元操作捕捉到的時間序列量測值。
舉例來說,要完成一個單一單元操作如流動床造粒(fluidized bed granulation),可能會花上2至3個小時,或者更久。在這段期間,每分鐘記錄一次溫度、濕度、和空氣在機(jī)器流動的速度和濾波器的壓差等流程參數(shù)。其他單元操作,像是冷凍乾燥(lyophilization or freeze-drying)通常需要48小時或更長的時間來完成。
我們向MathWorks Consulting尋求協(xié)助,開發(fā)一個應(yīng)用程式來收集並建構(gòu)這些資料。使用Database Toolbox(資料庫連結(jié)工具箱)從Microsoft Azure資料倉儲(data warehouse)和其他的資料庫檢索CMAs和批次資料。透過Industrial Communication Toolbox (工業(yè)通訊工具箱),可以直接從設(shè)備中的OPC伺服器存取額外的CPP資料。Database Explorer app對於Cipla資料庫的連接和視覺化的資料探索特別有幫助。
我們存取的CMA資料相對乾淨(jìng),因此需要的前處理並不多。針對CPP資料,特別是壓差的量測值的雜訊就比較多。我們使用Signal Processing Toolbox(訊號處理工具箱)中的濾波器來降低雜訊,並且發(fā)掘資料之中的趨勢。
建立機(jī)器學(xué)習(xí)模型
當(dāng)有了結(jié)構(gòu)完善的CMA和CPP資料代表物,下一個任務(wù)是要建立機(jī)器學(xué)習(xí)模型。這些模型讓我們可以決定哪一些材料特性和流程參數(shù)會對特定的屬性產(chǎn)生最大的影響。
以數(shù)學(xué)的角度來說,可設(shè)一組函式y(tǒng)=f(x1,x2,…,xn),其中y為關(guān)鍵品質(zhì)屬性,每一個x則代表一個CMA或CPP變量。我們需要一個模型來協(xié)助判斷每一個x各對y產(chǎn)生多大的影響。
我們實(shí)現(xiàn)了一個演算法,它接連運(yùn)用了三種機(jī)器學(xué)習(xí)技巧:主成分分析(principal component analysis;PCA)、偏最小平方(partial least squares;PLS)、以及隨機(jī)森林(random forest)。X-space(PCA圖表)可看出不同批次的原材料屬性確實(shí)存在差異且/或處理方式有所不同(圖2)。

圖2 : PCA(左)和PLS(右)結(jié)果。綠色圓點(diǎn)為具有效力的批次;紅色方點(diǎn)為脫靶批次。(source:Cipla) |
|
此外,即使使用多種方式對具有效力(on-target)和脫靶(off-target)的批次進(jìn)行處理,都還是生產(chǎn)出脫靶的產(chǎn)品。我們使用x-y space(PLS圖表)來確認(rèn)此情況。在這張x-y space圖表,所有的脫靶群體聚集在一起形成了一個大型的脫靶區(qū)域。我們對最高的PLS採用隨機(jī)森林來了解模型將各批次分類為具效力和脫靶的準(zhǔn)確程度。使用變量和隱性變量(latent variables)的權(quán)重(weightage)有助於更進(jìn)一步地了解該批次為具有效力或脫靶的原因。
我們選擇機(jī)器學(xué)習(xí)而不是深度學(xué)習(xí),因此可以達(dá)成分析之中的一項(xiàng)關(guān)鍵要求:可解釋性。我們必須完全了解所有被辨識出來的製造問題,才能夠?qū)λ鼈冞M(jìn)行全面性的處理,並且避免未來再次發(fā)生這類問題。傳統(tǒng)的機(jī)器學(xué)習(xí)能夠支援這種程度的理解力,而深度學(xué)習(xí)通常無法做到。
Web App的打包與部署
我們另外一項(xiàng)重要目標(biāo)是要達(dá)成解析民主化(democratization of analytics):我們希望開發(fā)的解決方案能夠讓Cipla的諸多使用者都有辦法使用,而不是只侷限於一小群專家。
為了達(dá)到這項(xiàng)目標(biāo),我們透過App Designer建立一個簡單的介面,並將機(jī)器學(xué)習(xí)演算法打包進(jìn)入此介面,並且透過Web App Server(MATLAB網(wǎng)路應(yīng)用程式伺服器)來將打包後的演算法部署為網(wǎng)路應(yīng)用程式(web app)。
使用者在操作這個app時,一開始會先選擇他們想要分析的產(chǎn)品。這個App接著檢索該特定產(chǎn)品的CMA資料,並且建立PCA、PLS、和隨機(jī)森林模型。App從模型展示結(jié)果,包含每一個變量對於關(guān)鍵品質(zhì)屬性所相關(guān)的作用,並強(qiáng)調(diào)重要的因素(圖3)。

圖3 : 從CMA資料模型取得的結(jié)果,包含每一個變量關(guān)聯(lián)的作用。 |
|
在查看結(jié)果之後,使用者可以決定要不要建立一個包含這些重要因素的縮小版模型來改善模型的準(zhǔn)確性。舉例來說,如果初始的迭代包含500個變量,但是其中一個含有300個變量的子集,看起來對結(jié)果只有些微影響,接下來,使用者便可以省略該子集來簡化模型,並且重新執(zhí)行分析。
即時版本App的試行
我們團(tuán)隊(duì)現(xiàn)在正在開發(fā)這個應(yīng)用程式的即時版本,而且打算在今年開始試行。這個版本即時地捕捉了來自單元操作的OPC伺服器資料,將資料加入機(jī)器學(xué)習(xí)模型,再判斷這樣的流程是否運(yùn)作於建立的控制參數(shù)內(nèi)。
為什麼選擇MATLAB?
在決定使用MATLAB來進(jìn)行製造分析之前,我們考慮過幾種替代方案,其中一個評估的選項(xiàng)是商業(yè)套裝軟體。這個軟體非常昂貴,有一部分原因是它是針對醫(yī)藥產(chǎn)業(yè)量身訂製,而我們無法完整對它依照需求客製。
另一個選項(xiàng)是使用Python或其他類似語言的開源函式庫開發(fā)自己的解決方案。不過這個選項(xiàng)並不可行,因?yàn)槲覀儽仨毚_保使用來建立app的演算法通過徹底的檢驗(yàn)和測試。我們也需要技術(shù)支援來協(xié)助存取來自各種組合的資料庫資料。有了MATLAB和MathWorks顧問服務(wù)(Consulting Services)的支援,我們可以建立一個完全客製化、低成本的應(yīng)用程式,並且分享至公司內(nèi)部各個需要的地方。
(本文由鈦思科技提供;作者Ram Kumar、Akshay Hatewar、Vaidehi Soman於Cipla製造科技集團(tuán))