iT邦幫忙

2022 iThome 鐵人賽

DAY 27
1
AI & Data

OH~ AI 原來如此,互助就此開始!系列 第 27

Day 26. AI × Data - AI 專案的相關工具

  • 分享至 

  • xImage
  •  

今天要來分享一下實際進行 AI 專案時可能會需要的工具或可能聽到的專有名詞。前半和整個專案運作比較有關係,後半則介紹工程師用的開發工具。

論文檢索工具

arXiv

https://ithelp.ithome.com.tw/upload/images/20221003/20150622ak6wgU6eXR.jpg

AI 的發展非常快速,往往沒有幾年又有新的技術,與時俱進可以幫助我們少走很多冤枉路。本系列文的參考論文多出自於此平台,感謝這些學者公開分享自己的研究,才能讓 AI 這塊領域的技術發展如此地迅速。

Google scholar

https://ithelp.ithome.com.tw/upload/images/20221003/20150622hi1hUMeAjJ.jpg
可以搜尋學術文獻的免費搜索引擎。如同首頁的標題所寫:「站在巨人的肩膀上。」

作業系統 - 使用 Windows 或 Linux?

推薦在 Linux 系統下運作 AI 模型,像是 ubuntu 。因為在 Windows 上的話,很多好用的網路資源及程式套件會不能使用或無法安裝,但是客戶要在哪個環境運用 AI 有時候不是我們可以決定的,只能說可以選擇的話盡量使用 Linux 系統。

https://ithelp.ithome.com.tw/upload/images/20221011/20150622MZZjEHPIVC.jpg

雲端服務(Cloud Service) v.s. 本地(On-premise)

前面提到可以使用第三方雲端服務,那麼我們有需要使用第三方的雲端服務嗎?

  • 雲端服務
    付費使用第三方提供的硬體設備如伺服器,網路頻寬,計算能力等等,或是使用對方的預訓練模型等服務。將資料和程式放在第三方的硬體上享受對方提供的資源和管理。
    常見的三大雲端供應商有 Amazaon 的 Web Service (AWS),Google 的 Clound Platform(GCP),和 Microsoft Azure。

  • 本地
    硬體設備放在公司內部(辨公室,工廠等)。

兩者的差異:

項目 雲端服務 本地
硬體成本
維護成本
使用成本
安全隱私

端看怎麼取捨,不想要購買硬體和請 IT人員維護,又或是想要使用對方的預訓練模型就用第三方的雲端服務。而想要高機密性和安全性就自己購入硬體和請 IT 人員維護。

資料庫 - MariaDB / MangoDB

資料庫是將資料儲存在一起,可以快速搜索資料的工具。如果都是結構式資料會建議用傳統的關聯式資料庫,有成本上的考量可以用 MySQL 的免費版本 MariaDB。而非結構式資料,或是表格資料的格式非常不固定可以使用 NoSQL 資料庫像是 MangoDB。
當然也可以考慮雲端服務的資料庫(像是 Amazon 的 AWS),不過除了要考慮資料的保密性之外,隨著資料逐漸變多,流量費用也是蠻驚人的。

關聯式資料庫 NoSQL 資料庫
https://ithelp.ithome.com.tw/upload/images/20221011/20150622QiNzBbK3iN.png https://ithelp.ithome.com.tw/upload/images/20221011/20150622actvOFhGhW.png
MariaDB MangoDB

硬體 - 什麼是 CPU / GPU?

  • 中央處理器(CPU,Central Processing Unit)
    就像電腦的大腦作所有的多工運算。
  • 圖像處理器(GPU,Graphics Processing Unit)
    專門針對遊戲的影像做數學運算,也因此非常適合拿來加快深度學習的計算。NVIDIA 是專門生產 GPU 的製造商,而深度學習的開發框架都有支援 NVIDIA 的 GPU 做加速。
  • 向量處理器(TPU,Tensor Processing Unit)
    Google 自己另外開發,專門做向量計算的晶片。

如果沒有使用雲端服務,又是個人開發的話,電腦有沒有能加速的 GPU,訓練速度差別會蠻大的。

補充新知:2022/10/5 也就是前幾天 DeepMind 在自然(Nature)期刊發表了 Alpha Tensor 的文章,介紹了可以加速計算矩陣乘法的新演算法。

工程師常用工具

類別 名稱 說明
程式語言 Python AI 開發最佳選擇,要注意和其他語言相比,執行速度慢的問題
開發環境 Visual Studio Code 方便撰寫,眾多好用的延伸模組
程式庫 Scikit-learn 機器學習框架
程式庫 Tensorflow 早期的深度學習框架,業界使用率高(配合客戶使用)
程式庫 Pytorch   後來的深度學習框架,學術界使用率高(個人愛用)
程式庫 Numpy 處理數學陣列和矩陣
程式庫 Pandas  用來操作數據和資料清理
程式庫 Matplotlib  圖形可視化
程式庫 Seaborn  基於 Matplotlib 的高級圖形可視化
程式庫 venv  虛擬環境,新專案起手式
程式庫 Openai 可以使用 OpenAI 的 API,需申請金鑰
程式庫 OpenCV 電腦視覺框架,各種好用函式
程式庫 HugginFace Transformer 框架,快速開發
程式庫 Django  Python的網頁後端框架,自帶後台管理
程式庫 Flask  Python的網頁後端框架,輕量級適合小型 App 開發
Css/Html Bootstrap 網頁前端框架,方便設計 RWD(Optional,配合前端設計)
Javascript HighCharts 網頁圖形可視化,商用雲端部署可買斷,邊緣端部署需買 OEM 
Javascript Plotly 網頁圖形可視化,商用免費
版本管理 Svn 早期知名的程式碼版本管理軟體(配合客戶使用)
版本管理 Git  程式碼版本管理軟體(個人愛用),不公開的程式碼可以自架伺服器
虛擬容器 Docker  多人測試,統一環境版本做部署的好工具,注意 Desktop版 250 人以上公司需付費

開放原始碼平台 - GitHub / GitLab

分享開放原始碼(Open source)的平台,許多大神寫好的原始碼直接公開讓我們當範例參考,可以透過關鍵字搜尋想要的專案,進而使用或修改別人寫好的程式,站在巨人的肩膀上更快達成目的!但相對地如果我們看不懂別人寫的程式,發生預料之外的問題時會很難找出並修正該問題。

GitHub 和 GitLab 兩個都是使用 Git 這個程式碼版本管理工具,差別在

  • GitHub
    出現比較早,開放原始碼較多,有很多大型專案的原始碼。
    使用公開儲存庫免費(別人看得到你的原始碼),但是想要使用私人儲存庫讓別人看不到就需要付費。

  • GitLab
    出現比較晚,開放原始碼較少,相對地可以免費使用私人儲存庫,但是有空間限制。

GitHub GitLab
https://ithelp.ithome.com.tw/upload/images/20221011/20150622a9DxDTlvXu.png https://ithelp.ithome.com.tw/upload/images/20221011/201506220wklT2qrZY.png

ーー 上述所有圖片的出處為各官方網站。


上一篇
Day 25. AI × Data - 進行AI專案(二)
下一篇
Day 27. AI × 社會 - 各產業的實例(一)
系列文
OH~ AI 原來如此,互助就此開始!31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言