当世界上最快的GPU遇到百川大模型
前两天B站上关于世界上最快的GPU的评测火了.
光是点赞数就超过了7万.但是,他们居然用这么强大的GPU来打游戏,简直是暴殄天物,这次就让我们来走一个正确的示范, 谁还没有一个Geek发烧友的朋友呢, 而且这次我们足足借用了多一倍的GPU,也就是8张80G的H100GPU(每次都想写显卡……但是这个不适合3A大作啊)。
作为企业级的GPU,它最大的用武之地当然是科学计算了,当下最火的是莫过于大模型,包括ChatGPT一类的大模型,吊打一众小伙伴,对于普通用户(你管这个叫普通? )来讲,自己搭建一个模型是一个非常靠谱和有趣的场景.我们就找一个大模型来测试一下这颗全球最快的GPU*8的表现。
先隆重介绍一下今天要使用的大模型,也就是所谓的基座模型:
baichuan-7B
https://huggingface.co/baichuan-inc/baichuan-7B
按照百川的官方介绍,baichuan-7B是由百川智能开发的一个开源的大规模预训练模型。基于Transformer结构,在大约1.2万亿tokens上训练的70亿参数模型,支持中英双语,上下文窗口长度为4096。在标准的中文和英文权威benchmark(C-EVAL/MMLU)上均取得同尺寸最好的效果。
同时官方也给出了使用百川7B的理由.
在同尺寸模型中baichuan-7B达到了目前SOTA的水平,参考官方的MMLU指标
baichuan-7B使用自有的中英文双语语料进行训练,在中文上进行优化,在C-Eval达到SOTA水平
不同于LLaMA完全禁止商业使用,baichuan-7B使用更宽松的开源协议,允许用于商业目的
通过评测,我们也可以看出来百川7B在目前的LLaMA的一众类似模型中的效果是最强的.
基座模型的强大,特别是对中文的支持,让我们对它在中文chat的能力上很有信心,特别是大BOSS也在群里发出了向"中国xxx的口号",让大家纷纷尝试,我就在群里遇到了来自字节的大佬.
但是官方的放出的基座模型目前只支持进行续写形式的推理(也是所有生成式大模型的基础形式)
这种形式的交互显然是没有办法让更多的小伙伴儿通过聊天的形式愉快试用的.很快就有北航的小伙伴儿放出来可以进行微调的项目,同时也给出了第一个微调的Lora模型,然后大家就可以愉快的聊天了.感兴趣的小伙伴儿可以搜索:
"LLaMA-Efficient-Tuning"
经过试用,我们发现似乎训练的不够充分,然后我们就请上了今天的主角,具有80G*8能力的最强GPU,基于上面的代码和数据集又训练了一个新的模型,感觉基础模型的能力非常好.
这就是GPU在训练的时候的情况.
作为最开始的尝试,我们只进行了4 epoch的训练, 跑通了基本的SFT微调.让模型具有了能进行聊天的能力,我们也随便问了他一些问题, 整体感觉和Vicuna13b以及Glm6b相当,但是也有一些事实上的错误.
上面的这些经典的问题中,安卓和lighting数据线算是一个经典的案例了.
冥王星这里就开始所有大模型的通病,开始一本正经的胡说八道了,但是相比其他的模型,感觉有一些莫名的喜感,这个回答也很有画面感,是真的"踢".
DNA的回答就是中规中矩了. 而且带着一种似是而非的错误,比如上面的第5条.
总之,在基于52k的Alpaca_GPT4_cn的这个数据集的微调下,百川7B已经具有了基本的对话能力,也能回答一些问题.而由于H100的强大,整个微调在40多分钟就完成了.因此我们决定利用更大,更丰富的数据集对他进行微调,看看能发生点什么.
首先这个数据集要具有基本的对话的能力,因此我们准备保留Alpaca_GPT4_cn这个数据集,它是通过和GPT4交互得到的,因此算是SFT微调中非常有代表性的基础。
接着,我们又找到了instinwild_ch这个数据集,它也具有相当的数据量,大约是51K,而且根据官方的介绍,它更具有想象力和思维开阔,具有"头脑风暴"的特点,看看是不是可以给我们增加一些多样性的回答.
百川在介绍中说,这个模型的数理能力不强,我们特意找到了 belle_cn_school_math 这样一个数据集,看看能不能教会它算算数,里面的案例是这样的:
{'instruction': '题目:小明每天早上花费10分钟时间走到学校,如果小明家距离学校2公里,那么他每分钟走多少米?', 'input': '', 'output': '这是一个关于速度、路程、时间的数学问题。我们可以通过公式:速度=路程÷时间 来解决。n因为小明每天早上走2公里,所以他的路程为2千米。而他每天早上要花费10分钟时间走到学校,因此他的时间为10分钟,即600秒。n所以小明每分钟走的距离为 2公里 / 600秒 = 0.0033公里/秒 或 3.3米/秒。n答案:小明每分钟走3.3米。'}
因为它这个数据集很大,我们也按照前面的情况,随机选择了其中的大约50K数据作为数学的数据混入到模型中.
最后,我们还从张大妈的问答栏目中选择了1K的数据进行混入,整体形成了这个大约有150K的数据集,然后开始了20个epoch的微调.
经过漫长的等待,就有了最终的结果:
终于解决了吃苹果的问题.
然后顺带解决了算术表达式的问题,以后再也不用考虑什么编译原理计算算术表达式了.
虽然漏了2,但是已经比Vicuna和6B的结果要好.
我下次要问问它鸡兔同笼的问题.
一元一次方程没问题.
这是最让我蒙圈的回答,答案没问题,理由不对.我想了一下.发现虽然是个集合问题,但是"背包旅客"的补集,所给定的集合是不同的,换句话说,"凶手",在给定的集合中, 背包客,你,x 都是真子集.
最后,放上这次微调的模型结果和所用的数据集, 感兴趣的小伙伴儿可以来试试.
https://huggingface.co/fireinwind/baichuan-7b-sft-v2
另外,大家有什么有趣的想法,也可以和我们一起聊聊啊.就像百川的老大王小川说的一样:一起给中国大模型生态添砖加瓦.
忍不住想剁手
校验提示文案
不如买吧
校验提示文案
不如买吧
校验提示文案
忍不住想剁手
校验提示文案