AllenNLP 取得了巨大成功,但隨著該領域的快速發展,是時候專注於新措施了。我們正在努力讓 AI2 Tango 成為組織研究程式碼庫的最佳方式。如果您是 AllenNLP 的活躍用戶,以下是一些建議的替代方案:
modules
和nn
包,請查看 delmaksym/allennlp-light。它甚至與 AI2 Tango 兼容!如果您有興趣使用 AllenNLP 進行模型開發,我們建議您查看 AllenNLP 指南,以獲取對該庫的全面介紹,然後查看 GitHub 討論上的更高級指南。
當您準備好開始專案時,我們建立了幾個範本儲存庫,您可以將其用作起點:
allennlp train
和設定檔來指定實驗,請使用此範本。我們推薦這種方法。另外,還有外部教學:
以及 AI2 AllenNLP 部落格上的其他人。
AllenNLP 支援動態載入「插件」。插件只是一個提供自訂註冊類別或附加allennlp
子命令的 Python 套件。
有一個開源插件生態系統,其中一些由 AI2 的 AllenNLP 團隊維護,其中一些由更廣泛的社群維護。
外掛 | 維護者 | 命令列介面 | 描述 |
allennlp 模型 | 人工智慧2 | 不 | 最先進模型的集合 |
allennlp-semparse | 人工智慧2 | 不 | 用於建構語義解析器的框架 |
allennlp 伺服器 | 人工智慧2 | 是的 | 用於服務模型的簡單演示伺服器 |
艾倫普-奧普圖納 | 平鬆誠 | 是的 | Optuna 整合用於超參數優化 |
AllenNLP 將自動找到您已安裝的任何官方 AI2 維護的插件,但為了讓 AllenNLP 查找您已安裝的個人或第三方插件,您還必須在運行的目錄中創建一個名為.allennlp_plugins
本地插件檔案allennlp
命令,或位於~/.allennlp/plugins
全域插件檔案。該檔案應列出您想要載入的插件模組,每行一個。
要測試 AllenNLP 是否可以找到並匯入您的插件,您可以執行allennlp test-install
命令。每個發現的插件都會記錄到終端。
有關插件的更多信息,請參閱插件 API 文件。有關如何建立自訂子命令以作為插件分發的信息,請參閱子命令 API 文件。
艾倫普 | 基於 PyTorch 建構的開源 NLP 研究庫 |
allennlp.指令 | CLI 的功能 |
allennlp.common | 整個庫使用的實用程式模組 |
allennlp.數據 | 資料處理模組,用於載入資料集並將字串編碼為整數以在矩陣中表示 |
allennlp.fairness | 用於緩解偏差和公平演算法和指標的模組 |
allennlp.模組 | 用於文本的 PyTorch 模組的集合 |
艾倫恩LP | 張量效用函數,例如初始化函數和激活函數 |
allennlp.培訓 | 訓練模型的功能 |
AllenNLP 需要 Python 3.6.1 或更高版本以及 PyTorch。
我們支援 Mac 和 Linux 環境上的 AllenNLP。我們目前不支援 Windows,但歡迎貢獻。
安裝 AllenNLP 最簡單的方法是使用 conda (您可以選擇不同的 python 版本):
conda install -c conda-forge python=3.8 allennlp
若要安裝可選包,例如checklist
,請使用
conda install -c conda-forge allennlp-checklist
或直接安裝allennlp-all
。上面提到的插件同樣可以安裝,例如
conda install -c conda-forge allennlp-models allennlp-semparse allennlp-server allennlp-optuna
建議您按照 pytorch.org 上的說明在安裝 AllenNLP之前安裝 PyTorch 生態系統。
之後,只需執行pip install allennlp
。
️ 如果您使用的是 Python 3.7 或更高版本,則應確保在執行上述命令後沒有安裝 PyPI 版本的dataclasses
,因為這可能會在某些平台上導致問題。您可以透過執行pip freeze | grep dataclasses
快速檢查這一點。pip freeze | grep dataclasses
。如果您在輸出中看到類似dataclasses=0.6
內容,則只需執行pip uninstall -y dataclasses
。
如果您需要有關設定適當的 Python 環境的指導,或想要使用不同的方法安裝 AllenNLP,請參閱下文。
Conda 可以用來設定 AllenNLP 所需的 Python 版本的虛擬環境。如果您已經有想要使用的 Python 3 環境,可以跳到「透過 pip 安裝」部分。
下載並安裝 Conda。
使用 Python 3.8 建立 Conda 環境(3.7 或 3.9 也可以):
conda create -n allennlp_env python=3.8
啟動Conda環境。您需要在要使用 AllenNLP 的每個終端中啟動 Conda 環境:
conda activate allennlp_env
使用pip
安裝庫和依賴項很簡單。
pip install allennlp
若要安裝可選依賴項,例如checklist
,請執行
pip install allennlp[checklist]
或者您可以使用pip install allennlp[all]
安裝所有可選依賴項。
正在尋找前沿功能?您可以直接從 pypi 安裝夜間版本
當您安裝 python 套件時,AllenNLP 會安裝一個腳本,因此您只需在終端機中輸入allennlp
即可執行 allennlp 命令。例如,您現在可以使用allennlp test-install
測試您的安裝。
您可能還想安裝allennlp-models
,其中包含用於訓練和運行我們官方支援的模型的 NLP 結構,其中許多模型託管在 https://demo.allennlp.org 上。
pip install allennlp-models
Docker 提供了一個虛擬機,其中包含運行 AllenNLP 的所有設定——無論您是利用 GPU 還是僅在 CPU 上運行。 Docker 提供了更多的隔離和一致性,也可以輕鬆地將環境分發到計算叢集。
AllenNLP 提供了官方 Docker 映像,其中安裝了該程式庫及其所有相依性。
安裝 Docker 後,如果有可用的 GPU,也應該安裝 NVIDIA Container Toolkit。
然後執行以下命令來取得將在 GPU 上運行的環境:
mkdir -p $HOME /.allennlp/
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest
您可以使用以下命令測試 Docker 環境
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest test-install
如果您沒有可用的 GPU,只需省略--gpus all
標誌即可。
由於各種原因,您可能需要建立自己的 AllenNLP Docker 映像,例如您需要不同版本的 PyTorch。為此,只需從 AllenNLP 本地克隆的根目錄運行make docker-image
即可。
預設情況下,這會建立一個帶有標籤allennlp/allennlp
的映像,但是您可以透過在呼叫make
時設定DOCKER_IMAGE_NAME
標誌來將其變更為您想要的任何內容。例如, make docker-image DOCKER_IMAGE_NAME=my-allennlp
。
如果您想使用不同版本的 Python 或 PyTorch,請將標誌DOCKER_PYTHON_VERSION
和DOCKER_TORCH_VERSION
分別設定為3.9
和1.9.0-cuda10.2
。這些標誌共同決定了所使用的基礎映像。您可以在此 GitHub 容器註冊表中查看有效組合的清單:github.com/allenai/docker-images/pkgs/container/pytorch。
建置映像檔後,您應該能夠透過執行docker images allennlp
看到它列出。
REPOSITORY TAG IMAGE ID CREATED SIZE
allennlp/allennlp latest b66aee6cb593 5 minutes ago 2.38GB
您也可以透過複製我們的 git 儲存庫來安裝 AllenNLP:
git clone https://github.com/allenai/allennlp.git
建立 Python 3.7 或 3.8 虛擬環境,並透過執行以下命令以editable
模式安裝 AllenNLP:
pip install -U pip setuptools wheel
pip install --editable .[dev,all]
這將使allennlp
在您的系統上可用,但它將使用您對來源儲存庫進行的本機複製中的來源。
您可以使用allennlp test-install
測試您的安裝。有關從來源安裝allennlp-models
說明,請參閱 https://github.com/allenai/allennlp-models。
安裝 AllenNLP 後,您可以使用allennlp
命令執行命令列介面(無論是從pip
或從來源安裝)。 allennlp
有各種子指令,例如train
、 evaluate
和predict
。要查看完整的使用信息,請執行allennlp --help
。
您可以透過執行allennlp test-install
來測試安裝。
歡迎每個人提出功能請求、錯誤報告或一般問題。作為一個擁有自己內部目標的小團隊,如果及時修復不符合我們的路線圖,我們可能會要求做出貢獻。為了保持事情的整潔,我們通常會關閉我們認為已得到解答的問題,但如果需要進一步討論,請毫不猶豫地跟進。
AI2 (@allenai) 的 AllenNLP 團隊歡迎社區的貢獻。如果您是首次貢獻者,我們建議您先閱讀我們的 CONTRIBUTING.md 指南。然後查看帶有Good First Issue
標籤的問題。
如果您想貢獻更大的功能,我們建議先建立一個包含提議設計的問題以供討論。這將防止您花費大量時間在具有技術限制的實施上,而有人可能早就指出了這一點。小額貢獻可以直接在拉取請求中做出。
拉取請求 (PR) 在合併之前必須經過一項批准審核並且沒有請求的變更。由於 AllenNLP 主要由 AI2 驅動,我們保留拒絕或恢復我們認為不好的貢獻的權利。
如果您在研究中使用 AllenNLP,請引用 AllenNLP:深度語義自然語言處理平台。
@inproceedings { Gardner2017AllenNLP ,
title = { AllenNLP: A Deep Semantic Natural Language Processing Platform } ,
author = { Matt Gardner and Joel Grus and Mark Neumann and Oyvind Tafjord
and Pradeep Dasigi and Nelson F. Liu and Matthew Peters and
Michael Schmitz and Luke S. Zettlemoyer } ,
year = { 2017 } ,
Eprint = { arXiv:1803.07640 } ,
}
AllenNLP 是一個由艾倫人工智慧研究所 (AI2) 支援的開源專案。 AI2 是一家非營利機構,其使命是透過高影響力的人工智慧研究和工程為人類做出貢獻。要詳細了解誰專門為此程式碼庫做出了貢獻,請參閱我們的貢獻者頁面。