OpenCoder:首个完全透明化开源的大型语言模型,提供了模型权重和推理代码,包括可复现的训练数据等
❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- OpenCoder 是一个开源代码大型语言模型,由多所高校研究人员联合推出。
- 该模型提供了模型权重和推理代码,以及完整的数据处理流程和详细的训练协议。
- 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)
资源
- 项目官网:https://opencoder-llm.github.io/
- GitHub 仓库:https://github.com/OpenCoder-llm/OpenCoder-llm
- HuggingFace 模型库:https://huggingface.co/collections/infly/opencoder-672cec44bbb86c39910fb55e
- arXiv 技术论文:https://arxiv.org/pdf/2411.04905
❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
原文地址:https://blog.csdn.net/qq_19841021/article/details/143697020
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!