https://liaoxuefeng.com/blogs/all/2024-05-06-llama3/

 

史上最强开源AI大模型——Meta的LLaMa3一经发布,各项指标全面逼近GPT-4。它提供了8B和70B两个版本,8B版本最低仅需4G显存即可运行,可以说是迄今为止能在本地运行的最强LLM。

虽然LLaMa3对中文支持不算好,但HuggingFace上很快出现了各种针对中文的微调模型,本文将从零开始介绍如何在本地运行发布在HuggingFace上的各种LLaMa3大模型。

准备环境

本文的演示环境是Mac M1 16G内存,自备工具,使用开源Ollama运行大模型,使用Open WebUI作为前端访问界面,通过浏览器访问,体验十分接近GPT:

llama3-ui-chat

安装软件

首先安装Ollama,它可以让我们非常方便地运行各种LLM。从Ollama官网下载,运行,点击安装Ollama命令行,然后在命令行测试Ollama是否已正常运行:

$ ollama -v
ollama version is 0.1.32

下载模型

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

在HuggingFace搜索llama3,设置LanguagesChinese,可以看到若干基于LLaMa3的中文模型:

llama3-search

我们选择一个GGUF格式的模型,GGUF格式是llama.cpp团队搞的一种模型存储格式,一个模型就是一个文件,方便下载:

llama3-download

点击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

llama3-run

出现>>>提示符时就可以输入问题与模型交互。输入/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-connection

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

llama3-ui-chat

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":"廖雪峰老师的网站提供了哪些教程?"}'

{"model":"llama3-cn:latest","created_at":"2024-05-01T14:42:28.009353Z","response":"廖雪峰老师是一位知名的技术专家和作家,他的网站提供了一系列关于编程、技术和个人成长的教程和资源。这些教程涵盖了广泛的主题,包括...

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

posted @ 2024-08-21 22:37 明天OoO你好 阅读(387) 评论(0) 推荐(0) 编辑
摘要: yarn create vite // 通过yarn+vite创建项目 填写的创建的项目名称, 默认名称 vite-project 选择框架,我们点击上下键,回车选择,我们这里选择vue 选择语言,我们点击上下键,回车选择,我们这里选择TypeScript,即ts,然后回车 创建成功,如下 按照提示 阅读全文
posted @ 2024-08-14 10:00 明天OoO你好 阅读(116) 评论(0) 推荐(0) 编辑
摘要: python安装运行requests报错: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently " f"the 'ssl' module is compiled with {ssl.OPENSSL_VERSION}. " "See: https: 阅读全文
posted @ 2024-04-10 09:42 明天OoO你好 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 一、部署kafka deploy-kafka.sh #!/bin/bash // 需要首先修改正确的集群机器ip server1="host1" server2="host2" server3="host3" // 每台机器设置一个独立的index id SERVER_INDEX="1" if [ 阅读全文
posted @ 2024-03-31 11:41 明天OoO你好 阅读(67) 评论(0) 推荐(0) 编辑
摘要: https://redpanda.com/guides/kafka-tutorial/kafka-without-zookeeper 多年来,人们一直在同时使用Apache ZooKeeper和Apache Kafka。但是自Apache Kafka 3.3发布以来,它就可以在没有ZooKeeper 阅读全文
posted @ 2024-03-29 23:01 明天OoO你好 阅读(1160) 评论(0) 推荐(0) 编辑
摘要: 1. 使用nfdump工具集 https://github.com/phaag/nfdump 2. 参考教程 https://medium.com/turknettech/mastering-netflow-traffic-analysis-with-nfdump-8b80da52d193 3. k 阅读全文
posted @ 2024-02-28 05:42 明天OoO你好 阅读(53) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/wbsu2004/article/details/132963171 阅读全文
posted @ 2024-02-19 10:04 明天OoO你好 阅读(60) 评论(0) 推荐(0) 编辑
摘要: https://www.initech.nz/wiki/Clickhouse 阅读全文
posted @ 2024-02-19 10:04 明天OoO你好 阅读(10) 评论(0) 推荐(0) 编辑
摘要: ## 子日数据 Prophet可以通过在ds列中传递带有时间戳的数据框来预测时间序列。时间戳的格式应该是YYYY-MM-DD HH: MM:SS-请参阅此处的示例csv。当使用子日数据时,每日季节性将自动匹配。这里我们将Prophet拟合为5分钟分辨率的数据(约塞米蒂的每日温度): ``` # Py 阅读全文
posted @ 2023-06-13 09:19 明天OoO你好 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 告警收敛实现 https://github.com/tal-tech/alarm-dog 阅读全文
posted @ 2023-05-27 12:53 明天OoO你好 阅读(39) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示