Per chi usa LLM locali - speculative decoding

Al momento sto usando, sul mio M4 Pro, Qwen2.5 32b per migliorare/riassumere/tradurre testi, Qwen2.5 Coder 32b per code refactoring, e lo stesso ma in versione 3b per autocomplete con la estensione Continue.dev per VsCode.

Uso llama.cpp principalmente per questo, ma non sono riuscito ad ottenere uno speed boost con speculative decoding usando un draft model, mentre molti altri riportano miglioramenti significativi nella velocita’ di inference.

Voi l’avete provato? Se si’ e’ la velocita’ migliorata e se si’ con quale hardware?

1 Like

we skylinx, bentornato!

io ho pasticciato un po’ con llama ma onestamente era tutto spaccato su shark, quindi l’ho abbandonato e non ti posso essere utile.

Ciao! Sono passato da qui qualche volta di recente ma solo per leggere :slight_smile:

Che cosa usa per usare LLM localmente?

shark, ma è rimasto indietro. non c’ho più guardato per farlo andare decentemente, aspetto che il progetto sia un po’ più maturo :argh:

Ah OK, non avevo capito cosa era Shark. Sono ancora nuovo per l’argomento, avendo iniziato soltanto da qualche settimana :)

è una gui che integra un po’ di roba (tra cui llama e stable diffusion).

ma mi son rotto di starci a combattere, figo ma aspetto che funzioni decentemente.
devo confessare che llama non mi è mai andato :sweat:

Io uso llama.cpp perche’ consente di attivare il prompt caching, che aiuta molto specialmente in lunghi threads

Sto provando Llama 3.3 70b appena rilasciato e wow, sono impressionato. E costa anche poco su OpenRouter (solo 40 centesimi per million tokens). Anche se ho sufficiente memoria non penso che l’inference sarebbe sufficientemente veloce per me locale

Avrei una curiosità sul tuo setup, quanta ram hai sul M4 Pro ? il Qwen2.5 32b che usi a quanto è quantizzato e quanti tps ti fa ?

64 GB, e Q4. 11 tokens/sec. Appena esce l’M4 Studio Ultra forse faccio l’upgrade. Al momento come default sto usando Virtuoso Small 14b per general text tasks, Qwen2.5 Coder 14b per refactoring, e Qwen2.5 Coder 3b per autocomplete. Se non sono soddisfatto dei risultati allora passo alle versioni 32b , e se non sono soddisfatto neanche di quelli allora uso OpenRouter con Llama 3.3 70b adesso e Claude Sonnet. Tu che modelli usi adesso e su quale hardware?

Per curiosita’, ci sono vantaggi ad usare llama.cpp vs ollama? Il secondo non e’ solo un wrapper del primo?

Riguardo speculative decoding, ora sta diventando impossibile seguire l’uso delle buzzword e cosa significano veramente, ma e’ quella cosa che usa il modello “piccolo”/draft per generare i token e il modello “grande” per verificare la sequenza di token? Se si’, i gains dipendono solo da cosa usi come draft e non-draft e verso cosa confronti, per dire se usi 2 modelli troppo grossi non vedrai nessun gain perche’ anche se stanno andando in pipelining (uno genera e quasi in parallelo l’altro verifica) verranno limitati comunque dal tuo setup in termini di compute e soprattutto memoria, e anche dagli hyper-parametri tipo ogni quanti token fare la “verifica” ecc… Imho e’ una cosa che va piu’ veloce se la tua “reference” e’ un modello grosso ma che ti lascia ancora qualcosa in termini di memoria cosi’ che puoi avere quello piu’ piccolo in azione totale in parallelo… Ma ho fatto zero esperimenti miei.

Si’ e’ una sorta di wrapper. Il vantaggio con llama.cpp e che’ quando introduce nuove features, ci vuole del tempo prima che queste vengano aggiunte ad Ollama e altri tool che sono costruiti su di esso. Per esempio prompt caching, speculative decoding etc.

Si’, lo speculative decoding e’ esattamente l’uso di un draft model. Molti dicono che incrementa di molto l’inference speed ma io non ho visto alcuna differenza. Qualcuno su Reddit mi ha detto che e’ piu’ difficile vedere vantaggi su Apple Silicon perche’ questo tipo di compute e’ memory bandwidth bound, not CPU bound or qualcosa del genere. Non ricordo i dettagli.

Tu che modelli usi cmq?

Buco (si so che esiste il popcorn time) e chiedo aggiornamenti!

Ad essere sincero al momento sto usando DeepSeek v3 via OpenRouter. E’ ottimo e costa pochissimo. Forse tornero’ a modelli locali, non lo so ancora

è il principio che conta!

Io in realta’ non uso praticamente nulla! Ma i modelli locali mi attirano molto, io fine-tunavo roba dai tempi di GPT-2… Pero’ in quello che faccio alla fine non li uso attivamente. Uso invece a volte il pro di perplexity.ai, credo sia l’unico tool LLM-based che trovo accettabile [non li uso per programmare direttamente].

Devo provare pero’ effettivamente deepseek v3.

Non male la macchinetta presentata da Nvidia, certo sono 3k di minipc però per chi lavora con le AI si ritrova una discreta bestiolina.