1. 引言
万众期待的 Meta
第三代 Llama
发布了,我想确保你知道如何以最佳方式部署这个最先进的LLM
。在本教程中,我们将在笔记本上部署该模型,并指导大家一步步具体操作步骤。
闲话少说,我们直接开始吧!
2. LLama3
迄今为止,Llama 3
系列包括从 8B 到 70B 参数量的各种型号,未来还将推出更多版本。这些模型附带有许可的 Meta Llama 3
许可协议,建议大家在接受使用这些模型所需的条款之前仔细阅读。这标志着Llama
模型系列和开源人工智能进入了激动人心的新篇章。
观察上图模型的性能,最引人注目的是Llama3-8B
模型在所报告的基准测试中的性能比 Llama2-70B
高出 62% 到143%,而模型体积却小了 88%!关于该模型更多的细节,本文不过多阐述,接下来我们重点放在笔记本上部署该模型。
3. 准备工作
我们将使用 llama-cpp
库和openai
库在个人笔记本上快速运行llama3
模型。这将是一个初始测试,虽然只有文本界面…但可以 100% 运行。
首先我们来创建我们的虚拟环境,如下:
cd ~/
python -m venv venv
source ./venv/bin/activate #activate the virtual environment
现在您已经有了一个干净的 Python
虚拟环境,接着我们将安装 llama-cpp-python
和 OpenAI
库,如下:
pip install llama-cpp-python
pip install openai
可以参考我在MacBOOK
上跑通的环境中的其他依赖:
4. 下载量化模型
接着我们需要从Hugging Face
网站上下载 Llama-3-8B GGUF
模型权重,注意这里下载的是模型的量化压缩后的权重,格式为GGUF
,如下:
点击文件和版本,选择 Q2_K
(只有3Gb)或Q4_K_M
(4.9Gb)。第一个版本推理精度较低,但推理速度较快,第二个版本在速度和精度之间取得了很好的平衡。
如果你在国内下载这些模型参数文件速度较慢,可以通过中文镜像网站下载,链接如下:国内镜像站
下载完成后,将模型文件放到自己工程目录下model
文件夹内即可。
5. 编写client程序
在上面我们安装了OpenAI
库,是因为我们将使用llama-cpp
内置兼容的 OpenAPI
服务器。接着我们需要编写我们的client.py
程序,该client.py
接收我们的文本提示输入,并通过API
向服务器发送/接收指令,然后得到响应。
该客户端client.py
很方便,因为它与我们所使用的模型完全无关。让我们先导入我们需要的库:
# Chat with an intelligent assistant in your terminal
from openai import OpenAI
# Point to the local server
client = OpenAI(base_url="http://localhost:8000/v1",
api_key="not-needed")
在这里,我们调用 OpenAI
库中的构造函数将客户端实例化。接着我们使用第一条信息对历史记录进行格式化:Python dict
的第一个条目是系统信息,第二个条目是要求模型自我介绍的用户提示,如下:
history = [
{"role": "system", "content": "You are an intelligent assistant. You always provide well-reasoned answers that are both correct and helpful."},
{"role": "user", "content": "Hello, introduce yourself to someone opening this program for the first time. Be concise."},
]
print("\033[92;1m")
接着,我们开始一个 while
循环:基本上,我们会一直询问用户提示,并从 Meta-Llama-3-7B-instruct
模型中生成回复,直到我们说quit
或者exit
。代码实现如下:
while True:
completion = client.chat.completions.create(
model="local-model",
messages=history,
temperature=0.7,
stream=True,
)
new_message = {"role": "assistant", "content": ""}
for chunk in completion:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
new_message["content"] += chunk.choices[0].delta.content
history.append(new_message)
print("\033[91;1m")
userinput = input("> ")
if userinput.lower() in ["quit", "exit"]:
print("\033[0mBYE BYE!")
break
history.append({"role": "user", "content": userinput})
print("\033[92;1m")
6. 服务器端运行
万事具备!接下来,我们就来运行下我们基于LLama3
的聊天机器人吧!首先,我们打开一个新的终端窗口中,激活venv
后运行以下命令:
#with CPU only
python -m llama_cpp.server --host 0.0.0.0 --model \
./model/Meta-Llama-3-8B-Instruct.Q2_K.gguf \
--n_ctx 2048
运行后,我们将启动与OpenAI
标准兼容的FastAPI
服务器。我们应该得到类似下面的信息:
初次启动,需要一些时间。当服务器准备就绪后,Uvicorn
会以漂亮的绿色信息INFO
通知显示在终端,如下:
当看到上述绿色的INFO
信息后,就说明我们的服务器端已成功初始化完成,完成了相应的准备工作。
7. 客户端运行
接着,我们同样需要新开一个终端,激活我们的虚拟环境venv,
接着运行以下代码:
python ./client.py
以下是我的运行界面:
现在我们的聊天机器人已准备就绪。想问什么就问什么,尽情享受吧。
比如我问他如何减肥,他就会给我一些建议,如下:
上图中,红色为我的输入,绿色为模型的答复!Awesome!!!
8. 总结
总之,Meta
的Llama3 LLM
系列在前几代产品的基础上进行了显著改进,并提供了多种配置。本文重点介绍了如何在自己的笔记本上运行CPU
版本的LLama3
模型,并给出了具体的示例!
您学废了嘛?
如何学习大模型
现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。
作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。
我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。
一、AGI大模型系统学习路线
很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。
二、AI大模型视频教程
三、AI大模型各大学习书籍
四、AI大模型各大场景实战案例
五、结束语
学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。
再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。
因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。