gpt4all icon indicating copy to clipboard operation
gpt4all copied to clipboard

[Feature] Ability to check for updates to discovered models

Open cebtenzzre opened this issue 4 months ago • 2 comments

Discussed in https://github.com/nomic-ai/gpt4all/discussions/2064

Originally posted by SINAPSA-IC March 2, 2024 Hello.

Assuming that there's an update for an LLM that we use in GPT4All, how can we know this? Will such an update be listed under "Updates -> components", or under "Downloads"? Will the text (and functionality ofc) of the "Download" button change to "Update" if a check is being performed - preferably, at the user's request? Although I guess the only feasible option is to download a certain quantization, adapted for use within the program...

Thank you.

cebtenzzre avatar Mar 12 '24 20:03 cebtenzzre

There exists no way to know this currently. OTOH, the way 'updates' usually happen for a model is for a new model to be published under a different name. I can't think of a single instance where this hasn't happened?

manyoso avatar Mar 13 '24 12:03 manyoso

I can't think of a single instance where this hasn't happened?

Usually the weights are not updated. But sometimes the upstream model architecture changes, e.g.:

  • https://huggingface.co/tiiuae/falcon-40b/commit/4a70170c215b36a3cce4b4253f6d0612bb7d4146
  • https://huggingface.co/replit/replit-code-v1-3b/commit/e023a8461c7a2e2f2c85e52dbdd8d68b415f95eb

And other times, the GGUF conversion needs to be updated for a number of reasons:

  • llama.cpp updated the quantization for decreased perplexity:
    • sometimes backwards-compatible: https://www.github.com/ggerganov/llama.cpp/pull/2707
    • sometimes backwards-incompatible (allegedly): https://www.github.com/ggerganov/llama.cpp/pull/5829
  • llama.cpp changed the GGUF metadata in some way:
    • changes to tokenization, e.g. this breaking change https://www.github.com/ggerganov/llama.cpp/pull/3252
    • changes for special tokens, e.g. the reason that we had to re-convert Mistral OpenOrca
    • new keys, e.g. tokenizer.chat_template: https://www.github.com/ggerganov/llama.cpp/pull/4125

If the conversion is updated, a new commit is made to the repo - they are not immutable. Ideally there would be a way to check for this in the UI, by comparing the downloaded model's hash against the latest etag on the remote. Maybe there could be a "check for updates" button, or maybe it would be done automatically on startup. Then users could click "Update" for any models that have changed.

cebtenzzre avatar Mar 14 '24 16:03 cebtenzzre