Code Llama

Meta开源的代码大模型,支持代码补全与生成

4.0 📘 含使用指南 🎯 全难度 🕒 更新于 2026-06-13
开源代码Meta

Code Llama 完整使用指南

由 Meta AI 开发的代码专用大语言模型,基于 Llama 2 进一步训练,支持代码生成、代码补全、Fill-in-the-Middle(FIM)填充和调试

评分: 82/100 💰 价格: 开源免费(商用免费) 🏢 厂商: Meta AI 🌐 官网: llama.com/code-llama


一、产品概述

Code Llama 是 Meta AI 于 2023 年 8 月发布的代码专用大语言模型,基于 Llama 2 架构,通过在海量代码数据上进一步预训练,显著增强了代码生成与理解能力。2024 年 1 月又推出了 70B 参数版本。Code Llama 支持从自然语言描述生成代码、代码补全和代码插入,是目前影响力最大的开源代码模型之一。

Code Llama 采用 Llama 2 社区许可证免费用于研究和商业用途,允许自行部署、微调和二次开发。需注意,该 GitHub 仓库已于 2025 年 7 月归档,后续功能已被 Llama 3 / 3.1 系列继承,但 Code Llama 作为专用代码模型仍有重要参考与使用价值。


二、官网与获取方式

官网地址

获取方式

方式说明
HuggingFace 下载直接下载模型权重,支持 Transformers 库加载
Ollama 本地运行ollama run codellama:7b — 一键本地部署
Llama CLIMeta 官方推理代码,见 GitHub
NVIDIA NIMNGC 容器化部署,支持 GPU 加速
API 服务DeepInfra、Replicate 等平台提供 API 调用

三、模型架构详解

1. 参数规模与版本

模型参数量训练数据FIM 支持GPU 需求
Code Llama 7B7B500B tokens单 GPU(4-6GB VRAM)
Code Llama 13B13B500B tokens单 GPU(8-12GB VRAM)
Code Llama 34B34B500B tokens多 GPU
Code Llama 70B70B1T tokens多 GPU / 云端

2. 三种模型变体

变体说明
Code Llama(基础版)代码补全模型,从提示处继续生成代码
Code Llama - Python在 100B Python 代码上微调,Python 编程专用
Code Llama - Instruct指令微调版,理解自然语言指令生成代码

💡 官方推荐:用 Instruct 变体进行代码生成任务,基础版用于代码补全,Python 版专攻 Python 开发。

3. 核心技术亮点

Fill-in-the-Middle(FIM)

  • 7B、13B、70B 的基础版和 Instruct 版支持 FIM
  • 使用 <FILL_ME> 标记指定插入位置
  • 适用于 IDE 中的代码自动补全场景
  • 34B 版本不支持 FIM

长上下文支持

  • 训练序列长度:16K tokens
  • 稳定生成长度:最高 100K tokens
  • 长上下文解锁新用例:整个代码库上下文调试、大型重构任务

支持的语言

Python、C++、Java、PHP、TypeScript (JavaScript)、C#、Bash 等主流编程语言全覆盖


四、使用方法

1. Ollama 一键运行

# 安装 Ollama 后直接运行
ollama run codellama:7b

# Instruct 版本
ollama run codellama:7b-instruct "用 Python 写一个快速排序函数"

# Python 专用版本
ollama run codellama:7b-python "def fibonacci(n):"

2. HuggingFace Transformers 加载

from transformers import AutoModelForCausalLM, CodeLlamaTokenizer

tokenizer = CodeLlamaTokenizer.from_pretrained("meta-llama/CodeLlama-7b-hf")
model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/CodeLlama-7b-hf",
    device_map="auto"
)

# 代码生成
prompt = "def is_palindrome(s):"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=128)
print(tokenizer.decode(output[0], skip_special_tokens=True))

3. FIM(填充)模式

PROMPT = '''def remove_non_ascii(s: str) -> str:
    """ <FILL_ME>
    return result
'''
# 模型会填充 <FILL_ME> 位置的内容

4. Prompt 格式

基础补全格式

<s>{{ code_prompt }}

Instruct 格式(类似 Llama 2 Chat):

<s>[INST] <<SYS>>
{{ system_prompt }}
<</SYS>>

{{ user_message }} [/INST]

五、性能评测

模型HumanEval (pass@1)MBPP
Code Llama 34B53.7%56.2%
Code Llama 7B33.5%47.0%
GPT-3.5 Turbo~48%~52%
Phind-CodeLlama-34B-v273.8%

Code Llama 在发布时超越了所有公开的代码专用 LLM。经 Phind 等团队进一步微调后,最高可达 73.8% HumanEval pass@1,超越 GPT-4 的 67%。

数据来源:Meta AI 研究论文和 Phind 公开报告


六、竞品对比

维度Code Llama (开源)GitHub CopilotClaude CodeCursor
核心优势开源/可本地部署/微调GPT-4 驱动/IDE 深度集成SWE-Bench 82%领先多模型/文件感知
上下文长度100K tokens有限100 万 tokens有限
本地部署✅ 完全支持❌ 云端
商用免费❌ $10-39/月❌ $20/月❌ $20/月
FIM 填充✅ 原生支持✅ Tab 补全
适合场景自部署/私有代码/微调IDE 日常开发复杂重构/调试IDE 智能补全

七、适用场景推荐

✅ 最佳场景

  1. 私有代码部署 — 企业级本地代码 AI,数据不出内网
  2. 代码补全工具 — 在 IDE 中实现智能补全(FIM 模式)
  3. 微调定制 — 基于特定语言或项目代码库微调(如 Qt 团队基于 13B 微调出 QML 专用版)
  4. 研究实验 — 代码生成学术研究、基准测试
  5. 低资源环境 — 7B 模型可在消费级 GPU 上运行

⚠️ 局限性

  1. 已被 Llama 3 系列超越 — 仓库已归档,后续改进在新系列中
  2. 34B 不支持 FIM — 架构限制
  3. Instruct 版对话能力有限 — 仅限代码相关,不适合通用对话
  4. 中文支持一般 — 训练数据以英文代码为主
  5. 工具调用能力弱 — 缺乏 Copilot 的 IDE 深度集成

八、总结与建议

Code Llama 作为开源代码模型的里程碑,在 2023-2024 年推动了代码 AI 的普及。虽然已被 Llama 3 系列取代,但其架构理念和 FIM 方案仍然值得学习和使用。

适用决策

  • ✅ 需要本地私有化部署代码模型 → 选择 Code Llama
  • ✅ 需要微调定制代码模型 → 7B/13B 是理想起点
  • ✅ 需要原生 FIM 填充 → 7B/13B Instruct 版本
  • ❌ 追求最新最强代码能力 → 使用 Llama 3 / Claude / GPT
  • ❌ 需要IDE 深度集成 → 使用 Copilot / Cursor

推荐开源工具链:Ollama(部署)+ LlamaCpp(量化)+ HuggingFace Transformers(微调)


📥 资源链接


报告生成时间:2026-06-13 · 最后更新:2026-06-13 · 作者:MagicNetWorld

开始使用 Code Llama

点击下方按钮访问官方网站,开启你的 AI 之旅。