Getting started with Jina AI
3 min read
What is neural search?
In short, neural search is a new approach to retrieving information. Instead of telling a machine a set of rules to understand what data is what, neural search does the same thing with a pre-trained neural network. This means developers don’t have to write every little rule, saving them time and headaches, and the system trains itself to get better as it goes along.
What can it do?
Thanks to recent advances in deep neural networks, a neural search system can go way beyond simple text search. It enables advanced intelligence on all kinds of unstructured data, such as images, audio, video, PDF, 3D mesh, you name it.
For example, retrieving animation according to some beats; finding the best-fit memes according to some jokes; scanning a table with your iPhone's LiDAR camera and finding similar furniture at IKEA. Neural search systems enable what traditional search can't: multi/cross-modal data retrieval.
Think outside the (search)box
Many neural search-powered applications do not have a search box:
- A question-answering chatbot can be powered by neural search: by first indexing all hard-coded QA pairs and then semantically mapping user dialog to those pairs.
- A smart speaker can be powered by neural search: by applying STT (speech-to-text) and semantically mapping text to internal commands.
- A recommendation system can be powered by neural search: by embedding user-item information into vectors and finding top-K nearest neighbours of a user/item.
Neural search creates a new way to comprehend the world. It is creating new doors that lead to new businesses.
What is Jina?
Jina is an approach to neural search. It’s cloud-native, so it can be deployed in containers, and it offers anything-to-anything search. Text-to-text, image-to-image, video-to-video, or whatever else you can feed it.
Three fundamental concepts in Jina
- Document: Document is the basic data type that Jina operates with. Text, picture, video, audio, image or 3D mesh: They are all Documents in Jina. You could say Document is to Jina is what
np.float
is to Numpy, and DocumentArray is similar tonp.ndarray
. - Executor: An Executor should subclass directly from
jina.Executor
class. An Executor class is a bag of functions with shared state (viaself
); it can contain an arbitrary number of functions with arbitrary names. Functions decorated by @requests will be invoked according to theiron=
endpoint. - Flow: Flow is how Jina streamlines and scales Executors. Flow is a service, allowing multiple clients to access it via gRPC/REST/WebSocket from the public/private network.
Tutorials
- Jina "Hello, World!"
- Multimodal Document Search
- Hello World Chatbot
- Covid-19 Chatbot
- Multimodal Document Search
- Meme Search
- App Store Search
- Financial Question Answering System
- Lyrics Search
- Semantic Wikipedia Search
Videos
- Build your own AI Powered Neural Search Engine using Jina.AI neural search solutions
- Jina Webinar
- Text And Image Neural Search With Jina.AI
Resources
- https://jina.ai/blog/
- https://github.com/jina-ai/jina
- https://medium.com/jina-ai/what-is-jina-and-neural-search-7a9e166608ab
Comments (2)
Thanks for the blogpost. The HELLO WORLD CHATBOT link is not working. It's giving me 404 error.
Nice article. They've just released a new version of Jina now. I guess things might be different in the new release.