我们可以微调语言模型,例如BERT、GPT-3。
我能否微调GitHub Copilot模型?
我已经查看了来自https://copilot.github.com/的示例,但找不到细节。
如果有人微调了Github Copilot,我会非常感激。
我能否微调GitHub Copilot模型?
我已经查看了来自https://copilot.github.com/的示例,但找不到细节。
如果有人微调了Github Copilot,我会非常感激。
openai
命令行界面,可以让您完成大部分数据加载和微调任务。似乎没有客户端功能可直接微调 Copilot。
以下是两个原因,解释为什么该功能现在(2022年第二季度)不可用。
Copilot 功能页面 最初包括以下内容:
GitHub Copilot 如何随时间变得更好?
GitHub Copilot 实际上并不测试它建议的代码,因此代码甚至可能无法编译或运行。 GitHub Copilot 只能保持非常有限的上下文,因此即使单个源文件超过几百行,也会被剪切,只使用前面的上下文。而且 GitHub Copilot 可能会建议使用已过时的库和语言。您可以在任何地方使用代码,但自行承担风险。
正如 Tomek Korbak 在 Twitter 上 解释的那样:
实际上,Copilot 的自动补全功能总是优化为人类喜好,而不一定是编译器的喜好。这是因为语言模型训练目标(预测文本中的下一个标记)非常擅长捕捉短期依赖关系(这解释了生成片段的人类感觉)。但它很难捕捉生成序列的长期、全局、语义属性,如可编译性。并且没有简单的方法来将可编译性包含在其训练信号中。标准方法——使用可编译性作为奖励进行强化学习的语言模型微调——众所周知会导致灾难性遗忘:生成的完成度较少、准确性较低。Tomek 引用了 "Energy-Based Models for Code Generation under Compilability Constraints (pdf)"。因此并不容易。
Tanishq Mathew Abraham 在 "Coding with GitHub Copilot" 中进行了解释。
我想知道GitHub团队是否可以开发一种方法,以针对特定用例微调GitHub Copilot。例如,可能会有特定的GitHub Copilot模型适用于fastai、JAX等。它们将在使用这些库和代码库的源代码上进行微调。但是确保该工具不提供过时建议仍然是一个挑战。我认为不可能为没有足够代码库进行训练的全新库提供建议。此外,对于像fastai这样存在旧API和新API的情况,在微调模型时,必须筛选出使用旧API的代码库。