ollama是大模型部署方案,对应docker,本质也是基于docker的容器化技术。
从前面的文章可以看到,部署大模型做的准备工作是比较繁琐的,包括各个环节的版本对应。ollama提供了一个很好的解决方案。
ollama主要针对主流的LLaMA架构的开源大模型设计,并且已被LangChain、Taskweaver等在内的多个热门项目高度集成。
一、下载安装ollama
1.1 安装
官方地址:https://ollama.com/
开源地址:https://github.com/ollama/ollama
下载后双击安装:
一路下一步即可。
1.2 配置
ollama默认把大模型保存在路径 用户目录/.ollama/models 下:
基于各种原因,我们可能不希望使用这个默认路径,可以通过环境变量的配置来更改大模型保存的目录。
添加环境变量 OLLAMA_MODELS:
这里有重要的一步,需要重启ollama,使配置生效。
在任务栏的ollama图标上点击右键,选择“Quit Ollama”退出ollama:
然后重新打开ollama:
二、部署运行大模型
接下来就是实际来部署一个大模型,这里以llama3为例。
2.1 获取大模型部署命令
在ollama官网搜索llama3大模型:https://ollama.com/library
选择第一个llama3进入大模型详情页:
在上图可以看到默认有三个标签可以选择:最新版、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中的镜像。
下载完后会提示成功:
2.3 和大模型交互
接下来可以直接跟llama3对话,在三个箭头➡️后输入问题,llama3会给出回应:
可以看到ollama成功部署了大模型,并成功运行。
三、在LangChain中使用Ollama
3.1 通过jupyter来运行
3.1.1 安装jupyter
参考 【AI工具】jupyter notebook和jupyterlab对比和安装-CSDN博客 安装jupyterlab。
3.1.2 新建一个notebook
在新的文件中输入如下代码:
# 引入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.1.3 运行
现在把鼠标定位在第一行,点击工具栏的运行按钮,一步一步的运行,运行5步后,输出了AI的自我介绍:
这样在LangChain中通过ollama,直接调用了大模型。
可以再问一次二的问题:
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
运行成功。