Meta 发布的最新开源模型 Code Llama —— 这是开源 Llama 2 的一个微调版本。Code Llama 在一个任务上表现出色:生成代码… 令人惊讶 :)
实际上,Meta 发布了 9 个版本的模型。有 3 个尺寸(7B、13B 和 34B)和 3 个变体:
Code Llama ➡️ 基础模型。
Code Llama — Instruct ➡️ 专为理解人类指令进行了微调。
Code Llama — Python ➡️ 专门用于 Python 代码。
今天,我们将使用最小的标准模型:Code Llama 7B。完成本文后,你将学到:
如何在 Colab 上使用 GPU
如何获取 Meta 的 Code Llama 访问权限
如何创建 Hugging Face 流水线
如何使用 Hugging Face 加载和标记 Code Llama
最后,你将学习如何使用 Code Llama 生成代码! :)
标准版的 Code Llama 不是一个基于指令的模型。
这对我们意味着什么?
我们不会用自然语言指令提示它,比如“写一个返回给定数字的阶乘的函数”。
相反,我们会这样提示它:“def factorial(n):” 然后,Code Llama 就会为我们完成代码。
注意:在本文末尾,你将找到所有有用的链接,包括一个已经准备好的 Colab 笔记本
在我们进入代码之前,你将花费 2 分钟来完成以下 3 个必要的步骤:
确保已将 Colab 运行时切换到 GPU 以获得最佳性能。在顶部菜单中,转到 Runtime -> Change runtime type 并选择“T4 GPU”。
在 Hugging Face 上创建一个帐户以访问模型。注册链接
获取 Llama 2 的访问权限。在此提交表单(确保勾选 Code Llama 复选框)。重要提示:你在表单中提供的电子邮件必须与你的 Hugging Face 帐户的电子邮件完全相同。
首先,通过安装 Hugging Face 开始。这是与最新的 Code Llama 模型一起工作所必需的
它应该会安装 transformers==4.35.3 库。
获取 Llama Code 模型及其分词器。对于该项目,我们将使用 codellama/CodeLlama-7b-hf 模型。
选择最小的模型使我们能够在免费的 Colab 上运行代码(大模型需要更多的 GPU 资源)。
Hugging Face 的流水线是与开源模型一起工作的方便方法。而且设置它们非常简单:
注意:这是我们实际加载 Code Llama 模型的步骤。因此,此代码将需要几分钟来完成。
我们在流水线中设置了 4 个参数,但前两个至关重要:
“text-generation” 是我们希望我们的流水线执行的任务。查看完整的任务列表。
“model” 是我们使用的模型。对于我们来说,它是先前定义的 Code Llama 7B。
现在,让我们创建一个使用我们的流水线并生成代码的函数:
我们设置了几个参数,但最重要的三个是:
prompt:这是你对 Code Llama 的查询。
num_return_sequences:LLM 可以对你的查询生成多个响应。但为了节省时间,我们将只创建 1 个。
max_length:Llama 响应的令牌限制。
我们用编码提示,而不是人类指令调用模型!这里有一些例子:
调用函数并查看 Code Llama 编写 Python 函数。
结果还不错,但不如预期那么惊人。
生成的函数在语法和功能上都是正确的。
但是,模型在完成函数后仍然继续生成代码。在 Fibonacci 示例中,Code Llama 开始编写与提示相关的另一个函数。但这并不是我们期望的行为。
但我们使用的是模型的基础版本。也许更先进和“精细”的模型马上就要到来。
你已经看到了 Llama Code 潜力的冰山一角,在 Colab 中生成 Python 片段。
像往常一样,我强烈鼓励你进行实验!
拿起代码并尝试使用:
用不同的代码示例提示模型
尝试不同的编程语言
更改模型?
这就是你真正学习的方式!看看好奇心带你去哪里!
参考资料:
当前演示项目 Colab 代码 :https://colab.research.google.com/drive/10wUJ77A5cTPEMNIpgbo2ggFj4jlw8pKn?usp=sharing
Blog Post by Hugging Face:https://huggingface.co/blog/codellama
Code Llama 文档:https://huggingface.co/docs/transformers/main/model_doc/code_llama
HF 上的 Code Llama 模型:https://huggingface.co/codellama/CodeLlama-7b-hf
codellama-13b-chat:https://huggingface.co/spaces/codellama/codellama-13b-chat
Code Llama in Hugging Chat:https://huggingface.co/chat/conversation/6583dedbf6ea513f3a1624b5