Running a Hugging Face LLM on your laptop

Sdílet
Vložit
  • čas přidán 3. 08. 2023
  • In this video, we'll learn how to run a Large Language Model (LLM) from Hugging Face on our own machine.
    Blog post: www.markhneedham.com/blog/202...
    Notebook: github.com/mneedham/LearnData...
    Other videos showing how to run LLMs on your own machine
    • Running Mixtral on you...
    • LLMs on your own machi...
    • Running Mistral AI on ...
    • Hugging Face GGUF Mode...
  • Věda a technologie

Komentáře • 102

  • @elmino19
    @elmino19 Před 11 měsíci +25

    You explained completely and perfectly without wasting the audience's time! well done

    • @learndatawithmark
      @learndatawithmark  Před 9 měsíci

      Thanks!

    • @norwegiansmores811
      @norwegiansmores811 Před 12 dny

      except for the part that i have got no clue what the required software to start is. what os to run on nor how to run the code in step 2. the farthest i got was git bash for the transformer and thats about it. i just want to run some local ai, why does it have to be so obtuse??

    • @learndatawithmark
      @learndatawithmark  Před 8 dny

      @@norwegiansmores811 It's running in a Jupyter notebook - jupyter.org/ but you can run the code anywhere that can run Python code e.g. a Python REPL or a Python script.

    • @learndatawithmark
      @learndatawithmark  Před 8 dny

      @norwegianmores811 I think the easiest way to run local AI as of June 2024 is now this - lmstudio.ai/

  • @headshorts_YT
    @headshorts_YT Před 3 měsíci

    Awesome! Thanks for this video.

  • @NappoAvanti
    @NappoAvanti Před 5 měsíci

    Thanks for this video!!

  • @alexandrerodtchenko6099
    @alexandrerodtchenko6099 Před 3 měsíci +1

    Super video!

  • @armantech5926
    @armantech5926 Před 2 měsíci

    That's Great! Thank you!

  • @piyushharsh01
    @piyushharsh01 Před 10 měsíci +3

    Super helpful and easy to understand!

  • @MitulGarg3
    @MitulGarg3 Před 2 měsíci

    Absolutely wonderful video! to the point and well explianed! way to go! thanks a lot!

  • @youssefabbas6349
    @youssefabbas6349 Před 14 dny

    thank you very much for this great explaination

  • @shivamroy1775
    @shivamroy1775 Před 11 měsíci

    This was an extremely informative video. Really appreciate it.

  • @flaviocorreia4462
    @flaviocorreia4462 Před 4 měsíci

    Thank you very much, you helped me a lot

  • @enceladus96
    @enceladus96 Před 7 měsíci

    this video saved my day

  • @knotfoursail6404
    @knotfoursail6404 Před 10 měsíci

    Super helpful 👍

    • @knotfoursail6404
      @knotfoursail6404 Před 10 měsíci

      Random idea, but a video on how to run an embeddings model on a laptop would be really cool 😀 Could even combine embeddings + text2text for more specific answers. Or even t5_3b + selenium to create something similar to bing chat. Anyway, wish you luck on CZcams 😊

    • @learndatawithmark
      @learndatawithmark  Před 10 měsíci

      Sorry, I didn't see this reply! I've got a notebook with that idea sketched out, so I'll create a video for that soon. On holiday at the moment, but will do it when I get back home!

  • @wasgeht2409
    @wasgeht2409 Před měsícem

    thx

  • @viniciustsugi8007
    @viniciustsugi8007 Před 10 měsíci

    Awesome content, love your channel! Video is very informative and concise, thanks. As a friendly suggestion, you might want to give a couple of secs at the end for the video for slow people like me to hit that well deserved like button :)

    • @learndatawithmark
      @learndatawithmark  Před 10 měsíci +1

      Thanks for your kind words! Let me see if I can figure out a good way to implement your suggestion 🙂

  • @user-lx1th5gr5z
    @user-lx1th5gr5z Před 6 měsíci

    Thank you! I finally downloaded a big llama model.. lol 😹

  • @mikiallen7733
    @mikiallen7733 Před 4 měsíci

    thanks sir , however I want to know
    1- how one can integrate specific set of models (pre-trained) ones in to Rstudio ? so that one can simply run examples on data "proprietary in my case " locally within R
    2- is there a way to ask the inference API for tasks different from the typical sentiment classification of text for example "multi-entity tagging" , "modalities" ....etc
    your input is highly appreciated

  • @user-du8hf3he7r
    @user-du8hf3he7r Před 5 měsíci +11

    An API key is not needed if the model is downloaded and run locally.

    • @itspaintosee
      @itspaintosee Před 4 měsíci

      So long as you have a behemoth of a machine. 16GB Ram = 100% memory usage 😭😂

    • @jayo3074
      @jayo3074 Před 3 měsíci

      I don't think anyone can afford an expensive laptop lol

    • @Sovereignl55
      @Sovereignl55 Před 2 měsíci

      Do you know how to run it on live servers!! How to get?

    • @Sendero-yp5gi
      @Sendero-yp5gi Před 3 dny

      It is needed to download the model!

  • @user-ph5is3hi9c
    @user-ph5is3hi9c Před 5 měsíci

    thanks Mark, very nice video, super clearly put!
    could you please suggest, what could be the reason if (when trying to set the wifi off) the output of those lines of code is "ModuleNotFoundError: No module named utils"?

    • @learndatawithmark
      @learndatawithmark  Před 5 měsíci

      utils should be referring to this file - github.com/mneedham/LearnDataWithMark/blob/main/llm-own-laptop/notebooks/utils.py - so in theory that's independent of WiFi connectivity. If it can't find that module you could copy/paste those functions into the notebook and use them like that.

  • @MarxTech_DIY
    @MarxTech_DIY Před 7 měsíci

    Hey, great tutorial! I also found your blog on this and followed that, but I always get this error: Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
    This is my first time experimenting with LLMs, so any assistance would be greatly appreciated.

    • @learndatawithmark
      @learndatawithmark  Před 7 měsíci

      Oh I'm not sure about that error - I haven't seen that one before. Since I made this video I've been playing around with another tool called Ollama which I found easier to use. It might be worth giving that a try to see if that works for you?
      czcams.com/video/NFgEgqua-fg/video.html

  • @wadejohnson4542
    @wadejohnson4542 Před 6 měsíci

    What is the configuration of your local environment

  • @Shivam-bi5uo
    @Shivam-bi5uo Před 5 měsíci

    i want to work with a model that is tagged as 'text-generation' how do i run it?

  • @Sendero-yp5gi
    @Sendero-yp5gi Před 3 dny

    What is the difference w.r.t to using the classical:
    from transformers import AutoTokenizer, AutoModelForCausalLM
    tokenizer = AutoTokenizer.from_pretrained(model_id)
    model = AutoModelForCausalLM.from_pretrained(model_id)
    Thanks in advance!

  • @dgl3283
    @dgl3283 Před 20 dny

    I deeply appreciate your video! Although I have a question, does this still works when the model file is a .safetensors or .pth file, not a .bin file? Thank you!

  • @dimitripetrenko438
    @dimitripetrenko438 Před 7 měsíci

    Hi Mark! This video is very helpful, may I ask do you think fastchat can be used in combination with Qdrant for RAG? Thank you in advance

    • @learndatawithmark
      @learndatawithmark  Před 7 měsíci +1

      Yeh you can could combine it with any database to do RAG.

  • @l501l501l
    @l501l501l Před 8 měsíci

    Hi Mark, great video. May I know your notebook and the configuration? I’m thinking switching to MacOS to play around with Gen AI.

    • @learndatawithmark
      @learndatawithmark  Před 7 měsíci

      I'm using the latest version of Jupyter Lab and I have it set to dark mode with pretty much every one of the views hidden so that I can use as much of the screen as I can.
      Not sure if that answered your question, so feel free to follow up!

  • @radoslavkoynov322
    @radoslavkoynov322 Před 4 měsíci +3

    I am getting an error/ info log from transformers (twice) stating "Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained." The model then generates only a bunch of whitespace, no matter the input. I have followed through your steps and made sure the files were downloaded at the expected location. The behavior occurrs both with and without setting legacy=False.

    • @learndatawithmark
      @learndatawithmark  Před 4 měsíci

      Does it work after you see that message?

    • @kyledavelaar455
      @kyledavelaar455 Před 3 měsíci

      @@learndatawithmark getting the same error and hang when running in colab or locally. seems like the pipeline("my query") never resolves

    • @engineeringcareer8313
      @engineeringcareer8313 Před 26 dny

      Same thing happens to me! Hanging and giving random replies! I am using mac m3

  • @SudhakarVyas
    @SudhakarVyas Před 28 dny

    Thanks Mark for this video. A quick question- Is this safe to pass some PII data to one of the open source hugging face models that require the hugging face API token ? If No, how can this be resolved in deployment so that there is no risk of data leakage ? Please guide through this.

    • @learndatawithmark
      @learndatawithmark  Před 28 dny +1

      It depends.
      If you are passing your HF API token because you're using the HF inference endpoint then your data is getting sent to the HF API.
      If you're passing it because you're downloading a model that requires token auth then your data will only be local to where you run the model that you download.

  • @riok4523
    @riok4523 Před 26 dny

    hi Mark - super helpful. can i run all of this in terminal?

    • @learndatawithmark
      @learndatawithmark  Před 25 dny

      You can. You can use a Python REPL or even the iPython CLI. Or you could put it all in a Python script and run that.

  • @Cynadyde
    @Cynadyde Před 7 měsíci

    If you're getting a wacky error trying to perform `AutoTokenizer.from_pretrained(model_id, legacy=False)`, do pip install protobuf==3.20.1 and restart the jupyter kernel

    • @learndatawithmark
      @learndatawithmark  Před 7 měsíci

      Good tip! I get that error somewhat randomly but never quite figured out the combination steps that result in it happening!

  • @mokh1611
    @mokh1611 Před 3 měsíci

    I'm probably missing something, but where are you using the downloaded files? you are entering model_id in .from_pretrained(), how is it finding/using the downloaded model?

    • @learndatawithmark
      @learndatawithmark  Před 3 měsíci

      It's reading from the ~/.cache directory. So it constructs a file path based on that directory & the model id

  • @rodriguezmj11
    @rodriguezmj11 Před 5 měsíci

    Has anyone built a GUI for this?

  • @diln5
    @diln5 Před 28 dny

    i personally found disabling your wifi from a jupyter notebook to be bad ass

    • @learndatawithmark
      @learndatawithmark  Před 25 dny

      Haha, thanks. It took me a little while to figure out how to do it!

  • @static_frostBRK
    @static_frostBRK Před 9 dny

    Hello there Mark i was wondering if i could use this method to download other ai models for example text to image models?

    • @learndatawithmark
      @learndatawithmark  Před 4 dny

      Yes you should be able to use a similar approach. There's a good guide on image to text over here - huggingface.co/tasks/image-text-to-text

  • @engineeringcareer8313
    @engineeringcareer8313 Před 26 dny

    Hey, can you tell me about your system info, i am using mac m3 and its not giving any response and running continuously?

    • @learndatawithmark
      @learndatawithmark  Před 25 dny

      I use a Mac M1 with 64GB RAM. I think it's a 2021 edition. I've found in general that the quantised models work better on my machine - either using Ollama or llama.cpp.
      czcams.com/video/YDj_ScvBpKU/video.html
      czcams.com/video/NFgEgqua-fg/video.html

  • @Xploitacademy
    @Xploitacademy Před 2 měsíci

    What is the editor you are using on localhost ?

  • @Inderastein
    @Inderastein Před 2 měsíci +1

    hey um, i don't know if you'll read this in time, but I have a problem:
    pytorch_model.bin: 0%| | 0.00/13.5G [00:00

    • @learndatawithmark
      @learndatawithmark  Před 2 měsíci +1

      Hard to know exactly why - maybe connectivity with Hugging Face or maybe your internet or maybe the download tool?! You could try going to Hugging Face directly and click through to files and download them directly to see if it helps.

  • @Haui1985m
    @Haui1985m Před 7 měsíci

    Hi, wich webinterface you use for python scripts? I want to use it to :)

  • @OmarAli19591
    @OmarAli19591 Před 8 měsíci

    sorry i'm just starting with this, the code you're writing in the beginning, what is the website called?

  • @user-sm1re8xm5p
    @user-sm1re8xm5p Před měsícem

    under the "..." in huggingface there is a "clone this repo" which copies all stuff onto your PC. seems simpler to me.

    • @learndatawithmark
      @learndatawithmark  Před měsícem

      Probably works for this one but sometimes there will be multiple different versions of the same model and it'll take up all your free space if you do that!

  • @darylallen2485
    @darylallen2485 Před 8 měsíci +1

    1:03 - Thanks for this clarification. I'd done quite a bit of Google searching and scouring the Hugging Face website for this information. I found nothing of value. I'm a computer enthusiast / gamer and not a professional machine learning engineer. Since embarking on running an LLM locally on my previous daily use desktop, I've noticed its near impossible to find a model's resource needs. GPT4 says a 7b parameter model would consume about 48 GB memory. I asked it what size model would fit in my 12 GB Nvidia 3060, it said about 3.2 billion. My question for you is, why is it that everyone in this space who seems to offer a model (or talk about them) never includes something like a system requirements descriptor? Is it one of those situations where, if you need to ask, you probably don't have enough resources? Thanks for any insight you can give on this phenomenon.

    • @learndatawithmark
      @learndatawithmark  Před 8 měsíci +2

      My impression is that most of the models being created are assuming that you have insanely good GPUs to run them on!
      Since I created this video, there's been a lot of work done by a guy called TheBloke on Hugging Face to 'quantise' the models, which effectively means that the amount of resources required is reduced, but the quality of the model is slightly reduced too.
      I've found those models work a lot better on my laptop.
      The Bloke is using a format called GGUF, which is kind of a defact format for LLM models. I made a video showing how to run one of his models on my machine - czcams.com/video/7BH4C6-HP14/video.html. That video uses a tool called Ollama which works on Linux/Mac - czcams.com/video/NFgEgqua-fg/video.html
      There is also another library called CTransformers which lets you choose whether to run models on the GPU or CPU. I've found the 7B parameter quantised models work reasonably well even on the CPU. I should probably create a video about that I guess! But in the mean time, this is the link - github.com/marella/ctransformers

    • @darylallen2485
      @darylallen2485 Před 6 měsíci

      @@learndatawithmark thanks!

  • @marufakamallabonno146
    @marufakamallabonno146 Před 8 měsíci

    How can I use this downloaded model next time ?

    • @learndatawithmark
      @learndatawithmark  Před 8 měsíci

      It will already be there so if you try to use it again there won't be any need to download it

  • @timjx3675
    @timjx3675 Před 9 měsíci

    Great vid, however I’m getting a value error, failure to import transformers error even though I used pip to do that, wondering if it’s a python version issue, I’m using 3.10, wonder if anyone has any ideas ? Thx

    • @learndatawithmark
      @learndatawithmark  Před 9 měsíci

      Can you share a script with all the code you ran and I'll try to reproduce?

    • @CGATTMUSIC
      @CGATTMUSIC Před 6 měsíci

      use 3.9 its more stable

  • @IanTindale
    @IanTindale Před 13 hodinami

    I keep following along until about 12 seconds in, where you start typing into something and you say let’s open up age something, and carry on typing into whatever it is you’re typing into - I can’t get that far, I don’t know what to type into

    • @learndatawithmark
      @learndatawithmark  Před 12 hodinami

      I'm using a Jupyter Notebook, but the code would work in any Python environment or script
      jupyter.org/

    • @IanTindale
      @IanTindale Před 12 hodinami

      @@learndatawithmark ah thanks, that’s interesting - I’ve never heard of that

  • @The_Little_One_Of_Darkness
    @The_Little_One_Of_Darkness Před 5 měsíci

    Hi, i try to find someone who uses GGUF directly and locally without using a .bin to launch it because I would like to launch it under python, is this possible? Or should I do something else?

    • @learndatawithmark
      @learndatawithmark  Před 5 měsíci

      You can do this using CTransformers like I did in this video - czcams.com/video/S2thmwdrYrI/video.html
      I think you might even be able to do it with HuggingFace transformers, but I haven't tried it myself.

    • @The_Little_One_Of_Darkness
      @The_Little_One_Of_Darkness Před 5 měsíci

      @@learndatawithmark if one day you make a video on this, I would like to see it, in fact what I would have liked was to discuss with the model directly with python without going through any interface and to give it a personality with json like we have could do it with webui (but without webui) I tried various methods and honestly I find so little explanation. I had the idea of ​​making my own bot as I saw in "wifu" mode in the sense that it is totally customizable and we give it a personality with a long term memory. The basic idea was to have a small model just for me. I'm just frustrated to see bots that don't even remember talking to us 2 seconds before. xD

    • @learndatawithmark
      @learndatawithmark  Před 5 měsíci

      @@The_Little_One_Of_Darkness it sounds like you want to keep the history of the chat messages between you and the LLM? I showed how to do this in memory on this video using Ollama, but it can be adapted to another approach - czcams.com/video/MiJQ_zlnBeo/video.html. I can across a tool called MemGPT which I think attempts to solve this problem, but I haven't tried it yet - memgpt.ai/

  • @insideworld4122
    @insideworld4122 Před 3 měsíci

    sir if wifi is on then they model is working properly or not?

    • @learndatawithmark
      @learndatawithmark  Před 3 měsíci

      Yes it should work without wifi - but you will need a connection to the internet to download the model.

  • @sillystuff6247
    @sillystuff6247 Před 4 měsíci

    Huggingface is a single point of failure.
    An index of alternative download URLs
    for LLMs is needed for when Huggingface
    is down, such as now (Feb 29, 0200 GMT)

  • @mohsenghafari7652
    @mohsenghafari7652 Před 4 měsíci

    hi. please help me. how to create custom model from many pdfs in Persian language? tank you.

  • @paulohss2
    @paulohss2 Před 3 měsíci

    So many steps missing in this video...

  • @AwkwardTruths
    @AwkwardTruths Před 3 měsíci

    Pinned

  • @artusanctus997
    @artusanctus997 Před 4 měsíci

    Seems unnecessarily complex... isn't there like an online space to use this stuff without having to write a bunch of stuff just to download it?

    • @learndatawithmark
      @learndatawithmark  Před 3 měsíci

      Yeh I think with a bunch of the models you're able to run them on the Hugging Face website on the right hand side of the page. And then in general there are many services that offer APIs that you can call. The approach describe in this video is only for if you don't want to use those services.

  • @TheFrankyguitar
    @TheFrankyguitar Před 8 měsíci

    When I run this: "os.environ.get("HUGGING_FACE_API_KEY")" I get"None". Is it normal?

    • @TheFrankyguitar
      @TheFrankyguitar Před 8 měsíci +1

      I guess I need to set the HUGGING_FACE_API_KEY variable to my token beforehand.

    • @learndatawithmark
      @learndatawithmark  Před 8 měsíci +1

      You would need to set that environment variable before running your Python environment otherwise yeh it'll be none