首页 > 其他分享 >Ollama开发指南

Ollama开发指南

时间:2024-04-28 23:56:59浏览次数:26  
标签:指南 安装 ROCm 开发 构建 CUDA Linux Ollama

前奏:Ollama是什么,为什么这么好用

 

安装必备工具


  确保已安装以下软件的正确版本:

  CMake 3.24 或更高版本
  Go 1.22 或更高版本
  GCC 11.4.0 或更高版本

 

使用 Homebrew 安装这些工具(适用于macOS和Linux):

brew install go cmake gcc

 

可选:启用调试与详细日志
  构建时开启调试信息:

export CGO_CFLAGS="-g"

  运行时开启更多日志输出:

export OLLAMA_DEBUG=1

 

获取依赖库并构建原生LLM代码
使用Go的generate命令来获取依赖并构建本地代码:

go generate ./...

含义看这里:go generate ./... 含义

 

构建Ollama

构建Ollama主程序:

go build .

 

运行Ollama

构建完成后,执行Ollama:

./ollama

 

Linux平台特异性

 

Linux上的CUDA(NVIDIA)

  安装NVIDIA CUDA开发包和运行时环境。尽管某些Linux发行版可能已包含CUDA,但具体步骤可能因发行版而异,请查阅相应文档。

  构建脚本通常能自动识别CUDA路径,若路径非标准,可通过环境变量CUDA_LIB_DIR和CUDACXX指定CUDA库目录和nvcc编译器位置。自定义目标CUDA架构,可设置CMAKE_CUDA_ARCHITECTURES。

 

Linux上的ROCm(AMD)

  安装CLBlast和ROCm的开发包,以及CMake和Go。

  ROCm同样能被自动检测,但如有特殊路径,可通过ROCM_PATH和CLBlast_DIR环境变量指定ROCm安装目录和CLBlast目录。AMD GPU目标可通过AMDGPU_TARGETS自定义。

  ROCm运行时需提升权限,通常将用户加入render组或以root身份运行。

 

高级CPU设置

  默认情况下,go generate ./...会基于通用CPU家族和向量数学能力编译几个LLM库变体。

  若要为特定处理器定制CPU版本,可设置OLLAMA_CUSTOM_CPU_DEFS环境变量,传入llama.cpp编译标志。

 

Linux容器化构建

  如果安装了Docker,可以使用./scripts/build_linux.sh脚本构建Linux二进制文件,该脚本包含了CUDA和ROCm依赖。构建产物位于./dist目录下。

 

Windows平台

 

注意:Ollama的Windows构建仍在开发中。

  必须安装MSVC工具链、Go(1.22+)及MinGW(任一变体)搭配GCC。

  对于Windows CUDA支持,需在安装MSVC后安装NVIDIA CUDA。

  对于Windows ROCm支持,需安装AMD HIP SDK,并配置Strawberry Perl环境。

  最后,确保将MSVC附带的ninja.exe添加到系统路径中。

 

Tool:ChatAI文字生成图片代码差异比较器HTML查错器Llama3在线

Link:https://www.cnblogs.com/farwish/p/18164772

标签:指南,安装,ROCm,开发,构建,CUDA,Linux,Ollama
From: https://www.cnblogs.com/farwish/p/18164772

相关文章

  • Chrome插件(扩展)开发全攻略 写在前面 我
    Chrome插件(扩展)开发全攻略 写在前面我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处。本文所有涉及到的大部分代码均在这个demo里面:https://github.com/sxei/chrome-plugin-demo ,大家可以直接下载下来运行。......
  • Chrome插件(Extensions)开发攻略
    Chrome插件(Extensions)开发攻略 本文将从个人经验出发,讲述为什么需要Chrome插件,如何开发,如何调试,到哪里找资料,会遇到怎样的问题以及如何解决等,同时给出一个个人认为的比较典型的例子——获取网页内容,和服务器交互,再把信息反馈给用户。OK,准备开始吧,我尽量把文章写得好看点,以免......
  • Chrome插件开发1234
    Chrome插件开发(一) 作为一个开发人员,我们在日常工作中肯定会用到Chrome浏览器,同时也会用到谷歌的一些插件,比如Tampermonkey,AdBlock等,在之前的文章本人还用过Tampermonkey插件,好使又好玩,传送门 https://www.cnblogs.com/weijiutao/p/11677932.html,https://www.cnblogs.......
  • web开发中特殊字符的对应值与转义字符
    原文链接:https://www.cnblogs.com/greatverve/archive/2011/07/18/web-char.htmlURL中的特殊字符URL中的特殊字符是不能再URL中直接传递的,需要进行编码。编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。 例:要传递字符串“this%is#te=st&ok?+/......
  • [转]Git清除贡献者信息和历史提交记录,将开源项目拉取二次开发时可用到
     如果我们用git与github扒了别人的开源代码,想拿来用到自己项目中,但是提交过后,会发现仓库的历史记录又臭又长,贡献者里还有别人的名字,打算把历史记录全部清除并且让目前所有文件全部变成首次commit的状态。可以试试以下这个方法,包你百试百灵!1.Checkout检出新的分支#orphan参......
  • google浏览器插件开发
    项目结构在开发Chrome插件时,以下几个文件的作用如下:manifest.json:这是Chrome插件的清单文件,用于配置插件的基本信息、权限、页面跳转等。其中包括插件的名称、版本号、图标、后台脚本、浏览器动作等信息。background.js:这是Chrome插件的后台脚本文件,用于处理插件的后台逻辑......
  • .net core,.net 6使用SoapCore开发webservice接口,以及使用HttpClientFactory动态访问we
    1.使用soapCorenuget包 2.新建接口及实现2.1新建接口 2.2新建实现 2.3新建接收实体 2.4返回实体 3.接口注入使用  4.启动程序,直接访问对应的asmx地址  ......
  • 软件开发与创新-ColorFinder风险分析和典型用户
    典型用户:风险分析......
  • 最强国产 Sora 大模型 Vidu 发布,长度可达 16 秒;微信文件 3 小时内可撤回丨 RTE 开发者
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点,......
  • 职场<火焰杯>测试开发大赛开始报名啦!
    燃爆职场!火焰杯测试开发大赛再度启幕,精彩不容错过!本次大赛由火焰杯测试开发大赛组委会主办,测吧(北京)科技有限公司协办,汇聚顶尖测试开发人才,展开激烈较量。关于火焰杯<火焰杯>软件测试开发大赛为软件测试开发工程师提供一个展示自己的平台。通过对软件测试开发技能的考察,选拔出优......