项目地址: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.gpgcurl -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.listsudo 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 usedef 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 itprint(content, end="", flush=True)if body.get("done", False):message["content"] = outputreturn messagedef 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)