引言
llama3在4月19日刚刚发布,官方的对比结果中在开源模型中堪称世界第一,整好周六日有时间,在魔搭社区上测试一下
2 安装Ollama
2.1 下载Ollama
登录Ollama官网下载Ollama安装包
GitHub:https://github.com/ollama/ollama?tab=readme-ov-file
下载后双击安装
2.2 安装Ollama
Windows下安装Ollama很简单,双击运行安装文件即可,此处不赘述。
打开终端,输入ollama,出现下图所示代表安装成功
注意:
windows 的安装默认不支持修改程序安装目录,
默认安装后的目录:C:\Users\username\AppData\Local\Programs\Ollama
默认安装的模型目录:C:\Users\username\ .ollama
默认的配置文件目录:C:\Users\username\AppData\Local\Ollama
2.3 配置Ollama的模型路径
由于Ollama的模型默认会在C盘用户文件夹下的.ollama/models文件夹中,可以配置环境变量OLLAMA_MODELS,设置为指定的路径:
2.4 下载llama3模型
llama3目前主要有8B和70B两个模型,分别代表80亿和700亿个训练参数。
8B模型一般16GB内存就可以跑的很流畅,70B模型则至少需要64GB内存,有CPU就可以跑,当然有GPU更好。
这里我安装的是8B的模型。
打开终端,输入命令:ollama run llama3默认安装8B模型,也可以使用ollama run llama3:8b来指定相应的模型,安装成功会有如下提示:
提问题,发现该模型给了不太靠谱的回复。
当然也可以写代码
至此,llama3本地部署已完成。
注意1:
在没有互联网的环境下部署,可以将下载好的Ollama安装包复制到此环境安装,然后将下载好的模型复制到相应路径就可以在无互联网的环境下使用。
注意2:
由于llama3对中文的支持并不是很好,需要中文的可以使用GitHub上开源的这个llama3中文微调模型https://github.com/LlamaFamily/Llama-Chinese
3 Ollama+OpenWebUI
前面部署的llama3是在命令行里面进行交互,体验感并不好,安装OpenWebUI可以使用web界面进行交互。这里我使用docker的方式部署OpenWebUI。
3.1 安装Docker
3.1.1 下载Docker
Docker下载
安装启动, 提示如下, 需要启动微软Hyper-V选项
3.1.2 启动微软Hyper-V
打开“控制面板->程序->启用或关闭Windows功能”
勾选Hyper-V选项
重启电脑后安装成功
Windows工具中可以看到Hyper-V已安装成功。
注意:
若没有Hyper-V选项,可以使用如下命令安装:
pushd "%~dp0"dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hv.txtfor /f %%i in ('findstr /i . hv.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"del hv.txtDism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALLPause
将上述命令复制到Hyper-V.bat批处理文件中,然后以管理员身份运行。
3.1.3 安装Docker
打开之后是这个样子,一般不需要使用,用命令行操作即可。
3.1.4 切换国内镜像源
{"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"],"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"features": {"buildkit": true}
}
Docker中国区官方镜像地址
网易地址
中国科技大学地址
阿里巴巴
3.2 安装OpenWebUI
GitHub地址
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
浏览器输入http://localhost:3000/
注意:
注册时邮箱可以随便填写,例如:admin@111.com
3.3 web访问llama3
注册登录后可以看到直接可以选择之前部署好的llama3:8b模型,通过对话测试下它的能力。
写代码:
注意:
后台一定要运行着llama3,ollama run llama3:8b
3.4 离线部署
先安装Docker
将在线下载的docker images保存
在离线的机器上装载该镜像
docker load -i open-webui.tar
使用3.2章节的命令启动容器即可
常用指令
开启ollam服务
ollama serve
然后,再打开一个窗口,执行下面的命令安装和在命令行中调用llama3大模型:
ollama run llama3
启动后,可以在命令行调用:
另外,回到代码环境,可以使用openai风格代码调用
!pip install openai
1
from openai import OpenAI
client =0penAI(
base url='http://localhost:11434/v1/',
api key='ollama', # required but ignored
)
chat_completion=client.chat.completions.create(
messages=[{'role':'user''content':'你好,请介绍下你自己’}],
model='llama3',
)chat_completion.choices[0]
写一个多轮对话脚本
lef run chat session():# 初始化客户端client = 0penAI(base_url='http://localhost:11434/v1/',api_key='ollama', # API key is required but ig#初始化对话历史chat_history =[]#启动对话循环while True:# 获取用户输入user_input = input("你:")# 检查是否退出对话if user_input.lower()=='exit':print("退出对话。”)break#更新对话历史chat_history.append({'role': 'user','content':user_input}) # 调用模型获取回答try:chat completion=client.chat.completions.create(messages=chat_history,model='llama3')# 获取最新回答,适当修改以适应对象属性model_response=chat_completion.choices[0]print("AI:"model response)# 更新对话历史chat_history.append({'role':'assistant', 'content':model_response)except Exception as e:print("发生错误:",e)breakrun_chat_session()
总结
至此,完成了LLAMA3的模型部署,从测试的结果可以看到, llama3的基础模型对于中文的支持并不好,我们的问题是中文,它却返回了英文的结果,原因可能是因为它的训练集有15个T但是其中95%是英文,想要它支持中文更好,还需要使用中文的训练集进行微调,可喜的是,微调llma系列的中文训练集并不少(可能是因为llama系列都有这个问题),后续我会接着对llama3进行微调, 待续。。。