AllenNLP 基於 PyTorch 的 NLP 套裝I(安裝)

俗話說這個世界變化快,實際上 AI 世界變化是 TTT 快!這不上周大家還在討論 MXNET 新版本,討論 TensorFlow 跟 kaldi 的聯姻,這幾天就搞出來了 PyTorch 上的 NLP 套件,"AllenNLP 可以讓你輕鬆地設計和評估幾乎所有 NLP 問題上最新的深度學習模型",信息更新快到獲取更新本身都需要一個 AI 助手來處理了...

為神馬看 AllenNLP,今天剛看到,之所以吸引我的眼球理由有二,第一個是基於 PyTorch 而不是 TensorFlow(沒辦法,我大 Python 社區就這德行,就看不慣某一個東西做老大...);第二是艾倫是微軟創始人之一,試一下 AllenNLP 也算是追星一把吧。

言歸正傳,走起:

  • 看安裝很簡單,直接上 docker,直連國外鏡像太慢,這裡有一個阿里雲的國內 Docker 鏡像 :

docker run -p 8000:8000 -it --rm allennlp/allennlp

  • 如果 Mac 上沒有docker,那麼建議直接上 docker 官方的 Docker for Mac ,簡單舒適。
  • 值得一提的是用到的 spaCy(spaCy - spaCy)號稱:「使用Python和Cython進行工業級自然語言處理的軟體。它是目前最快的、水平最高的自然語言處理工具。」
  • 完成安裝

安裝完成之後,按照官網的 demo 走一遍:

  • 安裝完成之後,默認進入 docker terminal,如果沒有或者想想我一樣添加一個本地共享目錄進去的話,可以進行如下操作,把本地的 /Volumes/data/docker-data 目錄映射到了 /docker-data :

docker run -p 8000:8000 -it -v /Volumes/data/docker-data:/docker-data --rm allennlp/allennlp

  • 內置的命令行參數:

root@b2d67ac8efc3:/stage# python -m allennlp.runusage: python -m allennlp.run [command]Run AllenNLPoptional arguments: -h, --help show this help message and exitCommands: train Train a model evaluate Evaluate the specified model + dataset predict Use a trained model to make predictions. serve Run the web service and demo.root@b2d67ac8efc3:/stage#

沒什麼特別的,除了這個自帶的 server demo,如果不想自己折騰,官方的 demo 也體驗下也不錯(BTW,這個 server 是基於 uvloop 這個號稱 Blazing fast 的 Python Web 框架 ,不用過於驚訝,在 Python 的世界裡,自己搞一個 web framework 基本上是每一個過關 web dever 的必修課...),當然這都只是 demo,自己搞了數據和 model 之後也可以自定義腳本指令,此處可以回憶下 Django 裡面是怎麼處理自定義指令的:) 。 另外,通過 allennlp/run bulk 可以運行示例句子。

  • 上面說了這個自帶的 web server 有些意思,命令行裡頭執行指令(具體如何訪問 docker 自行搜索吧)初次執行要從 AWS 下載幾個文件),所需時間視網路情況而定了:

$ python -m allennlp.run serveStarting a sanic server on port 8000.[此處略過一坨 logging 信息]2017-09-11 09:06:36,855 - DEBUG - sanic - ▄▄▄▄▄ ???██████▄▄▄ _______________ ▄▄▄▄▄ █████████▄ / ????█████ ??▄ ??█ | Gotta go fast! | ??█████▄▄ ?██████▄██ | _________________/ ?▄▄▄▄▄ ??█▄?█════█? |/ ???▄ ??███ ? ▄▄ ▄███??██▄████████▄ ▄??????█ ██?▄▄▄██?▄███? ??████ ▄██▄???▄██▄??████??????███ ▄▄? ??████?███??????██?▄▄▄▄? ??████????▄██? ??█████████? ▄▄██?██████?█ ▄██? ??? █ ▄█ ? ▄▄▄▄█ ?█▄▄▄▄??▄ ? ??▄▄▄? ??▄▄?2017-09-11 09:06:36 - (sanic)[INFO]: Goin Fast @ http://0.0.0.0:80002017-09-11 09:06:36,856 - INFO - sanic - Goin Fast @ http://0.0.0.0:80002017-09-11 09:06:36 - (sanic)[INFO]: Starting worker [61]2017-09-11 09:06:36,866 - INFO - sanic - Starting worker [61]

  • 順利執行之上指令之後,這個酷酷的小標就可以在本地訪問: http://localhost:8000 獲得一個和官網類似的 demo ,這個 demo 主要展示了三種建模方式,著重秀了一下 AllenNLP 的性能優勢、可方便部署性,拿來驗證和學習新理論還是不錯,如需工業部署估計還是要回到 PyTorch 本身的工具鏈上去。以下是運行起來的 web 頁面:

  • 下面這仨在下一篇裡面再細說吧!
  1. SRL model
  2. MC Model
  3. TE Model

推薦閱讀:

TensorFlow引入了動態圖機制Eager Execution
10分鐘快速入門PyTorch (0)
Win10 64位安裝Pytorch 0.3
PyTorch實戰指南
起名字這個技術活,終於用Pytorch找到解決辦法了!

TAG:PyTorch | 人工智慧 | TensorFlow |