language:
- 代码
pipeline_tag: 文本生成
tags:
- llama-2
license: llama2
代码骆驼(Code Llama)
Code Llama是一系列预训练和微调的生成式文本模型,参数规模从70亿到340亿不等。本仓库存储的是Hugging Face Transformers格式的340亿参数基础版本。该模型专为通用代码合成与理解设计。其他模型的链接可在底部索引中找到。
[!注意]
此为非官方Code Llama仓库。官方Meta仓库请访问Meta Llama组织。
模型使用
使用前请确保安装transformers库:
pip install transformers.git accelerate
当前模型能力:
- [x] 代码补全
- [ ] 代码填充
- [ ] 指令交互/聊天
- [ ] Python专项优化
from transformers import AutoTokenizer
import transformers
import torch
model = "codellama/CodeLlama-34b-hf"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
"文本生成",
model=model,
torch_dtype=torch.float16,
device_map="auto",
)
sequences = pipeline(
'import socket\n\ndef ping_exponential_backoff(host: str):',
do_sample=True,
top_k=10,
temperature=0.1,
top_p=0.95,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200,
)
for seq in sequences:
print(f"生成结果: {seq['generated_text']}")
模型详情
*注:本模型使用受Meta许可协议约束。Meta开发并公开发布了Code Llama系列大语言模型(LLMs)。
开发团队 Meta
版本变体 提供三种规模及三种变体:
- Code Llama:通用代码合成与理解的基础模型
- Code Llama - Python:专为Python设计的版本
- Code Llama - Instruct:适用于指令跟随和安全部署
所有变体均提供7B、13B和34B参数版本。
本仓库存储34B参数的基础版本。
输入 仅接受文本输入
输出 仅生成文本内容
架构设计 采用优化Transformer架构的自回归语言模型
训练周期 2023年1月至7月完成训练
当前状态 基于离线数据集训练的静态模型。未来将根据社区反馈持续优化Code Llama - Instruct版本的安全性。
许可协议 商业许可详见:https://ai.meta.com/resources/models-and-libraries/llama-downloads/
研究论文 更多技术细节请参阅论文《Code Llama:面向代码的开源基础模型》或访问arXiv页面。
适用范围
目标场景 适用于英语及相关编程语言的商业和研究用途。基础模型可适配多种代码合成与理解任务,Python专用版针对Python语言优化,指令微调版更适合代码助手和生成类应用的安全部署。
非适用场景 任何违反法律法规的使用(包括贸易合规);非英语场景应用;违反Code Llama使用政策及许可协议的其他情形。
硬件与软件
训练环境 使用定制训练库,所有模型均在Meta研究超级计算集群完成训练与微调。
碳足迹 训练全部9个模型总计消耗40万A100-80GB GPU小时(TDP 350-400W),总排放量65.3吨二氧化碳当量,已通过Meta碳中和计划全额抵消。
训练数据
所有模型均采用与Llama 2相同但权重不同的训练数据(详见研究论文第2章及表1)。
评估结果
模型核心评估指标及消融实验详见论文第3章,安全性评估见第4章。
伦理考量与局限性
作为新兴技术,Code Llama系列存在应用风险。当前测试仅覆盖英语场景,无法涵盖所有可能性。与所有大语言模型类似,其输出可能存在不可预测的准确性或伦理问题。开发者应在部署前进行针对特定应用场景的安全测试与调优。
请参阅《负责任使用指南》:https://ai.meta.com/llama/responsible-use-guide