张国伟 发表于 2024-8-3 01:15:03

【AI基础】大模型部署工具之ollama的安装部署以及api调用

ollama是大模型部署方案,对应docker,本质也是基于docker的容器化技能。
从前面的文章可以看到,部署大模型做的预备工作是比力繁琐的,包括各个环节的版本对应。ollama提供了一个很好的办理方案。
ollama主要针对主流的LLaMA架构的开源大模型设计,并且已被LangChain、Taskweaver等在内的多个热门项目高度集成。同时ollama提供了openAI兼容的api,可以最大限度的淘汰理解和开发成本。
一、下载安装ollama

1.1 安装

官方地址:https://ollama.com/
开源地址:https://github.com/ollama/ollama
https://img-blog.csdnimg.cn/direct/d480b0b0312a44d6bb41d3bc0a0cc824.png
下载后双击安装:
https://img-blog.csdnimg.cn/direct/2dd5a01284a0465693179407e001c68d.png
一起下一步即可。
1.2 检验

ollama安装后默认已经启动,我们可以通过访问其提供的api服务来举行检验。
参考官方文档:ollama的api · ollama/ollama · GitHub
这里运行ollama的机器为windows系统, ip为192.168.3.154。
1.2.1 通过localhost检验

运行命令: 
> curl http://localhost:11434/api/generate -d "{\"model\": \"qwen2\",\"prompt\": \"who are you?\",\"stream\":false}" 检察结果:
https://img-blog.csdnimg.cn/direct/2ae7fec5f80749d0b405164006081a67.png
   这里注意两点:
1、不要使用PowerShell(里面的curl参数不一样),使用 cmd 或者 git Cmd 。
2、注意参数的引号,通过斜杠 \ 来转义。 
1.2.2 通过IP地址检验

运行命令: 
> curl http://192.168.3.154:11434/api/generate -d "{\"model\": \"qwen2\",\"prompt\": \"who are you?\",\"stream\":false}" 检察结果:
https://img-blog.csdnimg.cn/direct/86ba21cedf3440b781a7af53ed49a3c9.png
   提示连接不上:"curl: (7) Failed to connect to 192.168.3.154 port 11434 after 2021 ms: Couldn't connect to server"。 
这是因为ollama安装后默认只能当地访问,接下来配置远程访问api。
1.3 配置

这里配置主要是因为两个需求:远程可以访问ollama的api接口服务以及自定义大模型存放路径。
ollama默认把大模型生存在路径 用户目录/.ollama/models 下:
https://img-blog.csdnimg.cn/direct/40f12c66bcb54b25be87d06696c46d92.png
基于各种原因,我们大概不盼望使用这个默认路径,可以通过情况变量的配置来更改大模型生存的目录。
添加情况变量 OLLAMA_HOST 以及 OLLAMA_MODELS:
https://img-blog.csdnimg.cn/direct/143980b8bc334e2aa66297ab9444b626.png


[*]- OLLAMA_HOST,0.0.0.0, 配置后可以远程访问;
[*]- OLLAMA_MODELS, c:\ai\llms_ollama,配置后ollama拉取的大模型会存放在此路径;
   这里有重要的一步,需要重启ollama,使配置见效。
在任务栏的ollama图标上点击右键,选择“Quit Ollama”退出ollama:
https://img-blog.csdnimg.cn/direct/6ed52908fac04491a2b13dab765697f5.png
然后重新打开ollama:
https://img-blog.csdnimg.cn/direct/7f3ef0a042fd4fe9b63aeb34593f7156.png
1.4 重新检验

这里通过IP地址重新举行检验。
1.4.1 windows系统

运行命令:
> curl http://192.168.3.154:11434/api/generate -d "{\"model\": \"qwen2\",\"prompt\": \"who are you?\",\"stream\":false}" 返回结果: 
https://img-blog.csdnimg.cn/direct/fd53be19dac3476a9a4a1a788a74294b.png
1.4.2 linux系统和mac系统

生成Completion:
> curl http://192.168.3.154:11434/api/generate -d '{"model": "qwen2","prompt": "who are you?","stream":false}' 返回结果:
https://img-blog.csdnimg.cn/direct/bb63ac50642043d3b30f66523e22732e.png
   这里注意参数的格式,和windows系统不一样,引号在这里直接使用不需要转义。 
生成Chat Completion:
> curl http://192.168.3.154:11434/api/chat -d '{
"model": "qwen2",
"messages": [
    {
      "role": "user",
      "content": "who are you?"
    }
],
"stream": false
}' 返回结果:
https://img-blog.csdnimg.cn/direct/b9498b29056a4920a768acc2098a59a7.png 
二、部署运行大模型

接下来就是实际来部署一个大模型,这里以llama3为例。
 2.1 获取大模型部署命令

在ollama官网搜刮llama3大模型:https://ollama.com/library
https://img-blog.csdnimg.cn/direct/6b8445a64be74be9aae0da190894a952.png
选择第一个llama3进入大模型详情页:
https://img-blog.csdnimg.cn/direct/95b5d1408f5e48438dab51393bc70bc0.png
在上图可以看到默认有三个标签可以选择:最新版、8B和70B,这里我们选择 8B的,所以我们需要运行 ollama run llama3。假如我们需要部署70B的,则需要运行 ollama run llama3:70b。
2.2 部署大模型

我们可以直接运行 ollama run llama3,假如llama3没有下载过则会下载,否则直接运行。也可以先下载然后运行:
> ollama pull llama3
> ollama run llama3 可以看到,使用方式跟docker是一样的,大模型对应了docker中的镜像。
下载完后会提示乐成:
https://img-blog.csdnimg.cn/direct/99e7eb1655044ef5a7b3a0b79196d915.png
2.3 和大模型交互

接下来可以直接跟llama3对话,在三个箭头➡️后输入问题,llama3会给出回应:
https://img-blog.csdnimg.cn/direct/5774a014cddf4b8595da77fa6bc99fa4.png
可以看到ollama乐成部署了大模型,并乐成运行。 
三、在LangChain中使用Ollama

3.1 通过jupyter来运行

3.1.1 安装jupyter

参考 【AI工具】jupyter notebook和jupyterlab对比和安装-CSDN博客 安装jupyterlab。
3.1.2 新建一个notebook

https://img-blog.csdnimg.cn/direct/dcbc5b106a2e4be3bb13fd643a9fd833.png
在新的文件中输入如下代码:
# 引入ollama
from langchain_community.chat_models import ChatOllama

# 加载llama3模型
ollama_llm = ChatOllama(model="llama3")

# 构造Message
from langchain_core.messages import HumanMessage

messages = [
    HumanMessage(
      content="你好,请你介绍一下你自己",
    )
]

# 发送Message
chat_model_response = ollama_llm.invoke(messages)

# 输入Message
chat_model_response https://img-blog.csdnimg.cn/direct/51dfe98e624e4fd290a9efb88f1bd712.png这里有个细节,代码一共是五个输入块,这是为了在堕落时,可以快速定位是哪一块出了问题。
3.1.3 运行

现在把鼠标定位在第一行,点击工具栏的运行按钮,一步一步的运行,运行5步后,输出了AI的自我先容:
https://img-blog.csdnimg.cn/direct/8b50f9a4c4fb4aa4b13a911aea7d98d5.png
这样在LangChain中通过ollama,直接调用了大模型。
可以再问一次二的问题:
https://img-blog.csdnimg.cn/direct/6074538cb8354c53bbb3184006f92af0.png
3.2 直接通过python运行

3.2.1 安装LangChain情况

参考 :【AI基础】第四步:保姆喂饭级-langchain+chatglm2-6b+m3e-base_m3e-base
3.2.2 新建python文件

输入代码:
# 引入ollama
from langchain_community.chat_models import ChatOllama

# 加载llama3模型
ollama_llm = ChatOllama(model="llama3")

# 构造Message
from langchain_core.messages import HumanMessage

messages = [
    HumanMessage(
      content="你好,请你介绍一下你自己",
    )
]

# 发送Message
chat_model_response = ollama_llm.invoke(messages)

# 输入Message
chat_model_response 3.2.3 运行

执行命令运行:
> python dev_ollama.py https://img-blog.csdnimg.cn/direct/0eac53c29f5c46858da102b3044694e4.png
运行乐成。 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【AI基础】大模型部署工具之ollama的安装部署以及api调用