# 关注并星标腾讯云开发者
# 每周1 | 鹅厂工程师带你审判技术
# 第2期 | 李洛勤:主流开源大模型的正确打开方式
开源大模型迭代速度真的是越来越快了。META 最近开源了新的 Llama2 模型,百花齐放!本文我将总结几个主流的开源大模型,分享我的使用体验,帮助各位初学者更快地使用这些大模型。
开源模型中,比较出名的是 Meta 最近发布的二代 Llama 模型。其目前开源了三种不同的参数模型:7B,13B,70B。
Llama-2-chat 是如何训练出来的?Llama 2 使用公开的在线数据进行预训练。然后通过使用监督微调创建 Llama-2-chat 的初始版本。它使用人类反馈强化学习 (RLHF) 进行迭代细化,其中包括拒绝采样和近端策略优化 (PPO)。
从论文中来看,其能力相比于一代有明显的提升,在代码能力、数学能力、上下文理解等有大幅度提升:
上表比较了 Llama 2 与 Llama 1、Falcon 和 MPT 的性能差异。与 Llama 7B 模型相比,Llama 2-7B 的真实性和信息性提高了 21.37%,有毒内容比例降低了 7.61%。
填写对应的名称,然后点击同意就可以申请。
申请网址:https://ai.meta.com/resources/models-and-libraries/llama-downloads/
如果需要在 huggingface 下载 hf 模型,同时需要去到 huggingface 上申请。审核很快就通过,我下午申请,晚上就收到通过的邮件通知了。
之后就可以直接去 huggingface 网站下载了:
项目地址:
https://github.com/facebookresearch/llama
参考仓库中的 example_chat_completion.py,把对应的数据构造成合适的格式就可以微调。
torchrun --nproc_per_node 1 example_chat_completion.py \
--ckpt_dir llama-2-7b-chat/ \
--tokenizer_path tokenizer.model \
--max_seq_len 512 --max_batch_size 4
如果你输入中文给它,它虽然能够理解你的意思,但是还是很固执地回复你英文。
我猜测是因为训练集中只有少量的中文导致。
比如我输入:什么工作钱多事少离家近?它没有回复我具体内容,只是说:“少工作”和“赚更多”的想法并不总是一个现实或可持续的目标,因为它可能对你的身心健康有害,也可能导致倦怠。
输入:A\B\C\D 共四个人的距离,让它计算 A 离它最近的是哪个人。它也能够正确输入,且能够有效识别 markdown 格式。
总体来说,它相比于一代确实有明显的提升。
目前在开源大模型中, Meta 的 Llama 模型系列和清华的 ChatGLM 模型都较有影响力。在中文领域上,ChatGLM 模型经过中文问答和对话的优化,更加符合中文使用者的偏好回答。
经过一段时间的迭代,ChatGLM 模型迎来了重大更新。新推出的 2 代版本叫 ChatGLM2 模型。它保留了初代模型的优秀特性,并引入了新的优点。
其表现出更加强大的性能。它全面超越第一代模型,在多个数据集上有大幅度的提升,比初代模型在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%)、BBH(+60%)等方面具有更强的竞争力。
它可以处理更长的文本。第一代模型只能处理 2K,到第二代模型扩展到了 32K,同时还可以进行多轮次对话。
另一个优点,是可以节省推理空间。利用 Multi-Query Attention 技术,ChatGLM2-6B 具有更高效的推理速度和更低的显存占用。
在 2048 长度的文本输入下,其推理速度比 ChatGLM 第一代模型快 13 秒。
Model | 推理速度(字符/秒) |
---|---|
ChatGLM-6B | 31.49 |
ChatGLM2-6B | 44.62 |
该项目目前已经有 6.6K 星:https://github.com/THUDM
如果要使用该模型,可以先下载 github 的仓库代码,然后安装对应的依赖包。
git clone https://github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6B
pip install -r requirements.txt
然后运行代码就可以了:
ChatGLM2:技术岗位、销售岗位、管理岗位、创意岗位。
Bing:保险代理人、程序员、翻译、市场营销。
ChatGLM2:10厘米(答案正确)。
Bing:10厘米(答案正确)。
ChatGLM2:
Bing:
从结果上看,ChatGLM2 和 GPT4 的结果答案很相似,说明整体的模型效果确实能够不断接近 GPT4 了。
该项目在 Llama2 开源几天,就已经放出了。其速度之快,简直令人惊奇。另外作者还提供在线网站进行体验:https://llama.family/
该项目主要是为了让 Llama2 在中文领域上回答得更加顺滑。
从官方放出的资料来看,微调的数据集主要来源于网络数据、维基百科、悟道等数据。
在微调过程中,也可以直接把数据集做成下面格式:
然后调用该仓库的代码就可以了 train/sft/finetune.sh
在代码生成方面,一般的问题还是难不倒它,而且相比于原版,中文 Llama 模型还是知道用中文回复你。
输入:对以下两篇文章进行比较,确定它们是否讨论了相同的话题。输入两篇文章的文本内容,输出是“是”或“否”。
文章1:Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python 由 Guido van Rossum 创建,第一个公开发行版发行于 1991 年。目前,Python 是一种流行的编程语言,被广泛应用于 Web 开发、科学计算、人工智能等领域。
文章2:Java 是一种高级程序设计语言和计算机平台。它的设计最初是由 James Gosling 在 Sun Microsystems 进行的。自从 2009 年 Oracle 收购了 Sun 以来,Java 就成为 Oracle 的产品。Java 可以在不同的计算机平台上编写一次程序,然后在这些平台上运行多次。
输出结果:不是相同主题,因为是两个不一样的编程语言。
输入:请描述一下作为一名 AI 语音助手的日常工作流程是如何进行的。
它可以有效扮演你给它设定的角色,回答也是比较有条理性。
这个项目主要是基于开源的 Alpaca 大模型进行指令微调。
在原版 Llama 的基础上,它扩充了中文词表并使用了中文数据进行二次预训练,进一步提升了中文基础语义理解能力。同时,中文 Alpaca 模型进一步使用了中文指令数据进行精调,显著提升了模型对指令的理解和执行能力。
而且在本地部署后实际的推理效果还是相当可以的:
该项目主要是利用 Lora 模型进行训练,所以除了要下载原版的 Llama 模型之外,还需要下载它的 Lora 参数模型。
并把两个模型参数进行合并:
手动转换教程可以参考这里:https://github.com/ymcui/Chinese-LLaMA-Alpaca/wiki/%E6%89%8B%E5%8A%A8%E6%A8%A1%E5%9E%8B%E5%90%88%E5%B9%B6%E4%B8%8E%E8%BD%AC%E6%8D%A2
数学能力感觉没有达到相应的水平,回答是错误的:
对于这种论证题目,给出的论证和论点都比较充分:
从整体的测试来看,除了数学能力一般之外,其他的能力还是初步具备了。
本次提到的几个大模型,虽然相比于 OpenAI 的 ChatGPT 和 GPT4 模型效果还是有一定的距离,但是我们从目前测试来看,Llama2 模型已经无限接近于 GPT3.5 的效果。假以时日,开源大模型说不定真的能达到 GPT4 的效果。
个人认为,开源大模型让普通玩家能够训练自己特有的领域模型、更加适应不同领域的业务,反过来也会进一步推动大模型的蓬勃发展。以上是本次分享全部内容,如果觉得有用,欢迎点赞与转发。
📢接入大模型后,你想用它实现什么?欢迎在腾讯云开发者公众号留言。我们将挑选一则最有创意的答案,为其留言者送出腾讯定制便捷通勤袋。8月21日中午12点开奖。
关注并星标腾讯云开发者
每周1看鹅厂程序员聊热门技术