LLM
对于LLM,我现在重点关注在这几个方面:
开源且可私有化部署的代码生成模型:
因为大部分软件企业对于安全都很重视,文档、数据、代码一般都会尽量避免被泄露。所以很难使用类似Copilot或者OpenAI的Bito这种需要连到互联网上的服务。如果能有可以私有化部署的代码生成模型,就可以很好的解决这个问题。现在有以下一些开源的模型:
- Saleforce的CodeT5
https://github.com/salesforce/CodeT5
2021年9月,Saleforce公布了CodeT5模型。目前,Saleforce公开了4个版本的CodeT5模型,均开源可获得。
- CodeT5-small:0.6亿参数
- CodeT5-base:2.2亿参数
- CodeT5-large:7.7亿参数
- CodeT5-large-ntp-py:7.7亿参数
- Saleforce的CodeGen/CodeGen2
https://github.com/salesforce/CodeGen
2022年5月,Saleforce再次发布了一个新的编程模型CodeGen。该模型是一系列模型,参数有4个版本:3.5亿、20亿、60亿和160亿。而训练的数据也有三个:
- nl版本:基于Pile数据训练
- multi版本:在nl基础上继续在多个编程语言组成的数据集上训练
- mono版本:继续在multi版本上基于Python代码数据训练
上述12个模型全部在HuggingFace上开源。
2023年5月3日,Saleforce开源第二代CodeGen:CodeGen2发布。该系列模型包含4个版本,分别是10亿参数、37亿参数、70亿参数和160亿参数四个版本。CodeGen2可以进行infilling,并且支持更多的编程语言。这里的infilling应该是在插入代码的含义。
CodeGen2也是全部开源,其中160亿参数版本开源文件大小66GB左右~
- MetaAI的InCoder
GitHub - dpfried/incoder: Generative model for code infilling and synthesis
InCoder: A Generative Model for Code Infilling and Synthesis
InCoder是MetaAI在2022年4月发布的一个编程大模型。模型训练数据仅包含来自在线来源(如GitHub、GitLab和StackOverflow)的开放许可代码(Apache 2.0、MIT、BSD-2和BSD-3许可),其中重点是Python和JavaScript,但总共包括28种语言 - 总共约200GB的数据。公开的模型预训练结果共2个版本,一个是67亿参数一个是13亿参数。
尽管InCoder的训练数据都是开放许可代码数据,但是MetaAI的InCoder模型确实开源的不可商用的!
- 国内的智谱AI开发的CodeGeeX
https://github.com/THUDM/CodeGeeX
CodeGeeX - a Hugging Face Space by THUDM
CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现,在鹏城实验室“鹏城云脑II”中的192个节点(共1536个国产昇腾910 AI处理器)上训练而成。截至2022年6月22日,CodeGeeX历时两个月在20多种编程语言的代码语料库(>8500亿Token)上预训练得到。CodeGeeX有以下特点:
- 高精度代码生成:支持生成Python、C++、Java、JavaScript和Go等多种主流编程语言的代码,在HumanEval-X代码生成任务上取得47%~60%求解率,较其他开源基线模型有更佳的平均性能。代码生成示例
- 跨语言代码翻译:支持代码片段在不同编程语言间进行自动翻译转换,翻译结果正确率高,在HumanEval-X代码翻译任务上超越了其它基线模型。代码翻译示例
- 自动编程插件:CodeGeeX插件现已上架VSCode插件市场(完全免费),用户可以通过其强大的少样本生成能力,自定义代码生成风格和能力,更好辅助代码编写。插件下载
- 模型跨平台开源: 所有代码和模型权重开源开放,用作研究用途。CodeGeeX同时支持昇腾和英伟达平台,可在单张昇腾910或英伟达V100/A100上实现推理。申请模型权重
全新多编程语言评测基准HumanEval-X:HumanEval-X是第一个支持功能正确性评测的多语言、多任务的基准,包含820个人工编写的高质量代码生成题目、测试用例与参考答案,覆盖5种编程语言(Python、C++、Java、JavaScript、Go),支持代码生成与代码翻译能力的评测。如何使用
在HumanEval-X代码生成任务上,与其它开源基线模型相比,CodeGeeX取得了最佳的平均性能。
Replit的Replit Code
模型:replit/replit-code-v1-3b · Hugging Face
2023年5月3日,Replit Code V1-3b正式发布,并在HuggingFace上开源。Replit-finetuned-v1-3b是Replit开发的一个编程大模型,与Replit-code-v1-3b一同宣布。官方确定Replit-code-v1-3b会是一个开源的模型,但是没有明确说Replit-finetuned-v1-3b是否开源。
BigCode的StarCoder/StarCoderBase
在5月4日,BigCoder在HuggingFace的支持下发布了开源代码生成模型Starcoder。BigCode是由Hugging Face和ServiceNow共同领导的开放科学合作项目,致力于负责任地开发大型代码语言模型。StarCoder 和 StarCoderBase 是代码的大型语言模型 (Code LLM),使用来自 GitHub 的许可数据进行训练。具体请看我的文章:
北方的郎:Starcoder:愿源码与你同在, 最新的开源代码生成LLM来了
可商用的开源LLM
训练LLM要花很多资源,例如MPT-7B训练的时候尽管采取了很多降低资源需求的技术,仍然要在440 GPU上训练了9.5 天花费了20万美元。而在大模型基础上进行微调的费用就小很多。
所以对于可商用的LLM就有很大的需求,而且有很好的应用前景,例如在开源LLM基础上训练某个大企业的客服模型等。很高兴看到近期MPT和RedPajama分别发布了可商用的LLM模型。
北方的郎:MPT-7B:开源,商业可用,性能堪比LLaMA-7B的LLM新成员
北方的郎:不止是数据,RedPajama的模型也出来了,RedPajama 7B, 一个开源的高效LLM模型
LLM as a Controller
我感觉现在LLM的一个重要趋势就是LLM as a Controller(这个叫法是我自己拍脑袋想的,不知道学术界是怎么称呼的),就是把LLM放在前面作为控制器,其他专业模型作为工具,实现1+1>2更好的解决问题。HuggingGPT就是一个很好的尝试。
其他LLM进展:
其他的模型也都各有特色
北方的郎:HuggingChat来了-各种Chat这么火Huggingface终于也忍不住了
北方的郎:IBM也下场LLM了,低成本、高效率的单峰驼Dromedary来了
AI绘画:
Stable Diffusion
主流的开源模型还是Stable Diffusion,因为它的生态非常丰富,各种Checkpoint和Lora都很多,可以生成非常漂亮的图。
北方的郎:深入浅出讲解Stable Diffusion原理,新手也能看明白
DeepFloyd IF
对于需要精确控制的图片,例如需要显示特定的文字,因为Stable Diffusion使用的是潜空间(latent space),所以有些力有不逮。这时就可以使用DeepFloyd IF,它复现了Google的Imagen(Text-to-Image Diffusion Models),采用像素空间,效果会更好。例如:
prompt:landscape of newyork with words "hello"
Midjourney
Stable Diffusion
这个实验只有DeepFloyd IF正确显示了文字。
北方的郎:新的生图模型DeepFloyd IF来了,可以拳打Stable Diffusion,脚踢Dall-E?
多模态
MiniGPT4:
北方的郎:MiniGPT-4来了、脱胎于LLama、开源且好用
LLaVA:
北方的郎:找GPT-4作老师的LLaVA多模态大模型,学的很不错
其他多模态模型:
北方的郎:玩LLM和StableDiffusion常说的LoRA到底是什么
北方的郎:DINOv2: A Self-supervised Vision Transformer Model
北方的郎:继针对图像的分割一切之后,针对视频的Track-Anything(追踪一切)来了
演进路径:
LLM进化树:
很高兴有人做了这张图,让大家可以对LLM的发展一目了然。
北方的郎:大语言模型(LLM)的进化树,学习LLM看明白这一张图就够了
我自己的一些总结和感想:
感觉有帮助的朋友,欢迎赞同、关注、分享三连。^-^