AI初识--LLM、ollama、llama都是些个啥?

LLM全称(large language model)也就是大语言模型

什么是Ollama,它与Llama是什么关系?

Ollama是一个开源的 LLM(大型语言模型)服务工具,用于简化在本地运行大语言模型,降低使用大语言模型的门槛,使得大模型的开发者、研究人员和爱好者能够在本地环境快速实验、管理和部署最新大语言模型,包括如Llama 3、Phi 3、Mistral、Gemma等开源的大型语言模型。

Ollama目前支持以下大语言模型:library

因此,OllamaLlama的关系:Llama是大语言模型,而Ollama是大语言模型(不限于Llama模型)便捷的管理和运维工具

那么我们如何在本地部署这个大模型呢?

首先我们需要到ollama官网下载,然后在命令窗中输入一些ollama的命令

ollama只是个工具,那怎么跑我们想要的大模型呢?

下载模型

Ollama可以直接下载内置的几种模型,但选择有限。我们更希望从HuggingFace下载以便方便地评估各种模型,所以,这里我们并不从Ollama直接下载,而是从HuggingFace下载。

在HuggingFace搜索llama3,设置LanguagesChinese,可以看到若干基于LLaMa3的中文模型,我们选择一个GGUF格式的模型,GGUF格式是llama.cpp团队搞的一种模型存储格式,一个模型就是一个文件,方便下载与运行。

点击Files,可以看到若干GGUF文件,其中,q越大说明模型质量越高,同时文件也更大,我们选择q6,直接点击下载按钮,把这个模型文件下载到本地。

导入模型

下载到本地的模型文件不能直接导入到Ollama,需要编写一个配置文件,随便起个名字,如config.txt,配置文件内容如下:

复制代码
FROM "/Users/liaoxuefeng/llm/llama3-8b-cn-q6/Llama3-8B-Chinese-Chat.q6_k.GGUF"

TEMPLATE """{{- if .System }}
<|im_start|>system {{ .System }}<|im_end|>
{{- end }}
<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""

SYSTEM """"""

PARAMETER stop <|im_start|>
PARAMETER stop <|im_end|>

第一行FROM "..."指定了模型文件路径,需要修改为实际路径,后面的模板内容是网上复制的,无需改动。

然后,使用以下命令导入模型:

复制代码
$ ollama create llama3-cn -f ./config.txt

llama3-cn是我们给模型起的名字,成功导入后可以用list命令查看:

复制代码
$ ollama list
NAME              ID            SIZE    MODIFIED
llama3-cn:latest  f3fa01629cab  6.6 GB  2 minutes ago

可以下载多个模型,给每个模型写一个配置文件(仅需修改路径),导入时起不同的名字,我们就可以用Ollama方便地运行各种模型。

运行模型

使用Ollama的run命令可以直接运行模型。我们输入命令ollama run llama3-cn就可以将我们制定的模型运行起来

出现>>>提示符时就可以输入问题与模型交互。输入/exit退出。

搭建Web环境

使用命令行交互不是很方便,所以我们需要另一个开源的Open WebUI,搭建一个能通过浏览器访问的界面。

运行Open WebUI最简单的方式是直接以Docker运行。我们安装Docker Desktop,输入以下命令启动Open WebUI:

复制代码
$ docker run -p 8080:8080 -e OLLAMA_BASE_URL=http://host.docker.internal:11434 --name open-webui --restart always -v open-webui-data:/app/backend/data ghcr.io/open-webui/open-webui:main

参数-p 8080:8080将Open WebUI的端口映射到本机。参数-e OLLAMA_BASE_URL=http://host.docker.internal:11434告诉Open WebUI通过本机的11434访问Ollama,注意地址必须写host.docker.internal,不能写127.0.0.1

打开浏览器我们就可以访问http://127.0.0.1:8080,第一次访问需要注册,注册和登录是完全基于本地环境的,登录后就可以看到类似GPT的UI。

我们在聊天界面点击右上角配置按钮,点击Connections,点击刷新按钮,如果一切无误,会显示Server connection verified

在聊天界面的顶部选择一个模型,就可以愉快地开始和LLaMa3聊天了:

API

Open WebUI还提供了与OpenAI类似的API,使用前先点击设置 - Account,生成一个API Key,然后在命令行用curl测试:

复制代码
$ curl -X POST -H "Authorization: Bearer sk-959c8b27a48145bfb83bdb396ff3eeae" -H "Content-Type: application/json" http://localhost:8080/ollama/api/generate -d '{"model":"llama3-cn:latest","stream":false,"prompt":"讲讲llama,50字"}'

{"model":"llama3-cn:latest","created_at":"2024-05-01T14:42:28.009353Z","response":"Llama是一个基于指令跟随的多模态大型语言模型,由Meta AI发布。它能够处理文本、图像等多种输入,并生成相应的输出。

由于模型是运行在本地,Open WebUI也将数据存储在本地,所以隐私性可谓拉满。如果对一个模型不满意,还可以从HuggingFace下载更多的模型来评估,非常方便。

相关推荐
果冻人工智能11 分钟前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工13 分钟前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
石小石Orz15 分钟前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
孤独且没人爱的纸鹤24 分钟前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
阿_旭26 分钟前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow
羊小猪~~27 分钟前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
极客代码34 分钟前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
zhangfeng113334 分钟前
pytorch 的交叉熵函数,多分类,二分类
人工智能·pytorch·分类
Seeklike35 分钟前
11.22 深度学习-pytorch自动微分
人工智能·pytorch·深度学习
庞传奇36 分钟前
TensorFlow 的基本概念和使用场景
人工智能·python·tensorflow