目录
最近突然对大语言模型感兴趣
同时在平时的一些线下断网的CTF比赛中,大语言模型也可以作为一个能对话交互的高级知识检索库
本篇文章旨在记录我在本地部署大语言模型的过程
安装Ollama
Ollama是一个轻量级、可扩展的框架,旨在帮助用户在本地机器上构建、运行和分享大语言模型。
前往Ollama的官网Ollama下载最新版本的安装包
需要注意的是,该软件默认安装在C盘下,所以如果有精神洁癖的小伙伴也可以使用docker部署Ollama
在终端中输入ollama --version
返回版本信息,说明安装成功
更改模型存放位置
前往系统环境变量设置,添加如下系统变量
重启Ollama
拉取模型
Gemma
目前在Ollama上,Gemma模型已经拥有超过430K的拉取次数。基本上Gemma可以算是Ollama最热门的模型了
Gemma提供了不同参数规模的版本,2b(20亿参数)和7b(70亿参数)。参数的数量直接影响了模型对语言的理解能力,更多的参数通常意味着更好的理解、生成和预测能力,但同时也需要更强大的计算资源和更长的处理时间
每个参数版分为轻量版和全量版,2b模型即便是在没有独显的笔记本电脑上都能尝试运行,而规模更大的7b、7b全量版分别需要8GB和16GB显存。
因为本人的笔记本显卡是RTX 3070Laptop,为了防止显卡撑爆,选择部署2b全量版
首先确保Ollama框架有在运行,在终端中输入ollama pull gemma:2b-instruct-fp16
拉取模型
gemma后跟的是参数版本
拉取模型的过程中尽量开代理,因为Ollama的数据库在海外
提示success
说明拉取成功
Mistral
Mistral 7B 是一款拥有70亿参数的精心设计的语言模型,旨在实现卓越性能和高效运行。它在各类基准测试中表现出色,超越了当前最佳的开源13B模型——Llama 2,并在推理能力、数学计算精准度以及代码生成任务上均超越了已公开的34B模型——Llama 1
执行ollama pull qwen:7b
拉取模型
Qwen1.5(通义千问)
考虑到本地部署时对硬件的要求,我们不得不选取参数量较小的模型
通常的游戏笔记本的显卡内存在4G到8G之间,对应的模型参数量范围在20亿到70亿间
而今年年初阿里巴巴开源的Qwen1.5恰好有一个70亿参数量的版本,显存占用在7G左右,非常适合在中高端游戏本上部署
执行ollama pull mistral:latest
拉取模型
codellama
code llama在llama2模型的基础上,利用代码数据进行训练和微调,提高了llama2在代码生成上的能力
code llama提供了三种模型,每种模型包含7B,13B,34B三个尺寸,支持多种编程语言,如Python, C++, Java, PHP, Typescript (Javascript), C#, Bash等。
- Code Llama,代码生成的基础模型;
- Code Llama-Python,单独针对于python的模型;
- Code Llama-Instruct,根据人工指令微调的模型。
这里我们选用基础模型,执行ollama pull codellama:7b
拉取模型
部署Open webui
Open WebUI是目前GitHub上开源的类Chatgpt前端界面中,star数量最多的框架之一
而更重要的是Open WebUI的前身即Ollama WebUI,所以它对于Ollama的支持非常好
执行下面的指令来拉取并部署Open WebUI的docker容器
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
在浏览器上访问https://localhost:3000
点击加号添加刚刚拉取的所有模型,方便后续同时测试多个模型
测试性能
在本文章中,会对部署在本地的模型进行相同的提问测试,包括知识广度和代码能力
知识广度
首先是知识广度上的测试,我们询问2道安全岗的面试题
问题1
- 请向我介绍一下蜜罐技术</