Archive 2023 年 3 月 28 日

ChatGPT的中文模型替代品:盘点目前最新的真正能在个人电脑上运行及可训练中文模型

BELLE-LLAMA-7B-2M 早在很多人想到之前,贫道就开始有了中文训练的想法,因此将斯坦福的数据集进行了中文翻译后,然后作为中文语料去二次训练LLAMA。 因此最早使用中文训练的版本,是贫道用PEFT采用lora训练的,上传在了huggingface上,模型是alpaca_7b_zh 这个模型有一个缺点就是运行速度会比较慢,在采用GPU推理时,它会疯狂运算半天,然后才会输出一个结果,大概是因为仅仅只是修改了其中几百万的参数试图让它能够中文对齐,在本身它就中文乏力的情况下,也只能很无奈进行输出了吧。 LLAMA模型最大的缺陷是它压根就没有针对中文数据进行过系统的训练,因此即使是在采用中文化的数据集,对它进行二次finetune后,除非是那些已经训练过的既定任务表现良好,但在训练之外的随机问题,中文是一塌胡涂。 虽然有的人声称在通过INT4量化后的LLAMA30B效果还不错,但是30B的参数对于家用的电脑来说,是不可能进行二次训练的,因此它也就没有了意义. 如果想要有一个足够好的LLAMA中文模型,除非采用优良的中文语料整个重新训练,这个对于个人来说是不现实的,因此可以直接忽视掉 。 意识到这此问题的人自然有很多,因此也有人采用其它的模型来,将斯坦福的数据集用来进行二次训练。 但同时也有人产生了想法,是否能将扩展后的中文数据集中于原来的LLAMA的训练是否能够提升它中文能力,因此有了BELLE-LLAMA-7B-2M 这个模型才刚训练出来没几天,当然同样遗憾的是,它一样在中文随意问答上并不好用。 最重要的是,从根本授权上来说,LLAMA模型是不允许发布直接的衍生作品的,只能变相采用打补丁的机制进行。 BELLE_7B_2M 这是以BLOOM-7B为基础为基础模型训练的,采用扩展的斯坦福数据集,转化为中文后进行的训练。 BLOOM是全球1000名科学家组成BigSciencen组织一起研发的NLP多语言模型,原本训练的大模型是1760亿参数,为了便于使用,因此也给出来了一些相对参数较小的模型。 BELLE-7B-2m在中文表现效果在简单测试中还可以,例如: 请生成一个房产经纪人和客户的对话经纪人:你好!我是XX房地产中介公司的经纪人。您想了解哪些信息?客户:我正在寻找一栋公寓,可以让我住得舒适又安全。经纪人:在我们公司里有很多这样的房源。我可以给您介绍几个适合您的选择。客户:好的,请告诉我一些细节。经纪人:这栋公寓位于市中心,步行距离内有许多商店和餐馆,交通也十分便利。此外,它配备有现代化的设施和安全系统,以确保您的居住体验更加安全和舒适。客户:听起来很不错。我想看看照片和视频。经纪人:当然,这是该地区的几个房源,您可以从中选择最合适的一栋公寓。客户:好的,我会考虑一下。经纪人:非常感谢您的咨询,如果您有任何其他问题或需要帮助,随时联系我。 不过在实际测试中,做代码生成时,会出现中英文混杂的情况,这是训练技巧有问题导致,如果真正要使用的话,大概还是要自己重新训练一下。 所幸的是BLOOM本身对中文支持就还可以,因此对于7B的参数,对于家用电脑来说,还是可以通过PEFT采用lora进行训练,可以说是一个比较理想的方案。 作为BLOOM的衍生模型,对它的使用必须遵循相关的条款,大体就是不能违反法律,不用于伤害他人,不制造社会负面影响,就可以是允许使用的范围。 不过在所有的模型中,其实默认都有这个要求,所以BLOOM系列模型可以说是要比较宽松的了。 清华的中文模型Chat-GLM-6B 在实际使用中看来,清华的这个对话模型在微调上目前做得也是比较理想的了,同样也提供了小显存的版本,它生成的例子大概这样: 晚上睡不着可能会让你感到焦虑或不舒服,但以下是一些可以帮助你入睡的方法:1. 制定规律的睡眠时间表:保持规律的睡眠时间表可以帮助你建立健康的睡眠习惯,使你更容易入睡。尽量在每天的相同时间上床,并在同一时间起床。2. 创造一个舒适的睡眠环境:确保睡眠环境舒适,安静,黑暗且温度适宜。可以使用舒适的床上用品,并保持房间通风。3. 放松身心:在睡前做些放松的活动,例如泡个热水澡,听些轻柔的音乐,阅读一些有趣的书籍等,有助于缓解紧张和焦虑,使你更容易入睡。4. 避免饮用含有咖啡因的饮料:咖啡因是一种刺激性物质,会影响你的睡眠质量。尽量避免在睡前饮用含有咖啡因的饮料,例如咖啡,茶和可乐。5. 避免在床上做与睡眠无关的事情:在床上做些与睡眠无关的事情,例如看电影,玩游戏或工作等,可能会干扰你的睡眠。6. 尝试呼吸技巧:深呼吸是一种放松技巧,可以帮助你缓解紧张和焦虑,使你更容易入睡。试着慢慢吸气,保持几秒钟,然后缓慢呼气。如果这些方法无法帮助你入睡,你可以考虑咨询医生或睡眠专家,寻求进一步的建议。…

Read More

评点辅助Visual Studio Code开发的几个AI代码提示插件

1、飞桨套件中的CodeGen 声称16B大小的模型超过了Open AI的代码生成模型,看模型名称是Salesforcer公司的,在huggingface上也提供了模型,在里面翻CodeGen相关的就是,提供了不同大小的模型,在中国使用的直接用飞桨的会比较简单,毕竟下载快,可使用FauxPilot插件,好且免费,需要自己配置一下,不过不算复杂。 2、Amazon CodeWhisperer 目前免费,最为简单易用,且Amazon公司也鼓励自己公司员工使用,只需要在vs code安装相应名称的插件,然后以个人开发者身份登录即可。虽然看起来很简单,但是骂声一片,如果按照其视频操作,成功安装了能用是运气好,否则的话,还是老实用飞桨吧。 3、CodeGPT 微软的,不知是否是copliot的,一针对不同的编程语言可以用不同的模型,今年一月份才上传的,虽然没用过,不过简单包装一下应该可以直接用于FauxPilot插件。 4、CodeGeeX 可安装CodeGeeX插件,是清华的下公司的,把服务放到了自己的天启平台上,声称比其它平台生成代码质量的都要更好一点点,提供API进行调用,费用昂贵,一次要0.1元。另外提供CloudStudio可以在线使用,不过费用同样昂贵,月费比直接用VPS还离谱,不过可以申请下载26G的模型,要填写申请,批不批未知。 4、YouCompleteMe 曾经号称最强的代码补全神器,原本主要是针对vim的,也可以在vs code上用,配置很麻烦。 5、GPT-Code-Clippy 说是GitHub Copilot的开源替代版,是基于GPT3的,实际是基于gpt-neo来训练的,许久没更新了 其实前面几种足够用了。

Read More

利用清华源的pip镜像快速安装transformers源码

因为网络的问题,因此如果下载源直接安装极为麻烦,因此可以先用镜像安装 例如: pip install transformers -i https://pypi.tuna.tsinghua.edu.cn/simple 这样依赖都已经安好 然后 pip uninstall transformers 然后再git clone https://github.com/huggingface/transformers.git 在目录下,再python setup.py install 即可。 *即使是进行了长久配置 python -m pip install --upgrade pippip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple…

Read More

win11下bitsandbytes的用法

要将大模型进行量化加载,需要使用到bitsandbytes这个库,但它原生是在Linux下安装使用的,因此如果要在win11下使用,需要做一些修改。 在pip install bitsandbytes 之后,修改源代码两处。 一般安装了conda后,目录在:{driver}:\conda\envs\{name}\Lib\site-packages\bitsandbytes\ 下, 在pip install,一般都会写上安装到的位置,直接拷贝即可。 首先在这个目录下,先把下载的libbitsandbytes_cuda116.dll 文件拷贝到这个目录下。 主要是两个文件,一个是 cuda/main.py 中的 evaluate_cuda_setup() 函数,可直接让它返回 "libbitsandbytes_cuda116.dll",因为原来的代码中默认都是直接加载的liunx下的.so文件,所以要改对对应的dll 第二处是目录下的 cextension.py,需要将其中的 ct.cdll.LoadLibrary(binary_path) 改成 ct.cdll.LoadLibrary(str(binary_path)) in cuda_setup/main.py: make evaluate_cuda_setup() always return "libbitsandbytes_cuda116.dll" in ./cextension.py: change ct.cdll.LoadLibrary(binary_path)…

Read More

尝鲜LLaMA的7B及13B模型

LLaMA有7B,13B,33B,65B,四种规格的预训练模型,33B与65B需要的显存量太大,所以无法尝试,只能在3090卡上尝试一下7B及13B的。 由于显存的限制,所以使用了INT8加载模型的方案,主要用的是llama-int8来进行加载,这个的原理是将模型加载到内存中,然后再拷贝到显存中。 13B模型,大概占用了17G左右的显存,而且运行速度并不太理想,实验它的本文生成能力,也不尽人意,没发现有什么出色的地方。 例如输入: I think the sun,输出是: 输出的内容很显然似乎却少了连贯性,简单来说它对于短文本的连续生成可能并不尽如人意,因此,我又尝试了像示例中那样的输入长语句,看一下它续写的效果。 生成的内容仍旧是缺乏关联,上下文依旧是一片混乱。 当输入了加法运算时, 它生成的结果更加莫名,虽然不指望模型拥有多少数学能力,但是显然这里的答案过于离谱,可以说几乎并不具备数学能力。 初步推测,也许是模型转换成INT8后产生的影响,因此在百度的AI Studio中再次进行了实验,效果也不尽人意。 在参考了一些其它人的经验后,按照别人的问句问了个有趣的问题: Question: I am looking to make a loft of money and I don't hava a…

Read More