• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Docker的大數(shù)據(jù)AI教學與實驗系統(tǒng)

    2018-09-14 08:53:16游向東徐圓圓歐陽松
    軟件 2018年8期
    關鍵詞:容器人工智能數(shù)據(jù)庫

    游向東,徐圓圓,歐陽松

    ?

    基于Docker的大數(shù)據(jù)AI教學與實驗系統(tǒng)

    游向東,徐圓圓,歐陽松

    (北京郵電大學 信息與通信工程學院,北京 100876)

    大數(shù)據(jù)AI教學與實驗系統(tǒng)是一個基于Docker容器技術(shù)研發(fā)的大數(shù)據(jù)人工智能在線教學、實驗和科研的云平臺。該云平臺支持主流深度學習框架Tensorflow,能快速部署深度學習的訓練環(huán)境,共享GPU計算資源,支持多人同時在線學習和實驗。云平臺還支持大數(shù)據(jù)hadoop實驗,提供hadoop的安裝和應用實驗。在云平臺上,老師可展開大數(shù)據(jù)、人工智能領域的教學與科研,學生可完成相關課程的學習、實驗。本系統(tǒng)能有效降低大數(shù)據(jù)AI教學和科研的難度,利于高校大數(shù)據(jù)、人工智能的人才培養(yǎng)和科研創(chuàng)新。

    人工智能;大數(shù)據(jù);在線實驗;機器學習;docker

    0 引言

    2017年8月,在國務院印發(fā)的《新一代人工智能發(fā)展規(guī)劃》中明確提出:推動人工智能領域一級學科建設,把高端人才隊伍建設作為人工智能發(fā)展的重中之重[1],完善人工智能教育體系等內(nèi)容?!侗本┦屑涌炜萍紕?chuàng)新培育人工智能產(chǎn)業(yè)的指導意見》也指出:搭建人工智能創(chuàng)新平臺,支持國內(nèi)外人工智能優(yōu)勢企業(yè)、高等學校、科研機構(gòu)等開展合作,搭建開源技術(shù)創(chuàng)新平臺,探索開放式協(xié)同創(chuàng)新模 式[2]。開發(fā)面向人工智能的開源開放平臺、完善人工智能領域?qū)W科布局,推動設立人工智能專業(yè),推動人工智能領域一級學科建設,加快人工智能相關學科方向的研究生培養(yǎng)。

    另一方面,我們看到,人工智能的教學實驗和科研創(chuàng)新,是一個綜合性較強的新興的領域。深度學習的實驗成本高,通行的提供并行運算能力的Nvidia GPU對學生來說價格不菲;人工智能算法對數(shù)學要求高,需要較強的概率與統(tǒng)計、矩陣論等數(shù)學基礎[3];涉及的計算機基礎知識多,要求學生掌握Linux、Python、Java等計算機基礎;平臺搭建繁瑣,需要將眾多的開源軟件、硬件資源結(jié)合與集成;實踐性強,需要教學與實驗結(jié)合,需要理論和實踐的結(jié)合,需要將人工智能的算法在計算平臺上去運行、驗證,才能達到實驗的目的。因此展開人工智能的教學實驗和科研創(chuàng)新具有一定的門檻,對于普通高校的學生來說具有一定的學習難度。

    因此針對高校在人工智能的教學與科研上述問題,本文研發(fā)一套“大數(shù)據(jù)AI教學與科研云平臺”,為老師和學生解決人工智能在線教學與實驗環(huán)境缺乏的現(xiàn)實問題。

    1 系統(tǒng)原理和設計

    1.1 系統(tǒng)的原理

    系統(tǒng)包括物理層、容器層和平臺層,如圖1所示。

    圖1 系統(tǒng)結(jié)構(gòu)圖

    “大數(shù)據(jù)AI教學與實驗系統(tǒng)”是基于Docker容器技術(shù),可快速創(chuàng)建隨時可運行的實驗環(huán)境,利用docker-API部署應用、維護、擴展機制等,方便地管理容器化的應用。系統(tǒng)預先針對人工智能實驗內(nèi)容構(gòu)建一系列基于linux和深度學習框架的特定鏡像,通過Docker鏡像構(gòu)建容器,為每個使用平臺的用戶開辟獨立的實驗環(huán)境。

    系統(tǒng)分為如下三層:

    平臺層:應用軟件和管理軟件,主要有教學管理子系統(tǒng)、在線IDE子系統(tǒng);

    容器層:包含docker引擎、鏡像、容器,docker編排管理;

    物理層:CPU、GPU、存儲設備、網(wǎng)絡設備等。

    1.2 系統(tǒng)分層結(jié)構(gòu)

    分層結(jié)構(gòu)介紹:

    (1)平臺層(web管理):教學和實驗管理、用戶管理、容器管理界面、軟硬件資源管理。

    (2)平臺層(IDE實驗):在線IDE、git、gitlab、各種實驗程序、數(shù)據(jù)集、算法庫。

    (3)容器層:含docker引擎、鏡像、容器。利用Docker技術(shù)封裝Tensorflow、caffe等深度學習計算框架;利用Docker技術(shù)封裝mysql、redis數(shù)據(jù)庫;利用docker-API進行配置、管理docker容器。

    (4)驅(qū)動層:Linux操作系統(tǒng)的硬件驅(qū)動;Nvidia顯卡GPU驅(qū)動CUDA。

    (5)物理層:CPU 、GPU 、存儲設備、網(wǎng)絡設備等硬件模塊,構(gòu)成深度學習單服務器一體機或服務器集群。

    表1 系統(tǒng)分層結(jié)構(gòu)表

    Tab.1 System hierarchy table

    1.3 系統(tǒng)方案設計

    1.3.1 系統(tǒng)硬件方案設計

    硬件采用GPU+CPU混合架構(gòu),實現(xiàn)對數(shù)據(jù)的高性能并行處理;

    服務器CPU選用英特爾E5-2600系列至強處理器;

    每臺服務器最多可插入4塊英偉達GPU卡,可選配NVIDIA TITAN X、Tesla、GeForce

    等各檔次英偉達GPU卡,最大可提供每秒萬億次的單精度計算能力。

    1.3.2 系統(tǒng)軟件方案設計

    軟件采用B/S結(jié)構(gòu),SaaS服務模式。系統(tǒng)軟件包括如下模塊:

    web后臺模塊,包括后端框架、web服務器、數(shù)據(jù)庫、web接口的設計和開發(fā)。

    web前端模塊,包括前端框架、前端UI、前端編程,采用bootstrap、jquery和ajax等技術(shù)。

    數(shù)據(jù)庫模塊:數(shù)據(jù)庫采用Mysql,Redis。

    深度學習模塊:深度學習框架采用Tensorflow、Caffe。

    機器學習模塊:基于Python的機器學習,包括機器學習算法,如分類、聚類。

    并行運算技術(shù)模塊:包括GPU、CUDA、CuDNN、Nvidia docker,GPU資源的調(diào)度使用、實驗排隊,GPU的共享。

    容器技術(shù)模塊:Docker鏡像制作、容器的生成、容器的調(diào)度。

    在線IDE模塊:用戶可以通過在線IDE創(chuàng)建項目的工作空間,進行在線開發(fā),調(diào)試等操作。在線IDE集成了git代碼版本控制,用戶可以選擇GitHub、BitBucket、GitLab等任意的代碼倉庫。

    1.4 系統(tǒng)平臺應用軟件子系統(tǒng)設計

    A 用戶管理子系統(tǒng)

    包括用戶注冊管理、信息管理、權(quán)限管理、資源分配、使用情況管理模塊。

    B 容器管理子系統(tǒng)

    對容器進行管理,包括Docker鏡像制作,容器的生成、調(diào)度和編排。有容器列表、啟動、停止、重啟、刪除、log查看等功能。

    C 教學管理子系統(tǒng)

    包含課程體系管理模塊、課程管理模塊。

    D 學習管理子系統(tǒng)

    含課程上機實驗環(huán)境,有實驗課程選擇、文件管理、代碼編輯、執(zhí)行窗口。

    E AI并行計算子系統(tǒng)

    包括CUDA、CuDNN等GPU并行運算系統(tǒng),GPU資源的調(diào)度、共享模塊。

    F hadoop應用子系統(tǒng)

    包含hadoop的安裝模塊、hadoop的應用模塊。

    1.5 實驗流程設計

    (1)添加體系或模塊

    登錄—教學管理—體系管理—添加或編輯—體系或模塊,指定模塊的鏡像和相關參數(shù)。

    (2)添加課程

    登錄—教學管理—課程管理—新增實驗—填寫內(nèi)容。

    (3)在線實驗

    登錄—學習管理—上機實驗—選擇體系和模塊—選擇課程—開始學習—啟動自己的容器—按說明做實驗—退出登錄—停止容器。

    (4)上課教學

    登錄—學習管理—大數(shù)據(jù)教學或AI教學—在線ppt教學。

    2 教學管理子系統(tǒng)的設計與實現(xiàn)

    開發(fā)環(huán)境和開發(fā)工具:ubuntu14.04,Python2.7, Django1.9.9, Sublime。

    關鍵技術(shù):Django框架,js,jquery等。

    Django是一個MVC框架,MVC是一種主流 的軟件設計模式,其全名是Model View Controller,分別表示模型(model)、視圖(view)、控制器(con-troller)[4]。MVC是通過編寫業(yè)務的處理邏輯、將數(shù)據(jù)與界面分離顯示,進而實現(xiàn)將眾多業(yè)務的處理邏輯聚合到同一個部件里。通過這樣的方式,使得在改進和優(yōu)化界面促進用戶體驗時,不用重新編寫業(yè)務處理邏輯。在Django 中MVC模式表現(xiàn)形式是模型(Model)、模板(Template)和視圖(Views),因此稱為 MTV模式。

    各模塊工作流程如圖2所示。

    模型Model:數(shù)據(jù)存取層,用于與數(shù)據(jù)庫進行交互,一個表對應一個model類,表里面的字段同時對應model類的屬性。

    模版Template:業(yè)務邏輯層,處理與表現(xiàn)層相關的邏輯,定義在頁面或其他文檔中如何顯示出來。

    視圖View:表現(xiàn)層,主要實現(xiàn)存取模型和調(diào)取相應模版的邏輯,一個視圖是一個可調(diào)用對象, 不僅僅局限于一個函數(shù)[5]。

    2.1 添加體系或模塊

    課程體系管理模塊:可水平擴展的課程體系管理,本平臺設計的體系包括:

    人工智能實驗:包含機器學習、深度學習、TensorFlow;大數(shù)據(jù)實驗:hadoop安裝、hadoop應用、R語言;基礎實驗:Linux、Python、數(shù)據(jù)庫Mysql。

    圖2 MVC各模塊工作流程圖

    添加基本流程如下:

    登錄—教學管理—體系管理—添加或編輯—體系或模塊,指定模塊的鏡像和相關參數(shù)。

    該模塊前后端實現(xiàn)原理:用戶點擊“添加”按鈕,輸入相關名稱、描述、鏡像,點擊提交,前端通過ajax的post方法將數(shù)據(jù)傳輸給后端,后臺在view.py中寫入函數(shù)獲取前端傳輸?shù)臄?shù)據(jù),進行相應處理后存入數(shù)據(jù)庫。用戶訪問體系或模塊,通過url跳轉(zhuǎn)到view中對應的邏輯函數(shù),從數(shù)據(jù)庫中獲取數(shù)據(jù),進行一定處理以達到前端需要的格式后加載前端界面,即完成展示功能。

    交互流程圖如下:

    圖3 添加體系/模塊交互流程圖

    本模塊中體系和模塊信息共用一個數(shù)據(jù)庫,在數(shù)據(jù)庫設計中通過設置parent_id字段來定義父節(jié)點和子節(jié)點。為了更好的表現(xiàn)層級關系,前端采用treeview框架,這是一款多級列表樹插件,實現(xiàn)以簡單和優(yōu)雅的方式來顯示一些繼承樹結(jié)構(gòu)[6]。

    實現(xiàn)效果圖如下:

    圖4 體系/模塊界面圖

    2.2 添加、編輯課程

    課程管理模塊:在每一個課程體系的具體模塊下,可水平擴展教學和實驗課程內(nèi)容,教學課程內(nèi)容基于markdown格式編寫,用HTML格式展示[7]。課程內(nèi)容包含實驗目的、實驗步驟,有演示代碼和代碼說明。實驗內(nèi)容包括,選擇實驗體系、實驗模塊,填寫實驗名稱、實驗簡介、實驗時長、實驗描述,其中實驗描述為markdown格式。

    基本流程如下:

    登錄—教學管理—課程管理—新增實驗—填寫內(nèi)容

    課程管理模塊主要包括以下功能:課程添加,課程編輯,課程刪除,markdown格式轉(zhuǎn)換,分頁展示,關鍵詞搜索等。

    課程添加編輯功能基于django web的前后端交互實現(xiàn),通過ajax局部刷新進行數(shù)據(jù)交互,利用django的過濾標簽linebreaksbr將markdown格式轉(zhuǎn)換為瀏覽器識別的html格式。通過pagelist類來定義當前頁面、總頁數(shù)、每頁顯示內(nèi)容數(shù)實現(xiàn)分頁顯示。關鍵詞搜索功能是基于Django的Q對象進行復雜查詢,通過使用符號&或者|將多個Q()對象組合起來傳遞給filter(),exclude(),get()等函數(shù),Django會將多個Q()對象的關系主動理解成“且(and)”關系。將多個Q()對象組合起來后,Django會自動生成新的Q(),從而對條件進行分組組合成更加復雜的查詢邏輯[8-9]。

    頁面實現(xiàn)效果如下圖。

    3 學生學習管理子系統(tǒng)

    學生在線實驗流程為:登錄—學習管理—上機實驗—選擇體系和模塊—選擇課程—開始學習—啟動自己的容器—按說明做實驗—退出登錄—停止容器。

    交互流程圖如下。

    學生選擇課程后,點擊開始學習,前端通過ajax將實驗id,模塊id,實驗詳細信息傳輸給后臺,后臺獲取相關數(shù)據(jù)后通過django的數(shù)據(jù)查詢獲取相應鏡像信息,包括imagehost, index_port, repository等,根據(jù)自定義的容器名稱命名規(guī)則為每個學生匹配對應的容器。后臺調(diào)用docker-API的接口,通過startcontainer函數(shù)開啟對應容器,前端啟動上機實驗界面。當學生學習完畢退出時,后臺調(diào)用docker- API的killcontainer函數(shù)關閉容器進程,結(jié)束本次實驗課程,釋放占用的資源。

    圖5 課程編輯界面效果圖

    圖6 實驗展示界面圖

    圖7 學生在線實驗交互流程圖

    實現(xiàn)界面如下圖。

    圖8 實驗課程界面圖

    4 結(jié)語

    本文針對在高校的人工智能的教學與科研的問題,研發(fā)了一套“大數(shù)據(jù)AI教學與科研云平臺”,為老師和學生解決人工智能實驗入門難、社會培訓機構(gòu)費用高、人工智能計算資源短缺、實驗和科研環(huán)境配置復雜難度大、實驗數(shù)據(jù)缺失、實訓項目較少、資源管理缺失等問題[10]。平臺提供了一個開放的、開源的、互利共享的人工智能學習和研究環(huán)境,提高廣大師生的研究興趣和水平。

    本文研發(fā)的教學與科研的云平臺,對加快AI專業(yè)的課程建設,對開展高校人工智能的教學與實驗、科研和創(chuàng)新,對加快人工智能的人才培育和科技創(chuàng)新具有一定的意義。

    [1] 張婷嫣, 桂騰昕, 鄧萬風. 課堂管理軟件的對比與分析[J]. 軟件, 2018, 39(1): 191-194.

    [2] 閆實, 付佳, 石莉. 大數(shù)據(jù)環(huán)境下基于智慧校園的教學改革[J]. 軟件, 2018, 39(2): 208-211.

    [3] 國發(fā)〔2017〕35號. 新一代人工智能發(fā)展規(guī)劃[S].北京: 國務院, 2017.

    [4] 汪子堯, 賈娟. 人工智能的前生、今世與未來[J]. 軟件, 2018, 39(2): 223-226.

    [5] 騰訊研究院. 人工智能[M]. 北京: 中國人民大學出版社, 2017.

    [6] 劉鵬. 深度學習[M]. 北京: 電子工業(yè)出版社, 2017.

    [7] 朱福喜. 人工智能[M]. 北京: 清華大學出版社, 2017.

    [8] 李凡長, 錢旭培, 謝琳, 何書萍. 機器學習理論及應用[J]. 計算機工程與科學, 2012, Vol.34(09).

    [9] 嚴冬梅. 數(shù)據(jù)庫原理[M]. 北京: 清華大學出版社, 2011.

    [10] 劉思堯, 李強, 李斌. 基于Docker 技術(shù)的容器隔離性研究[J]. 軟件, 2015, 36(4): 110-113.

    Big Data AI Teaching and Experiment System Based on Docker

    YOU Xiang-dong, XU Yuan-yuan, OU Yang-song

    (Beijing University of Posts and Telecommunications, Institute of Information and communication, Beijing 100876, China)

    The Big Data AI Teaching and Experiment System is a cloud platform for online teaching, experimentation and research of big data artificial intelligence based on Docker container technology. The cloud platform supports the mainstream deep learning framework Tensorflow, which can quickly deploy a deep learning training environment, share GPU computing resources, and support multi-person simultaneous online learning and experimentation. The cloud platform also supports big data Hadoop experiments, providing Hadoop installation and application experiments. On the cloud platform, teachers can carry out teaching and research in the field of big data and artificial intelligence. Students can complete the study and experiment of relevant courses. The system can effectively reduce the difficulty of big data AI teaching and scientific research, and is conducive to the talent training and scientific research innovation of university big data and artificial intelligence.

    Artificial intelligence; Big data; Online experiment; Machine learning; Docker

    TP311.1

    A

    10.3969/j.issn.1003-6970.2018.08.040

    游向東,男,高級工程師,主要研究方向:移動互聯(lián)網(wǎng)與嵌入式多媒體系統(tǒng);徐圓圓,女,研究生在讀,主要研究方向:移動互聯(lián)網(wǎng)與嵌入式多媒體系統(tǒng);歐陽松,男,研究生在讀,主要研究方向:移動互聯(lián)網(wǎng)與嵌入式多媒體系統(tǒng)。

    本文著錄格式:游向東,徐圓圓,歐陽松. 基于Docker的大數(shù)據(jù)AI教學與實驗系統(tǒng)[J]. 軟件,2018,39(8):192-197

    猜你喜歡
    容器人工智能數(shù)據(jù)庫
    Different Containers不同的容器
    難以置信的事情
    2019:人工智能
    商界(2019年12期)2019-01-03 06:59:05
    人工智能與就業(yè)
    數(shù)讀人工智能
    小康(2017年16期)2017-06-07 09:00:59
    數(shù)據(jù)庫
    財經(jīng)(2017年2期)2017-03-10 14:35:35
    下一幕,人工智能!
    南風窗(2016年19期)2016-09-21 16:51:29
    數(shù)據(jù)庫
    財經(jīng)(2016年15期)2016-06-03 07:38:02
    數(shù)據(jù)庫
    財經(jīng)(2016年3期)2016-03-07 07:44:46
    數(shù)據(jù)庫
    財經(jīng)(2016年6期)2016-02-24 07:41:51
    克什克腾旗| 云浮市| 石棉县| 全南县| 炎陵县| 黑龙江省| 筠连县| 东台市| 玉田县| 沁水县| 泸州市| 水城县| 临海市| 阿合奇县| 庄浪县| 隆子县| 全南县| 武功县| 沁源县| 淮北市| 饶平县| 体育| 息烽县| 扬州市| 皮山县| 扎兰屯市| SHOW| 太和县| 盐池县| 建瓯市| 虞城县| 云梦县| 古浪县| 区。| 太和县| 航空| 馆陶县| 上蔡县| 滨海县| 额济纳旗| 沾益县|