项目地址:https://github.com/meta-llama/llama3
Meta 发布两款开源Llama 3 8B与Llama 3 70B模型,供外部开发者免费使用。Llama 3的这两个版本,也将很快登陆主要的云供应商。
按照Meta的说法,Llama 3 8B和Llama 3 70B是目前同体量下,性能最好的开源模型。
Llama 3 8B在某些测试集上性能比llama 2 70B还要强!
Llama3是Meta于2024年4月18日开源的LLM,目前开放了8B和70B两个版本,两个版本均支持最大为8192个token的序列长度( GPT-4支持128K = = )
Llama3在Meta自制的两个24K GPU集群上进行预训练,使用15T的训练数据,其中5%为非英文数据,故Llama3的中文能力稍弱,Meta认为Llama3是目前最强的开源大模型
Llama3如果单纯使用的话推荐用Ollama进行部署,简单方便,我有具体的下游任务,所以需要自己微调
安装Ollama
Ollama是专门为本地化运行大模型设计的软件,可以运行大多数开源大模型,如llama,gemma,qwen等
首先去官网下载Ollama软件:https://ollama.com/
CPU only 安装Ollama
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
Nvidia GPU
安装 NVIDIA 容器工具包。
使用 Apt 安装¶
1. 配置仓库
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
2. 安装 NVIDIA 容器工具包
sudo apt-get install -y nvidia-container-toolkit
使用 Yum 或 Dnf 安装¶
1. 配置仓库
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
| sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
2. 安装 NVIDIA 容器工具包
sudo yum install -y nvidia-container-toolkit
配置 Docker 使用 Nvidia 驱动¶
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
启动容器
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
AMD GPU
要在 Docker 中使用 AMD GPU 运行 Ollama,请使用 rocm 标签并运行以下命令:
docker run -d --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm
本地运行模型
docker exec -it ollama ollama run llama3
进入容器
docker exec -it ollama /bin/bash
下载模型
Ollama 支持在 https://ollama.com/library上获取的模型列表
ollama/examples/python-simplechat/client.py at main · ollama/ollama · GitHub
使用python链接:
import json
import requests
# NOTE: ollama must be running for this to work, start the ollama app or run `ollama serve`
model = "llama3" # TODO: update this for whatever model you wish to use
def chat(messages):
r = requests.post(
"http://38.6.221.93:11434/api/chat",
json={"model": model, "messages": messages, "stream": True},
stream=True
)
r.raise_for_status()
output = ""
for line in r.iter_lines():
body = json.loads(line)
if "error" in body:
raise Exception(body["error"])
if body.get("done") is False:
message = body.get("message", "")
content = message.get("content", "")
output += content
# the response streams one token at a time, print that as we receive it
print(content, end="", flush=True)
if body.get("done", False):
message["content"] = output
return message
def main():
messages = []
while True:
user_input = input("请输入: ")
if not user_input:
exit()
print()
messages.append({"role": "user", "content": user_input})
message = chat(messages)
messages.append(message)
print("\n\n")
if __name__ == "__main__":
main()
OPEN WebUI
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
参考资料:
魔搭社区
Docker 文档 - Ollama中文网
Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.16.0 documentation
llama3.1
GitHub - open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI)