推荐:用 NSDT编辑器 快速搭建可编程3D场景
Code Llama 是 Llama 2 的一系列最先进的开放访问版本,专门用于代码任务,我们很高兴发布与 Hugging Face 生态系统的集成! Code Llama 已使用与 Llama 2 相同的宽松社区许可证发布,并且可用于商业用途。
今天,我们很高兴发布:
Hub 上的模型及其模型卡和许可证Transformer集成与文本生成推理集成,以实现快速高效的生产就绪推理与推理端点集成代码基准测试代码大模型对软件工程师来说是一项令人兴奋的发展,因为他们可以通过 IDE 中的代码完成来提高生产力,处理重复或烦人的任务,例如编写文档字符串或创建单元测试。
1、什么是Code Llama?Code Llama 版本引入了一系列包含 7、13 和 340 亿个参数的模型。 基础模型从 Llama 2 初始化,然后在 5000 亿个代码数据上进行训练。 Meta 对这些基本模型进行了两种不同风格的微调:Python 专家(1000 亿个额外令牌)和指令微调版本,可以理解自然语言指令。
这些模型在 Python、C++、Java、PHP、C#、TypeScript 和 Bash 中展示了最先进的性能。 7B 和 13B 基本和指令变体支持基于周围内容的填充,使它们非常适合用作代码助手。
Code Llama 在 16k 上下文窗口上进行训练。 此外,这三个模型变体还进行了额外的长上下文微调,使它们能够管理最多 100,000 个令牌的上下文窗口。
由于 RoPE 扩展的最新发展,将 Llama 2 的 4k 上下文窗口增加到 Code Llama 的 16k(可以推断到 100k)是可能的。 社区发现 Llama 的位置嵌入可以线性插值或在频域中插值,这可以通过微调轻松过渡到更大的上下文窗口。 在 Code Llama 的情况下,频域缩放是通过松弛完成的:微调长度是缩放的预训练长度的一小部分,从而使模型具有强大的外推能力。
所有模型最初都是在公开可用代码的近乎重复数据删除的数据集上使用 5000 亿个令牌进行训练。 该数据集还包含一些自然语言数据集,例如有关代码和代码片段的讨论。 不幸的是,没有有关该数据集的更多信息。
对于指令模型,他们使用了两个数据集:为 Llama 2 Chat 收集的指令调整数据集和自指令数据集。 自指导数据集是通过使用 Llama 2 创建面试编程问题,然后使用 Code Llama 生成单元测试和解决方案,然后通过执行测试来评估的。
2、如何使用Code Llama?从 Transformers 4.33 版本开始,Code Llama 已在 Hugging Face 生态系统中可用。 在 Transformers 4.33 发布之前,请从主分支安装它。
可以在此空间轻松尝试 Code Llama 模型(130 亿个参数!):
3、Transformers随着即将发布的 Transformers 4.33,你可以使用 Code Llama 并利用 HF 生态系统中的所有工具,例如:
训练和推理脚本和示例安全文件格式(safetensors)与bitsandbytes(4位量化)和PEFT(参数高效微调)等工具集成使用模型运行生成的实用程序和助手导出模型以进行部署的机制在 Transformers 4.33 发布之前,请从主分支安装它。
!pip install git+https://github/huggingface/transformers.git@main accelerate4、代码完成
7B 和 13B 模型可用于文本/代码补全或填充。 以下代码片段使用管道接口来演示文本完成。 只要你选择 GPU 运行时,它就可以在 Colab 的免费层上运行。
from transformers import AutoTokenizerimport transformersimport torchtokenizer = AutoTokenizer.from_pretrained("codellama/CodeLlama-7b-hf")pipeline = transformers.pipeline( "text-generation", model="codellama/CodeLlama-7b-hf", torch_dtype=torch.float16, device_map="auto",)sequences = pipeline( 'def fibonacci(', do_sample=True, temperature=0.2, top_p=0.9, num_return_sequences=1, eos_token_id=tokenizer.eos_token_id, max_length=100,)for seq in sequences: print(f"Result: {seq['generated_text']}")
这可能会产生如下输出:
Result: def fibonacci(n): if n == 0: return 0 elif n == 1: return 1 else: return fibonacci(n-1) + fibonacci(n-2)def fibonacci_memo(n, memo={}): if n == 0: return 0 elif n == 1: return
Code Llama 专门研究代码理解,但它本身就是一种语言模型。 你可以使用相同的生成策略来自动完成注释或一般文本。
5、代码填充这是特定于代码模型的专门任务。 该模型经过训练,可以生成与现有前缀和后缀最匹配的代码(包括注释)。 这是代码助理通常使用的策略:要求他们填充当前光标位置,并考虑其前后出现的内容。
此任务在 7B 和 13B 型号的基本版本和指令版本中可用。 它不适用于任何 34B 型号或 Python 版本。
要成功使用此功能,你需要密切注意用于训练此任务模型的格式,因为它使用特殊的分隔符来识别提示的不同部分。 让我们看一个例子:
from transformers import AutoTokenizer, AutoModelForCausalLMimport transformersimport torchmodel_id = "codellama/CodeLlama-7b-hf"tokenizer = AutoTokenizer.from_pretrained(model_id)model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.float16).to("cuda")prefix = 'def remove_non_ascii(s: str) -> str:\n """ 'suffix = "\n return result\n"prompt = f"<PRE> {prefix} <SUF>{suffix} <MID>"inputs = tokenizer(prompt, return_tensors="pt").to("cuda")output = model.generate( inputs["input_ids"], max_new_tokens=200, do_sample=False,)output = output[0].to("cpu")print(tokenizer.decode(output))
<s> <PRE> def remove_non_ascii(s: str) -> str: """ <SUF> return result <MID> Remove non-ASCII characters from a string. :param s: The string to remove non-ASCII characters from. :return: The string with non-ASCII characters removed. """ result = "" for c in s: if ord(c) < 128: result += c <EOT></s>
为了使用补全功能,你需要处理输出以剪切 <MID> 和 <EOT> 标记之间的文本 - 这就是我们提供的前缀和后缀之间的内容。
6、对话指令如上所述,基础模型可用于完成和填充。 Code Llama 版本还包括一个可在对话界面中使用的指令微调模型。
为了准备此任务的输入,我们必须使用一个提示模板,就像我们的 Llama 2 博客文章中描述的那样,我们在这里再次复制该模板:
<s>[INST] <<SYS>>{{ system_prompt }}<</SYS>>{{ user_msg_1 }} [/INST] {{ model_answer_1 }} </s><s>[INST] {{ user_msg_2 }} [/INST]
请注意,系统提示是可选的 - 模型在没有它的情况下也可以工作,但可以使用它来进一步配置其行为或样式。 例如,如果你总是希望获得 JavaScript 中的答案,可以在此处声明。 系统提示后,你需要提供对话中之前的所有交互:用户询问什么以及模型回答什么。 与填充情况一样,需要注意使用的分隔符。 输入的最终组成部分必须始终是新的用户指令,这将是模型提供答案的信号。
以下代码片段演示了该模板在实践中的工作原理。
首次用户查询,系统无提示user = 'In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month?'prompt = f"<s>[INST] {user.strip()} [/INST]"inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")系统提示的首次用户查询:
system = "Provide answers in JavaScript"user = "Write a function that computes the set of sums of all contiguous sublists of a given list."prompt = f"<s><<SYS>>\\n{system}\\n<</SYS>>\\n\\n{user}"inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")与先前答案的持续对话
该过程与 Llama 2 中的过程相同。为了最大程度地清晰起见,我们没有使用循环或概括此示例代码:
system = "System prompt"user_1 = "user_prompt_1"answer_1 = "answer_1"user_2 = "user_prompt_2"answer_2 = "answer_2"user_3 = "user_prompt_3"prompt = f"<<SYS>>\\n{system}\\n<</SYS>>\\n\\n{user_1}"prompt = f"<s>[INST] {prompt.strip()} [/INST] {answer_1.strip()} </s>"prompt += f"<s>[INST] {user_2.strip()} [/INST] {answer_2.strip()} </s>"prompt += f"<s>[INST] {user_3.strip()} [/INST]"inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")7、4位加载
将 Code Llama 集成到 Transformers 中意味着你可以立即获得对 4 位加载等高级功能的支持。 这使你可以在 nvidia 3090 卡等消费类 GPU 上运行大型 32B 参数模型!
以下是在 4 位模式下运行推理的方法:
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfigimport torchmodel_id = "codellama/CodeLlama-34b-hf"quantization_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_compute_dtype=torch.float16)tokenizer = AutoTokenizer.from_pretrained(model_id)model = AutoModelForCausalLM.from_pretrained( model_id, quantization_config=quantization_config, device_map="auto",)prompt = 'def remove_non_ascii(s: str) -> str:\n """ 'inputs = tokenizer(prompt, return_tensors="pt").to("cuda")output = model.generate( inputs["input_ids"], max_new_tokens=200, do_sample=True, top_p=0.9, temperature=0.1,)output = output[0].to("cpu")print(tokenizer.decode(output))8、使用文本生成推理和推理端点
文本生成推理是 Hugging Face 开发的生产就绪推理容器,可轻松部署大型语言模型。 它具有连续批处理、令牌流、用于在多个 GPU 上快速推理的张量并行性以及生产就绪的日志记录和跟踪等功能。
你可以在自己的基础设施上尝试文本生成推理,也可以使用 Hugging Face 的推理端点。 要部署 Code llama 2 模型,请转到模型页面并单击部署 -> 推理端点小部件。
对于 7B 模型,我们建议你选择“GPU [中] - 1x Nvidia A10G”。对于 13B 模型,我们建议你选择“GPU [xlarge] - 1x Nvidia A100”。对于 34B 模型,我们建议你选择启用了位和字节量化的“GPU [1xlarge] - 1x Nvidia A100”或“GPU [2xlarge] - 2x Nvidia A100”注意:你可能需要通过电子邮件请求配额升级才能访问 A100
你可以在我们的博客中了解有关如何使用 Hugging Face Inference Endpoints 部署 LLM 的更多信息。 该博客包含有关支持的超参数以及如何使用 Python 和 Javascript 流式传输响应的信息。
9、评估代码语言模型通常在 HumanEval 等数据集上进行基准测试。 它由编程挑战组成,其中模型带有函数签名和文档字符串,并负责完成函数体。 然后通过运行一组预定义的单元测试来验证所提出的解决方案。 最后,报告通过率,描述有多少解决方案通过了所有测试。 pass@1 率描述了模型在一次尝试时生成通过解决方案的频率,而 pass@10 描述了从 10 个提议的候选方案中至少有一个解决方案通过的频率。
虽然 HumanEval 是一个 Python 基准测试,但我们已经付出了巨大努力将其转换为更多编程语言,从而实现更全面的评估。 其中一种方法是 MultiPL-E,它将 HumanEval 翻译成十多种语言。 我们正在基于它托管一个多语言代码排行榜,以便社区可以比较不同语言的模型,以评估哪种模型最适合他们的用例。
模型 | 许可 | 数据集已知 | 商业用途? | 预训练长度 [tokens] | Python | JavaScript | 排行榜平均分数 |
CodeLlaMa-34B | Llama 2许可证 | ❌ | ✅ | 2,500B | 45.11 | 41.66 | 33.89 |
CodeLlaMa-13B | Llama 2许可证 | ❌ | ✅ | 2,500B | 35.07 | 38.26 | 28.35 |
CodeLlaMa-7B | Llama 2许可证 | ❌ | ✅ | 2,500B | 29.98 | 31.8 | 24.36 |
CodeLlaMa-34B-Python | Llama 2许可证 | ❌ | ✅ | 2,620B | 53.29 | 44.72 | 33.87 |
CodeLlaMa-13B-Python | Llama 2许可证 | ❌ | ✅ | 2,620B | 42.89 | 40.66 | 28.67 |
CodeLlaMa-7B-Python | Llama 2许可证 | ❌ | ✅ | 2,620B | 40.48 | 36.34 | 23.5 |
CodeLlaMa-34B-Instruct | Llama 2许可证 | ❌ | ✅ | 2,620B | 50.79 | 45.85 | 35.09 |
CodeLlaMa-13B-Instruct | Llama 2许可证 | ❌ | ✅ | 2,620B | 50.6 | 40.91 | 31.29 |
CodeLlaMa-7B-Instruct | Llama 2许可证 | ❌ | ✅ | 2,620B | 45.65 | 33.11 | 26.45 |
StarCoder-15B | BigCode-OpenRail-M | ✅ | ✅ | 1,035B | 33.57 | 30.79 | 22.74 |
StarCoderBase-15B | BigCode-OpenRail-M | ✅ | ✅ | 1,000B | 30.35 | 31.7 | 22.4 |
WizardCoder-15B | BigCode-OpenRail-M | ❌ | ✅ | 1,035B | 58.12 | 41.91 | 32.07 |
OctoCoder-15B | BigCode-OpenRail-M | ✅ | ✅ | 1,000B | 45.3 | 32.8 | 24.01 |
CodeGeeX-2-6B | CodeGeeX许可证 | ❌ | ❌ | 2,000B | 33.49 | 29.9 | 21.23 |
CodeGen-2.5-7B-Mono | Apache-2.0 | ✅ | ✅ | 1400B | 45.65 | 23.22 | 12.1 |
CodeGen-2.5-7B-Multi | Apache-2.0 | ✅ | ✅ | 1400B | 28.7 | 26.27 | 20.04 |
注意:上表中显示的分数来自我们的代码排行榜,我们在其中评估具有相同设置的所有模型。 更多详情请参阅排行榜。
原文链接:/d/file/gt/2023-09/5ij3ldkjt1l Llama代码大模型快速上手
推荐:用 NSDT编辑器 快速搭建可编程3D场景
Code Llama 是 Llama 2 的一系列最先进的开放访问版本,专门用于代码任务,我们很高兴发布与 Hugging Face 生态系统的集成! Code Llama 已使用与 Llama 2 相同的宽松社区许可证发布,并且可用于商业用途。
今天,我们很高兴发布:
Hub 上的模型及其模型卡和许可证Transformer集成与文本生成推理集成,以实现快速高效的生产就绪推理与推理端点集成代码基准测试代码大模型对软件工程师来说是一项令人兴奋的发展,因为他们可以通过 IDE 中的代码完成来提高生产力,处理重复或烦人的任务,例如编写文档字符串或创建单元测试。
1、什么是Code Llama?Code Llama 版本引入了一系列包含 7、13 和 340 亿个参数的模型。 基础模型从 Llama 2 初始化,然后在 5000 亿个代码数据上进行训练。 Meta 对这些基本模型进行了两种不同风格的微调:Python 专家(1000 亿个额外令牌)和指令微调版本,可以理解自然语言指令。
这些模型在 Python、C++、Java、PHP、C#、TypeScript 和 Bash 中展示了最先进的性能。 7B 和 13B 基本和指令变体支持基于周围内容的填充,使它们非常适合用作代码助手。
Code Llama 在 16k 上下文窗口上进行训练。 此外,这三个模型变体还进行了额外的长上下文微调,使它们能够管理最多 100,000 个令牌的上下文窗口。
由于 RoPE 扩展的最新发展,将 Llama 2 的 4k 上下文窗口增加到 Code Llama 的 16k(可以推断到 100k)是可能的。 社区发现 Llama 的位置嵌入可以线性插值或在频域中插值,这可以通过微调轻松过渡到更大的上下文窗口。 在 Code Llama 的情况下,频域缩放是通过松弛完成的:微调长度是缩放的预训练长度的一小部分,从而使模型具有强大的外推能力。
所有模型最初都是在公开可用代码的近乎重复数据删除的数据集上使用 5000 亿个令牌进行训练。 该数据集还包含一些自然语言数据集,例如有关代码和代码片段的讨论。 不幸的是,没有有关该数据集的更多信息。
对于指令模型,他们使用了两个数据集:为 Llama 2 Chat 收集的指令调整数据集和自指令数据集。 自指导数据集是通过使用 Llama 2 创建面试编程问题,然后使用 Code Llama 生成单元测试和解决方案,然后通过执行测试来评估的。
2、如何使用Code Llama?从 Transformers 4.33 版本开始,Code Llama 已在 Hugging Face 生态系统中可用。 在 Transformers 4.33 发布之前,请从主分支安装它。
可以在此空间轻松尝试 Code Llama 模型(130 亿个参数!):
3、Transformers随着即将发布的 Transformers 4.33,你可以使用 Code Llama 并利用 HF 生态系统中的所有工具,例如:
训练和推理脚本和示例安全文件格式(safetensors)与bitsandbytes(4位量化)和PEFT(参数高效微调)等工具集成使用模型运行生成的实用程序和助手导出模型以进行部署的机制在 Transformers 4.33 发布之前,请从主分支安装它。
!pip install git+https://github/huggingface/transformers.git@main accelerate4、代码完成
7B 和 13B 模型可用于文本/代码补全或填充。 以下代码片段使用管道接口来演示文本完成。 只要你选择 GPU 运行时,它就可以在 Colab 的免费层上运行。
from transformers import AutoTokenizerimport transformersimport torchtokenizer = AutoTokenizer.from_pretrained("codellama/CodeLlama-7b-hf")pipeline = transformers.pipeline( "text-generation", model="codellama/CodeLlama-7b-hf", torch_dtype=torch.float16, device_map="auto",)sequences = pipeline( 'def fibonacci(', do_sample=True, temperature=0.2, top_p=0.9, num_return_sequences=1, eos_token_id=tokenizer.eos_token_id, max_length=100,)for seq in sequences: print(f"Result: {seq['generated_text']}")
这可能会产生如下输出:
Result: def fibonacci(n): if n == 0: return 0 elif n == 1: return 1 else: return fibonacci(n-1) + fibonacci(n-2)def fibonacci_memo(n, memo={}): if n == 0: return 0 elif n == 1: return
Code Llama 专门研究代码理解,但它本身就是一种语言模型。 你可以使用相同的生成策略来自动完成注释或一般文本。
5、代码填充这是特定于代码模型的专门任务。 该模型经过训练,可以生成与现有前缀和后缀最匹配的代码(包括注释)。 这是代码助理通常使用的策略:要求他们填充当前光标位置,并考虑其前后出现的内容。
此任务在 7B 和 13B 型号的基本版本和指令版本中可用。 它不适用于任何 34B 型号或 Python 版本。
要成功使用此功能,你需要密切注意用于训练此任务模型的格式,因为它使用特殊的分隔符来识别提示的不同部分。 让我们看一个例子:
from transformers import AutoTokenizer, AutoModelForCausalLMimport transformersimport torchmodel_id = "codellama/CodeLlama-7b-hf"tokenizer = AutoTokenizer.from_pretrained(model_id)model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.float16).to("cuda")prefix = 'def remove_non_ascii(s: str) -> str:\n """ 'suffix = "\n return result\n"prompt = f"<PRE> {prefix} <SUF>{suffix} <MID>"inputs = tokenizer(prompt, return_tensors="pt").to("cuda")output = model.generate( inputs["input_ids"], max_new_tokens=200, do_sample=False,)output = output[0].to("cpu")print(tokenizer.decode(output))
<s> <PRE> def remove_non_ascii(s: str) -> str: """ <SUF> return result <MID> Remove non-ASCII characters from a string. :param s: The string to remove non-ASCII characters from. :return: The string with non-ASCII characters removed. """ result = "" for c in s: if ord(c) < 128: result += c <EOT></s>
为了使用补全功能,你需要处理输出以剪切 <MID> 和 <EOT> 标记之间的文本 - 这就是我们提供的前缀和后缀之间的内容。
6、对话指令如上所述,基础模型可用于完成和填充。 Code Llama 版本还包括一个可在对话界面中使用的指令微调模型。
为了准备此任务的输入,我们必须使用一个提示模板,就像我们的 Llama 2 博客文章中描述的那样,我们在这里再次复制该模板:
<s>[INST] <<SYS>>{{ system_prompt }}<</SYS>>{{ user_msg_1 }} [/INST] {{ model_answer_1 }} </s><s>[INST] {{ user_msg_2 }} [/INST]
请注意,系统提示是可选的 - 模型在没有它的情况下也可以工作,但可以使用它来进一步配置其行为或样式。 例如,如果你总是希望获得 JavaScript 中的答案,可以在此处声明。 系统提示后,你需要提供对话中之前的所有交互:用户询问什么以及模型回答什么。 与填充情况一样,需要注意使用的分隔符。 输入的最终组成部分必须始终是新的用户指令,这将是模型提供答案的信号。
以下代码片段演示了该模板在实践中的工作原理。
首次用户查询,系统无提示user = 'In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month?'prompt = f"<s>[INST] {user.strip()} [/INST]"inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")系统提示的首次用户查询:
system = "Provide answers in JavaScript"user = "Write a function that computes the set of sums of all contiguous sublists of a given list."prompt = f"<s><<SYS>>\\n{system}\\n<</SYS>>\\n\\n{user}"inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")与先前答案的持续对话
该过程与 Llama 2 中的过程相同。为了最大程度地清晰起见,我们没有使用循环或概括此示例代码:
system = "System prompt"user_1 = "user_prompt_1"answer_1 = "answer_1"user_2 = "user_prompt_2"answer_2 = "answer_2"user_3 = "user_prompt_3"prompt = f"<<SYS>>\\n{system}\\n<</SYS>>\\n\\n{user_1}"prompt = f"<s>[INST] {prompt.strip()} [/INST] {answer_1.strip()} </s>"prompt += f"<s>[INST] {user_2.strip()} [/INST] {answer_2.strip()} </s>"prompt += f"<s>[INST] {user_3.strip()} [/INST]"inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")7、4位加载
将 Code Llama 集成到 Transformers 中意味着你可以立即获得对 4 位加载等高级功能的支持。 这使你可以在 nvidia 3090 卡等消费类 GPU 上运行大型 32B 参数模型!
以下是在 4 位模式下运行推理的方法:
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfigimport torchmodel_id = "codellama/CodeLlama-34b-hf"quantization_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_compute_dtype=torch.float16)tokenizer = AutoTokenizer.from_pretrained(model_id)model = AutoModelForCausalLM.from_pretrained( model_id, quantization_config=quantization_config, device_map="auto",)prompt = 'def remove_non_ascii(s: str) -> str:\n """ 'inputs = tokenizer(prompt, return_tensors="pt").to("cuda")output = model.generate( inputs["input_ids"], max_new_tokens=200, do_sample=True, top_p=0.9, temperature=0.1,)output = output[0].to("cpu")print(tokenizer.decode(output))8、使用文本生成推理和推理端点
文本生成推理是 Hugging Face 开发的生产就绪推理容器,可轻松部署大型语言模型。 它具有连续批处理、令牌流、用于在多个 GPU 上快速推理的张量并行性以及生产就绪的日志记录和跟踪等功能。
你可以在自己的基础设施上尝试文本生成推理,也可以使用 Hugging Face 的推理端点。 要部署 Code llama 2 模型,请转到模型页面并单击部署 -> 推理端点小部件。
对于 7B 模型,我们建议你选择“GPU [中] - 1x Nvidia A10G”。对于 13B 模型,我们建议你选择“GPU [xlarge] - 1x Nvidia A100”。对于 34B 模型,我们建议你选择启用了位和字节量化的“GPU [1xlarge] - 1x Nvidia A100”或“GPU [2xlarge] - 2x Nvidia A100”注意:你可能需要通过电子邮件请求配额升级才能访问 A100
你可以在我们的博客中了解有关如何使用 Hugging Face Inference Endpoints 部署 LLM 的更多信息。 该博客包含有关支持的超参数以及如何使用 Python 和 Javascript 流式传输响应的信息。
9、评估代码语言模型通常在 HumanEval 等数据集上进行基准测试。 它由编程挑战组成,其中模型带有函数签名和文档字符串,并负责完成函数体。 然后通过运行一组预定义的单元测试来验证所提出的解决方案。 最后,报告通过率,描述有多少解决方案通过了所有测试。 pass@1 率描述了模型在一次尝试时生成通过解决方案的频率,而 pass@10 描述了从 10 个提议的候选方案中至少有一个解决方案通过的频率。
虽然 HumanEval 是一个 Python 基准测试,但我们已经付出了巨大努力将其转换为更多编程语言,从而实现更全面的评估。 其中一种方法是 MultiPL-E,它将 HumanEval 翻译成十多种语言。 我们正在基于它托管一个多语言代码排行榜,以便社区可以比较不同语言的模型,以评估哪种模型最适合他们的用例。
模型 | 许可 | 数据集已知 | 商业用途? | 预训练长度 [tokens] | Python | JavaScript | 排行榜平均分数 |
CodeLlaMa-34B | Llama 2许可证 | ❌ | ✅ | 2,500B | 45.11 | 41.66 | 33.89 |
CodeLlaMa-13B | Llama 2许可证 | ❌ | ✅ | 2,500B | 35.07 | 38.26 | 28.35 |
CodeLlaMa-7B | Llama 2许可证 | ❌ | ✅ | 2,500B | 29.98 | 31.8 | 24.36 |
CodeLlaMa-34B-Python | Llama 2许可证 | ❌ | ✅ | 2,620B | 53.29 | 44.72 | 33.87 |
CodeLlaMa-13B-Python | Llama 2许可证 | ❌ | ✅ | 2,620B | 42.89 | 40.66 | 28.67 |
CodeLlaMa-7B-Python | Llama 2许可证 | ❌ | ✅ | 2,620B | 40.48 | 36.34 | 23.5 |
CodeLlaMa-34B-Instruct | Llama 2许可证 | ❌ | ✅ | 2,620B | 50.79 | 45.85 | 35.09 |
CodeLlaMa-13B-Instruct | Llama 2许可证 | ❌ | ✅ | 2,620B | 50.6 | 40.91 | 31.29 |
CodeLlaMa-7B-Instruct | Llama 2许可证 | ❌ | ✅ | 2,620B | 45.65 | 33.11 | 26.45 |
StarCoder-15B | BigCode-OpenRail-M | ✅ | ✅ | 1,035B | 33.57 | 30.79 | 22.74 |
StarCoderBase-15B | BigCode-OpenRail-M | ✅ | ✅ | 1,000B | 30.35 | 31.7 | 22.4 |
WizardCoder-15B | BigCode-OpenRail-M | ❌ | ✅ | 1,035B | 58.12 | 41.91 | 32.07 |
OctoCoder-15B | BigCode-OpenRail-M | ✅ | ✅ | 1,000B | 45.3 | 32.8 | 24.01 |
CodeGeeX-2-6B | CodeGeeX许可证 | ❌ | ❌ | 2,000B | 33.49 | 29.9 | 21.23 |
CodeGen-2.5-7B-Mono | Apache-2.0 | ✅ | ✅ | 1400B | 45.65 | 23.22 | 12.1 |
CodeGen-2.5-7B-Multi | Apache-2.0 | ✅ | ✅ | 1400B | 28.7 | 26.27 | 20.04 |
注意:上表中显示的分数来自我们的代码排行榜,我们在其中评估具有相同设置的所有模型。 更多详情请参阅排行榜。
原文链接:/d/file/gt/2023-09/31yvhw3epzj 类别:
H——市内通信电缆
HP——配线电缆
HJ——局用电缆
(2)绝缘:
Y——实心聚烯烃绝缘
YF——泡沫聚烯烃绝缘
YP——泡沫/实心皮聚烯烃绝缘
(3)内护层:
A——涂塑铝带粘接屏蔽聚乙烯护套
S——铝,钢双层金属带屏蔽聚乙烯护套
V——聚氯乙烯护套
(4)特征:
T——石油膏填充
G——高频隔离
C——自承式
(5)外护层:
23——双层防腐钢带绕包销装聚乙烯外被层;
33——单层细钢丝铠装聚乙烯被层;
43——单层粗钢丝铠装聚乙烯被层 ;
53——单层钢带皱纹纵包铠装聚乙烯外被层;
553——双层钢带皱纹纵包铠装聚乙烯外被层
电缆型号代码1、用途代码:不标为电力电缆,K为控制缆,P为信号缆;
2、绝缘代码:Z油浸纸,X橡胶,V聚氯乙稀,YJ交联聚乙烯
3、导体材料代码:不标为铜,L为铝;
4、内护层代码:Q铅包,L铝包,H橡套,V聚氯乙稀护套
5、派生代码:D不滴流,P干绝缘;
6、特殊产品代码:TH湿热带,TA干热带;
7、额定电压:单位KV
不同作用的电缆1、SYV:实心聚乙烯绝缘射频同轴电缆
2、SYWV(Y):物理发泡聚乙绝缘有线电视系统电缆,视频(射频)同轴电缆(SYV、SYWV、SYFV)——适用于闭路监控及有线电视工程;SYWV(Y)、SYKV 有线电视、宽带网专用电缆结构:(同轴电缆)单根无氧圆铜线 物理 发泡聚乙烯(绝缘)(锡丝)(铝)、 聚氯乙烯(聚乙烯)
3、信号控制电缆(RVV护套线、RVVP屏蔽线):适用于楼宇对讲、防盗报警、消防、自动抄表等工程;RVVP:铜芯聚氯乙烯绝缘屏蔽聚氯乙烯护套软电缆 电压300V/300V2-24芯—用途:仪器、仪表、对讲、监控、控制安装
4、RG:物理发泡聚乙烯绝缘接入网电缆——用于同轴光纤混合网(HFC)中传输数据模拟信号
5、KVVP:聚氯乙烯护套编织屏蔽电缆——用途:电器、仪表、配电装置的信号传输、控制、测量
6、RVV(227IEC52/53) 聚氯乙烯绝缘软电缆 ——用途:家用电器、小型电动工具、仪表及动 力照明
7、VR 聚氯乙烯护套安装用软电缆
8、SBVV HYA 数据通信电缆(室内、外)——用于电话通信及无线电设备的连接以及电话配线网的 分线盒接线用
9、RV、RVP 聚氯乙烯绝缘电缆
10、RVS、RVB ——适用于家用电器、小型电动工具、仪器、仪表及动力照明连接用电缆
11、BV、BVR 聚氯乙烯绝缘电缆 ——用途:适用于电器仪表设备及动力照明固定布线用
12、RIB 音箱连接线(发烧线)
13、KVV 聚氯乙烯绝缘控制电缆—— 用途:电器、仪表、配电装置信号传输、控制、测量
14、SFTP 双绞线 传输电话、数据及信息网
15、UL2464 电脑连接线
16、VGA 显示器线
17、SYV 同轴电缆 无线通讯、广播、监控系统工程和有关电子设备中传输射频信号(含综合用同轴电缆)
18、SDFP、SDFVP、SYFPY 同轴电缆,电梯专用
19、JVPV、JVPVP、JVVP 铜芯聚氯乙烯绝缘及护套铜丝编织电子计算机控制电缆
免费领取电工软件内含科莱尔电工仿真软件、电工技能与实训仿真教学系统、cade_simu电气线路绘制仿真软件等热门电工软件!
领取方式
↓↓↓
关注+私信“电工”
即可“免费”获取
免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢
《上古卷轴5:天际》游戏里玩家们可以使用控制台代码来修改数据,这样就能达到我们需要的效果了,这里小编带来了《上古卷轴5:天际》秘籍大全,这个秘籍还是蛮全面的,不清楚的赶紧来看看吧。希望大家喜欢。
游戏秘籍
游戏中按 ~ 开启控制台,输入以下秘籍可得到对应效果:
例:player.additem 000000f 99999(增加金币99999)
已测试:
常用命令
TGM - 无敌
coc qasmoke 会把你传去一个拥有所有游戏物品 所有制造器具的房间
挑完后再用coc(riverwood河望)(雪漫城whiterun )(winterhelm风盔城)传送命令传出来
Tcl- 穿墙
tcai - 开关NPC攻击反应
tfc - 拍照用!自由视角!
resurrect - 复活你鼠标所选择的人或怪
lock * - 再控制台下将鼠标所选择的门或者箱子用等级为*的锁锁住。#必须介于1到100之间,
unlock - 再控制台下用鼠标选择门或箱子,输入指令即开。
kill – 再控制台下用鼠标选择人或其它生物,输入指令秒杀。
set timescale to # - 时间流失速度!数字越大!时间流失越快!默认是7
caqs - 完成所有任务(不要轻易尝试!一旦使用!恭喜你通关了~)
ShowSubtitle - 开关NPC对话字幕
SexChange - 改变性别
advlevel - 立刻升级
psb - 获得所有魔法!包括一些没有测试完成的BUG魔法!
其它命令
TM - 开关所有菜单~包括控制台
TDETECT -开关人工智能探测
TLL - 开关远景
TS - 开关天空
TLV - 开关树叶
TWF -开关框架模式
TAI - 开关人工智能(所有npc无常对话!)
TG - 开关草丛
TT - 开关树木
tws - 开关水(有问题)
player.AddItem FormID # - 得到代号FormID的物品#个000000f为金币
player.AddSpell FormID - 得到代号FormID的法术
PlaceAtMe formid, FormID, x, y - 在地图上生成代号为formid的物品或者生物#个
player.removeitem FormID # - 从你身上移除代号为FormID的物品#个
player.removespell FormID - 移除代号为FormID的法
modpcs 技能名称# - 技能名称对应的技能,比如sneak,增加#个技能点
modpca 属性名称# - 属性名称对应的属性,比如luck,增加#点
player.setlevel # - 改变角色的等级到#你想要的等级
player.set - 技能或属性名称# - 将名称为技能或属性名称的技能或者属性的值设为#
advskill 技能名称# - 技能名称对应的技能上升#个级别,比如advskill blade 5
ShowRaceMenu - 调出改变种族窗口
TFOW - 开关战争迷雾
FOV # - 改变视野为#度,缺省设定为75度
setcamerafov # - 设置相机视野为#度。缺省设定为75度
setscale # - 先用鼠标选择对应的物体,然后输入指令改变物体大小为原来的#倍。#必须介于0.5到2.0之间。走路速度,跳跃高度,攻击距离,等等,都会按比例变化。
stopcombat - 先用鼠标选择对象,然后输入指令就能立刻停止战斗,不管对手是朋友还是敌人。
player.setcrimegold 0 - 清掉自己头上的赏金。要注意的是如果正被守卫追赶,则必须离开城市再回来指令才会生效。
player.payfine - 守卫停止攻击,你头上的赏金清除。
showfullquestlog [quest id] - 显示代号为[quest id]的任务的全部记录信息
showquestlog - 显示任务记录信息
showquestlog 0 - 显示当前任务记录信息
showquestlog 1 - 显示已完成任务记录信息
showquesttargets - 显示当前任务的目标
player.setstage QuestID Stage - 将代号为QuestID的任务设定到阶段Stage。比如player.setstage TG04Mistake 69
playerpletequest FormID - 立刻完成代号为FormID的任务
togglemapmarkers - 开关显示地图上全部位置
savegame [filename] - 存档到名称为[filename]的文件
prid 锁定指定的目标进行命令操作
resurrect - 复活该目标
moveto player - 移动目标到身边
resetquest questID – questIDNPC的ID重制该目标(当你想要的NPC死了就时候很好用?)
KILL杀死)目标
disable - 关闭该目标(会直接消失~)(可恢复,方法就是上面的)
65、togglemapmarkers 0/1
开关显示地图上全部位置,0是地图全关,1是全开
Alchemy, Light Armor, Speech, Sneak, Lockpicking and Pickpocketing
盗贼型技能:炼金,轻甲,口才,潜行,开锁,扒窃。
Skills: Smithing, Heavy Armor, Block, Two-handed, One-Handed and Archery.
铁匠,重甲,格挡,双手,单手,箭术
Conjuration, Restoration and Illusion.
召唤,恢复,幻术
DragonPlate系类
重甲:重甲防御好高的
头盔:
000D7A77 +40%弓箭伤害
000D7A7B 水中呼吸
盔甲:
000D7A2B +25点重甲技能
000FE2FA +50%耐力回复
手套:
000D7A53 +40%弓箭伤害
鞋子:
000D7A1E 无声移动
盾牌:
0010DFA6 +22%魔法防御