蚂蚁集团开源代码大模型CodeFuse!(含魔搭体验和最佳实践)

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 蚂蚁集团在刚刚结束的2023外滩大会上开源了代码大模型CodeFuse,目前在魔搭社区可下载、体验。

导读


蚂蚁集团在刚刚结束的2023外滩大会上开源了代码大模型CodeFuse,目前在魔搭社区可下载、体验。


CodeFuse是蚂蚁集团自研的代码生成模型,能提供智能建议和实时支持,帮助开发者自动生成代码、注释、测试用例等,提高研发效率。在评测中,CodeFuse的得分超过了GPT-4和WizardCoder-34B。开源内容包括代码框架和模型。代码框架支持多任务微调,包括代码生成、翻译、测试用例生成等任务。


模型包括 CodeFuse13B-4K CodeFuse-CodeLlaMa34B-MFT。CodeFuse早在6月开始内测,可用于开发助手、IDE插件等应用场景。



模型体验


CodeFuse-CodeLlaMa34B-MFT已经上线魔搭社区创空间,开发者们可以在创空间直接体验模型的代码生成效果。


创空间链接:

https://modelscope.cn/studios/codefuse-ai/CodeFuse-CodeLlama34B-MFT-Demo/summary




模型链接及下载


CodeFuse系列模型现已在ModelScope社区开源,包括:


CodeFuse-13B模型:

https://modelscope.cn/models/codefuse-ai/CodeFuse-13B/summary

from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('codefuse-ai/CodeFuse-13B', revision='v1.0.0')


CodeFuse-CodeLlama-34B模型:

https://modelscope.cn/models/codefuse-ai/CodeFuse-CodeLlama-34B/summary

from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('codefuse-ai/CodeFuse-CodeLlama-34B', revision='v1.0.0')



模型推理


CodeFuse-13B的推理代码

import torch
from modelscope import AutoModelForCausalLM, AutoTokenizer, snapshot_download
model_dir = snapshot_download('codefuse-ai/CodeFuse-13B', revision='v1.0.0')
tokenizer = AutoTokenizer.from_pretrained(model_dir)
model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto", torch_dtype=torch.float16).eval()
input_ids = tokenizer.encode("# language: Python\ndef quick_sort(array):\n", return_tensors="pt").to("cuda")
output_ids = model.generate(input_ids, max_new_tokens=200)
print(tokenizer.decode(output_ids[0]))
"""Out[0]
# language: Python
def quick_sort(array):
    if len(array) <= 1:
        return array
    else:
        pivot = array[0]
        less_than_pivot = [i for i in array[1:] if i <= pivot]
        greater_than_pivot = [i for i in array[1:] if i > pivot]
        return quick_sort(less_than_pivot) + [pivot] + quick_sort(greater_than_pivot)
# Test the function
print(quick_sort([3,6,8,10,1,2,1]))<|endoftext|>
"""


CodeFuse-CodeLlama-34B的推理代码

import torch
from modelscope import AutoTokenizer, AutoModelForCausalLM, snapshot_download
model_dir = snapshot_download('codefuse-ai/CodeFuse-CodeLlama-34B', revision='v1.0.0')
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True, use_fast=False, legacy=False)
tokenizer.padding_side = "left"
tokenizer.pad_token_id = tokenizer.convert_tokens_to_ids("<unk>")
tokenizer.eos_token_id = tokenizer.convert_tokens_to_ids("</s>")
model = AutoModelForCausalLM.from_pretrained(model_dir, trust_remote_code=True, 
                                             device_map='auto', 
                                             torch_dtype=torch.bfloat16)
HUMAN_ROLE_START_TAG = "<|role_start|>human<|role_end|>"
BOT_ROLE_START_TAG = "<|role_start|>bot<|role_end|>"
text = f"{HUMAN_ROLE_START_TAG}write a python function of quick sort.{BOT_ROLE_START_TAG}" 
inputs = tokenizer(text, return_tensors='pt', padding=True, add_special_tokens=False).to("cuda")
outputs = model.generate(
        inputs=inputs["input_ids"],
        attention_mask=inputs["attention_mask"],
        max_new_tokens=512,
        top_p=0.95,
        temperature=0.1,
        do_sample=True,
        eos_token_id=tokenizer.eos_token_id,
        pad_token_id=tokenizer.pad_token_id
    )
gen_text = tokenizer.batch_decode(outputs[:, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(gen_text[0])
"""Out[0]
Here is a Python function for quick sort:
```python
def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    else:
        pivot = arr[0]
        less = [i for i in arr[1:] if i <= pivot]
        greater = [i for i in arr[1:] if i > pivot]
        return quick_sort(less) + [pivot] + quick_sort(greater)
```
This function works by selecting the first element of the array as the pivot, and then partitioning the rest of the array into two parts: one with elements less than the pivot, and one with elements greater than the pivot. It then recursively sorts the two parts, and concatenates them with the pivot in the middle. It continues this process until the array is sorted.
Please note that this is a simple implementation of quick sort and may not be the most efficient for large lists. For large lists, a more complex version of quick sort that uses a partition function and swaps elements in place would be more efficient.
"""



数据集开源


同时,CodeFuse项目开源了两个数据集,CodeExercise-Python-27kEvol-instruction-66k


CodeExercise-Python-27k由2.7万道Python编程练习题(英文)组成,覆盖基础语法与数据结构、算法应用、数据库查询、机器学习等数百个Python相关知识点。


CodeExercise-Python-27k 数据集链接:https://modelscope.cn/datasets/codefuse-ai/CodeExercise-Python-27k/summary


Evol-instruction-66k是根据论文《WizardCoder: Empowering Code Large Language Models with Evol-Instruct》中提到的方法,通过添加复杂的代码指令来增强预训练代码大模型的微调效果。 该数据是在开源数据集Evol-Instruct-Code-80k-v1基础上对数据进行了一系列处理,包括低质量过滤、HumanEval评测相似数据过滤等,从原始80k数据筛选后得到66k高质量训练微调数据。


Evol-instruction-66k数据集链接:https://modelscope.cn/datasets/codefuse-ai/Evol-instruction-66k/summary


体验链接:

https://modelscope.cn/studios/codefuse-ai/CodeFuse-CodeLlama34B-MFT-Demo/summary


相关文章
|
6月前
|
人工智能 运维 IDE
感谢对CodeFuse的认可
自 CodeFuse 对外发布以来,吸引了很多开发者前来试用,也受到了业界朋友的关注,获得了一些奖项,在这里感谢大家对 CodeFuse 的认可~
86 0
|
6月前
|
存储 人工智能 自然语言处理
社区供稿 | 开放开源!蚂蚁集团浙江大学联合发布开源大模型知识抽取框架OneKE
OneKE 是由蚂蚁集团和浙江大学联合研发的大模型知识抽取框架,具备中英文双语、多领域多任务的泛化知识抽取能力,并提供了完善的工具链支持。OneKE 以开源形式贡献给 OpenKG 开放知识图谱社区。
|
机器学习/深度学习 人工智能 小程序
|
1月前
|
人工智能 自然语言处理 搜索推荐
【云栖实录】大模型驱动,开源融合的AI搜索产品发布
本文介绍了2024云栖大会上,阿里云发布的年度AI搜索产品详情。
168 1
|
2月前
|
人工智能 运维 IDE
CodeFuse 开源一周年,焕新出发!
CodeFuse 是蚂蚁集团推出的开源项目,旨在通过大型代码语言模型(Code LLMs)支持软件开发生命周期各阶段,包括设计、编码、测试、部署等。自2023年9月开源以来,CodeFuse 不断迭代,推出了一系列创新产品和技术,如 CodeFuse IDE、muAgent 2.0 框架及 CGE 和 Rodimus 模型。项目已在蚂蚁集团内部广泛应用,并在多个行业会议上展示分享。未来,CodeFuse 将继续深耕开源,推出更多创新产品,并加强社区互动与合作。欢迎访问 CodeFuse 官网和 GitHub 项目主页了解更多详情。
118 0
CodeFuse 开源一周年,焕新出发!
|
6月前
|
数据采集 机器学习/深度学习 存储
性能提升30%!中国电信进一步开源12B星辰大模型TeleChat-12B!魔搭社区最佳实践来啦!
中国电信人工智能研究院开源12B参数规模星辰语义大模型TeleChat-12B,相较1月开源7B版本,内容、性能和应用等方面整体效果提升30%,其中,多轮推理、安全问题等领域提升超40%。在C-eval、MMLU、AGIEVAL等国际权威榜单上,排名处于国内同级别参数开源模型的前列,进一步促进大模型开源生态繁荣,助力AI产业加速高质量发展。另据悉,中国电信人工智能研究院将于年内开源千亿级参数大模型。
|
6月前
|
人工智能 自然语言处理 数据可视化
书生·浦语 2.0 开源!回归语言建模本质,综合性能领先开源社区,魔搭最佳实践来啦!
1月17日,上海人工智能实验室与商汤科技联合香港中文大学和复旦大学正式发布新一代大语言模型书生·浦语2.0(InternLM2),模型开源可商用,魔搭社区作为首发平台,支持大家第一时间下载体验。
|
6月前
|
机器学习/深度学习 人工智能 分布式计算
外滩大会蚂蚁开源大规模图学习系统AGL
AGL 将持续的系统优化和能力创新,并将优秀的系统和算法实践开放到社区,本次开源为 AGL v0.1 版本。
外滩大会蚂蚁开源大规模图学习系统AGL
|
人工智能 自然语言处理 IDE
人手一个编程助手!北大代码大模型CodeShell-7B开源,魔搭社区最佳实践来了!
CodeShell是北京大学知识计算实验室联合四川天府银行AI团队研发的多语言代码大模型基座。
|
人工智能 JavaScript IDE
蚂蚁智能研发助手CodeFuse来了!支持40余种编程语言
祝各位开发者节日快乐!今天,在这个特殊的日子里,我为大家带来一份小礼物——蚂蚁出品的智能研发助手 CodeFuse~
414 0
蚂蚁智能研发助手CodeFuse来了!支持40余种编程语言

热门文章

最新文章