如果有一个nix flake,可以通过flakehub.com上的nix flakes来消费它,那就太好了。
6xfqseft1#
Ollama已经打包在nixpkgs中(目前仅支持0.0.17版本,但version bump正在开发中)使用flake的好处是可以暴露一个库,该库允许从nix构建模型。例如:
{ buildModelfile = { from, parameters ? {}, template ? null, system ? "", adapters ? [], license ? null }:let l = pkgs.lib // builtins; parametersString = (l.concatStringSep "\n" (l.mapAttrs (param: val: "PARAMETER ${param} ${value}") parameters)); templateString = if (builtins.isString template) then ''TEMPLATE """${template}"""'' else ""; systemString = if (builtins.isString template) then ''SYSTEM """${template}"""'' else ""; licenseString = if (builtins.isString template) then ''LICENSE """${template}"""'' else ""; adaptersString = (l.concatStringSep "\n" (l.map (adapter: "ADAPTER ${adapter}") adapters)); in pkgs.writeTextFile "Modulefile" '' FROM ${from} ${parametersString} ${templateString} ${systemString} ${adapters} ${licenseString} ''; }
rqcrx0a62#
拥有一个flake版本也仅仅是允许nix run github:jmorganca/ollama,这并不需要切换到不稳定版本才能安装它。
nix run github:jmorganca/ollama
smtd7mpg3#
nixpkgs中的版本似乎与CUDA不兼容,因为它使用了nixpkgs中的llama-cpp包。这个方便的补丁解决了这个问题。它运行良好,GPU加速也能正常工作!它避免了将llama-cpp作为子模块引入,我认为这是件好事。https://github.com/havaker/ollama-nix我不确定@havaker是否会将他们的补丁贡献给仓库,但如果是这样,那么它确实会打开一整套端到端集成测试,可以在nix ci中使用nixos测试框架运行。
7eumitmz4#
你可以同样做 nix run nixpkgs/nixos-unstable#ollama。这不会全局改变它。(或者对于这个问题做 nix run github:nixos/nixpkgs/nixos-unstable#ollama,但我认为这是不必要的)当然,这并没有解决包可能存在的其他问题,但是你可以自由地与“原生”nix混合搭配!更多示例请查看 https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake#flake-references
nix run nixpkgs/nixos-unstable#ollama
nix run github:nixos/nixpkgs/nixos-unstable#ollama
4条答案
按热度按时间6xfqseft1#
Ollama已经打包在nixpkgs中(目前仅支持0.0.17版本,但version bump正在开发中)
使用flake的好处是可以暴露一个库,该库允许从nix构建模型。例如:
rqcrx0a62#
拥有一个flake版本也仅仅是允许
nix run github:jmorganca/ollama
,这并不需要切换到不稳定版本才能安装它。smtd7mpg3#
nixpkgs中的版本似乎与CUDA不兼容,因为它使用了nixpkgs中的llama-cpp包。
这个方便的补丁解决了这个问题。它运行良好,GPU加速也能正常工作!
它避免了将llama-cpp作为子模块引入,我认为这是件好事。
https://github.com/havaker/ollama-nix
我不确定@havaker是否会将他们的补丁贡献给仓库,但如果是这样,那么它确实会打开一整套端到端集成测试,可以在nix ci中使用nixos测试框架运行。
7eumitmz4#
你可以同样做
nix run nixpkgs/nixos-unstable#ollama
。这不会全局改变它。
(或者对于这个问题做
nix run github:nixos/nixpkgs/nixos-unstable#ollama
,但我认为这是不必要的)当然,这并没有解决包可能存在的其他问题,但是你可以自由地与“原生”nix混合搭配!
更多示例请查看 https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake#flake-references