HuggingFace镜像/CodeLlama-7b-hf
模型介绍文件和版本分析
下载使用量0

Code Llama

Code Llama 是一系列预训练和微调的生成式文本模型集合,参数规模从 70 亿到 340 亿不等。本仓库是 Hugging Face Transformers 格式的基础 70 亿参数版本。该模型旨在用于通用代码合成与理解。其他模型的链接可在底部索引中找到。

与 openMind 配合使用

环境变量

# source environment variable
source /usr/local/Ascend/ascend-toolkit/set_env.sh
export OPENMIND_FRAMEWORK=pt

pip 安装 openMind 库

OpenMind 库可通过 pip 进行安装,请根据实际环境选择对应的命令进行安装。

需要注意的是,由于 torch npu 依赖 torch,在 aarch64 环境下可通过 pip 直接安装,而在 x86 环境下则需要通过特定 URL 下载 CPU 版本,因此两种环境下的安装命令有所不同。具体安装代码已在下文进行区分呈现。

# aarch64
pip install openmind[all]
# x86
pip install openmind[all] --extra-index-url https://download.pytorch.org/whl/cpu

推理

from openmind import AutoTokenizer, AutoModelForCausalLM
import torch
import torch_npu

model_dir = "wuhaicc/CodeLlama-7b-hf"
tokenizer = AutoTokenizer.from_pretrained(model_dir, device_map="auto", trust_remote_code=True)
# Set `torch_dtype=torch.float16` to load model in float16, otherwise it will be loaded as float32 and might cause OOM Error.
model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto",  trust_remote_code=True, torch_dtype=torch.float16)
model = model.eval()
response, history = model.chat(tokenizer, "1+1=", history=[], meta_instruction="")
print(response)

模型详情

*注:本模型的使用受 Meta 许可协议约束。Meta 开发并公开发布了 Code Llama 系列大型语言模型(LLMs)。

模型开发者 Meta

模型变体 Code Llama 提供三种模型规模和三种变体:

  • Code Llama:基础模型,适用于通用代码合成与理解
  • Code Llama - Python:专门针对 Python 设计
  • Code Llama - Instruct:用于指令遵循和更安全的部署

所有变体均有 70 亿、130 亿和 340 亿参数规模版本。

本仓库包含 70 亿参数的基础模型。

输入 模型仅输入文本。

输出 模型仅生成文本。

模型架构 Code Llama 是一种自回归语言模型,采用优化的 transformer 架构。

模型日期 Code Llama 及其变体的训练时间为 2023 年 1 月至 2023 年 7 月。

状态 这是一个在离线数据集上训练的静态模型。随着我们利用社区反馈改进模型安全性,未来将发布 Code Llama - Instruct 的更新版本。

许可协议 定制商业许可协议可在以下网址获取:https://ai.meta.com/resources/models-and-libraries/llama-downloads/

研究论文 更多信息可参见论文《Code Llama: Open Foundation Models for Code》(https://ai.meta.com/research/publications/code-llama-open-foundation-models-for-code/)。

预期用途

预期使用场景 Code Llama 及其变体旨在用于英语和相关编程语言的商业及研究用途。基础模型 Code Llama 可适应各种代码合成与理解任务,Code Llama - Python 专门设计用于处理 Python 编程语言,而 Code Llama - Instruct 旨在更安全地用于代码助手和生成应用。

超出范围的用途 以任何违反适用法律法规(包括贸易合规法律)的方式使用。在英语以外的语言中使用。以任何其他被 Code Llama 及其变体的《可接受使用政策》和《许可协议》所禁止的方式使用。

硬件和软件

训练因素 我们使用了自定义训练库。已发布模型的训练和微调均在 Meta 的 Research Super Cluster 上完成。

碳足迹 总体而言,训练所有 9 个 Code Llama 模型在 A100-80GB 类型的硬件(热设计功耗为 350-400W)上需要 40 万 GPU 小时的计算量。估计总排放量为 65.3 吨二氧化碳当量,其中 100% 已通过 Meta 的可持续发展计划抵消。

训练数据

本文报告的所有实验以及已发布的模型,均使用与 Llama 2 相同的数据进行训练和微调,但权重不同(详见研究论文的第 2 节和表 1)。

评估结果

主要模型的评估、详细的消融实验以及安全性评估,请分别参见研究论文的第 3 节和第 4 节。

伦理考量与局限性

Code Llama 及其变体是一项新技术,使用时存在风险。迄今为止的测试均以英语进行,尚未涵盖也无法涵盖所有场景。因此,与所有大型语言模型一样,无法提前预测 Code Llama 的潜在输出,在某些情况下,该模型可能会对用户提示产生不准确或令人反感的响应。因此,在部署 Code Llama 的任何应用程序之前,开发人员应针对其特定的模型应用场景进行安全测试和调整。

详情请参见《负责任使用指南》,网址为https://ai.meta.com/llama/responsible-user-guide。