清华GLM技术团队打造的多语言代码生成模型CodeGeeX2-6B

新知榜官方账号

2023-08-04 16:22:48

清华GLM技术团队打造的多语言代码生成模型CodeGeeX2-6B

CodeGeeX2是多语言代码生成模型CodeGeeX的第二代模型,不同于一代CodeGeeX,CodeGeeX2是基于ChatGLM2架构加入代码预训练实现。得益于ChatGLM2的更优性能,CodeGeeX2在多项指标上取得性能提升(+107%>CodeGeeX),仅60亿参数即超过150亿参数的StarCoder-15B近10%。相较于一代模型,二代具有更强大的代码能力、更优秀的模型特性、更全面的AI编程助手和更开放的协议。

CodeGeeX2特性

  • 更强大的代码能力
    • 基于ChatGLM2-6B基座语言模型,CodeGeeX2-6B进一步经过了600B代码数据预训练,相比一代模型,在代码能力上全面提升,HumanEval-X评测集的六种编程语言均大幅提升(Python+57%,C+++71%,Java+54%,JavaScript+83%,Go+56%,Rust+321%),在Python上达到35.9%的Pass@1一次通过率,超越规模更大的StarCoder-15B。
  • 更优秀的模型特性
    • 继承ChatGLM2-6B模型特性,CodeGeeX2-6B更好支持中英文输入,支持最大8192序列长度,推理速度较一代CodeGeeX-13B大幅提升,量化后仅需6GB显存即可运行,支持轻量级本地化部署。
  • 更全面的AI编程助手
    • CodeGeeX插件(VSCode,Jetbrains)后端升级,支持超过100种编程语言,新增上下文补全、跨文件补全等实用功能。结合AskCodeGeeX交互式AI编程助手,支持中英文对话解决各种编程问题,包括且不限于代码解释、代码翻译、代码纠错、文档生成等,帮助程序员更高效开发。
  • 更开放的协议
    • CodeGeeX2-6B权重对学术研究完全开放,可申请商业使用。

GLM团队开发了支持VSCode、IntelliJIDEA、PyCharm、GoLand、WebStorm、AndroidStudio等IDE的CodeGeeX插件。在插件中,可以更直接地体验到CodeGeeX2模型在代码生成与补全、添加注释、代码翻译及技术问答方面的能力为开发效率带来的提升。CodeGeeX2目前支持在多种不同平台上进行推理,包括CPU推理,多卡推理,加速推理等。

如何快速使用CodeGeeX2

使用transformers快速调用CodeGeeX2-6B:

fromtransformersimportAutoTokenizer,AutoModel tokenizer=AutoTokenizer.from_pretrained("THUDM/codegeex2-6b",trust_remote_code=True) model=AutoModel.from_pretrained("THUDM/codegeex2-6b",trust_remote_code=True,device='cuda') #如使用CPU推理,device='cpu' model=model.eval() #CodeGeeX2支持100种编程语言,加入语言标签引导生成相应的语言 prompt="#language:Python #writeabubblesortfunction " inputs=tokenizer.encode(prompt,return_tensors="pt").to(model.device) outputs=model.generate(inputs,max_length=256,top_k=1) #示例中使用greedydecoding,检查输出结果是否对齐 response=tokenizer.decode(outputs[0]) >>>print(response) #language:Python #writeabubblesortfunction defbubble_sort(list): foriinrange(len(list)-1): forjinrange(len(list)-1): iflist[j]>list[j+1]: list[j],list[j+1]=list[j+1],list[j] returnlist print(bubble_sort([5,2,1,8,4]))

fastllm中模型接口和huggingface不完全相同,可以参考demo/run_demo.py中的相关实现:

model.direct_query=True outputs=model.chat(tokenizer,prompt,max_length=out_seq_length,top_p=top_p,top_k=top_k,temperature=temperature) response=outputs[0]

本页网址:https://www.xinzhibang.net/article_detail-9246.html

寻求报道,请 点击这里 微信扫码咨询

关键词

CodeGeeX2-6B 多语言代码生成模型 ChatGLM2

分享至微信: 微信扫码阅读

相关工具

相关文章