|
2 | 2 |
|
3 | 3 | <div align="center", style="font-size: 50px">
|
4 | 4 |
|
5 |
| -[](https://github.com/lanl/T-ELF/actions/workflows/ci_tests.yml/badge.svg?branch=main) [](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg) [](https://img.shields.io/badge/python-v3.8.5-blue) [](https://zenodo.org/doi/10.5281/zenodo.10257896) |
| 5 | +[](https://github.com/lanl/T-ELF/actions/workflows/ci_tests.yml/badge.svg?branch=main) [](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg) [](https://img.shields.io/badge/python-v3.11.10-blue) [](https://zenodo.org/doi/10.5281/zenodo.10257896) |
6 | 6 |
|
7 | 7 | </div>
|
8 | 8 |
|
@@ -33,59 +33,40 @@ T-ELF's adaptability spans across a multitude of disciplines, positioning it as
|
33 | 33 |
|
34 | 34 | ## Installation
|
35 | 35 |
|
36 |
| -### Step 1: Install the Library |
| 36 | +### Step 1: [Install Poetry to your system](https://python-poetry.org/docs/) |
| 37 | +This step is optional. Use Pip or Conda if Poetry is not avaiable. |
37 | 38 |
|
38 |
| -**Option 1: Install via PIP** |
39 |
| -```shell |
40 |
| -conda create --name TELF python=3.11.5 |
41 |
| -source activate TELF # or <conda activate TELF> |
42 |
| -pip install git+https://github.com/lanl/T-ELF.git |
43 |
| -``` |
| 39 | +### Step 2: Install the Library |
44 | 40 |
|
45 |
| -**Option 2: Install from Source** |
| 41 | +**Option 1: Install via Poetry or Pip** |
46 | 42 | ```shell
|
47 |
| -git clone https://github.com/lanl/T-ELF.git |
48 |
| -cd T-ELF |
49 |
| -conda create --name TELF python=3.11.5 |
| 43 | +conda create --name TELF python=3.11.10 |
50 | 44 | source activate TELF # or <conda activate TELF>
|
51 |
| -pip install -e . # or <python setup.py install> |
| 45 | +poetry install # or <pip install .> |
52 | 46 | ```
|
53 | 47 |
|
54 |
| -**Option 3: Install via Conda** |
| 48 | +**Option 2: Install via Conda** |
55 | 49 | ```shell
|
56 |
| -git clone https://github.com/lanl/T-ELF.git |
57 |
| -cd T-ELF |
| 50 | +git clone https://gitlab.lanl.gov/maksim/telf_internal |
| 51 | +cd telf_internal |
58 | 52 | conda env create --file environment_gpu.yml # use <conda env create --file environment_cpu.yml> for CPU only
|
59 | 53 | conda activate TELF_conda
|
60 | 54 | conda develop .
|
61 | 55 | ```
|
62 | 56 |
|
63 |
| -### Step 2: Install Spacy NLP model and NLTK Packages |
| 57 | +### Step 3: Post-installation Dependencies |
| 58 | +Next, we need to install the optional and additional dependencies. These include optional dependencies for GPU and HPC capabilities, as well as required dependencies like the SpaCy language models. |
| 59 | +To view all available options, please run: |
64 | 60 | ```shell
|
65 |
| -python -m spacy download en_core_web_lg |
66 |
| -python -m spacy download en_core_web_trf |
67 |
| -python -m nltk.downloader wordnet omw-1.4 |
| 61 | +python post_install.py --help |
68 | 62 | ```
|
69 |
| - |
70 |
| -### Step 3: Install Cupy if using GPU (*Optional* - Skip if used *Option 3* in *Step 1*) |
| 63 | +Install the additional dependencies: |
71 | 64 | ```shell
|
72 |
| -conda install -c conda-forge cupy |
73 |
| -``` |
74 |
| - |
75 |
| -### Step 4: Install MPI if using HPC (*Optional*) |
76 |
| -```shell |
77 |
| -module load <openmpi> # On a HPC Node |
78 |
| -pip install mpi4py # or <conda install -c conda-forge mpi4py> depending on the system |
| 65 | +python post_install.py # use the following, for example, for GPU system: <python post_install.py --gpu> |
79 | 66 | ```
|
80 | 67 |
|
81 | 68 | #### Jupyter Setup Tutorial for using the examples ([Link](https://www.maksimeren.com/post/conda-and-jupyter-setup-for-research/))
|
82 | 69 |
|
83 |
| -### Other Considerations |
84 |
| -On some Linux devices, based on how CUDA was configured, you may get an error when using a GPU. Install ```cudatoolkit``` to resolve the error: |
85 |
| -```shell |
86 |
| -conda install cudatoolkit |
87 |
| -conda install cudnn |
88 |
| -``` |
89 | 70 |
|
90 | 71 |
|
91 | 72 | ## Capabilities
|
@@ -114,46 +95,30 @@ conda install cudnn
|
114 | 95 | | RNMFk | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Recommender NMFk | [Link](examples/RNMFk/RNMFk.ipynb) | :white_check_mark: |
|
115 | 96 | | SymNMFk | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | NMFk with Symmetric Clustering | [Link](examples/SymNMFk/SymNMFk.ipynb) | :white_check_mark: |
|
116 | 97 | | WNMFk | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | NMFk with weighting - used for recommendation system | [Link](examples/WNMFk/WNMFk.ipynb) | :white_check_mark: |
|
117 |
| -| HNMFk | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Hierarchical NMFk | [Link](examples/HNMFk/HNMFk.ipynb) | :white_check_mark: | |
118 |
| -| BNMFk | | | | | | | Boolean NMFk | | :soon: | |
119 |
| -| SPLIT NMFk | | | | | | | Joint NMFk factorization of multiple data via SPLIT | | :soon: | |
120 |
| -| SPLIT Transfer Classifier | | | | | | | Supervised transfer learning method via SPLIT and NMFk | | :soon: | |
| 98 | +| HNMFk | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Hierarchical NMFk | [Link](examples/HNMFk/HNMFk.ipynb) | :white_check_mark: | |
| 99 | +| BNMFk | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Boolean NMFk | [Link](examples/BNMFk/BNMFk.ipynb) | :white_check_mark: | |
121 | 100 |
|
122 | 101 | ### TELF.pre_processing
|
123 | 102 |
|
124 | 103 | | **Method** | **Multiprocessing** | **HPC** | **Description** | **Example** | **Release Status** |
|
125 | 104 | |:----------:|:-------------------:|:-------------------:|:------------------------------------------------------------------:|:-----------:|:------------------:|
|
126 | 105 | | Vulture | :heavy_check_mark: | :heavy_check_mark: | Advanced text processing tool for cleaning and NLP | [Link](examples/Vulture) | :white_check_mark: |
|
127 | 106 | | Beaver | :heavy_check_mark: | :heavy_check_mark: | Fast matrix and tensor building tool for text mining | [Link](examples/Beaver) | :white_check_mark: |
|
128 |
| -| iPenguin | | | Online Semantic Scholar information retrieval tool | | :soon: | |
129 |
| -| Orca | | | Duplicate author detector for text mining and information retrival | | :soon: | |
130 |
| -| | | | | | | |
131 | 107 |
|
132 |
| -### TELF.post_processing |
133 |
| - |
134 |
| -| **Method** | **Description** | **Example** | **Release Status** | |
135 |
| -|:----------:|:----------------------------------------------------------:|:-----------:|:------------------:| |
136 |
| -| Peacock | Data visualization and generation of actionable statistics | | :soon: | |
137 |
| -| Wolf | Graph centrality and ranking tool | | :soon: | |
138 |
| -| Fox | Report generation tool for text data | | :soon: | |
139 |
| -| SeaLion | Generic report generation tool | | :soon: | |
140 | 108 |
|
141 | 109 | ### TELF.applications
|
142 | 110 |
|
143 | 111 | | **Method** | **Description** | **Example** | **Release Status** |
|
144 | 112 | |:----------:|:--------------------------------------------------------------------:|:-----------:|:------------------:|
|
145 | 113 | | Cheetah | Fast search by keywords and phrases | [Link](examples/Cheetah) | :white_check_mark: |
|
146 |
| -| Bunny | Dataset generation tool for documents and their citations/references | | :soon: | |
147 |
| -| Termite | Knowladge graph building tool | | :soon: | |
148 |
| - |
149 | 114 |
|
150 | 115 |
|
151 | 116 | ## How to Cite T-ELF?
|
152 | 117 | If you use T-ELF please cite.
|
153 | 118 |
|
154 | 119 | **APA:**
|
155 | 120 | ```latex
|
156 |
| -Eren, M., Solovyev, N., Barron, R., Bhattarai, M., Truong, D., Boureima, I., Skau, E., Rasmussen, K., & Alexandrov, B. (2023). Tensor Extraction of Latent Features (T-ELF) (Version 0.0.20) [Computer software]. https://doi.org/10.5281/zenodo.10257897 |
| 121 | +Eren, M., Solovyev, N., Barron, R., Bhattarai, M., Truong, D., Boureima, I., Skau, E., Rasmussen, K., & Alexandrov, B. (2023). Tensor Extraction of Latent Features (T-ELF) [Computer software]. https://doi.org/10.5281/zenodo.10257897 |
157 | 122 | ```
|
158 | 123 |
|
159 | 124 | **BibTeX:**
|
@@ -226,4 +191,26 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
226 | 191 |
|
227 | 192 |
|
228 | 193 | ## Developer Test Suite
|
229 |
| -Developer test suites are located under [```tests/```](tests/) directory. Tests can be ran from this folder using ```python -m pytest *```. |
| 194 | +Developer test suites are located under [```tests/```](tests/) directory. Tests can be ran from this folder using ```python -m pytest *```. |
| 195 | + |
| 196 | +## LANL HPC Installation Notes |
| 197 | + |
| 198 | +### Chicoma |
| 199 | +```shell |
| 200 | +# replace <path to your conda environments under projects> with your own path below. |
| 201 | +conda create --prefix=<path to your conda environments under projects> python=3.11.10 |
| 202 | +source activate <path to your conda environments under projects> # or use conda activate <...> |
| 203 | +pip install . |
| 204 | +python post_install.py --gpu --hpc-conda |
| 205 | +``` |
| 206 | + |
| 207 | +### Darwin |
| 208 | +```shell |
| 209 | +salloc -n 1 -p shared-gpu |
| 210 | +module load openmpi |
| 211 | +module load miniconda3 |
| 212 | +conda create --name TELF python=3.11.10 |
| 213 | +conda activate TELF # or <source activate TELF> |
| 214 | +pip install . |
| 215 | +python post_install.py --gpu --hpc |
| 216 | +``` |
0 commit comments