前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >不再对大模型望而生畏 | 鹅厂一线程序员从零接入实感

不再对大模型望而生畏 | 鹅厂一线程序员从零接入实感

作者头像
腾讯云开发者
发布2023-08-17 09:19:33
发布2023-08-17 09:19:33
8541
举报
文章被收录于专栏:【腾讯云开发者】

# 关注并星标腾讯云开发者

# 每周1 | 鹅厂工程师带你审判技术

# 第2期 | 李洛勤:主流开源大模型的正确打开方式

开源大模型迭代速度真的是越来越快了。META 最近开源了新的 Llama2 模型,百花齐放!本文我将总结几个主流的开源大模型,分享我的使用体验,帮助各位初学者更快地使用这些大模型。

模型能力

开源模型中,比较出名的是 Meta 最近发布的二代 Llama 模型。其目前开源了三种不同的参数模型:7B,13B,70B。

Llama2 相比于 Llama1 ,主要引入了 RLHF,也即人类反馈强化学习——在训练 ChatGPT 提到的一个技术。

Llama-2-chat 是如何训练出来的?Llama 2 使用公开的在线数据进行预训练。然后通过使用监督微调创建 Llama-2-chat 的初始版本。它使用人类反馈强化学习 (RLHF) 进行迭代细化,其中包括拒绝采样和近端策略优化 (PPO)。

从论文中来看,其能力相比于一代有明显的提升,在代码能力、数学能力、上下文理解等有大幅度提升:

通常来说,有用性和安全性是模型的两个不同矛盾点。

也就是这两种能力会互相抵消。为了解决这个问题,在 Llama2 中使用了两种不同的奖励模型:其一针对有用性进行优化(Helpativity RM),其二针对安全性进行优化(Safety RM)。

上表比较了 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,把对应的数据构造成合适的格式就可以微调。

代码语言:javascript
复制
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 的仓库代码,然后安装对应的依赖包。

代码语言:javascript
复制
git clone https://github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6B
pip install -r requirements.txt

然后运行代码就可以了:

对比GPT4(必应)

Q1:什么工作钱多事少离家近?

ChatGLM2:技术岗位、销售岗位、管理岗位、创意岗位。

Bing:保险代理人、程序员、翻译、市场营销。

Q2:一个三角形,如果一条边长为 4 厘米,另一条边长为 7 厘米,则第三条边最长可能是多少厘米?

ChatGLM2:10厘米(答案正确)。

Bing:10厘米(答案正确)。

Q3:用 python 写一个斐波拉契函数;

ChatGLM2:

Bing:

从结果上看,ChatGLM2 和 GPT4 的结果答案很相似,说明整体的模型效果确实能够不断接近 GPT4 了。

该项目在 Llama2 开源几天,就已经放出了。其速度之快,简直令人惊奇。另外作者还提供在线网站进行体验:https://llama.family/

该项目主要是为了让 Llama2 在中文领域上回答得更加顺滑。

模型数据集和微调

从官方放出的资料来看,微调的数据集主要来源于网络数据、维基百科、悟道等数据。

在微调过程中,也可以直接把数据集做成下面格式:

然后调用该仓库的代码就可以了 train/sft/finetune.sh

回答体验

Q1: 代码生成。

在代码生成方面,一般的问题还是难不倒它,而且相比于原版,中文 Llama 模型还是知道用中文回复你。

Q2:语言理解。

输入:对以下两篇文章进行比较,确定它们是否讨论了相同的话题。输入两篇文章的文本内容,输出是“是”或“否”。

文章1:Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python 由 Guido van Rossum 创建,第一个公开发行版发行于 1991 年。目前,Python 是一种流行的编程语言,被广泛应用于 Web 开发、科学计算、人工智能等领域。

文章2:Java 是一种高级程序设计语言和计算机平台。它的设计最初是由 James Gosling 在 Sun Microsystems 进行的。自从 2009 年 Oracle 收购了 Sun 以来,Java 就成为 Oracle 的产品。Java 可以在不同的计算机平台上编写一次程序,然后在这些平台上运行多次。

输出结果:不是相同主题,因为是两个不一样的编程语言。

Q3:角色扮演。

输入:请描述一下作为一名 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看鹅厂程序员聊热门技术

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模型能力
  • Llama2 相比于 Llama1 ,主要引入了 RLHF,也即人类反馈强化学习——在训练 ChatGPT 提到的一个技术。
  • 通常来说,有用性和安全性是模型的两个不同矛盾点。
  • 也就是这两种能力会互相抵消。为了解决这个问题,在 Llama2 中使用了两种不同的奖励模型:其一针对有用性进行优化(Helpativity RM),其二针对安全性进行优化(Safety RM)。
    • 模型申请下载
    • 模型调用与微调
    • 回答体验
    • 模型能力
    • 使用方法
    • 对比GPT4(必应)
  • Q1:什么工作钱多事少离家近?
  • Q2:一个三角形,如果一条边长为 4 厘米,另一条边长为 7 厘米,则第三条边最长可能是多少厘米?
  • Q3:用 python 写一个斐波拉契函数;
    • 模型数据集和微调
    • 回答体验
  • Q1: 代码生成。
  • Q2:语言理解。
  • Q3:角色扮演。
    • 模型下载和合成
    • 回答体验
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档