感谢您的工作,这很棒,对OSS社区非常有帮助。在这个项目中,名为"Modelfile"的自定义配置文件运行良好。我想讨论使用标准化配置格式(如JSON5、TOML、YAML或其他类似标准)的可能性。这些格式经过了实战考验,易于阅读和维护,并拥有广泛的工具支持。使用自定义配置语言使得人们难以快速适应,并且很难在其上构建工具支持。您有什么想法吗?
tct7dpnv1#
嘿,@nazimamin,非常感谢你提交这个问题并引起我们的注意。在过去,我和你都知道,无论我们选择什么,总会有一些权衡。有些更注重可组合性,使得通过生成器工具轻松生成。有些比其他格式更易于阅读,列表可以继续下去。我们可能不会总是做对,但我们会始终选择能够解决最多人问题的那个。始终倾听更多的用例和建议,以确定什么是最佳的。我们确实应该为使用Ollama API提供良好的支持和工具/格式。
ct3nt3jp2#
我支持OP的建议。也许通过支持多种易于序列化的格式,可以减轻“正确获取”的问题。例如,我认为TOML非常容易阅读和编写,同时也易于解析。其他人可能更喜欢YAML(我不太喜欢它)。将这些格式解析到相同的内存结构中应该相当容易,现在。
kr98yfug3#
我认为关于Modelfile的目的可能存在误解。它不是一个配置文件,而更像是一个Makefile或Dockerfile。目前可能很难看出这一点,因为一切都还很基础,但愿景是拥有一个格式,可以处理组装所有量化级别、嵌入甚至peft/lora训练的所有内容。此外,在模型图像中支持清单列表,我们可以在ggml v3之外支持多种权重格式。关键是您可以使用Modelfile来组装您的模型,并使用ollama push将其推送到注册表,以便轻松与其他人员共享。
ollama push
因此,与其说它是一个配置文件,不如说它是一个用于组装模型的脚本或源文件。我感谢这里的建议,但我会继续关闭这个问题。在某个时候,将会有ollama配置文件用于调整ollama运行器/服务器中的参数,这些肯定会是正常的配置文件。
bttbmeg04#
我还要提到一件事;您可以在调用 POST /api/generate 时使用 JSON 设置超参数。我们可以通过 ollama run 轻松地暴露这一点,因此您可以轻松地调整参数。如果这有用的话,请告诉我。
POST /api/generate
ollama run
zu0ti5jz5#
是的,这类事情从来都没有一个好的答案。Dockerfile因为易于理解和阅读/编写而迅速流行起来。Kubernetes拥有大量的YAML文件,具有无限的灵活性,但这让我们都很痛苦,像Helm这样的生成层让一切变得更糟。如果Ollama有一个明确定义的API(或者与Modelfile兼容的JSON),不会像Docker在很多情况下那样将太多的魔法推给客户端,那么这可能是一个很好的折衷方案。
Dockerfile
c9qzyr3d6#
我非常希望看到Ollama支持使用标准配置文件来设置模型服务器和默认参数。这与 #4120 、 #4154 、 #4123 和 #836 有关。
ylamdve67#
这个看起来像是一个旧问题,可能被忽视了,但是无论如何,能够用类似yaml/json格式的配置文件来设置真是太棒了。
7条答案
按热度按时间tct7dpnv1#
嘿,@nazimamin,非常感谢你提交这个问题并引起我们的注意。
在过去,我和你都知道,无论我们选择什么,总会有一些权衡。有些更注重可组合性,使得通过生成器工具轻松生成。有些比其他格式更易于阅读,列表可以继续下去。
我们可能不会总是做对,但我们会始终选择能够解决最多人问题的那个。始终倾听更多的用例和建议,以确定什么是最佳的。
我们确实应该为使用Ollama API提供良好的支持和工具/格式。
ct3nt3jp2#
我支持OP的建议。也许通过支持多种易于序列化的格式,可以减轻“正确获取”的问题。例如,我认为TOML非常容易阅读和编写,同时也易于解析。其他人可能更喜欢YAML(我不太喜欢它)。将这些格式解析到相同的内存结构中应该相当容易,现在。
kr98yfug3#
我认为关于Modelfile的目的可能存在误解。它不是一个配置文件,而更像是一个Makefile或Dockerfile。目前可能很难看出这一点,因为一切都还很基础,但愿景是拥有一个格式,可以处理组装所有量化级别、嵌入甚至peft/lora训练的所有内容。此外,在模型图像中支持清单列表,我们可以在ggml v3之外支持多种权重格式。关键是您可以使用Modelfile来组装您的模型,并使用
ollama push
将其推送到注册表,以便轻松与其他人员共享。因此,与其说它是一个配置文件,不如说它是一个用于组装模型的脚本或源文件。我感谢这里的建议,但我会继续关闭这个问题。在某个时候,将会有ollama配置文件用于调整ollama运行器/服务器中的参数,这些肯定会是正常的配置文件。
bttbmeg04#
我还要提到一件事;您可以在调用
POST /api/generate
时使用 JSON 设置超参数。我们可以通过ollama run
轻松地暴露这一点,因此您可以轻松地调整参数。如果这有用的话,请告诉我。zu0ti5jz5#
是的,这类事情从来都没有一个好的答案。
Dockerfile
因为易于理解和阅读/编写而迅速流行起来。Kubernetes拥有大量的YAML文件,具有无限的灵活性,但这让我们都很痛苦,像Helm这样的生成层让一切变得更糟。如果Ollama有一个明确定义的API(或者与Modelfile兼容的JSON),不会像Docker在很多情况下那样将太多的魔法推给客户端,那么这可能是一个很好的折衷方案。c9qzyr3d6#
我非常希望看到Ollama支持使用标准配置文件来设置模型服务器和默认参数。
这与 #4120 、 #4154 、 #4123 和 #836 有关。
ylamdve67#
这个看起来像是一个旧问题,可能被忽视了,但是无论如何,能够用类似yaml/json格式的配置文件来设置真是太棒了。