如何搭建免费的GitHub Copilot?

前不久,GitHub和OpenAI联合为程序员们送上了编程神器——GitHub Copilot,能根据用户输入的部分代码或注释自动生成完整代码。适用后效果的确很惊艳,但但但是近期开始收费了,现以每月 10 美元(人民币约 67 元)或每年 100 美元(人民币约 669 元)的价格出售,实在是太贵了!Copilot 是建立在 OpenAI Codex 之上,也就是 OpenAI 的旗舰 GPT-3 语言生成算法的后代,但目前还暂未开源。

最近发现一款开源的神器,可以自己搭建代码生成的服务,同时可以通过Github Copilot来调用,完美复刻。底层模型是基于Salesforce团队提出的CodeGen模型,有多种大小:350M、2B、6B、16B,支持多种常见的代码语言,最赞的是16B模型效果已超越Codex。

废话不多说,先上链接。

PaddleNLP/examples/code_generation/codegen at develop · PaddlePaddle/PaddleNLP (github.com)icon-default.png?t=M85Bhttps://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/code_generation/codegen

可以按照上述说明自行配置,简单又快捷。配置完成后,体验了一把,下面是效果,还不错。

 

另外看官方给的使用案例,还挺有趣的,可以直接拿来补全LeetCode算法题。针对LeetCode原题:求解无重复字符的最长子串的长度,通过下方代码调用并生成补全结果:

from paddlenlp import Taskflow

prompt = "def lengthOfLongestSubstring(self, s: str) -> int:"
codegen = Taskflow("code_generation", model="Salesforce/codegen-2B-mono", decode_strategy="greedy_search", repetition_penalty=1.0)
print(codegen(prompt))

得到的输出是:

        if not s:
            return 0

        start = 0
        end = 0
        max_len = 0

        while end < len(s):
            if s[end] not in s[start:end]:
                max_len = max(max_len, end - start + 1)
                end += 1
            else:
                start += 1

        return max_len

提交到LeetCode,竟然还通过了,不知道是不是巧合😂

另外,还发现几个亮点:

1. 该开源项目采用了FasterTransformer进行预测加速,在350M模型上,相对于HuggingFace加速比为10几倍!

        ​

2. 支持在用户自己的代码数据上进行微调,让Copilot更加懂用户。

参考

  1. https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/code_generation/codegen

  2. https://github.com/features/copilot/

  3. Nijkamp, Erik, et al. "A conversational paradigm for program synthesis." arXiv preprint arXiv:2203.13474 (2022)

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值