張 靜,蔡志成,孟順梅,李千目
(南京理工大學 計算機科學與工程學院,江蘇 南京 210094)
大學生的科研能力訓練和創(chuàng)新能力培養(yǎng)是當前大學本科教學的重點[1]。在當今新技術高速發(fā)展的大環(huán)境下,本科生科研訓練作為本科生“實踐”教育中不可或缺的環(huán)節(jié),其重要性愈發(fā)凸顯。國內(nèi)不少高校,特別是入選“雙一流”建設的高校,都已經(jīng)構建出了適合自己學校人才培養(yǎng)特點的本科生科研訓練創(chuàng)新實踐的長效機制[2]。在這種長效機制下,本科生團隊和指導教師實行雙向選擇,導師和課題確定后,學生自主完成研究課題立項、項目設計、項目實施、報告撰寫和成果交流等工作的實踐創(chuàng)新教學環(huán)節(jié)。通過科研訓練培養(yǎng)學生提出問題、分析問題和解決問題的能力,進而強化創(chuàng)新思維與創(chuàng)新意識。
經(jīng)過多年的探索和踐行,本科生科研訓練無疑在本科生能力素質(zhì)培養(yǎng)方面起到了正面作用[3],但也必須指出,這種以導師研究課題為核心的訓練方式仍存在不少亟待解決的共性問題,如科研訓練與現(xiàn)有課程體系相容性差、課題質(zhì)量參差不齊等[4]。近年來,教育部“新工科”建設要求工科高校立足于社會發(fā)展重大創(chuàng)新前沿建設,以培養(yǎng)學生創(chuàng)新能力為出發(fā)點的工科教育新體系和新方法[5]。這無疑對本科生科研訓練工作提出了更高的要求。具體落實到計算機相關學科方面,新工科建設迫切需要聚焦大數(shù)據(jù)和人工智能兩大熱點技術創(chuàng)新方向。
與國內(nèi)大多數(shù)高校本科生科研訓練模式類似,軟件工程系的科研訓練為每個課題配備1名指導教師負責提供選題,訓練團隊成員為2~3人(設課題組長1名,組員1~2名)。課題的執(zhí)行時間為2年,需經(jīng)歷完整的科研周期,包括立項、設計、實施、評價、總結、成果申報(投稿)、答辯等必要環(huán)節(jié)。課題的成果包括學術論文、專利、軟件著作權、實物等。不少本科生通過參與科研訓練完成了屬于自己的論文、專利、軟著,為其后續(xù)發(fā)展奠定了堅實的基礎。然而,通過梳理和分析軟件工程系近幾年來的科研訓練情況,作者發(fā)現(xiàn)存在如下亟待解決的問題。
問題1:本科生科研訓練項目的選題沒有突出“工程”特性,沒有從系統(tǒng)化設計的高度體現(xiàn)軟件工程學科特點。近年來,縱向科研課題大多數(shù)圍繞數(shù)據(jù)挖掘、云計算、信息檢索、自然語言處理、機器學習等人工智能熱點方向展開,布置給學生的課題大多是“建?!焙汀八惴ā鳖愓n題。學生經(jīng)過訓練能夠掌握一些人工智能研究的方法和技術,但所取的成果距離實際工程應用尚遠,學生無法從智能系統(tǒng)設計的角度考慮現(xiàn)實問題的工程化解決方法,無法掌握大數(shù)據(jù)智能系統(tǒng)全棧設計開發(fā)思路,系統(tǒng)集成能力和代碼開發(fā)能力也無法有效提升。
問題2:在智能計算和大數(shù)據(jù)工程前沿技術方面,科研訓練課題未建立有效聯(lián)系。現(xiàn)有的科研訓練選題往往理論性過強,過于偏向學術研究層面。學生通過閱讀論文、理論推導、模型設計、算法仿真、實驗驗證等手段對某一問題提出新的解決方法。考慮到絕大多數(shù)本科生未來工作主要集中在工業(yè)界,科研訓練的選題應該瞄準工程應用難題,對企業(yè)級技術熱點進行深入研究。具體來說,工業(yè)界為了對海量數(shù)據(jù)進行處理,一方面需要開發(fā)高效的處理算法,另一方面會選擇低成本的開源大數(shù)據(jù)處理平臺(如Hadoop、Spark、Flink等)。因此,作為科研訓練選題,不僅要訓練學生將這些平臺搭建起來進行應用開發(fā),更重要的是在這些平臺上高效實現(xiàn)常用的人工智能(機器學習)算法,切實提高技術創(chuàng)新水平。
問題3:科研訓練選題系統(tǒng)化程度低,未形成具有特色的教學團隊和持續(xù)的高質(zhì)量課題輸出。不可否認,軟件工程系近年來引進的年輕教師擁有較高的學術水平,他們工作在學科前沿,每年都會發(fā)表高質(zhì)量的學術論文。然而,在教學上教師往往喜歡“單打獨斗”,這種狀態(tài)顯然不能有效解決上述兩個問題。當前以結果為導向的工程教育,本質(zhì)上要求以系統(tǒng)化的團隊支撐穩(wěn)定的教學資源輸出[6],團隊中必須具備多個領域的專家,在統(tǒng)一的框架下合作,形成有效的課題開發(fā)機制。目前,科研訓練教學團隊的建設是大多數(shù)院系的短板。只有形成了有機統(tǒng)一的教學團隊,形成一套自我改進的閉環(huán)課題開發(fā)機制,才能源源不斷地貢獻高質(zhì)量的科研訓練選題,才能培養(yǎng)出帶有學校品牌印記的學生。
最后,希望形成一種教研相長的良性發(fā)展態(tài)勢。由于大數(shù)據(jù)工程化技術和人工智能(機器學習)技術的結合本身就是非常有挑戰(zhàn)性的研究課題,每年兩大方向的頂級國際學術會議中都會報告兩者結合的最新研究成果,因此,在科研訓練過程中,本科生們不僅要成為合格的被訓練者,更希望他們以開拓者的姿態(tài)發(fā)現(xiàn)新問題、提出新觀點、找到新解法、產(chǎn)生新知識,最終讓教學反哺科研。
為了解決上述三大問題,作者團隊正在開展“大規(guī)模分布式機器學習本科生科研訓練項目群建設”教學改革研究項目,嘗試建立一套面向產(chǎn)出的工程化科研訓練課題生產(chǎn)模式,形成一批高質(zhì)量的本科生科研訓練選題。
面向新興人工智能企業(yè)對高素質(zhì)研發(fā)人才的需求,我們統(tǒng)一梳理軟件工程系多位教師的研究成果,形成面向大規(guī)模分布式機器學習算法的本科生科研訓練項目開發(fā)框架指南;在此指南指導下,逐步創(chuàng)建多個大規(guī)模分布式機器學習本科生科研訓練項目并付諸實施,同時在新的教學大綱上對本科生科研訓練涉及的理論知識體系進行支撐;對新設立的科研訓練項目過程和結果進行充分評價,并將評價的結果反饋到新的科研訓練項目開發(fā)過程中,最終形成項目群閉環(huán)生產(chǎn)。
在總體目標的指導下,筆者擬從框架指南、具體項目、教學大綱調(diào)整3個方面進行建設??蚣苤改霞仁蔷唧w項目開發(fā)的指導性文件,又是整個項目開發(fā)團隊合作工作的基礎框架;教學大綱調(diào)整則是為保證具體項目實施效果的必要支撐。
2.2.1 本科生科研訓練項目開發(fā)框架指南
科研訓練項目開發(fā)框架指南是建立本科生科研訓練項目群的先決條件。良好的框架指南能夠使相關教師持續(xù)穩(wěn)定地開發(fā)出具有品質(zhì)保證的科研訓練項目。框架指南的建立首先瞄準企業(yè)需求,項目群建設小組與院系長期合作的國際領先IT研發(fā)機構專家進行持續(xù)深入溝通,收集企業(yè)對于畢業(yè)生在知識結構、能力水平、職業(yè)素養(yǎng)等方面的現(xiàn)實需求。項目群建設小組針對這些需求,梳理系內(nèi)教師的科研課題和技術能力,確定首批科研訓練項目的技術選型,同時制定科研訓練項目開發(fā)框架指南。該指南包括項目群建設小組工作過程、技術選型和融合、項目設計和管理、項目過程監(jiān)督和控制、項目結果評價、項目反饋和持續(xù)改進等幾個部分。該指南作為本科生科研訓練項目群開發(fā)的指導性文件將貫穿整個科研訓練項目開發(fā)和實施過程,并在此過程中持續(xù)修訂。
2.2.2 大規(guī)模分布式機器學習本科生科研訓練首批示范項目
項目群建設遵循循序漸進的原則,重在評價示范項目的執(zhí)行效果。首批擬建設2~3個示范性項目,下面以兩個正在進行的項目對項目設計原則進行示例。
示例1:基于Hadoop與Spark混合平臺的高性能推薦算法。
采用Hadoop與Spark混合平臺的目標是結合兩者在存儲和計算上的各自優(yōu)勢。Hadoop具有一個分布式存儲系統(tǒng)存放海量數(shù)據(jù)。傳統(tǒng)上使用Hadoop平臺時,上層應用系統(tǒng)用MapReduce框架進行大規(guī)模分布式計算。在此課題中,將使用Spark平臺的并行計算技術代替MapReduce。Spark是一個圍繞速度、易用性和復雜分析構建的大數(shù)據(jù)處理框架。它效率高于MapReduce且支持更靈活的編程模型[7]。
本項目擬讓學生在從部署混合平臺出發(fā),逐步在這個平臺上建立一個大規(guī)模分布式關聯(lián)規(guī)則挖掘算法,實現(xiàn)通用的購物籃分析。該算法首先將大量數(shù)據(jù)進行切割,并分配到Spark平臺的各Slave節(jié)點上,每個節(jié)點進行頻次分析;隨后,Slave節(jié)點與Master節(jié)點交換頻次信息,各節(jié)點建立局部的關聯(lián)依賴有向無環(huán)圖;接著再與Master節(jié)點通訊,交換局部有向無環(huán)圖信息,建立全局依賴圖;最后,各Slave節(jié)點在全局圖的不同區(qū)域挖掘自己所需的關聯(lián)規(guī)則。該算法將使用Spark提供的API進行實現(xiàn)。
學生在此過程中不但可以學會大數(shù)據(jù)平臺的部署和工程開發(fā)方法,而且能將傳統(tǒng)的關聯(lián)規(guī)則挖掘算法進行分布式并行化以及適當擴展,最后還將使用海量數(shù)據(jù)評估算法的性能。
示例2:基于Map-Reduce模型的興趣感知服務推薦方法。
興趣感知型服務推薦方法,包含歷史評論信息爬取和存儲、基于關鍵詞列表的用戶興趣提取、目標用戶與候選服務歷史用戶相似度評分、目標用戶對于候選服務個性化評分4個關鍵步驟。
學生需要在Map-Reduce分布式編程環(huán)境中對上述4個步驟分別進行并行化處理。其中對于步驟1的并行化較為簡單,可以用現(xiàn)有的分布式爬蟲工具實現(xiàn)。對于步驟2,要求將所有候選服務的評論轉化為歷史用戶興趣關鍵詞集合,并對該過程進行并行化處理。對于步驟3,要求將候選服務的歷史用戶的所有評論轉化為評論關鍵詞集合,并對該過程進行并行化處理,同時將利用TF-IDF方法計算候選服務的歷史用戶興趣關鍵詞集合的權重向量過程進行并行化處理。對于步驟4,要求將為目標用戶計算對每個候選服務的個性化評分的過程進行并行化處理。上述4個步驟均具有多個不同的算法可以選擇,學生需要利用TripAdvisor網(wǎng)站上香港酒店預訂數(shù)據(jù)測試這些算法的性能。
學生在設計并行化算法過程中,不但可以體會到對于不同的任務類型,處理框架和算法的技術要求不盡相同,而且能夠使軟件體系結構中的多種體系風格和設計模式得到很好的運用。最后,學生還將學會如何將這些算法作用于實際大規(guī)模數(shù)據(jù)并產(chǎn)生有意義的結論。
總之,未來的科研訓練項目均要實現(xiàn)面向實際應用且在已有的通用分布式機器學習庫(如Apache Mahout、Python sickit-learn等)中沒有的算法。學生將利用分布式平臺提供的編程模型和接口函數(shù)在系統(tǒng)工程的框架下從頭設計實現(xiàn)相關機器學習方法。同時,要求小組成員在組長的領導下,運用工程管理方法,對項目的運行情況進行控制;要求組員采用先進的分布式配置管理工具(如Github等)按照軟件工程過程的相關要求進行項目管理并形成階段性文檔。最后,項目群建設小組將在項目結束后持續(xù)評估該科研訓練的效果。訓練效果包括近期成果和長遠效應。近期成果不僅包括科研訓練的產(chǎn)出(如論文、專利、軟著、系統(tǒng)實物等),還包括參與學生的主觀體驗(調(diào)查問卷)?!伴L遠效應”包括科研訓練學生能否在未來的實踐性課程中獲得更高的成績,能否在未來的面試過程中獲得更多公司的青睞,甚至能否在畢業(yè)5年內(nèi)成長為公司技術骨干。這與“工程認證”的培養(yǎng)目標評價標準相一致[8]。項目群建設小組將會依據(jù)評估結果進行持續(xù)改進形成閉環(huán)機制。
2.2.3 相關教學大綱的修訂
新科研訓練課題的難度有所增加,為保證科研訓練產(chǎn)生良好效果,本科生在基礎知識上必須做好充足的準備。項目群建設小組擬對軟件工程教學大綱進行進一步修訂,形成“軟件工程+大數(shù)據(jù)+人工智能”等新格局。首先,縮減傳統(tǒng)軟件工程的課程課堂教學學時數(shù),例如傳統(tǒng)的軟件過程模型、傳統(tǒng)軟件測試方法、基礎面向對象編程等,要求學生利用網(wǎng)絡媒體自學。其次,進一步強調(diào)軟件在各種系統(tǒng)構建中的基礎性作用,增加“軟件定義XX”的課程,拓展學生視野、提高學生軟件開發(fā)能力。再次,強調(diào)數(shù)學類課程在大數(shù)據(jù)和人工智能中的基礎性作用,增加最優(yōu)化方法、統(tǒng)計建模等數(shù)學類課程。最后,增加云計算調(diào)度和資源管理、數(shù)據(jù)挖掘、機器學習、自然語言處理等人工智能選修課程,緊扣時代脈搏。
大規(guī)模分布式機器學習本科生科研訓練項目群建設是一項創(chuàng)新性非常強的工作。新的科研訓練項目采用系統(tǒng)化、工程化的科研訓練課題開發(fā)和管理模式。與傳統(tǒng)模式相比,這一模式強調(diào)課程開發(fā)過程管理和持續(xù)穩(wěn)定的成果輸出,以適應新工科的要求。項目瞄準大數(shù)據(jù)人工智能時代市場需求,緊扣技術發(fā)展前沿,以其先進性吸引廣大學生主動參與。項目并不一味強調(diào)理論基礎的艱深和技術方案的復雜,而是以產(chǎn)出為導向,注重工程開發(fā)能力和研究創(chuàng)新能力相結合,強調(diào)以教師團隊協(xié)作為基礎、以課題融合為特色,重視對參訓學生的短期成果和長期效應評價反饋和持續(xù)改進。
各個層面的配套政策是保證科研訓練項目群建設成敗的關鍵。在學校層面,已經(jīng)建設一整套科研訓練管理體制,確立了國家級、省級、校級三級資助體系,為科研訓練的開展提供了有力的資金支持。在學院層面,已經(jīng)安排專門的管理人員進行項目監(jiān)管,對項目各階段的完成質(zhì)量進行監(jiān)督。在學系層面,系主任和學科(專業(yè))秘書加入項目群建設小組,為項目開發(fā)提供“工程認證”達成度模型指導,同時綜合各方面的反饋,為專業(yè)培養(yǎng)方案的調(diào)整提供支持。
大規(guī)模分布式機器學習本科生科研訓練項目群建設是一個長期的創(chuàng)新性教改過程。在這一過程中,筆者希望從現(xiàn)實應用需求出發(fā),以導師的最新研究課題為依托,以大數(shù)據(jù)處理框架為基礎,設計實現(xiàn)大規(guī)模分布式并行化機器學習算法,解決當前存在的前沿性、系統(tǒng)化、工程化不足的問題。同時,通過頂層設計將導師的科研訓練納入統(tǒng)一的技術框架和管理模式,通過積極的反饋評估,形成質(zhì)量穩(wěn)定的科研訓練選題輸出,促進特色教學團隊形成。