StarlightSearch / EmbedAnything

A minimalist yet highly performant, lightweight, lightning fast, multisource, multimodal and local embedding solution, built in rust.
Apache License 2.0
239 stars 21 forks source link

EmbedAnything on AWS EC2 #26

Closed cavitcakir closed 3 months ago

cavitcakir commented 3 months ago

Hi,

Firstly, thank you for the tool.

I have installed EmbedAnything with pip install embed_anything. Then I tried to run import embed_anything and faced this error: ImportError: /usr/local/lib/python3.10/site-packages/embed_anything/embed_anything.cpython-310-x86_64-linux-gnu.so: undefined symbol: hgemm_

I tried it with Python versions 3.10.14 and 3.11.4.

Could you help me with it?

This is my full log for it:

root@x:/home/cavit/dev/EmbedAnything# python --version Python 3.10.14

root@x:/home/cavit/dev/EmbedAnything# pip --version pip 24.1.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)

root@x:/home/cavit/dev/EmbedAnything# pip freeze embed_anything==0.1.18 intel-cmplr-lib-ur==2024.2.0 intel-openmp==2024.2.0 mkl==2024.2.0 tbb==2021.13.0

root@x:/home/cavit/dev/EmbedAnything# cat test.py import embed_anything

root@x:/home/cavit/dev/EmbedAnything# python test.py Traceback (most recent call last): File "/home/cavit/dev/EmbedAnything/test.py", line 1, in import embed_anything File "/usr/local/lib/python3.10/site-packages/embed_anything/init.py", line 2, in from .embed_anything import * ImportError: /usr/local/lib/python3.10/site-packages/embed_anything/embed_anything.cpython-310-x8664-linux-gnu.so: undefined symbol: hgemm

sonam-pankaj95 commented 3 months ago

Hi,

We have run it on an aws instance on Ubuntu, you need to install embed-anything with Python 10, because the build is available only on Python 10,

When you install it, it should show something like this: It should show it's installing package from manylinux build.

Screenshot 2024-07-03 204501

sonam-pankaj95 commented 3 months ago

Check it with the two lines itself, don't run test.py, as it's for testing if python package are built, When you do pip install embed_anything it's already a python package, so we shouldn't take it from python.embed_anything.

I just tested it with two lines and it's running 👍

import embed_anything embed_anything.embed_query(["hello"], "Bert") Screenshot 2024-07-03 230527

cavitcakir commented 3 months ago

Thank you for the answer.

I am using python3.10 and I created the test.py file, which is a single-line Python file containing the line: import embed_anything. I am not using python.embed_anything explicitly; it's called when I import embed_anything.

It can be seen from:

root@x:/home/cavit/dev/EmbedAnything# cat test.py 
import embed_anything
cavitcakir commented 3 months ago

I created a new instance with Ubuntu Server 24.04 LTS (HVM) image from AWS. It worked as intended with pip install embed_anything.

@sonam-pankaj95 mentioned that pip should install from the embed_anything-0.1.18-cp310-cp310-manylinux_2_34_x86_64.whl distribution, whereas in my previous EC2 instance, pip was installing from the embed_anything-0.1.18.tar.gz distribution. This was the main catch.