Fine Tune a model with MLX for Ollama

Поделиться
HTML-код
  • Опубликовано: 19 сен 2024

Комментарии • 86

  • @GeertTheys
    @GeertTheys 21 день назад +23

    I am doing tech for 20 years You Sir are an excellent teacher. Pointing to the documentation and providing us pointers to nice tools to stitch it all together in comprehensive way.

  • @umutcelenli2219
    @umutcelenli2219 21 день назад +23

    I love the way Matt explains things in a way that is both detailed and yet really easy to understand. Thank you man.

    • @technovangelist
      @technovangelist  21 день назад

      Thanks so much

    • @vaitesh
      @vaitesh 21 день назад

      Totally, if there's something I don't understand at that moment just rewinding it to couple of mins and then it makes more sense.. one of creators who isn't just walking through the code and saying what the command does in the notebooks Matt is really someone who knows how to empower the other person

    • @tal7atal7a66
      @tal7atal7a66 21 день назад

      yes he is the best beast of explanation ❤ 💪 🥇 🔥

  • @davidteren8717
    @davidteren8717 13 дней назад +2

    Nicely done! It's worth noting that what Matt demonstrated is "Fine-Tuning with LoRA" and not Actual Fine Tuning. Low rank adaptation (LoRA) makes customising a model more accessible than actual fine tuning of a model by "freezing" the original weights and training a small subset of parameters.
    Actual Fine-Tuning: Adjusts all parameters, requires significant resources, but yields high-quality results.
    Low rank adaptation (LoRA): Trains fewer parameters using low-rank matrices, reducing memory and compute needs while maintaining quality.

    • @technovangelist
      @technovangelist  13 дней назад +1

      Sure. But when most folks talk about fine tuning it’s lora.

  • @8eck
    @8eck 21 день назад +4

    I'm glad that ollama went so far ahead and how creating a standards for open-source LLMs, like dockerfile-like specification files and so on.

  • @hugogreg-hf8zl
    @hugogreg-hf8zl 21 день назад +4

    Sorry if unrelated, am I the only one who thinks that Matt’s voice has that soothing-gentle-teacher like voice? Like I can hear him narrate for a natgeo documentary

    • @Bitjet
      @Bitjet 21 день назад

      Facts

  • @cwvhogue
    @cwvhogue 20 дней назад +7

    Thanks great breakdown of the process!
    A note about JSONL not being an array. It can be processed by old school unix tools like awk, grep, sed - and used in streaming data with unix pipes where lines are the delimiters. These tools don't do well with json array syntax on large datasets.

  • @tsomerville1970
    @tsomerville1970 15 дней назад

    Matt, your energy is so calm. I did fine tune with MLX, but I freaked myself out with all the steps and feel like it’s hard to do again.
    When you explain it so nicely, my fear goes away and I’m ready again.
    You’re spot on about the data prep is the “dark arts”. So true!!

  • @ichigo_husky
    @ichigo_husky День назад

    Goat in teaching fine tuning

  • @counterfeit25
    @counterfeit25 21 день назад +1

    Love it, thanks for sharing. It's great to see LLM fine-tuning become increasingly accessible to more people.

  • @fabriai
    @fabriai 20 дней назад

    Thanks a lot for this tutorial Matt. It is by far the most straightforward fine tuning tutorial I have ever seen.

  • @y.m.o6171
    @y.m.o6171 20 дней назад +2

    i so wish you could explain what loras are an how to do one. thank you for this amazing video i already fee much better

  • @JunYamog
    @JunYamog 10 дней назад

    Thanks I tried the mlx fine tune a few months ago. I think this mlx-lm might be more straightforward.

  • @1Ec-cb3cg
    @1Ec-cb3cg 20 дней назад

    I was totally agreed with you sir, u are the most easier way to let me learn about mlx in the past 2 month I’m keep finding RUclips for all the information. Thank you so much for the video.

  • @ts757arse
    @ts757arse 21 день назад

    Matt, this is utterly awesome and I can't thank you enough. I'd seen the compute resources people were using and the code and gone "that's just too time and money intensive to investigate further".
    Now, I just need the script from terminator, a code interpreter and, oooh, 5 minutes?
    Don't worry, I'll keep control of it...

  • @interspacer4277
    @interspacer4277 20 дней назад

    This is a great vid! Especially if you're at least a hobbyist.
    The best complete layperson onramp I've seen for fine-tuning? Is Cohere. And it is free. After that, dip into more of the dark arts. But to whet folks' whistle I usually point them there. It's their whole biz model. It quickly gets old, but you can whip up a trained, finetuned bot in a half day depending on dataset.

  • @mbottambotta
    @mbottambotta 21 день назад

    Thanks Matt, your explanations are effective and entertaining.
    If you could in a future video , would you dive into more detail about fine-tuning? E.g., why would you want to, how to choose your data, etc. Thank you!

  • @solyarisoftware
    @solyarisoftware 21 день назад

    Thanks, Matt-super spot-on video as usual. You raised a doubt in my mind: You mentioned that fine-tuning is not suitable for adding new information to the original LLM (perhaps I misunderstood). This leaves me a bit perplexed, and I know it’s a debated issue within the community. I agree with you that the best use of fine-tuning is to personalize the style and tone, rather than being used in the "traditional" way to train older (pre-GPT) models like BERT. However, many people argue that fine-tuning could be an alternative to RAG for injecting specific domain knowledge into the LLM. Personally, I’ve never tried fine-tuning a model due to the costs, especially with cloud-based LLMs. In any case, I think it would be valuable to explore these topics further.
    My hope is that fine-tuning could become a native feature in Ollama in the future.
    Lastly, it would have been useful to see the fine-tuning JSONL data (at least an example). I have my own answer to your question: why JSONL? It might be because of its line-by-line simplicity in Unix pipe scripting.

    • @technovangelist
      @technovangelist  21 день назад

      What I read is that you can add knowledge but apparently it makes it slower.

    • @solyarisoftware
      @solyarisoftware 21 день назад +1

      ​@@technovangelistBy "slower," do you mean that the fine-tuned model has increased latency during inference compared to the original model? That's interesting-I’ve never heard about that before.

  • @London-Outdoors
    @London-Outdoors 13 дней назад

    Great video! 👍 Thanks

  • @mojitoism
    @mojitoism 3 дня назад

    Thanks for the great video! Could you use an llm to generate question answer pairs for the dataset out of basic text or documents? Would be interested in such a video!

  • @VictorCarvalhoTavernari
    @VictorCarvalhoTavernari 21 день назад

    Amazing content, I will test it soon 🙏thanks!

  • @myronkoch
    @myronkoch 16 дней назад

    dark arts, lol. Love your vids, man.

  • @Zatchurz
    @Zatchurz 20 дней назад

    Clarity and digestability 100%

  • @drhilm
    @drhilm 21 день назад

    love your explanations. thank you !

  • @bigbena23
    @bigbena23 17 дней назад

    Thanks a lot for your fantastic videos. I'm actually using Unsloth to fine tune Llama3 for a text classification task. I'll be happy if you'll upload a video for such purposes

  • @golden--hand
    @golden--hand 21 день назад

    I am interested in the idea of fine tuning, and I am starting to regularly come to your videos for stuff now that Ollama is my primary tool I am using to connect to other front end for serving my models. But jeez, i feel like an idiot sometimes with some of this stuff because this still feels complex to me. "Step 1" of curating the data honestly feels like the easy part to me.
    I am curious about unsloth as its one I have looked at before but had decided to circle back to when I finally worked my way up to fine tuning. I am also curious about vision models, Llava or otherwise, I would be really curious to see how curating data for that would differ from an LLM.
    Also, would be nice in future videos related to this so see a before and after test. I know we can assumed what you are suggesting is making an effect, but it would still be nice to see the results in action :)

  • @nuttiplutt
    @nuttiplutt 20 дней назад

    If you could make a guide of installing Unsloth on Windows and train Llama 3.1 on Ollama to use my tone of voice to reply to emails AND have knowledge to answer the common questions I get, that would be a godsent! Thank you for the great videos!

  • @EhabMosilhy-m3j
    @EhabMosilhy-m3j 21 день назад

    Great video, thanks!
    I only wonder what's the way to add new data to the model if finetuning is more about changing the format.
    My use case is like this: I use a framework which changes syntax with each new version I want the LLM to be updated with the newest documentation for the last version.
    How can I do that?

  • @ISK_VAGR
    @ISK_VAGR 21 день назад

    Nice. I just did not get when to use the different test and validate files in the process.

  • @mbarsot
    @mbarsot 21 день назад

    Very useful, however
    1) is there anything we can do with 16 gig on m1?
    2) can you maybe show how to do it? Step-by-step: it is a little hard to understand the MLX part thanks

  • @IAMTHEMUSK
    @IAMTHEMUSK 3 дня назад

    I tried to fine tune llama3.1 on windows since I need nvidia gpu. Such a nightmare. I still didn’t figure out why my llm is not able to speak anymore, it just reply’s data that was in my dataset

  • @user-fc9qy4wq6s
    @user-fc9qy4wq6s 10 дней назад +1

    ok so i created the three sections, but now get a data formatting error heres a sample of some data of mine: {"prompt": "info.", "response": "info"} what should be different here?

    • @technovangelist
      @technovangelist  10 дней назад

      Use the format I used in the video. The. I show it in the next one. Just a text key.

  • @user-fc9qy4wq6s
    @user-fc9qy4wq6s 10 дней назад

    I forgot to break up my data into the three sections (validate, train, test) will the model work the same?

  • @PenicheJose1
    @PenicheJose1 21 день назад

    I need to say thank you I appreciate everything you're teaching us, you make things extremely easy to understand... Thank you.❤

  • @gazorbpazorbian
    @gazorbpazorbian 21 день назад

    so if finetuning is how you make the model respond in a better style, how do you teach it more stuff? which are the best ways to make the AI learn more aside from RAG

  • @ambroisemarche5128
    @ambroisemarche5128 17 дней назад

    hi, why do i need a validation dataset and a test dataset? can i create them but let them empty? because i don’t understand anyway how validation and test would work for a llm

  • @morningraaga1424
    @morningraaga1424 19 дней назад

    I like your presentation ...Regarding the fine tuning heard unsloth I have seen many of the AI experts uses it. What is your thought on the same lines?

    • @technovangelist
      @technovangelist  19 дней назад

      I didn’t use it because of the limited hw support. But I will next time

  • @stephenreaves3205
    @stephenreaves3205 20 дней назад

    Would love to see you try out InstructLab

  • @JuanOlCr
    @JuanOlCr 21 день назад

    Thank you Matt for again a great helpful video. It would be great to see samples of the test.jsonl, valid.jsonl and test.jsonl files. Or a template of them. Thanks

  • @ilanelhayani
    @ilanelhayani 21 день назад

    thank you Matt, you are amazing. As I know, mlx is for apple silicone, what about finetune on nvidia rtx card? which library should we use ? can you make a video for this please ?

    • @technovangelist
      @technovangelist  21 день назад

      Yup. I mentioned that I did this first for apple silicon. And I intend to do the same thing for unsling and maybe axolotl which are windows and Linux based

  • @thetrueanimefreak6679
    @thetrueanimefreak6679 21 день назад +8

    amazing video matt thank you

  • @ibrahimhalouane8130
    @ibrahimhalouane8130 21 день назад

    Does unsloth worth that hype?

  • @MaxJM74
    @MaxJM74 12 дней назад

    parece até fácil olhando !
    tks

  • @startingoverpodcast
    @startingoverpodcast 21 день назад +1

    I need to understand how json works

  • @scaptor_com
    @scaptor_com 20 дней назад

    Thanks you for this

  • @QorQar
    @QorQar 21 день назад

    Example for datasets?

  • @i2c_jason
    @i2c_jason 17 дней назад

    Could you do the same thing as fine tuning by creating a RAG database of examples, and just use the off-the-shelf LLMs? This might make your application LLM-agnostic and futureproof. Thoughts on pros/cons?

    • @technovangelist
      @technovangelist  17 дней назад +1

      Fine tuning and rag have different purposes. Rag adds new knowledge whereas fine tuning will mostly affect the way it outputs.

    • @TheLokiGT
      @TheLokiGT 15 дней назад

      @@technovangelist Mmhh yes and no. Full-parameters finetuning is OK for adding new knowledge in a more systematic way (after all, it's just continued pretraining..).

  • @8eck
    @8eck 21 день назад +1

    jsonl is used to read line by line, it is easier for python, because it is reading line by line as far as i know. I.e. 1 iteration === 1 json from your dataset. Plus datasets are huge and reading whole json and parse it all in one go will take a decade and probably will crash your runtime.

    • @technovangelist
      @technovangelist  21 день назад +1

      Ahhh, ok. So it’s accommodating for the weaknesses of Python.

    • @TheUserblade
      @TheUserblade 20 дней назад +1

      @@technovangelist in fairness, it also allows you to do things without needing to parse the whole file - like cat something.jsonl | sort > sorted.jsonl or cat something.jsonl | head -n 10 > 10somethings.jsonl
      In this case, I imagine it’s convenient for shuffling the entries, but the main generic advantage over a big json list is that you don’t need to read the entire file to begin parsing it (which is a really nice language-agnostic property for files that might become extremely large)
      They’re definitely weird at first blush, but actually kinda clever and elegant for some use-cases IMO

  • @Namhskal_Nivan_2062
    @Namhskal_Nivan_2062 11 дней назад +1

    sir i can't understand the way dataset jsonl file should be can u pls give me 1 block of the dataset jsonl file as example. i can't understand how to make 'em pls help me else someone out here pls help me too

    • @technovangelist
      @technovangelist  11 дней назад +1

      Take a look at the second video on this

    • @Namhskal_Nivan_2062
      @Namhskal_Nivan_2062 8 дней назад +1

      @@technovangelist which one sir "optimize your AI models" else which one sir can u pls say sir 🙇🛐

    • @technovangelist
      @technovangelist  8 дней назад +1

      The other one with fine tuning in the name

    • @Namhskal_Nivan_2062
      @Namhskal_Nivan_2062 5 дней назад

      @@technovangelist ok sir thanks a lot

  • @utvikler-no
    @utvikler-no 21 день назад

    Thanks for the awesome video! Would you know anything about using ubuntu/intel arc with ollama. If so would you consider a guide one beautiful day :)

    • @technovangelist
      @technovangelist  18 дней назад +1

      I haven’t played with any of the arc cards yet. I need to find a way to play with those

  • @peterdecrem5872
    @peterdecrem5872 19 дней назад

    Still not sure what the data file looks like for the framework? Is it a dataset? the below does not seem to work:
    "text": "This is the first piece of text."}
    {"text": "Here is another piece of text."}
    {"text": "More text data for fine-tuning."}

    • @technovangelist
      @technovangelist  19 дней назад

      Yup that’s what I showed in the video. Well, except you missed the first bracket

    • @peterdecrem5872
      @peterdecrem5872 19 дней назад

      @@technovangelist Agreed. The thing i learned is that data is the directory where you put train.jsonl test.jsonl and valid.jsonl with the format you describe. Thank you!

  • @8eck
    @8eck 21 день назад

    Running fine-tuning is easy, but getting LLM to do what you are fine-tuning for may be not so easy and at times even very hard.

  • @8eck
    @8eck 21 день назад

    mmmistral 😁

  • @MT-ny7ir
    @MT-ny7ir 21 день назад

    Finetune with crosswords so the llm know how many characters in his response

  • @UnwalledGarden
    @UnwalledGarden 21 день назад

    Thanks! I can’t tell you how much I dislike Jupyter notebooks.

  • @flat-line
    @flat-line 19 дней назад

    If you only can change the style of the answer why bother with fine tuning, I don’t need the answers to be like a pirate , why would you need this for creating an enterprise level application? Is rag the way to go for this ?

    • @technovangelist
      @technovangelist  19 дней назад

      Tweaking the style is a very important aspect for most enterprises. Some need it to respond as Sql every time or json or functions. Those don’t need new knowledge but rather told how the model should respond.

  • @TheLokiGT
    @TheLokiGT 15 дней назад

    Matt, I had written down a long comment, but RUclips deletes anything that has links to platform it doesn't like, probably. If you have time and will, please read my replies to your twitter thread related to this video, thanks.

  • @joeeeee8738
    @joeeeee8738 20 дней назад

    Mmmmmmmmistral hahaha 😂👏

  • @8eck
    @8eck 21 день назад +1

    I also hate jupyter notebooks... Agree that it is the worst for teaching... I always convert it to python file in the end and getting rid of all useless stuff...

  • @AlexCasimirF
    @AlexCasimirF 20 дней назад

    Python Notebooks have to be the worst format for teaching - Amen to that!

  • @mwarnas
    @mwarnas 17 дней назад

    Yeah this is all gibberish. Convert your scripts json what?!