5

I try to follow instruction on the MUSE project.

They require PyTorch and Faiss. PyTorch is easy to install. But I found problem with installing Faiss.

The instruction on MUSE tell me to use

conda install faiss-cpu -c pytorch

But Google Colab doesn't support conda (When I tried !pip install conda, it didn't work)

And Faiss didn't work when I !pip install faiss either.

Is there a way to install Faiss or conda?

korakot
  • 37,818
  • 16
  • 123
  • 144

4 Answers4

10

Here's how I eventually install faiss.

!wget  https://anaconda.org/pytorch/faiss-cpu/1.2.1/download/linux-64/faiss-cpu-1.2.1-py36_cuda9.0.176_1.tar.bz2
!tar xvjf faiss-cpu-1.2.1-py36_cuda9.0.176_1.tar.bz2
!cp -r lib/python3.6/site-packages/* /usr/local/lib/python3.6/dist-packages/
!pip install mkl

Then, I can import faiss with no problem. The warning is that I didn't use GPU. If you want to use GPU, you need to install this instead:

https://anaconda.org/pytorch/faiss-gpu/1.2.1/download/linux-64/faiss-gpu-1.2.1-py36_cuda9.0.176_1.tar.bz2

Update June 2020

As @Kuffner said, you can now use !pip to install it. (I test and simplify it a bit)

For CPU

!apt install libomp-dev
!pip install faiss

For GPU

!pip install faiss-gpu
korakot
  • 37,818
  • 16
  • 123
  • 144
6

As of June 2020 the easiest solution for Colab GPU runtime is:

!apt install libomp-dev
!python -m pip install --upgrade faiss faiss-gpu
import faiss

The code comes from here: faiss/issues/890

denis_smyslov
  • 741
  • 8
  • 8
4

Try this solution, it should work!

!pip install faiss-cpu --no-cache
Mohamad Al Mdfaa
  • 985
  • 1
  • 11
  • 16
0

Try this way!

  1. install conda

    !wget -c -O anaconda.sh 'https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh'

    !bash anaconda.sh -b

    !cd /usr/bin/ && ln -sf /content/anaconda3/bin/conda conda

    !cd /content/

  2. install faiss

    !yes y | conda install faiss-gpu -c pytorch

Feng
  • 559
  • 3
  • 8
  • Here's the error after running the code. ... Preparing transaction: - done Verifying transaction: | / - \ | / - \ | / - \ | / - \ | / - \ | / - \ done Executing transaction: / done yes: standard output: Broken pipe – korakot Mar 19 '18 at 10:32