|
前言1.因为是内网环境,所以文章中的安装过程,不贴实际安装过程的图片。2.因为是内网环境,所以所有的安装包都是先外网下载好,拷贝到内网执行的。下面所有安装包都是如此,不再赘述3.该服务器除系统盘60G之外,还有一个扩展盘100G,我们可以理解为windows电脑的D盘,我的所有安装包都会装在该盘,如果你只有一个盘,可以新建一个文件夹安装,不建议安装在系统盘的其他文件夹中安装ollama刚开始的时候没有太注意安装的方式,直接把ollama安装到了系统盘,这样会导致系统盘会大量被占用,所以下面的安装之前会先卸载原来安装的ollama,然后再安装。卸载ollama(1)停止并禁用服务sudosystemctlstopollamasudosystemctldisableollama12(2)删除服务文件和Ollama二进制文件sudorm/etc/systemd/system/ollama.servicesudorm$(whichollama)12(3)清理Ollama用户和组sudorm-r/usr/share/ollamasudouserdelollamasudogroupdelollama123开始安装ollama(1)先下载到本地我当时下的版本是v0.2.0的ollama-linux-arm64(这本身就是一个可执行文件,可以直接使用),下载地址在这里https://github.com/ollama/ollama/releases,根据自己的处理器下载。将其拷贝到内网的某个目录,拷贝到内网机器就不说了,就是U盘。(2)创建非系统盘的安装目录和模型存储目录选择一个合适的非系统盘路径,例如/data/software/ollama,并在该路径下创建所需目录.#用于存放ollama-linux-arm64文件mkdir-p/data/software/ollama/bin#用于存放执行的模型mkdir-p/data/software/ollama/models/ollama#用于存放用户mkdir-p/data/software/ollama/ollama_u123456(3)复制ollama-linux-amd64文件到安装目录将下载的文件复制到bin目录,并赋予可执行权限#这里拷贝过去的同时把ollama-linux-amd64名称改为了ollamacp/path/to/ollama-linux-amd64/data/software/ollama/bin/ollama#赋予权限chmod+x/data/software/ollama/bin/ollama1234(4)创建ollama用户sudouseradd-r-s/bin/false-m-d/data/software/ollama/ollama_uollama#想查询该用户的信息,使用以下两个命令idollamagetentpasswdollama1234(5)配置环境变量(可选项)为了从任何命令行都能运行ollama,可以将ollama的路径添加到环境变量PATH中。在你的shell配置文件中(例如.bashrc或.zshrc),添加以下行:#打开这个文件nano~/.bashrc#把下面这句话放到文件中最下面一行,Ctrl+x,y,enter(这三步,退出,保存,确定)exportPATH=/data/software/ollama/binPATH1234(6)刷新环境变量(可选项)使新的环境变量生效source~/.bashrc1(7)修改存储位置及Host地址如果选择自动安装,安装程序会自动创建用户,并创建相应的服务配置文件,并启动服务。如果是手动安装,则需要自己创建配置文件。Ollama模型默认存储在:macOS:~/.ollama/modelsLinux:/usr/share/ollama/.ollama/modelsWindows:C:\Users\\.ollama\models123我们使用手动配置,执行以下命令:sudovim/etc/systemd/system/ollama.service1编辑文件内容命令为[Unit]Description=OllamaServiceAfter=network-online.target[Service]ExecStart=/data/software/ollama/bin/ollamaserveUser=ollamaGroup=ollamaRestart=alwaysRestartSec=3#Environment="PATH=/home/ps/anaconda3/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin",环境变量也可以在这配置Environment="OLLAMA_HOST=0.0.0.0:11434"Environment="OLLAMA_MODELS=/data/software/ollama/models/ollama"[Install]WantedBy=default.target12345678910111213141516因为需要从其他服务器访问ollama服务,所以需要将host设置成0.0.0.0。配置完之后,再加一步授权的动作:cd/data/software/ollama/models#ollamallama:表示用户ollama和组ollama。这表示将目录的所有权赋予用户ollama和组ollama。#ollama/:指的是刚刚创建的ollama目录。sudochownollamallamaollama/1234(8)创建一个符号链接sudoln-s/data/software/ollama/bin/ollama/usr/bin/ollama1这条命令是在Linux系统中创建一个符号链接(symboliclink),具体解释如下:sudo:以超级用户(root)权限执行命令。ln:用于创建链接的命令。-s:表示创建一个符号链接(symboliclink),而不是硬链接(hardlink)。/data/software/ollama/bin/ollama:这是源文件的路径,即你想要链接到的实际文件。/usr/bin/ollama:这是符号链接的目标路径,即你想要创建链接的地方。这条命令的作用是:在/usr/bin/目录下创建一个名为ollama的符号链接,这个链接指向/data/ollama/bin/ollama文件。这样,当你在命令行中运行ollama命令时,系统会实际上执行/data/ollama/bin/ollama文件。它指向原始文件的位置,而不会占用额外的磁盘空间来存储文件内容。(9)启动ollama#这条命令告诉systemd重新读取所有服务单元的配置文件。sudosystemctldaemon-reload#这条命令会在systemd的启动目标中创建一个符号链接,指向ollama服务的配置文件(ollama.service),从而在系统启动时自动启动该服务。sudosystemctlenableollamasudosystemctlstartollama#以下两种查看ollama是否安装成功ollamaollama--version12345678(10)查看日志若您需要查看Ollama的运行日志,特别是在遇到问题需要调试时,可以使用以下命令:journalctl-uollama1(11)下载模型因为是内网环境,所以还是要把模型在外网下载好,然后拷贝到内网中,不能连接国外网站的,可以到HuggingFace的国内镜像地址去下载,地址:https://hf-mirror.com/Qwen/Qwen2-7B-Instruct-GGUF/tree/main。我下载的是Qwen2-7B-Instruct-GGUF,精度是q8的,相当于int8。根据自己机器情况下载。(11)加载模型模型还是拷贝到内网去的,目录随便,不过不建议放在系统盘。建议一个模型新建一个文件夹,比如通义千问的你就建一个qwen2的文件夹,智谱清言的你就建一个chatglm3的文件夹。把模型拷贝进去。以下以qwen大模型为例,其他模型都一样,要保证Modelfile和模型源文件在一个文件夹里。其他关于Modelfile的配置可参考:https://github.com/ollama/ollama/blob/main/docs/modelfile.md#进入模型所在目录cd/data/models/qwen2#新建一个名字为Modelfile的文件touchModelfile#编辑文件vimModelfile#加入下面这段代码,这个是加载模型的命令,因为他们在同一个文件夹,可以这样写FROM./qwen2-7b-instruct-q8_0.gguf#保存退出之后,执行以下命令,加载模型,create后面是你自定义的模型名称ollamacreateqwen2-7b-q8-fModelfile#执行之后,该模型会被加载到我们之前配置的模型地址中(/data/software/ollama/models/ollama)1234567891011(12)本地运行模型执行下面的命令就可以聊天了ollamarunqwen2-7b-q81退出Ctrl+d(13)API使用举个例子,地址应该替换成,你当前部署ollama的机器fromopenaiimportOpenAIclient=OpenAI(base_url='http://localhost:11434/v1/',#requiredbutignoredapi_key='qwen2-7b-q8',)chat_completion=client.chat.completions.create(messages=[#{'role':'system','content':'你是一名牙科医生'},{'role':'user','content':'我最近牙比较疼,应该怎么办'}],model='qwen2-7b-q8',)content=chat_completion.choices[0].message.content123456789101112131415具体使用可参考:https://github.com/ollama/ollama/blob/main/docs/api.md
|
|