• @Mechanize
    link
    Italiano
    4
    edit-2
    11 months ago

    Ciao! Penso ci sia un po’ di confusione sull’argomento.

    L’addestramento, o training, viene praticamente sempre fatto su GPU, principalmente perché è un lavoro particolarmente lungo che beneficia molto della computazione parallela, e come utente finale non è una cosa che ti dovrebbe toccare.

    Quello che interessa a te è l’ “inference”, cioè quando chiedi al tuo modello locale di generare delle parole.

    Per non perderci troppo nei concetti che, sinceramente, non credo t’interessino, e facendola un sacco grossolana, quello che devi cercare sono i modelli quantizzati in formato GGML , come per esempio questo: https://huggingface.co/TheBloke/manticore-13b-chat-pyg-GGML

    Nella model card puoi vedere una descrizione dei vari tipi di quantizzazione disponibili e anche delle veloci descrizioni su come farli funzionare con i vari programmi.
    Personalmente uso direttamente llama.cpp e non uso web gui, quindi non ho molta esperienza con oobabooga.

    Se vuoi una lista di modelli disponibili ti consiglio quella presente nel profilo di TheBloke, che quantizza modelli anche quando dorme.

    Altre note:
    I GPTQ sono quantizzati con un altro sistema e credo debbano esser caricati completamente in VRAM (nella memoria della scheda grafica) quindi evitali. Gli f16 sono modelli “grezzi”, evita anche quelli.
    I modelli SuperHot usano delle tecniche per aumentare il contesto del LLM da 2046 a 8192 token. Se non sai di cosa si tratta per il momento non perderci il sonno ed evitali.

    Se ho malinteso la domanda fammelo sapere!

    EDIT: Tendenzialmente l’inferenza su CPU è lenta: dovresti puntare a modelli di piccole dimensioni, quindi da 3b o, al massimo, 7b. Quello che ti ho linkato come esempio è più grande, a 13b.

    • @LadroDiGalline
      link
      Italiano
      211 months ago

      Not OP

      Ciao @Mechanize@feddit.it, grazie, mi hai aperto un mondo.

      Sto iniziando adesso a studiare un po’ di machine learning, conosci qualche risorsa per imparare i termini tecnici? Tipo che significa quantizzazione, GGML, etc etc? Penso che le documentazioni che si trovano online manchino di una visione dall’alto

      per non perderci troppo nei concetti che, sinceramente, non credo t’interessino

      E invece a me interessano una cifra :D

      • @Mechanize
        link
        Italiano
        411 months ago

        Ciao! Scusa per la tarda risposta, @LadroDiGalline@feddit.it.

        Allora, sinceramente non conosco risorse specifiche per i termini, per lo più s’imparano organicamente quando ti mantieni informato sul mondo del Machine Learning, anche perché è talmente in flusso che nuovi termini vengono letteralmente coniati ogni giorno.

        Per farti un esempio la quantizzazione, di per sé, non è un concetto nuovo ma è scoppiato di fama nel grande pubblico solo dopo l’arrivo del modello LLaMa, perché usato per far girare modelli più complessi su hardware disponibile a livello consumer a velocità accettabili.
        Ma, per farti capire, in pochi mesi abbiamo visto llama.cpp bruciare attraverso 4 (se non ricordo male, ma non trovo più la lista) diverse versioni non retro-compatibili del loro sistema di quantizzazione, ed ora aggiungere una metodologia diversa, mentre altri tipi spuntavano e morivano in continuazione, a volte fermandosi solo al livello di paper.
        Puoi trovare una risorsa interessante specificatamente per GGML qui

        Un altro esempio di questo continuo flusso di termini sono i nomi delle tecniche usate per il prompting dei modelli: Chain of Thought che trovi spesso come “CoT” sul nome dei modelli che sono addestrati con tale processo, neppure il tempo materiale per addestrare un numero di modelli e ci siam trovati con Tree of Thoughts che per quasi due giorni aveva completamente invaso la nicchia del ML su twitter.
        E al contempo uscivano concetti come il SuperHOT per aumentare il contesto dei LLM da 2048 a 8192 token, facendo partire una nuova serie di paper riguardo come estendere il contesto.

        E questi son solo esempi a caso di alcuni termini che sono diventati di uso comune - e quasi mai spiegati - nell’arco di giorni .

        Se, invece, t’interessano i termini di base del Machine Learnig come cos’è l’inferenza, la regressione o simile allora ti consiglio vivamente di seguire uno dei tanti corsi gratuiti che puoi trovare in rete. Anni fa (un sacco di anni fa) c’era un ottimo corso su coursera da parte dell’università di Stanford, ma penso che ormai con l’esplosione di fama che c’è stata per l’argomento ne potrai trovare a decine di anche alta qualità. Fai solo attenzione che come sempre quando un argomento si propaga gli avvoltoi iniziano a girare, e quindi è facilissimo trovare gente incompetente che ripete solo cose che non capisce facendosi passare per grandi professori.

        Al momento non so come coursera sia, quindi non mi sento di consigliartela direttamente, ma anni fa (…probabilmente quasi un decennio fa, ormai haha) aveva diversi corsi di buona se non ottima qualità totalmente gratuiti.

        • @LadroDiGalline
          link
          Italiano
          211 months ago

          E’ incredibile vedere lo sviluppo di nuove tecniche praticamente in tempo reale. Grazie per le dritte, penso di mettere su qualcosa con llama.cpp nel weekend