⩬ Помимо новостей AI и собственных мыслей, я хочу постепенно рассказывать про базовые принципы в AI и LLM. Вспоминается мем про "это база". Так вот сегодня поговорим об одном из базовых понятий в области AI и LLM - embeddings. Embedding - это процесс преобразования слов, фраз или предложений в векторы чисел, сохраняя смысловую близость между ними.
Пример: слова "car", "машина" и "автомобиль" имеют одинаковый смысл (даже при сильно разном написании), а значит будут близки в n-мерном пространстве, в то время как фразы "критическое мышление" и "плоская земля" будут далеко друг от друга.
Числовой пример: вектор [1, 0] будет близок к вектору [0.98, 0.01], но далек от [0, 1].
Embeddings широко используются, например:
в переводах (LLM понимает смысловую близость слов на разных языках);
сегментировании (можно распределить вопросы по смысловым группам для поддержки);
определении близости запроса к информации в базе знаний (работают сервисы вроде https://www.chatpdf.com).
анализ тональности текста (определение позитивных и негативных отзывов);
Чтобы использовать embeddings, не обязательно разбираться в деталях. OpenAI предоставляет API для расчета embeddings для любого текста, возвращая вектор чисел. Сравнивая два вектора, можно определить их семантическую близость.
Подробнее
- Что такое embeddings
https://platform.openai.com/docs/guides/embeddings -
- Исходный код как с помощью эмбеда в википедии находить релевантную инфу запросу и использовать это как контекст для GPT:
https://github.com/openai/openai-cookbook/blob/main/examples/fine-tuned_qa/olympics-1-collect-data.ipynb
https://github.com/openai/openai-cookbook/blob/main/examples/fine-tuned_qa/olympics-2-create-qa.ipynb
- Курс "Deep Learning for NLP" от Stanford University: https://web.stanford.edu/class/cs224n/
- TensorFlow Embedding Projector - интерактивная визуализация embeddings: http://projector.tensorflow.org/
