LLaMA 2 是 Meta 开发的大型语言模型,是 LLaMA 1 的后继者。LLaMA 2 可通过 AWS、Hugging Face 等提供商免费用于研究和商业用途。LLaMA 2 预训练模型接受了 2 万亿个标记的训练,上下文长度是 LLaMA 1 的两倍。其微调模型已经接受了超过 100 万个人工注释的训练。
本文包含 LLama 2 所有相关资源,可帮助您快速入门。它包括以下链接:
-
LLaMA 2 是什么?
-
Lllama 2在线体验
-
Llama2 背后的研究
-
Llama 2 基准测试有多好
-
如何正确使用Prompt与Llama 2聊天
-
如何使用 PEFT 训练Llama 2
-
如何部署 LLama 2 进行推理
-
LLama 2 在线API接口
一、LLaMa 2 是什么?
Meta 发布了 LLaMA 2,这是一种最先进的新型开放大语言模型 (LLM)。LLaMA 2 代表 LLaMA 的下一代版本,并附带商业许可。LLaMA 2 有 3 种不同的尺寸 - 7B、13B 和 70B 参数。与原始 LLaMA 相比,新的改进包括:
-
使用 2 万亿个文本数据进行训练
-
允许商业用途
-
使用 4096 个默认上下文窗口(可以扩展)
-
使用 RoPE 缩放4 位量化超越 4k token限制
-
70B模型采用分组查询注意力(GQA)
-
https://huggingface.co/models?other=llama-2
二、LLaMA 2 在线体验
有几个不同的游乐场可用于测试与 LLaMA 2 Chat 的交互:
-
HuggingChat允许您通过 Hugging Face 的对话界面与 LLaMA 2 70B 模型聊天。这提供了一种查看聊天机器人运行情况的简单方法。
-
https://huggingface.co/chat/
-
Hugging Face Spaces有7B、13B和70B尺寸的 LLaMA 2 模型可供测试。交互式演示可让您比较不同的模型尺寸。
-
https://huggingface.co/spaces/huggingface-projects/llama-2-7b-chat
-
https://huggingface.co/spaces/huggingface-projects/llama-2-13b-chat
-
https://huggingface.co/spaces/ysharma/Explorellamav2with_TGI
-
Perplexity拥有 7B 和 13B LLaMA 2 模型,可通过其对话式 AI 演示进行访问。您可以与模特聊天并针对回复提供反馈。
-
https://labs.perplexity.ai/
-
由 a16z Infra 和 Replication 提供的 7B-chat, 13B-chat and 70B-chat,与 Meta Platforms无关。
三、LLama 2 模型选择
如果你正在寻找特定的开源LLM,你会发现有很多变体。GPTQ 版本、GGML 版本、HF/基本版本。我们应该选择使用哪个版本?按一般规则:如果你有很多 VRAM,请使用 GPTQ,如果你的 VRAM 最小,请使用 GGML,如果你想要原始模型,则使用基本的 HuggingFace 模型,而量化造成的智能损失可以忽略不计。
通常,量化模型速度更快,需要的 VRAM 更少,但它们的智能度可能略低。(1)4 位、5 位或 6 位似乎是许多用例的最佳点。
SuperHOT允许8K上下文大小而不是2K。
-
7B GGML 版本:
-
13B GGML 版本:
-
70B GPTQ 版本:
三、LLaMA 2 背后的研究
LLaMA 2 是一个基本的 LLM 模型,并根据在线公开数据进行了预训练。此外,Meta 还发布了 CHAT 版本。CHAT模型的第一个版本是SFT(监督微调)模型。之后,LLaMA-2-chat 通过人类反馈强化学习(RLHF)进行迭代改进。RLHF 流程涉及拒绝采样和近端策略优化 (PPO) 等技术,以进一步完善聊天机器人。Meta仅发布了该模型的最新RLHF(v5)版本。如果您好奇结账过程是如何进行的:
-
https://arxiv.org/abs/2307.09288
-
https://www.interconnects.ai/p/llama-2-from-meta
四、LLaMA 2 基准测试有多好?
Meta 声称“Llama 2 在许多外部基准测试上都优于其他开源语言模型,包括推理、编码、熟练程度和知识测试”。您可以在以下位置找到有关性能的更多见解:
-
https://huggingface.co/spaces/HuggingFaceH4/openllmleaderboard
-
https://ai.meta.com/llama/
五、如何正确使用Prompt与 LLaMA 2 聊天
LLaMA 2 Chat 是一种开放的对话模型。与 LLaMA 2 Chat 有效互动需要提供正确的提示和问题,以产生连贯且有用的响应。Meta没有选择最简单的提示。以下是单轮和多轮对话的提示模板。该模板遵循模型的训练过程,如LLaMA 2 论文中所述。您还可以查看LLaMA 2 提示模板。
单轮提示模板
<s>[INST] <<SYS>>
{{ system_prompt }}
<</SYS>>
{{ user_message }} [/INST]
多轮提示模板
<s>[INST] <<SYS>>
{{ system_prompt }}
<</SYS>>
{{ user_msg_1 }} [/INST] {{ model_answer_1 }} </s><s>[INST] {{ user_msg_2 }} [/INST] {{ model_answer_2 }} </s><s>[INST] {{ user_msg_3 }} [/INST]
六、如何训练 LLaMA 2
LLaMA 2 是公开可用的,因此可以轻松使用 PEFT 等技术进行微调。有大量资源可用于训练您自己的 LLaMA 2 版本:
-
https://huggingface.co/blog/llama2#fine-tuning-with-peft
-
https://github.com/facebookresearch/llama-recipes/tree/main
七、如何部署 LLaMA 2
LLaMA 2 可以使用Hugging Face Inference Endpoints等托管服务或通过 AWS、Google Cloud 和 Microsoft Azure 等云平台部署在本地环境 ( llama.cpp ) 中。
-
使用文本生成推理和推理端点部署 LLaMa 2
-
https://huggingface.co/blog/llama2#using-text-generation-inference-and-inference-endpoints
-
Llama-2-13B-在 M1/M2 Mac 上使用 GPU 推理进行本地聊天
-
https://gist.github.com/adrienbrault/b76631c56c736def9bc1bc2167b5d129
-
https://replicate.com/blog/run-llama-locally
-
https://mlc.ai/mlc-llm/docs/getstarted/tryout.html
-
在 Runpod 上运行 Llama 2(70B GPTQ version required 35-40 GB VRAM)
-
https://gpus.llm-utils.org/running-llama-2-on-runpod-with-oobaboogas-text-generation-webui/
八、Llama 2 在线API接口
replicate 提供了基于Llama 2 Chat在线微调的API接口
- 使用 Replicate API 运行 Llama 2
https://replicate.com/blog/run-llama-2-with-an-api
-
Llama-2-70B 聊天模型
-
Llama-2-13B 聊天模型
九、References
-
LLama 2 官方公告
-
LLaMA 2 论文
-
https://huggingface.co/papers/2307.09288
-
LLaMA 2 提示模板
-
https://gpus.llm-utils.org/llama-2-prompt-template/
-
Hugging Face Inference Endpoints
-
https://ui.endpoints.huggingface.co/
-
llama.cpp
-
https://github.com/ggerganov/llama.cpp