Head_First_GIT.pdf
127.7 MB
Какой инструмент объединяет всех программистов?👀
С помощью него мы можем создавать большие проекты, удобно работать в команде, версионировать код…
Конечно, этоgit (не путать с GitHub:))
И помимо git + {add, commit -m “:)”, push} у него есть ещё масса полезных свойств, которые подробно описанына 466 страницах книги Р. Ганди.
Здесь вы найдёте всё про основы Git, свойства ветвлений, слияние, коммиты, устройство репозитория, отмену действий и исправление ошибок🐈
Также в отдельном разделе рассказывается про командную работу, методы и советы по эффективной организации взаимодействия.
Всем слияний без конфликтов👨💻
#mlops@data_easy
#лайфхаки@data_easy
С помощью него мы можем создавать большие проекты, удобно работать в команде, версионировать код…
Конечно, это
И помимо git + {add, commit -m “:)”, push} у него есть ещё масса полезных свойств, которые подробно описаны
Здесь вы найдёте всё про основы Git, свойства ветвлений, слияние, коммиты, устройство репозитория, отмену действий и исправление ошибок
Также в отдельном разделе рассказывается про командную работу, методы и советы по эффективной организации взаимодействия.
Всем слияний без конфликтов
#mlops@data_easy
#лайфхаки@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5🔥3🐳1🤪1
Наверное, многие слышали выражение в духе "модель в вакууме бесполезна". Имеется в виду, что как бы ни была хорошо обучена модель, пока её не внедрят "в production", обычный пользователь не сможет ею воспользоваться - а значит, и никакого смысла в её создании пока нет🥲
В этот момент может показаться, что обязательно должна найтись какая-то компания, которая возьмёт вашу модель и начнёт её использовать на реальных пользователях. Но вообще говоря, это не совсем так😉 Под выражением "этап вывода в production" (особенно в учебной практике) подразумевается просто обёртка в какое-нибудь простое приложение, развёрнутое на локальном сервере (т.е. на вашем компьютере). Пример можно увидеть на скрине - это полноценная веб-страница, на которой можно интерактивно получить предсказание вида ириса по его характеристикам(да-да, это модель, обученная на датасете iris.csv🌸).
Смысл такой "локальной" демонстрации в том, что можно как минимум наглядно показать людям, далёким от программирования (например, это могут быть те же заказчики ваших ml-решений на работе) возможности и принцип работы модели. А если ещё заморочиться с дизайном покрасивее и развернуть приложение на удалённом сервере (это, кстати, можно сделать бесплатно, но, как правило, с ограниченным числом запросов к нему) - то получится настоящая демо-версия проекта👑
Такую вещь, на самом деле, легко реализовать при помощи библиотеки Flask на Python буквально в 20 строчек кода, ловите шаблон этого мини-проекта в архиве☄️
🚀 запускать из папки flask_example командой
🚀 после этого приложение запустится и будет доступно по локальному адресу
🚀 в файле index.html хранится html-шаблон веб-страницы: по надписям, которые мы видим на ней в браузере, можно определить, какие места в коде за них отвечают, и изменить их:)
Из альтернативных способов «вывода в production», которые можно реализовать в домашних условиях - телеграмм-бот или приложение streamlit, про них расскажем в следующих выпусках🤗
#mlops@data_easy
В этот момент может показаться, что обязательно должна найтись какая-то компания, которая возьмёт вашу модель и начнёт её использовать на реальных пользователях. Но вообще говоря, это не совсем так😉 Под выражением "этап вывода в production" (особенно в учебной практике) подразумевается просто обёртка в какое-нибудь простое приложение, развёрнутое на локальном сервере (т.е. на вашем компьютере). Пример можно увидеть на скрине - это полноценная веб-страница, на которой можно интерактивно получить предсказание вида ириса по его характеристикам
Смысл такой "локальной" демонстрации в том, что можно как минимум наглядно показать людям, далёким от программирования (например, это могут быть те же заказчики ваших ml-решений на работе) возможности и принцип работы модели. А если ещё заморочиться с дизайном покрасивее и развернуть приложение на удалённом сервере (это, кстати, можно сделать бесплатно, но, как правило, с ограниченным числом запросов к нему) - то получится настоящая демо-версия проекта👑
Такую вещь, на самом деле, легко реализовать при помощи библиотеки Flask на Python буквально в 20 строчек кода, ловите шаблон этого мини-проекта в архиве☄️
🚀 запускать из папки flask_example командой
python app.py
🚀 после этого приложение запустится и будет доступно по локальному адресу
http://localhost:5000 -
можно открыть его в браузере и протестировать🚀 в файле index.html хранится html-шаблон веб-страницы: по надписям, которые мы видим на ней в браузере, можно определить, какие места в коде за них отвечают, и изменить их:)
Из альтернативных способов «вывода в production», которые можно реализовать в домашних условиях - телеграмм-бот или приложение streamlit, про них расскажем в следующих выпусках🤗
#mlops@data_easy
🔥9👍5💘2
Добавила хэштеги ко всем актуальным постам канала
#python@data_easy
#математика@data_easy
#аналитика@data_easy
#classic_ml@data_easy
#dl@data_easy
#cv@data_easy
#nlp@data_easy
#аудио@data_easy
#mlops@data_easy
#лайфхаки@data_easy
#карьера@data_easy
#полезный_ии@data_easy
ситуацию!
#мем@data_easy
https://yangx.top/+v1fdmoHV3JwyYTJi
https://youtube.com/@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
EasyData-chat
Чат канала EasyData❤️
❤8🔥4👍1
Привет, друзья!🌞
Сегодня обсудим тему хранения данных🗃 При работе с ML или аналитикой часто приходится сохранять промежуточные и конечные результаты в виде файлов - от датасетов до чекпоинтов моделей. И обычные базы данных, а тем более локальные диски и файловые системы быстро становятся неудобными... В таких случаях отлично подходит Amazon S3 (Simple Storage Service) - надёжное облачное хранилище, которое стало стандартом в индустрии.
📂 Что такое S3 и как оно устроено?
S3 - это объектное хранилище, в котором данные организуются не в файлы и папки, а в бакеты (buckets) - контейнеры, внутри которых хранятся объекты (файлы любого типа). У каждого объекта есть свой уникальный ключ (путь, по нему можно получить доступ к файлу) и метаданные.
📂 Главные принципы работы с S3:
➡️ Бакеты - это аналог корневых папок, в них лежат файлы (объекты).
➡️ Объекты - это загружаемые файлы (CSV, JSON, изображения, модели и т. д.), доступные по URL.
➡️ Политики доступа - гибко настраиваются, можно делать файлы публичными или закрытыми.
➡️ Версионирование - можно хранить несколько версий одного файла.
➡️ Архивы - для экономии места можно настроить автоматическое перемещение старых данных в архивное хранилище Glacier.
📂 Как развернуть S3 у себя?
➡️ Можно воспользоваться облачной версией (AWS S3), для этого:
- зарегистрируйтесь на AWS
- в консоли AWS создайте новый S3-бакет
- настройте права доступа (приватно или публично)
- загружайте файлы и работайте с ними через API или веб-интерфейс
Первые 5 ГБ хранилища бесплатны, дальше - зависит от объёма (около $0.023 за 1 ГБ).
➡️ Или полностью бесплатные аналоги S3 для локальной работы - MinIO и LocalStack, можно запустить их через Docker.
К слову, S3 легко интегрируется с Python, Spark, MLflow и другими инструментами для анализа данных и машинного обучения.
Хорошего вечера! 🚀
#mlops@data_easy
Сегодня обсудим тему хранения данных🗃 При работе с ML или аналитикой часто приходится сохранять промежуточные и конечные результаты в виде файлов - от датасетов до чекпоинтов моделей. И обычные базы данных, а тем более локальные диски и файловые системы быстро становятся неудобными... В таких случаях отлично подходит Amazon S3 (Simple Storage Service) - надёжное облачное хранилище, которое стало стандартом в индустрии.
S3 - это объектное хранилище, в котором данные организуются не в файлы и папки, а в бакеты (buckets) - контейнеры, внутри которых хранятся объекты (файлы любого типа). У каждого объекта есть свой уникальный ключ (путь, по нему можно получить доступ к файлу) и метаданные.
- зарегистрируйтесь на AWS
- в консоли AWS создайте новый S3-бакет
- настройте права доступа (приватно или публично)
- загружайте файлы и работайте с ними через API или веб-интерфейс
К слову, S3 легко интегрируется с Python, Spark, MLflow и другими инструментами для анализа данных и машинного обучения.
Хорошего вечера! 🚀
#mlops@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤4👍1👨💻1
boto3_examples.py
2 KB
Привет, друзья!
Долго об этом думала и решилась — пора менять вектор развития. Сколько можно настраивать гиперпараметры, бороться с переобучением, разгребать логи и объяснять, что "предсказание — это не стопроцентная гарантия!" Хочется чего-то более осязаемого…
С сегодняшнего дня я становлюсь фермером. Буду выращивать клубнику, бороться с вредителями и обучать нейросети отличать спелые ягоды от неспелых(ладно, все-таки Data Science совсем бросить не получится😁) .
В продолжение предыдущего поста держите небольшую шпаргалку по библиотеке boto3 для работы с S3 на Python. Составляла для себя, чтобы быстрее обрабатывать данные об урожае — возможно, пригодится и вам🔆
🔗Ссылка на официальную документацию тут.
Солнечного дня!🌅
#mlops@data_easy
Долго об этом думала и решилась — пора менять вектор развития. Сколько можно настраивать гиперпараметры, бороться с переобучением, разгребать логи и объяснять, что "предсказание — это не стопроцентная гарантия!" Хочется чего-то более осязаемого…
С сегодняшнего дня я становлюсь фермером. Буду выращивать клубнику, бороться с вредителями и обучать нейросети отличать спелые ягоды от неспелых
В продолжение предыдущего поста держите небольшую шпаргалку по библиотеке boto3 для работы с S3 на Python. Составляла для себя, чтобы быстрее обрабатывать данные об урожае — возможно, пригодится и вам
🔗Ссылка на официальную документацию тут.
Солнечного дня!🌅
#mlops@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21🤣10👍5❤4🤔3
Изучаем_Spark_Молниеносный_анализ_данных_by_Захария_М_,_Венделл.pdf
15.7 MB
Привет, друзья!
Сегодня поговорим про Apache Spark - один из самых мощных инструментов для обработки больших данных😎
💡 Что это такое?
Apache Spark - это платформа для быстрой и распределённой работы с большими данными. Она делит их на части и параллельно обрабатывает на нескольких серверах (кластере).
💡 Чем Spark хорош?
1. Быстрота: в отличие от других традиционных систем, Spark держит данные в оперативной памяти, что позволяет выполнять цепочки преобразований в разы быстрее.
Для сравнения: многие классические SQL-базы хранят данные на диске и только частично кэшируют их в памяти для ускорения запросов.
К слову, Pandas тоже работает в памяти, как и Spark, но рассчитан на обработку только на одной машине - если данные не помещаются в память, начинаются проблемы с производительностью.
2. Распределённость и масштабируемость: упомянутую выше проблему Spark решает! Он умеет распределять данные и обработку между множеством серверов в кластере, масштабируя работу на необходимый объем ресурсов.
3. Универсальность: Spark поддерживает сразу несколько сценариев работы с данными.
Можно писать SQL-запросы (Spark SQL), строить пайплайны машинного обучения (Spark MLlib), обрабатывать потоковые данные в реальном времени (Spark Structured Streaming) и работать с графовыми структурами (Spark GraphX).
4. Поддержка нескольких языков: можно писать код на Python (через библиотеку PySpark, причём она поддерживает и синтаксис SQL), Scala, Java и R.
💡 Как писать код для Spark?
Синтаксис для Python реализован через библиотеку PySpark, он очень напоминает по логике работу с Pandas и Polars.
Данные также представлены в виде таблиц (DataFrame), а операции можно писать цепочкой методов (select, filter, groupBy и т.д.). Можно даже писать чистые SQL-запросы к таблицам.
Главное отличие: в PySpark все операции "ленивые", они накапливаются в план выполнения и запускаются только при явном запросе результата (collect, show, write).
💡 И, конечно, полезные материалы!
1. Методичка ИТМО по Spark.
2. Хорошее обучающее видео на русском.
3. Книга "Learning Spark" от O’Reilly во вложении - очень крутое введение в тему (возможно, вам удастся найти более новую версию:)).
4. Документация Databricks по PySpark (тут много базовых примеров).
5. И официальная документация PySpark.
Удачи с большими данными, друзья! 🌟
#mlops@data_easy
Сегодня поговорим про Apache Spark - один из самых мощных инструментов для обработки больших данных
Apache Spark - это платформа для быстрой и распределённой работы с большими данными. Она делит их на части и параллельно обрабатывает на нескольких серверах (кластере).
1. Быстрота: в отличие от других традиционных систем, Spark держит данные в оперативной памяти, что позволяет выполнять цепочки преобразований в разы быстрее.
Для сравнения: многие классические SQL-базы хранят данные на диске и только частично кэшируют их в памяти для ускорения запросов.
К слову, Pandas тоже работает в памяти, как и Spark, но рассчитан на обработку только на одной машине - если данные не помещаются в память, начинаются проблемы с производительностью.
2. Распределённость и масштабируемость: упомянутую выше проблему Spark решает! Он умеет распределять данные и обработку между множеством серверов в кластере, масштабируя работу на необходимый объем ресурсов.
3. Универсальность: Spark поддерживает сразу несколько сценариев работы с данными.
Можно писать SQL-запросы (Spark SQL), строить пайплайны машинного обучения (Spark MLlib), обрабатывать потоковые данные в реальном времени (Spark Structured Streaming) и работать с графовыми структурами (Spark GraphX).
4. Поддержка нескольких языков: можно писать код на Python (через библиотеку PySpark, причём она поддерживает и синтаксис SQL), Scala, Java и R.
Синтаксис для Python реализован через библиотеку PySpark, он очень напоминает по логике работу с Pandas и Polars.
Данные также представлены в виде таблиц (DataFrame), а операции можно писать цепочкой методов (select, filter, groupBy и т.д.). Можно даже писать чистые SQL-запросы к таблицам.
Главное отличие: в PySpark все операции "ленивые", они накапливаются в план выполнения и запускаются только при явном запросе результата (collect, show, write).
1. Методичка ИТМО по Spark.
2. Хорошее обучающее видео на русском.
3. Книга "Learning Spark" от O’Reilly во вложении - очень крутое введение в тему (возможно, вам удастся найти более новую версию:)).
4. Документация Databricks по PySpark (тут много базовых примеров).
5. И официальная документация PySpark.
Удачи с большими данными, друзья! 🌟
#mlops@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17🔥11❤🔥7👍1🐳1
Методичка_кафка.pdf
8.7 MB
Привет, друзья!
Не так давно в LinkedIn завирусилась очень полезная методичка по Apache Kafka - не смогла пройти мимо😁
Пару слов что такое Kafka и зачем она нужна...
Это распределённая платформа потоковой передачи сообщений, которая позволяет:
1️⃣ Собирать данные из разных источников (логов, БД, API...) в реальном времени.
2️⃣ Сохранять события в виде сообщений, которые можно читать многократно, разными потребителями и спустя время (в отличие от RabbitMQ).
3️⃣ Подключать обработчики (консьюмеры), которые анализируют или трансформируют поток данных - например, для аналитики, мониторинга или ETL.
4️⃣Организовывать обмен сообщениями между микросервисами так, чтобы они не зависели напрямую друг от друга - каждый подписывается на нужный поток и обрабатывает события независимо.
Ещё ссылки...
✴️ Официальная документация Kafka
✴️ Интерактивный учебник от Confluent
✴️ Документация confluent-kafka (обёртка для работы на Python)
✴️ И во вложении та самая методичка:)
Солнечной недели!🔆
#mlops@data_easy
Не так давно в LinkedIn завирусилась очень полезная методичка по Apache Kafka - не смогла пройти мимо😁
Пару слов что такое Kafka и зачем она нужна...
Это распределённая платформа потоковой передачи сообщений, которая позволяет:
1️⃣ Собирать данные из разных источников (логов, БД, API...) в реальном времени.
2️⃣ Сохранять события в виде сообщений, которые можно читать многократно, разными потребителями и спустя время (в отличие от RabbitMQ).
3️⃣ Подключать обработчики (консьюмеры), которые анализируют или трансформируют поток данных - например, для аналитики, мониторинга или ETL.
4️⃣Организовывать обмен сообщениями между микросервисами так, чтобы они не зависели напрямую друг от друга - каждый подписывается на нужный поток и обрабатывает события независимо.
Ещё ссылки...
✴️ Официальная документация Kafka
✴️ Интерактивный учебник от Confluent
✴️ Документация confluent-kafka (обёртка для работы на Python)
✴️ И во вложении та самая методичка:)
Солнечной недели!🔆
#mlops@data_easy
❤16🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Привет, друзья!
Если вам нравится автоматическая аналитика по типу YData Profiling, то, возможно, придётся по душе и Evidently!
Эта библиотека активно развивается и содержит множество удобных обёрток для мониторинга качества данных в проде.
💡 Вот что она умеет:
- Анализировать качество данных: пропуски, типы данных, распределения... похоже на возможности YData.
- Отслеживать дрифт признаков и таргета: сравнивает две выборки по ключевым статистическим характеристикам (например, train и prod датасеты).
- Мониторить метрики моделей во времени: можно встроить в пайплайны (Airflow, Prefect, CI/CD), чтобы отслеживать изменения в качестве.
- Оценивать входы и выходы LLM: есть специальные отчёты для анализа prompt-response (длина, токсичность, повторяемость и т.п.)
- Работать локально или в облаке: можно использовать просто в ноутбуке или развернуть Evidently UI для команды.
- И самое главное:) Она создаёт интерактивные HTML-отчёты за пару строк кода.
💡 Полезные материалы:
- официальная документация (сразу ссылка на quickstart)
- youtube-канал с видео-туториалами
- репозиторий библиотеки на github
Пусть дрифт остаётся на треке, а не в проде🚙
#аналитика@data_easy
#mlops@data_easy
Если вам нравится автоматическая аналитика по типу YData Profiling, то, возможно, придётся по душе и Evidently!
Эта библиотека активно развивается и содержит множество удобных обёрток для мониторинга качества данных в проде.
- Анализировать качество данных: пропуски, типы данных, распределения... похоже на возможности YData.
- Отслеживать дрифт признаков и таргета: сравнивает две выборки по ключевым статистическим характеристикам (например, train и prod датасеты).
- Мониторить метрики моделей во времени: можно встроить в пайплайны (Airflow, Prefect, CI/CD), чтобы отслеживать изменения в качестве.
- Оценивать входы и выходы LLM: есть специальные отчёты для анализа prompt-response (длина, токсичность, повторяемость и т.п.)
- Работать локально или в облаке: можно использовать просто в ноутбуке или развернуть Evidently UI для команды.
- И самое главное:) Она создаёт интерактивные HTML-отчёты за пару строк кода.
- официальная документация (сразу ссылка на quickstart)
- youtube-канал с видео-туториалами
- репозиторий библиотеки на github
Пусть дрифт остаётся на треке, а не в проде
#аналитика@data_easy
#mlops@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍5❤🔥3
Привет, друзья!
Во многих задачах - от классификации и кластеризации до поиска похожих объектов и генерации рекомендаций - важно уметь эффективно находить ближайшие векторы в высокоразмерном пространстве. Но как только число векторов превышает несколько тысяч, простые методы из sklearn и numpy начинают работать непозволительно медленно🐌 При масштабах же в миллионы объектов стоит задуматься уже не только про быстроту, но и про оптимизацию, балансируя между точностью, скоростью и потреблением памяти.
В таких случаях приходят на помощь библиотеки для быстрого KNN в высокоразмерных пространствах. Самая известная, пожалуй, Faiss от Facebook AI Research. Вот её главные преимущества:
🔠 Подкапотная реализация на C++ с SIMD-оптимизациями и продуманным управлением памятью в Python-обёртке. А ещё это значит, что Faiss не блокируется GIL'ом и отлично масштабируется по потокам: можно параллелить поиск через joblib.Parallel или ThreadPoolExecutor.
🔠 Поддержка GPU, что также даёт прирост скорости в десятки раз.
🔠 Гибкость индексов: от точного поиска (Flat) до приближённых структур с квантованием и кластеризацией.
Рассмотрим основные типы индексов:
🔠
🔠
При поиске сначала выбираются N ближайших кластеров, а затем производится поиск заданной глубины K внутри них.
На моей практике, даже с учётом времени на обучение индекса, IVF ускорил процесс поиска в ~8 раз по сравнению с Flat+Parallel, при этом точность результата по метрикам проявилась только в 5-м знаке после запятой(ещё и в бОльшую сторону! 😎 )
Но есть уже озвученное "НО" - такой индекс требует предварительного обучения, и на это нужно время. Поэтому имеет смысл его использовать, если запросы каждый раз делаются из одинакового и фиксированного пространства.
Если захотите воспользоваться IVF, то упомянутые N и K лучше брать как
🔠
🔠
Такие индексы не требуют предварительного обучения и хорошо подходят для динамических баз, где данные часто добавляются на лету. Отличаются высокой точностью даже при небольшой глубине поиска, но потребляют больше памяти и не поддерживаются на GPU.
Полезные ссылки:
🔠 Официальный репозиторий Faiss.
Там же ссылка на quick start и базу jupyter-ноутбуков с примерами кода на Python
🔠 Ещё пара хороших туториалов с примерами кода тут и тут
⚠️Если решите установить версию с поддержкой GPU, лучше использовать эту
Лёгкой и солнечной недели!☀️
#mlops@data_easy
Во многих задачах - от классификации и кластеризации до поиска похожих объектов и генерации рекомендаций - важно уметь эффективно находить ближайшие векторы в высокоразмерном пространстве. Но как только число векторов превышает несколько тысяч, простые методы из sklearn и numpy начинают работать непозволительно медленно
В таких случаях приходят на помощь библиотеки для быстрого KNN в высокоразмерных пространствах. Самая известная, пожалуй, Faiss от Facebook AI Research. Вот её главные преимущества:
Рассмотрим основные типы индексов:
IndexFlat
- базовая реализация, которая хранит все векторы в RAM и выполняет точный линейный поиск. Работает быстро на малых объемах (<100K векторов), также идеален для отладки или в случаях, если поиск каждый раз нужно осуществлять в разных ограниченных подпространствах векторов (тогда просто запускаете с тем же Parallel:)).IndexIVF
(Inverted File Index) - предварительно перед поиском он кластеризует всё пространство векторов (например, с помощью k-means). При поиске сначала выбираются N ближайших кластеров, а затем производится поиск заданной глубины K внутри них.
На моей практике, даже с учётом времени на обучение индекса, IVF ускорил процесс поиска в ~8 раз по сравнению с Flat+Parallel, при этом точность результата по метрикам проявилась только в 5-м знаке после запятой
Но есть уже озвученное "НО" - такой индекс требует предварительного обучения, и на это нужно время. Поэтому имеет смысл его использовать, если запросы каждый раз делаются из одинакового и фиксированного пространства.
Если захотите воспользоваться IVF, то упомянутые N и K лучше брать как
√d
и 2–4*(размер топа, который вы ищете)
соответственно, где d - количество векторов в базе для поиска.IndexIVFPQ
(Product Quantization) добавляет к IVF еще одно ускорение - сжимает векторы до компактного кода (например, 8 байт вместо 128 float32). Работает ещё быстрее и экономит память при минимуме потерь в точности. Имеет смысл посмотреть в сторону этого подхода, если у вас порядка миллиарда векторов.HNSW
-семейство индексов (Hierarchical Navigable Small World) - индексы на основе графов малого мира, где каждый вектор представляется как вершина, связанная с соседями в многослойной структуре. Поиск происходит за счёт навигации по графу: сначала на грубом уровне, затем всё точнее.Такие индексы не требуют предварительного обучения и хорошо подходят для динамических баз, где данные часто добавляются на лету. Отличаются высокой точностью даже при небольшой глубине поиска, но потребляют больше памяти и не поддерживаются на GPU.
Полезные ссылки:
Там же ссылка на quick start и базу jupyter-ноутбуков с примерами кода на Python
⚠️Если решите установить версию с поддержкой GPU, лучше использовать эту
Лёгкой и солнечной недели!
#mlops@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - facebookresearch/faiss: A library for efficient similarity search and clustering of dense vectors.
A library for efficient similarity search and clustering of dense vectors. - facebookresearch/faiss
🔥11❤2🙏1