自学内容网 自学内容网

OpenCoder:首个完全透明化开源的大型语言模型,提供了模型权重和推理代码,包括可复现的训练数据等

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. OpenCoder 是一个开源代码大型语言模型,由多所高校研究人员联合推出。
  2. 该模型提供了模型权重和推理代码,以及完整的数据处理流程和详细的训练协议。
  3. OpenCoder 在多个编码基准测试中表现出色,支持多语言代码生成和审查。

正文(附运行示例)

OpenCoder 是什么

在这里插入图片描述

OpenCoder 是由墨尔本大学、复旦大学等高校研究人员联合推出的开源代码大型语言模型(LLM)。该模型的目的是提升开源代码 LLM 的性能,使其达到专有模型的水平,从而推动代码 AI 研究的透明化和可重复性。OpenCoder 提供了模型权重和推理代码,包括可复现的训练数据、完整的数据处理流程、严格的实验消融结果和详细的训练协议,助力研究社区构建和创新。

OpenCoder 的主要功能

  • 代码生成:OpenCoder 能自动生成代码,辅助开发者快速实现功能需求。
  • 代码审查:模型辅助进行代码审查,提高代码质量和维护性。
  • 错误调试:辅助定位代码中的错误,加速调试过程。
  • 代码补全:提供代码自动补全功能,减少开发者的重复工作。
  • 多语言支持:支持多种编程语言,增强模型的通用性和适用性。

OpenCoder 的技术原理

  • 数据预处理
    • 原始代码收集:从 GitHub 等来源收集原始代码数据。
    • 代码相关 Web 数据:从 Web 数据库中收集代码相关的 Web 数据。
    • 数据清洗:去除无信息数据(如纯十六进制代码和过短代码片段)。
    • 去重:基于精确和模糊去重方法,减少数据重复。
    • 数据过滤:基于启发式规则过滤低质量代码。
  • 模型架构
    • Transformer 架构:用标准的 Transformer 架构,支持多头注意力机制。
    • 旋转位置编码(RoPE):用旋转位置编码处理长距离依赖关系。
  • 训练策略
    • 预训练:在大规模数据上进行预训练,用 WSD(Warmup, Steady, Decay)学习率调度方法。
    • 退火训练:在预训练后进行退火训练,用高质量数据进一步提升模型性能。
    • 指令微调:基于两阶段指令微调,先提升模型的通用能力,再针对代码任务进行细化。
  • 后训练优化
    • 开源指令语料收集:从多个数据库中收集开源指令语料。
    • 真实用户查询抽取:从真实对话数据中抽取用户查询,进行数据清洗。
  • 性能评估:在多个编码基准测试中评估模型性能,包括代码生成、代码补全和代码理解任务。

如何运行 OpenCoder

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

# 加载模型
model_name = "infly/OpenCoder-8B-Instruct"
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.bfloat16,
    device_map="auto",
    trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)

# 定义输入消息
messages = [
    { 'role': 'user', 'content': "write a quick sort algorithm in python." }
]

# 生成输入张量
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")

# 生成输出
outputs = model.generate(inputs, max_new_tokens=512, do_sample=False)

# 解码输出
result = tokenizer.decode(outputs[0][len(inputs[0]):], skip_special_tokens=True)
print(result)

资源

  1. 项目官网:https://opencoder-llm.github.io/
  2. GitHub 仓库:https://github.com/OpenCoder-llm/OpenCoder-llm
  3. HuggingFace 模型库:https://huggingface.co/collections/infly/opencoder-672cec44bbb86c39910fb55e
  4. arXiv 技术论文:https://arxiv.org/pdf/2411.04905

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


原文地址:https://blog.csdn.net/qq_19841021/article/details/143697020

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!