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?
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
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.
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].