extra_gated_heading: 访问此模型需向Meta共享联系信息
extra_gated_prompt: >-
LLAMA 2社区许可协议
"协议"指本文规定的Llama材料使用、复制、分发和修改条款。
"文档"指Meta在https://ai.meta.com/resources/models-and-libraries/llama-downloads/分发的Llama 2配套规范、手册和文档。
"被许可方"或"您"指根据适用法律达到法定同意年龄,或代表雇主及其他实体签署本协议且具有法律约束力的个人或实体。
"Llama 2"指Meta在ai.meta.com/resources/models-and-libraries/llama-downloads/发布的基础大语言模型及软件算法,包括机器学习模型代码、训练权重、推理代码、训练代码、微调代码等组件。
"Llama材料"统指Meta根据本协议提供的专有Llama 2及其文档。
"Meta"或"我们"指Meta Platforms爱尔兰有限公司(适用于欧盟/瑞士用户)或Meta Platforms公司(其他地区用户)。
点击"接受"或使用/分发Llama材料即表示同意受本协议约束。
- 许可权利与再分发
a. 授予权利:您获得全球性、不可转让、免版税的有限许可,可使用、复制、分发、修改Llama材料及创建其衍生作品。
b. 再分发要求:
i. 向第三方分发Llama材料或其衍生作品时,须提供本协议副本;
ii. 若通过集成产品获得Llama材料,则协议第2条不适用;
iii. 所有分发副本须包含声明文件:"Llama 2采用LLAMA 2社区许可,版权所有© Meta Platforms, Inc.";
iv. 使用需符合适用法律及《Llama可接受使用政策》(https://ai.meta.com/llama/use-policy);
v. 不得使用Llama材料改进其他大语言模型(Llama 2及其衍生作品除外)。
- 商业条款:若被许可方月活用户超7亿,需向Meta申请额外许可。
- 免责声明:除非法律要求,Llama材料按"原样"提供,不附带任何明示或默示担保。
- 责任限制:Meta不对因本协议产生的间接、附带、惩罚性损害承担责任。
- 知识产权:
a. 不授予商标权利;
b. 您拥有自行修改的衍生作品所有权;
c. 若对Meta提起知识产权诉讼,本协议许可自动终止。
- 协议期限:自接受协议起生效,违约时Meta可终止。终止后须删除Llama材料。
- 适用法律:受加利福尼亚州法律管辖,排除《联合国国际货物销售合同公约》。
Llama 2可接受使用政策
禁止用途包括:
- 违法活动:暴力、儿童剥削、人口贩卖、歧视性行为等;
- 高危活动:军事武器、毒品、关键基础设施操作等;
- 欺骗行为:生成虚假信息、垃圾邮件、冒充他人等;
- 未披露AI系统风险。
违规举报渠道:
- 模型问题:github.com/facebookresearch/llama
- 风险内容:developers.facebook.com/llama_output_feedback
- 安全问题:facebook.com/whitehat/info
- 政策违规:LlamaUseReport@meta.com
extra_gated_fields:
名字: 文本
姓氏: 文本
出生日期: 日期选择器
国家: 国家选择
所属机构: 文本
地理位置: IP定位
勾选即表示接受许可条款,并同意根据Meta隐私政策处理所提供信息: 复选框
extra_gated_description: 所提供信息将按照Meta隐私政策进行收集、存储和处理。
extra_gated_button_content: 提交
language:
- 代码
pipeline_tag: 文本生成
tags:
- facebook
- meta
- pytorch
- llama
- llama-2
license: llama2
widget:
- example_title: Hello world (Python)
messages:
- role: 系统
content: 你是一个乐于助人的诚实代码助手
- role: 用户
content: 用Python打印hello world
- example_title: 子列表求和 (Python)
messages:
- role: 系统
content: 你是一位精通JavaScript的代码助手专家,请用JavaScript回答所有编程问题
- role: 用户
content: 编写计算给定列表所有连续子列表和的函数
inference:
parameters:
max_new_tokens: 200
stop:
-
-
Code Llama
Code Llama是包含70亿到700亿参数规模的预训练及微调生成文本模型系列。本仓库为Hugging Face Transformers格式的700亿参数指令微调版本。该模型专为通用代码生成与理解设计,其他模型索引见下文。
模型能力:
- [x] 代码补全
- [ ] 代码填充
- [x] 指令交互
- [ ] Python专项
模型使用
安装依赖:
pip install transformers accelerate
对话使用: 70B指令模型采用特殊提示模板,推荐使用内置chat模板:
from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch
model_id = "meta-llama/CodeLlama-70b-Instruct-hf"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.float16,
device_map="auto",
)
chat = [
{"role": "system", "content": "你是一位精通JavaScript的代码助手专家,请用JavaScript回答编程问题"},
{"role": "user", "content": "编写计算给定列表所有连续子列表和的函数"},
]
inputs = tokenizer.apply_chat_template(chat, return_tensors="pt").to("cuda")
output = model.generate(input_ids=inputs, max_new_tokens=200)
print(tokenizer.decode(output[0].to("cpu")))
代码补全示例:
from transformers import pipeline
generator = pipeline("text-generation", model="meta-llama/CodeLlama-70b-hf")
result = generator('def fibonacci(', max_length=100)
print(f"结果: {result[0]['generated_text']}")
对话提示格式
70B指令模型采用特殊对话格式,每轮对话包含Source
(角色)和内容,用<step>
分隔。最后需添加Source: assistant\nDestination: user\n\n
触发回复。例如:
<s>Source: system\n\n 系统提示 <step> Source: user\n\n 用户问题 <step> Source: assistant\nDestination: user\n\n
模型详情
开发者 Meta
版本 包含基础版、Python专用版和指令微调版
参数量 7B/13B/34B/70B
输入输出 仅处理文本
架构 优化Transformer架构,支持16k上下文
训练时间 2023年1月至2024年1月
许可证 需遵守Meta定制商业许可
论文 Code Llama: Open Foundation Models for Code
使用场景
适用场景 商业与研究用途的代码生成与理解
限制场景 违法用途、非英语场景、违反使用政策的行为
硬件与碳足迹
训练硬件 Meta研究超级集群
碳排放 总训练耗电140万A100-80GB GPU小时,排放228.55吨CO2e(已通过碳中和计划抵消)
伦理限制
可能存在生成不准确或不当内容的风险,部署前需进行安全测试。详见负责任使用指南。