一個大型語言模型,可以使用文字提示來生成和討論程式碼。

7b 13b 34b 70b

1.7M 6 個月前

說明文件

Code Llama 是一個用於生成和討論程式碼的模型,基於 Llama 2 建構。它旨在加速和提高開發人員的工作流程效率,並使人們更容易學習如何編碼。它可以生成程式碼和關於程式碼的自然語言。Code Llama 支援當今許多最流行的程式語言,包括 Python、C++、Java、PHP、Typescript (Javascript)、C#、Bash 等。

參數計數

參數計數
70 億 查看 ollama run codellama:7b
130 億 查看 ollama run codellama:13b
340 億 查看 ollama run codellama:34b
700 億 查看 ollama run codellama:70b

用法

CLI

ollama run codellama "Write me a function that outputs the fibonacci sequence"

API

curl -X POST https://127.0.0.1:11434/api/generate -d '{
  "model": "codellama",
  "prompt": "Write me a function that outputs the fibonacci sequence"
}'

變體

instruct 經過微調,以自然語言生成有幫助且安全的答案
python Code Llama 的一個特殊變體,進一步在 1000 億個 Python 程式碼 tokens 上進行微調
code 用於程式碼自動完成的基礎模型

範例提示

提問

ollama run codellama:7b-instruct 'You are an expert programmer that writes simple, concise code and explanations. Write a python function to generate the nth fibonacci number.'

Fill-in-the-middle (FIM) 或 填空中間 (infill)

ollama run codellama:7b-code '<PRE> def compute_gcd(x, y): <SUF>return result <MID>'

Fill-in-the-middle (FIM) 是一種特殊的提示格式,程式碼自動完成模型支援此格式,可以完成兩個已編寫程式碼區塊之間的程式碼。Code Llama 期望程式碼填空中間採用特定格式

<PRE> {prefix} <SUF>{suffix} <MID>

<PRE><SUF><MID> 是引導模型的特殊 tokens。

程式碼審查

ollama run codellama '
Where is the bug in this code?

def fib(n):
    if n <= 0:
        return n
    else:
        return fib(n-1) + fib(n-2)
'

編寫測試

ollama run codellama "write a unit test for this function: $(cat example.py)"

程式碼自動完成

ollama run codellama:7b-code '# A simple python function to remove whitespace from a string:'

更多資訊