新知榜官方账号
2023-08-04 16:22:48
CodeGeeX2是多语言代码生成模型CodeGeeX的第二代模型,不同于一代CodeGeeX,CodeGeeX2是基于ChatGLM2架构加入代码预训练实现。得益于ChatGLM2的更优性能,CodeGeeX2在多项指标上取得性能提升(+107%>CodeGeeX),仅60亿参数即超过150亿参数的StarCoder-15B近10%。相较于一代模型,二代具有更强大的代码能力、更优秀的模型特性、更全面的AI编程助手和更开放的协议。
GLM团队开发了支持VSCode、IntelliJIDEA、PyCharm、GoLand、WebStorm、AndroidStudio等IDE的CodeGeeX插件。在插件中,可以更直接地体验到CodeGeeX2模型在代码生成与补全、添加注释、代码翻译及技术问答方面的能力为开发效率带来的提升。CodeGeeX2目前支持在多种不同平台上进行推理,包括CPU推理,多卡推理,加速推理等。
使用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]
相关工具
相关文章
推荐
用Deepseek写AI绘图提示词,像呼吸一样简单!
2025-02-19 16:12
你以为AI绘画是黑科技?其实早成了“路边摊生意”!
2025-02-19 10:15
Flux爆火,全网最全面最详细的Flux使用教程!
2025-02-18 14:19
用AI如何创作音乐,实战教学来啦!
2025-02-17 17:23
MidJourney让你秒变绘画大神,从零开始画哪吒!
2025-02-17 14:56
AI应用新境界:让人工智能成为你的得力助手
2025-02-14 15:45
AI短片革命:当创作遇上智能,人人都能成为导演
2025-02-14 14:53
AI狂潮下的人类职场:是失业危机还是进化契机?
2025-02-13 16:53
开启影视创作新纪元,效率提升 10 倍的神器来了!
2025-02-13 15:11
深度解析DeepSeek:当AI技术照进创作产业的未来
2025-02-12 17:16