Mentionsy Mentionsy
Tech Writer Koduje
Tech Writer Koduje

#61 Tech Writer zaczyna wdrażać semantic search, czyli kilka praktycznych wskazówek na początek

22.12.2023 ·34 min 34 s · 10 rozdziałów

Po długich miesiącach gadania, przyszedł czas na działanie - wreszcie rozpoczęliśmy wdrażanie semantic searcha! Przejście od teorii do praktyki było dość trudne, dlatego mamy dla Was garść informacji, które ułatwią Wam wejście w temat. Rozmawiamy o tym czym jest semantic search, jakie nam daje korzyści w porównaniu do tradycyjnego wyszukiwania, co musimy mieć, żeby go wdrożyć, jak połączyć ze sobą poszczególne elementy całej układanki i jak takie rozwiązanie zaimplementować.Dźwięki wykorzystane w audycji pochodzą z kolekcji "107 Free Retro Game Sounds" dostępnej na stronie https://dominik-braun.net, udostępnianej na podstawie licencji Creative Commons license CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/).Informacje dodatkowe: "What is semantic search?", Elastic: https://www.elastic.co/what-is/semantic-search "Large language model (LLM)", Wikipedia: https://en.wikipedia.org/wiki/Large_language_model "What Is Retrieval-Augmented Generation, aka RAG?", NVIDIA Blogs: https://blogs.nvidia.com/blog/what-is-retrieval-augmented-generation/ "Hybrid Search Explained", Weaviate: https://weaviate.io/blog/hybrid-search-explained "Semantic search", SBERT: https://www.sbert.net/examples/applications/semantic-search/README.html#semantic-search Hugging Face: https://huggingface.co/ PyTorch: https://pytorch.org/ TensorFlow: https://www.tensorflow.org/ Node.js: https://nodejs.org/en Elasticsearch: https://www.elastic.co/elasticsearch Kubernetes: https://kubernetes.io/ "Build Semantic-Search with Elastic search and BERT vector embeddings. ( From scratch )", Abid Saudagar: https://www.youtube.com/watch?v=KSwPR9eig7w Jupyter Notebook: https://jupyter.org/ SentenceTransformers Documentation: https://www.sbert.net/ "k-nearest neighbor (kNN) search", Elastic Docs: https://www.elastic.co/guide/en/elasticsearch/reference/current/knn-search.html Transformers.js, Hugging Face: https://huggingface.co/docs/transformers.js/index "Export to ONNX", Hugging Face docs: https://huggingface.co/docs/transformers/serialization "Symmetric vs. Asymmetric Semantic Search", SBERT: https://www.sbert.net/examples/applications/semantic-search/README.html#symmetric-vs-asymmetric-semantic-search "Tutorial: semantic search with ELSER", Elastic Docs: https://www.elastic.co/guide/en/elasticsearch/reference/current/semantic-search-elser.html "The Beginner’s Guide to Text Embeddings", Deepset: https://www.deepset.ai/blog/the-beginners-guide-to-text-embeddings

Witamy i przedstawienie gościa

Podcast zaczyna się, autor przedstawia swojego gościa Pawła Kowaluka, eksperta od semantic searcha.

0:38
Definicja i teoria semantic searcha

Paweł wyjaśnia co to jest semantic search, jego zastosowania oraz różnice między nim a tradycyjnym wyszukiwaniem.

5:37
Wizja i implementacja

Paweł opisuje swoje plany i kroki do zaimplementowania semantic searcha w praktyce, od teorii do pierwszych kroków.

4:29
Implementacja modelu

Paweł opisuje wybór i implementację modelu oraz jego integrację z Elasticsearchem.

5:58
Techniczne aspekty implementacji

Paweł szczegółowo omawia techniczne problemy związane z implementacją semantic searcha w Node.js i Pythonie.

9:16
Podsumowanie i przyszłe kroki

Paweł podsumowuje osiągnięcia do tej pory i omawia przyszłe kroki, takie jak doszkolenie modelu na własnych danych.

4:01
Hybrydowe akronimy i ELSER

Paweł omawia hybrydowe akronimy oraz opisuje funkcje ELSER w Elastiku.

1:42
Embedding jako wektor tekstu

Rozkminięcie koncepcji embedding i jego relacji z modelami językowymi.

1:06
Zakodowanie treningowe

Wyjaśnienie różnice między osadzaniem a zakodowaniem wektorów w modelach językowych.

0:20
Implementacja semantycznego wyszukiwania

Paweł podkreśla proste kroki implementacji semantycznego wyszukiwania i zachęca do aktywności.

0:56

Rozdziały i streszczenia generowane automatycznie. Pełna transkrypcja nie jest publikowana — wyszukaj frazę, aby zobaczyć dopasowane fragmenty.