I built an image search engine

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 เม.ย. 2023
  • Learn how to use a vector database to build an image search engine powered by a deep neural network from scratch.
    Full Image Search Engine Tutorial fireship.io/lessons/image-sea...
    Weaviate weaviate.io
    What is a Vector Database? • Vector databases are s...

ความคิดเห็น • 356

  • @etiennedilocker9729
    @etiennedilocker9729 ปีที่แล้ว +328

    Weaviate Co-Founder here. Thank you for featuring Weaviate and creating this awesome video. It covers a lot in just 6min and I think it's a really cool intro to the topic and really shows the power of Weaviate. Also really like that you hinted at more traditional db features such as filtering/sorting/etc. It's those that make Weaviate super powerful for real-life applications.
    Appreciate the blutness about not being a fan of the builder pattern in the JS/TS client. Would love to hear some more feedback from you and tap into the collective JS/TS experience of your followers to help us design a better , more TS-native API on the Weaviate client. The clients are versioned separately from the server, and we're totally cool with releasing a new major version of the client if it can help improve the DX for anyone that uses JS/TS in their daily work.

    • @user-gd4iu5uc2r
      @user-gd4iu5uc2r ปีที่แล้ว +22

      A problem I commonly face with the builder pattern is that it's unclear to me which parameters are mandatory and which are optional, so I may end up forgetting to set a mandatory parameter and run into nullpointer exceptions at runtime.

    • @asdfbeau
      @asdfbeau ปีที่แล้ว +3

      There's a small army of us all racing toward the same goal now (AI all the things), but for most of us it's a new world; having the 'traditional' features as a frame of reference is what we need to bridge the gap-thank you.

    • @davidf760
      @davidf760 ปีที่แล้ว +2

      @@user-gd4iu5uc2r agree. if it was a step builder this would not be a problem. You are only allowed to build after all mandatory params functions have been called.

  • @officialabdulrehman
    @officialabdulrehman ปีที่แล้ว +176

    Doesn't matter what the topic, JS somehow always gets involved lol

    • @ayushseth6950
      @ayushseth6950 ปีที่แล้ว +6

      True lol😂😂😂

    • @notsojharedtroll23
      @notsojharedtroll23 ปีที่แล้ว +12

      The real marvel of Computer Technology is Javascript at this point.

    • @ashwinalagiri-rajan1180
      @ashwinalagiri-rajan1180 ปีที่แล้ว +4

      This is a webdev project, JS will obviously be involved.

    • @parthsithvi21
      @parthsithvi21 ปีที่แล้ว +3

      That's why it's the GOAT the GOAT 🐐

    • @aaishikdutta290
      @aaishikdutta290 11 หลายเดือนก่อน +3

      Anything that can be done in javascript will eventually be done in javascript.

  • @Kim-by5uy
    @Kim-by5uy ปีที่แล้ว +760

    we're definitely not tired of the AI videos. Great as always

    • @SeeWhatIs
      @SeeWhatIs ปีที่แล้ว +2

      Looks like made by Fireship

    • @Dev-Siri
      @Dev-Siri ปีที่แล้ว +1

      I was also going to write that xD

    • @compilererror
      @compilererror ปีที่แล้ว +28

      I find them boring, but Jeff can do whatever he wants -- and he will always have my undivided attention because he is the electronic prophet we have all been waiting for

    • @crowlsyong
      @crowlsyong ปีที่แล้ว +2

      Keep em' comin;

    • @upta
      @upta ปีที่แล้ว +1

      I mean, I'm tired of hearing about AI in general, but Jeff can make basically anything fun and interesting so I don't mind regardless of what he makes his videos about.

  • @DaveGouda
    @DaveGouda ปีที่แล้ว +87

    Would love a video comparing the different vector databases. Why did you choose this one over Pinecone?

    • @AnthonyBurback
      @AnthonyBurback ปีที่แล้ว +16

      Possibly due to Weaviate having a local docker container setup available (didn't see anything similar for Pinecone)

    • @wlockuz4467
      @wlockuz4467 ปีที่แล้ว +9

      Pinecone is closed-source and paid

    • @beyondfireship
      @beyondfireship  ปีที่แล้ว +82

      1. Open-source and self-hosting
      2. AFAIK pinecone requires you to vectorize your own data. For most that means paying for something like the OpenAI embeddings API. But with Weaviate we just ran our own ResNet locally.

    • @omarjimenezromero3463
      @omarjimenezromero3463 ปีที่แล้ว +6

      @@beyondfireship just what i expected, people running locally their own AI for their own purposes, i see more this common than pay for a bigger and better AI suscription where one can not manipulate or use for all.

  • @bagboy5098
    @bagboy5098 ปีที่แล้ว +31

    just imagine Jeff life without Javascript

    • @xXxDerfoufixXx
      @xXxDerfoufixXx ปีที่แล้ว +10

      He will be eff

    • @vhaangol4785
      @vhaangol4785 ปีที่แล้ว +2

      @@xXxDerfoufixXx That's some next level programmer dad joke.

    • @notsojharedtroll23
      @notsojharedtroll23 ปีที่แล้ว

      ​@@vhaangol4785 there are at least 3 jokes that make this a tor tier joke.

  • @DouglasHewitt
    @DouglasHewitt ปีที่แล้ว +7

    Your content constantly impresses. As a programmer and an educator myself I'm amazed how you do so much and do it well.

  • @malikkissoum730
    @malikkissoum730 ปีที่แล้ว +4

    This is by far, one of the best videos you ever made. Keep us updated !!
    You channel could become the new tech news reporter in video format. Thanks for the good work

  • @amandahugankiss4110
    @amandahugankiss4110 5 หลายเดือนก่อน +2

    just fell over backwards watching every thing you said going over my head

  • @darsh_shukla
    @darsh_shukla ปีที่แล้ว +55

    This can be also done, using CLIP model. And indexing vectors with KNN type in opensearch and using cosine similarity to find similar images. With the CLIP model you can search images by text and image both as input.

    • @sudiproy4413
      @sudiproy4413 ปีที่แล้ว +4

      Can you tell me what's the difference? Also pros and cons of both?
      You seem to know about these things and I'm new in AI

    • @deep.space.12
      @deep.space.12 ปีที่แล้ว +2

      I think the main difference is that, if you do naïve cosine similarity you probably have to compare it with all images in the DB, hence O(n). In HNSW it becomes O(log(n)) since the embeddings data is "somewhat sorted".

    • @Paarthri
      @Paarthri ปีที่แล้ว +4

      @@deep.space.12 opensearch also uses hnsw

    • @deep.space.12
      @deep.space.12 ปีที่แล้ว +1

      @@Paarthri thanks for the info

    • @ko-Daegu
      @ko-Daegu ปีที่แล้ว +1

      why would he use something worse thou ? (KNN) than a faster more efifcinat and scalable search algo like HSNW

  • @BaldyMacbeard
    @BaldyMacbeard ปีที่แล้ว +6

    Yeah, vector databases have been around for quite a while, but the availability of open source vectorizer models made vector search more of a viable use case, so we're seeing more and more proper databases with easy to handle clients and all. Unfortunately, the biggest issue with vector search is not the database side of things. They're mostly all the same, relying on the same compression and distance computation algorithms. The big issue is vectorization. For some use cases like text or image similarity you can use huggingface models as-is. But for more business specific things, you'd have to train your own model and that is tough AF.

  • @monabbar007
    @monabbar007 ปีที่แล้ว

    I love the vector data base, how the data is stored in form of coordination with direction

  • @AliciaSykes
    @AliciaSykes ปีที่แล้ว +10

    Made it look so simple, I'm definitely trying this out this evening, thanks Jeff!

    • @notalanjoseph
      @notalanjoseph ปีที่แล้ว

      2:26 how to “run that command”? What command is he talking about??
      Somebody please help

    • @AliciaSykes
      @AliciaSykes ปีที่แล้ว

      @@notalanjoseph - It's `docker-compose up` 😉

    • @bestactionclips9920
      @bestactionclips9920 2 หลายเดือนก่อน

      am getting an error that Meme class already exists while running the code. Buddy will you please help.

  • @ogredev
    @ogredev ปีที่แล้ว +20

    Vectors are so 2022 Q4. Ive come up with trillion dollar concept. Text File Data. You will store all of your data in a single file where where each col will be separated by something like a tab code or comma and a row will be separated by a new line. Beta names are Tabbed Text Files or Comma Text Files.
    Reply if you’re ready to invest.

    • @lance3301
      @lance3301 ปีที่แล้ว +1

      You son of a bitch, I'm in!!!

    • @Yashss4617
      @Yashss4617 ปีที่แล้ว

      i think that`s what people call csv files, python even has extension to manage these type of files. they can also be opened in ms excel

    • @deep.space.12
      @deep.space.12 ปีที่แล้ว +4

      @@Yashss4617 r/whoosh

  • @anasouardini
    @anasouardini ปีที่แล้ว +4

    More of those please.

  • @poulticegeist
    @poulticegeist ปีที่แล้ว +96

    Not tired of AI content at all. This is amazing. Thank you!

  • @himanshutripathi7441
    @himanshutripathi7441 ปีที่แล้ว

    Always remember Jeff, you are awesome and really helping Devs by introducing concepts.
    Stay classy cheers.🎉

  • @Dominik-K
    @Dominik-K ปีที่แล้ว +1

    This is super cool! Like how easy it is to do those tasks nowadays

  • @MMH919
    @MMH919 ปีที่แล้ว

    Love this kind of video. It gave me a lot of ideas

  • @RoyRope
    @RoyRope ปีที่แล้ว

    Got a kinda good idea for them, hopefully will get some time to play with them on work sometime soon. Good video as always!

  • @abdulrafiuabdulazeez9924
    @abdulrafiuabdulazeez9924 ปีที่แล้ว +1

    There's absolutely nothing for you to apologise for. This is another great video. Please, keep 'em coming as always.

  • @-boiadeiro-
    @-boiadeiro- ปีที่แล้ว +2

    It's actually a good topic, storing and processing data is still most important thing

  • @quarkleptons1036
    @quarkleptons1036 ปีที่แล้ว

    Amazing work.

  • @brad1785
    @brad1785 ปีที่แล้ว +1

    I appreciate the slightly slower pace of this video.

  • @walkieer
    @walkieer ปีที่แล้ว +1

    After seeing the video on vector databases on the main channel, I just knew this was what was next.

  • @cedricschacht9445
    @cedricschacht9445 ปีที่แล้ว +312

    It's time for a ai driven Javascript framework that runs on the edge😂
    And be sure not to mix stuff up, a js driven ai Framework, would essentially be the apocalypse

    • @crowlsyong
      @crowlsyong ปีที่แล้ว +3

      lol

    • @vmbgify
      @vmbgify ปีที่แล้ว +6

      I love how you used the buzzwords "ai", "driven", "js", "framework" and "edge" to mispell "disaster"

    • @MudHut67
      @MudHut67 ปีที่แล้ว +2

      ​@@vmbgifyput down the vodka

    • @Darth_Bateman
      @Darth_Bateman ปีที่แล้ว

      Or the Singularity. . . ?

    • @FasutonemuMyoji
      @FasutonemuMyoji ปีที่แล้ว

      I miss the good ol' days when the most stupid overused buzzword was "the cloud", like we all pretended nobody before 2007 had seen the word WAN on literally any network topography chart from the previous 30 years on it and instead insisted they were super original and clever and came up with something totally new.

  • @rj27thug78
    @rj27thug78 ปีที่แล้ว

    Really appreciated mention of not sponsored*

  • @0906WEST
    @0906WEST ปีที่แล้ว

    Man i friggin love fireship

  • @wwc4168
    @wwc4168 ปีที่แล้ว

    This is amazing. Thanks.

  • @MegaSuperCritic
    @MegaSuperCritic ปีที่แล้ว +5

    Damn, I had started to really rely on Fireship for my AI news!

  • @SIMULATAN
    @SIMULATAN ปีที่แล้ว

    Yay, finally some docker on fireship 🎉

  • @thuonglengoc6875
    @thuonglengoc6875 ปีที่แล้ว +1

    Great video! Could you make a video about how we can crawl data on a knowledge base, transfer to vector databas and search with it?

  • @miquelvazquez4544
    @miquelvazquez4544 ปีที่แล้ว

    awesome tutorial !!!!!!

  • @Dark_Peace
    @Dark_Peace ปีที่แล้ว +15

    You should've used Rektor for your database.
    I already invested in it. It's the next big thing.

    • @DougKulak
      @DougKulak ปีที่แล้ว +6

      Rektor? I hardly even knew her.

  • @johannjohannes7214
    @johannjohannes7214 ปีที่แล้ว

    Soon the own image boorus are going to be fantastic

  • @arpitgarg6459
    @arpitgarg6459 ปีที่แล้ว

    Stop blowing my mind dude!! Too much power in our hands

  • @lawrencemidwinter9416
    @lawrencemidwinter9416 ปีที่แล้ว

    That was a cool video. I am new to this game and while watching this I get a feeling iofwow that is really cool thing you have shown and I have no idea what he is doing but would luv to see more.

  • @amigos786
    @amigos786 ปีที่แล้ว

    Thank God! Next videos will be on JS

  • @004307ec
    @004307ec ปีที่แล้ว

    😊nice video, I got an idea for my next project.

  • @thechoephix
    @thechoephix ปีที่แล้ว

    I like that the gif in the end was in Yellow stone. No reason.

  • @bluelightning2k
    @bluelightning2k ปีที่แล้ว

    Please do a version of this for text similarity search

  • @GeorgeObregon
    @GeorgeObregon ปีที่แล้ว

    thank you

  • @zeldaplayergl11
    @zeldaplayergl11 ปีที่แล้ว

    Seems Valid.

  • @alibahrami6810
    @alibahrami6810 ปีที่แล้ว

    Nice one!

  • @0oEo0
    @0oEo0 ปีที่แล้ว +34

    Please keep making these videos. They are non-stop, but so is the pace of AI right now, so they're the only thing helping me feel like I'm staying current.

  • @mkhphp
    @mkhphp ปีที่แล้ว +1

    Can you do an episode about Medusa, the open source e-commerce js framework?

  • @nimitsavant3127
    @nimitsavant3127 ปีที่แล้ว +1

    loved it!

  • @meikyeon
    @meikyeon ปีที่แล้ว

    Very helpful and straightforward 。⁠◕⁠‿⁠◕⁠。

  • @canboraciner2256
    @canboraciner2256 ปีที่แล้ว +3

    Did you just b64'd different formats of images without converting them to a certain file format and then send them to the vector db? Congratz you just uploaded Spanish, English and French sentences to your db and queried if the English sentence will be the nearest match with the English sentence...

  • @mgara514
    @mgara514 ปีที่แล้ว

    Loved this video, the the test image got me ROFL

  • @LibertyRecordsFree
    @LibertyRecordsFree ปีที่แล้ว

    Could you do a similar tutorial for a full beginner in programing (a bit slower, a bit more steps to explain each concepts), to create this image search database, to retrieve only copyright free image / cc0? Nice tuto thought 👌

  • @beinyourguard
    @beinyourguard ปีที่แล้ว +11

    if the ai videos help us make our jobs easier, then keep'em coming

  • @laptopuser5198
    @laptopuser5198 ปีที่แล้ว

    Top tier content found here.

  • @sage_gamers
    @sage_gamers ปีที่แล้ว +7

    Man how did you learn all that? I mean how did you start your journey. Please make a video about your journey it would be very inspirational for many.

    • @heroe1486
      @heroe1486 ปีที่แล้ว +4

      Read the docs

    • @FaisalAfroz
      @FaisalAfroz ปีที่แล้ว +6

      @@heroe1486 That is old school , now you just feed the doc and generate summary using AI.

    • @lance3301
      @lance3301 ปีที่แล้ว +4

      @@FaisalAfroz Yes, this is the way.

    • @rumfordc
      @rumfordc ปีที่แล้ว +3

      when you get really popular, people approach you and tell you neat things in hopes you will make a video for them.

  • @danielivanescobar6656
    @danielivanescobar6656 ปีที่แล้ว

    i was building a meme search engine for fun and this killed it, i might apply this implementation

  • @empireempire3545
    @empireempire3545 ปีที่แล้ว

    mind BLOWN

  • @mlnima
    @mlnima ปีที่แล้ว

    Please make a tutorial for vector DB and do the same with mongoDB at the same time

  • @pepperpeterpiperpickled9805
    @pepperpeterpiperpickled9805 ปีที่แล้ว +61

    MORE AI videos, mate! Your videos are always the most informative AND entertaining on the subject

  • @gokudomatic
    @gokudomatic ปีที่แล้ว +1

    I find that personally very interesting. Next step I'm looking for would be to automatically tag images.
    About AI, I'm happy that Fireship recon that he's talking a hecka lot about AI. But he's right. It's the new trend and it's not going to leave anytime soon. I'd just hope we can talk about it in a more neutral way than an AIpocalypse or an AIrmageddon.

  • @CharmCaster
    @CharmCaster ปีที่แล้ว

    i um... kind of a beginner but never had trouble understanding your vids... this one was way beyond my lvl lol

  • @ThysRoes
    @ThysRoes ปีที่แล้ว

    Can you train this on all my footage that I shot that I need indexed?

  • @codemaniadev
    @codemaniadev ปีที่แล้ว

    Nice video
    I was wondering when js started supporting top level await 😢

  • @PlasmaUI
    @PlasmaUI ปีที่แล้ว

    hey fireship what font do you use for your videos? it looks pretty clean

  • @yowaimo890
    @yowaimo890 ปีที่แล้ว

    woah i never knew weaviate has its usefulness , i contributed in it for my gsoc but later switched to another org

  • @132_priyankrai5
    @132_priyankrai5 ปีที่แล้ว

    Nextjs thinking video

  • @Dr.Cosmar
    @Dr.Cosmar ปีที่แล้ว

    Oof... I can follow this, but ill have no odea what I'm actually doing.
    Still, this was a very good way to get your point across.

  • @as-qh1qq
    @as-qh1qq ปีที่แล้ว +3

    Yes, I did pause to view and read each meme

  • @GSBarlev
    @GSBarlev ปีที่แล้ว

    Realizing you could use this to reverse Stable Diffusion. You feed it a prompt, it generates an image, and then your reverse image search returns the images it --stole-- "learned from" the most to create its output.

  • @davidcmpeterson
    @davidcmpeterson ปีที่แล้ว

    With the super AI we have these days it would be quite an easy step to implement just removing watermarks!

  • @GavHern
    @GavHern ปีที่แล้ว +1

    what if you took a text input and ran it through something like dalle to make it use a text input (which gets turned into an image under the hood)

  • @8koi245
    @8koi245 ปีที่แล้ว

    Gotta love how he reads comments e

  • @kebman
    @kebman ปีที่แล้ว

    Oooooh can I also use this to find similar images on my own computer despite resolution differences?

  • @MistrzuShifu
    @MistrzuShifu ปีที่แล้ว

    My man, you just did Web 3.0 dirty. Blockchain is epic and I hope to see some videos about it too! 💪

  • @kardashevr
    @kardashevr ปีที่แล้ว

    JS churn -> AI churn -> panic attacks -> depression -> nirvana

  • @lulzmachineify
    @lulzmachineify ปีที่แล้ว +1

    Could this be used to build a "hotdog or not hotdog" matcher?

  • @Optable
    @Optable ปีที่แล้ว

    How can I reach you to discuss an app ive been building at pre dev stage with some of this in mind? I'm utilizing Gans with scikit learn and image on cloud to train the part of my app that will use ai for some valuable specific purposes, but this exact content here is what i needed for my leg heavy work to compile and filter all the exact images I need around defined search. I'd love to get your help, even if general on this for putting my pieces together. Your expertise on all the tools, systems, and use cases are such a great resource Ive had the pleasure of finding. Thanks

  • @orion10x10
    @orion10x10 ปีที่แล้ว

    This is so cool, oh my god

  • @pontv9005
    @pontv9005 ปีที่แล้ว

    Considering storage resources, will that scale if you convert the image to a base64 string?

  • @AnthonyBurback
    @AnthonyBurback ปีที่แล้ว +12

    Not even a little bit tired of the AI videos - if anything I'd love to see more tutorials

  • @palmer1877
    @palmer1877 ปีที่แล้ว +2

    I'm trying to pick a vector database at the moment. Does anyone have any reason why you would pick, say, Pinecone over Weviate, or vice-versa?

    • @beyondfireship
      @beyondfireship  ปีที่แล้ว +8

      Weaviate is open-source and can be self-hosted

  • @AVX512
    @AVX512 ปีที่แล้ว

    Then use CLIP to generate descriptions of the images you have and you've just generated your own map of your images without manual labour

  • @neofox2526
    @neofox2526 ปีที่แล้ว

    how can i make the search more accurate? Its not even using alot of processing power, is there a way to just set everything to high so it can use all my processing power to make sure the result is accurate?

  • @earth9651
    @earth9651 ปีที่แล้ว +32

    Don't stop the AI vids.
    Your last video introduced me to vector databases which I used to easily solve a big, hairy, ugly business problem for my employer.
    Now they can make a lot more money and I get a pat on the back.

  • @vaibhavverma4335
    @vaibhavverma4335 ปีที่แล้ว

    man i wanna do it

  • @user-pm5wi1xg9i
    @user-pm5wi1xg9i 8 หลายเดือนก่อน

    Thanks man! My company just changed my job role from a 'RoR developer' to an 'AI Engineer' and you have everything I need

  • @blacklistnr1
    @blacklistnr1 ปีที่แล้ว

    I thought "in the next 5 minutes" is a joke relating to the complexity of a search engine. Yet here I am 5 minutes layer knowing all the steps. Wild times.

  • @user-db4dd4ze3n
    @user-db4dd4ze3n ปีที่แล้ว

    It fells like a normal neural network with extra memory usage

  • @user-dg4ws2hy8r
    @user-dg4ws2hy8r ปีที่แล้ว +1

    We have to update the class name again and again in index.js otherwise it is giving me error that you have already used this class name can any one help me to get rid of this problem!

  • @vectoralphaAI
    @vectoralphaAI ปีที่แล้ว +11

    Not tired of AI. AI is the future. Please make more AI videos.

  • @carlt.8266
    @carlt.8266 ปีที่แล้ว

    Damn, where is that animation from at t=30s :O I need to know because I am little data visualization nerd myself, uknow

  • @Batselot
    @Batselot ปีที่แล้ว

    I wonder what kind of image similiarity algorithms can we use? And I assume this is completely free to use locally? I don't see any restrictions anywhere right now or I have missed it.

    • @rumfordc
      @rumfordc ปีที่แล้ว

      there are countless ways to measure image similarity depending on what aspects of images you care about. if you're given an image of black cat, is that more similar to a black bear or a grey cat? depends on the goals of your app.

  • @content_ai_
    @content_ai_ ปีที่แล้ว

    Why didn't you use elastic search?

  • @abdul_samad_malik
    @abdul_samad_malik ปีที่แล้ว

    Does some notice that Jeff's voice sound different when the scene is switched in the video?

  • @tandyn
    @tandyn ปีที่แล้ว

    How do I make those visualisations that show the embedding stored on weaviate

  • @ansgkffx
    @ansgkffx ปีที่แล้ว

    Hello, i have veen interested in the thing that you don't love the builder pattern in many of your videos, can you explain why it is bad in your opinion, please?

  • @pepperpeterpiperpickled9805
    @pepperpeterpiperpickled9805 ปีที่แล้ว +1

    00:29 does Leo have David Duke as a profile pic? lol

  • @avgvstvs96
    @avgvstvs96 ปีที่แล้ว

    how do i build a chatbot based on recursively scraped documentation websites with embeddings and vector databases?

  • @MePeterNicholls
    @MePeterNicholls ปีที่แล้ว

    Hmmm. Im gonna try a duplicates detector

  • @DanielHernandez-bb9sj
    @DanielHernandez-bb9sj ปีที่แล้ว +1

    I'm not tired of the AI videos. Maybe a new channel: Fireship AI

  • @fahnub
    @fahnub 9 หลายเดือนก่อน

    Yo this is cool

  • @ScorgeRudess
    @ScorgeRudess ปีที่แล้ว

    this guy knows what he is talking about. Its like GPT but for images instead of tokenized letters, or words, or phrases, but is not generative. and does not have transforms xD but.. you get the point.