/ Machine Learning

Cloud-native neural search framework powered by state-of-the-art AI

Cloud-native neural search framework powered by state-of-the-art AI

Jina

Jina is the cloud-native neural search framework powered by the state-of-the-art AI and deep learning. It is long-term supported by a full-time, venture-backed team.

🌌 The Universal Search Solution - Jina enables large-scale index and query of any kind on multiple platforms and architectures. Whether you are searching for images, video clips, audio snippets, long legal documents, short tweets, Jina can handle them all.

πŸš€ High Performant & State-of-the-Art - Jina aims at AI-in-production. You can easily scale out your VideoBERT, Xception, your word tokenizer, image segmenter and database to handle billion-level data. Features such as replicas and shards come off-the-shelf.

🐣 System Engineering Made Easy - Jina offers a one-stop solution that frees you from handcrafting and gluing packages, libraries and databases. With the most intuitive API and dashboard, building a cloud-native search system is just a minute thing.

🧩 Powerful Extensions, Simple Integration - New AI model for Jina? Simply write a Python script or build a Docker image. Plugging in new algorithms has never been that easy, as it should be. Check out Jina Hub (beta) and find more extensions on different use-cases contributed by the community.

Jina is an open-source project. We are hiring AI engineers, full-stack developers, evangelists, PMs to build the next neural search eco-system in open-source.

Install

Install from PyPi

On Linux/MacOS with Python >= 3.7 installed, simply run this command in your terminal:

pip install jina

To install Jina with extra dependencies, or install it on Raspberry Pi please refer to the documentations.

...or Run with Docker Container

We provide a universal Docker image (only 80MB!) that supports multiple architectures (including x64, x86, arm-64/v7/v6), simply do:

docker run jinaai/jina --help

Jina "Hello, World!" πŸ‘‹πŸŒ

As a starter, you are invited to try Jina's "Hello, World" - a simple demo of image neural search for Fashion-MNIST. No extra dependencies needed, simply do:

jina hello-world

...or even easier for Docker users, no any install required, simply:

docker run -v "$(PWD)/j:/j" jinaai/jina hello-world --workdir /j && open j/hello-world.html
Click here to see the console output

hello world console output

It downloads Fashion-MNIST training and test data; tells Jina to index 60,000 images from the training set. Then, it randomly samples images from the test set as queries, asks Jina to retrieve relevant results. The whole process takes about 1 minute, eventually it will open a webpage and show results like this:

Jina banner

And the implementation behind? As simple as it should be:

Python API index.yml Flow in Dashboard
from jina.flow import Flow

f = Flow.load_config('index.yml')

with f:
    f.index(raw_bytes=input_fn)
!Flow
pods:
  chunk_seg:
    yaml_path: helloworld.crafter.yml
    replicas: $REPLICAS
    read_only: true
  doc_idx:
    yaml_path: helloworld.indexer.doc.yml
  encode:
    yaml_path: helloworld.encoder.yml
    needs: chunk_seg
    replicas: $REPLICAS
  chunk_idx:
    yaml_path: helloworld.indexer.chunk.yml
    replicas: $SHARDS
    separated_workspace: true
  join_all:
    yaml_path: _merge
    needs: [doc_idx, chunk_idx]
    read_only: true

Flow in Dashboard

All big words you can name: computer vision, neural IR, microservice, message queue, elastic, replicas & shards happened in just one minute!

Intrigued? Play and try different options:

jina hello-world --help

Make sure to continue with our Jina 101 Guide - understanding all key concepts of Jina in 3 minutes!

Getting Started

Jina 101 Concept Illustration Book, Copyright by Jina AI Limited   

Jina 101: First Thing to Learn About Jina

  English β€’ ζ—₯本θͺž β€’ franΓ§ais β€’ Deutsch β€’ Русский язык β€’ δΈ­ζ–‡
TutorialsLevel

Use Flow API to Compose Your Search Workflow

Learn how to orchestrate Pods to work together: sequentially and in parallel; locally and remotely

🐣

Use Dashboard to Get Insight of Jina Workflow

Learn to use dashboard to monitor and get insight of a running workflow

🐣

From BERT-as-Service to X-as-Service

Learn how to use Jina to extract feature vector using any deep learning representation

🐣

Build a NLP Semantic Search System

Learn how to build a script search system for South Park and practice your knowledge on Flows and Pods

🐣

Build a Flower Image Search System

Learn how to build an image search system and define you own executors and run them in docker

🐣

Video Semantic Search in Scale with Prefetching and Sharding

Learn how to increase the performance by using prefetching and sharding

πŸ•Š

Distribute Your Workflow Remotely

Learn to run Jina on remote instances and distribute your workflow

πŸ•Š

Extend Jina by Implementing Your Own Executor

Learn how to implement your own ideas into Jina's plugin

πŸ•Š

Run Jina Pod via Docker Container

Learn how Jina solves complex dependencies easily with Docker container

πŸ•Š

Share Your Extension with the World

Learn to use Jina Hub and share your extensions with engineers around the globe

πŸš€

GitHub

Comments