KNN: какую лучше выбрать embeding модель для русского

Попробовал дефолтную (sentence-transformers/all-MiniLM-L6-v2), но не видит русских слов/понятий/смыслов. Посоветуйте пожалуйста.

Здравствуйте. А какие ещё с https://huggingface.co/ вы пробовали?

Вот взял первую попавшуюся мультиязычную отсюда:

mysql> drop table if exists t; create table t(f text, vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='sentence-transformers/use-cmlm-multilingual' FROM='f');
--------------
drop table if exists t
--------------

Query OK, 0 rows affected (0.00 sec)

--------------
create table t(f text, vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='sentence-transformers/use-cmlm-multilingual' FROM='f')
--------------

Query OK, 0 rows affected (0.00 sec)

mysql> insert into t(f) values('хлеб'),('собака');
--------------
insert into t(f) values('хлеб'),('собака')
--------------

Query OK, 2 rows affected (0.05 sec)

mysql> select f, knn_dist() from t where knn(vec, 3, 'булка');
--------------
select f, knn_dist() from t where knn(vec, 3, 'булка')
--------------

+--------------+------------+
| f            | knn_dist() |
+--------------+------------+
| хлеб         | 0.44970593 |
| собака       | 0.57482082 |
+--------------+------------+
2 rows in set (0.02 sec)
--- 2 out of 2 results in 22ms ---

mysql> select f, knn_dist() from t where knn(vec, 3, 'кошка');
--------------
select f, knn_dist() from t where knn(vec, 3, 'кошка')
--------------

+--------------+------------+
| f            | knn_dist() |
+--------------+------------+
| собака       | 0.13291922 |
| хлеб         | 0.87725186 |
+--------------+------------+
2 rows in set (0.03 sec)
--- 2 out of 2 results in 25ms ---

вроде работает.

1 Like

Спасибо. Работает!
Я пытался так: create table t2(f text, vec FLOAT_VECTOR KNN_TYPE=‘hnsw’ HNSW_SIMILARITY=‘l2’ MODEL_NAME=‘google/embeddinggemma-300m’ FROM=‘f’);

но была ошибка:
ERROR 1064 (42000): error adding table ‘t2’: prealloc: Failed to download model configuration