|
# macOS |
|
|
|
Supports CPU and MPS (Metal M1/M2). |
|
|
|
- [Install](#install) |
|
- [Run](#run) |
|
|
|
## Install |
|
* Download and Install [Miniconda](https://docs.conda.io/en/latest/miniconda.html#macos-installers) for Python 3.10. |
|
* Run Miniconda |
|
* Setup environment with Conda Rust: |
|
```bash |
|
conda create -n h2ogpt python=3.10 rust |
|
conda activate h2ogpt |
|
``` |
|
* Install dependencies: |
|
```bash |
|
git clone https://github.com/h2oai/h2ogpt.git |
|
cd h2ogpt |
|
|
|
# fix any bad env |
|
pip uninstall -y pandoc pypandoc pypandoc-binary |
|
pip install --upgrade pip |
|
python -m pip install --upgrade setuptools |
|
|
|
# Install Torch: |
|
pip install -r requirements.txt --extra-index https://download.pytorch.org/whl/cpu |
|
``` |
|
* Install document question-answer dependencies: |
|
```bash |
|
# Required for Doc Q/A: LangChain: |
|
pip install -r reqs_optional/requirements_optional_langchain.txt |
|
# Required for CPU: LLaMa/GPT4All: |
|
pip uninstall -y llama-cpp-python llama-cpp-python-cuda |
|
pip install -r reqs_optional/requirements_optional_gpt4all.txt |
|
pip install librosa |
|
pip install llama-cpp-python |
|
# Optional: PyMuPDF/ArXiv: |
|
pip install -r reqs_optional/requirements_optional_langchain.gpllike.txt |
|
# Optional: Selenium/PlayWright: |
|
pip install -r reqs_optional/requirements_optional_langchain.urls.txt |
|
# Optional: DocTR OCR: |
|
pip install -r reqs_optional/requirements_optional_doctr.txt |
|
# Optional: for supporting unstructured package |
|
python -m nltk.downloader all |
|
``` |
|
* For supporting Word and Excel documents, download libreoffice: https://www.libreoffice.org/download/download-libreoffice/ . |
|
* To support OCR, install [Tesseract Documentation](https://tesseract-ocr.github.io/tessdoc/Installation.html): |
|
```bash |
|
brew install libmagic |
|
brew link libmagic |
|
brew install poppler |
|
brew install tesseract |
|
brew install tesseract-lang |
|
brew install rubberband |
|
brew install pygobject3 gtk4 |
|
brew install libjpeg |
|
brew install libpng |
|
``` |
|
|
|
See [FAQ](FAQ.md#adding-models) for how to run various models. See [CPU](README_CPU.md) and [GPU](README_GPU.md) for some other general aspects about using h2oGPT on CPU or GPU, such as which models to try. |
|
|
|
--- |
|
|
|
## Issues |
|
* Metal M1/M2 Only: |
|
Verify whether torch uses MPS, run below python script: |
|
```python |
|
import torch |
|
if torch.backends.mps.is_available(): |
|
mps_device = torch.device("mps") |
|
x = torch.ones(1, device=mps_device) |
|
print (x) |
|
else: |
|
print ("MPS device not found.") |
|
``` |
|
Output |
|
```bash |
|
tensor([1.], device='mps:0') |
|
``` |
|
* If you see `ld: library not found for -lSystem` then ensure you do below and then retry from scratch to do `pip install` commands: |
|
```bash |
|
export LDFLAGS=-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib` |
|
``` |
|
* If conda Rust has issus, you can download and install [Native Rust]((https://www.geeksforgeeks.org/how-to-install-rust-in-macos/): |
|
```bash |
|
curl –proto ‘=https’ –tlsv1.2 -sSf https://sh.rustup.rs | sh |
|
# enter new shell and test: |
|
rustc --version |
|
``` |
|
* When running a Mac with Intel hardware (not M1), you may run into |
|
```text |
|
_clang: error: the clang compiler does not support '-march=native'_ |
|
``` |
|
during pip install. If so, set your archflags during pip install. E.g. |
|
```bash |
|
ARCHFLAGS="-arch x86_64" pip install -r requirements.txt |
|
``` |
|
* Metal M1/M2 Only |
|
* By default requirements_optional_gpt4all.txt should install correct llama_cpp_python packages for GGUF. See [https://github.com/jllllll/llama-cpp-python-cuBLAS-wheels/releases](https://github.com/jllllll/llama-cpp-python-cuBLAS-wheels/releases) or [https://github.com/abetlen/llama-cpp-python/releases](https://github.com/abetlen/llama-cpp-python/releases) for other releases if you encounter any issues. |
|
* If any issues, then compile: |
|
```bash |
|
pip uninstall llama-cpp-python -y |
|
CMAKE_ARGS="-DLLAMA_METAL=on" FORCE_CMAKE=1 pip install -U llama-cpp-python==0.2.26 --no-cache-dir |
|
``` |
|
|
|
* If you encounter an error while building a wheel during the `pip install` process, you may need to install a C++ compiler on your computer. |
|
|