多模態(tài)性 Gemini-1.5-Flash 技術(shù)細節(jié)與應(yīng)用場景
Gemini 1.5 Flash 是 Gemini 大型语言模型家族中的最新成员,它专门设计为快速、高效且成本低廉,适合高负载任务。这得益于它比 Gemini 1.5 Pro 更轻量。最初我以为是通过修剪或量化权重来瘦身,但实际上,这里的诀窍是“知识蒸馏”,一个把大模型的知识和技能传递给小模型的过程。将大模型中的核心知识和技能转移到更小的模型。我后面会详细聊聊这个过程。
根据Google DeepMind的论文,Gemini 1.5 Flash 是“一种更轻量级的变体,旨在提高效率且保证质量几乎不受影响,并且使用了与 Gemini 1.5 Pro 类似的 transformer 解码器架构和多模态能力,旨在高效利用张量处理单元(TPUs)并实现低延迟模型服务。”
“[…] Gemini 1.5 Flash 实现了注意力和前馈组件的并行计算,并且是从在线蒸馏中获得的更大规模的 Gemini 1.5 Pro 模型。它使用 高阶预条件方法 进行训练,以提升其性能。”
如我们所知,在训练过程中,模型会迭代地调整其内部参数以最小化损失值(梯度下降)。这种调整是由损失值的梯度引导的。高阶预条件方法分析损失值及其导数(高阶信息)。基于这些分析,它可以调整梯度本身,使其成为参数变化如何影响损失值的更准确表示。这种策略可以提高收敛性,从而避免训练过程陷入局部最优解(次优解)。
以下是Gemini 1.5 Flash几个关键特点:
- 速度和效率: 它是迄今为止最快的双子模型,非常适合需要实时响应的任务,例如网络应用程序和聊天机器人。考虑你有一个运行在单个容器上的网络应用程序,并启用了自动扩展。使用一个大型模型,假设你的应用每天可以处理5,000名用户,因为推理时间是30 tokens/秒。之后,自动扩展将被触发以处理需求,你的成本将增加。现在假设相同的容器,推理时间为60 tokens/秒。使用相同的容器,你每天将能够处理更多的用户,超过5,000名,节省成本并延迟自动扩展的触发。
以下表格展示了截至2024年6月的最佳现有模型之间的每输出一个字符的平均耗时的比较:
每个输出字符平均所需时间的比较
- 成本效益: 由于它是一个较小的模型,1.5-Flash 的使用成本比其他 Gemini 模型更节省。实际上,它的价格是 Gemini 1.5 Pro 的 1/10,并且比 GPT-3.5 更便宜。
- 长上下文窗口: Flash 1.5 可以访问并处理更长历史文本中的信息,这可以带来更全面和详尽的信息回复,而不会影响准确性。Flash 默认具有 一百万标记的上下文窗口,这意味着您可以处理一小时的视频、超过 11 小时的音频、超过 30,000 行代码的代码库或超过 700,000 个单词。这种长上下文能力并不会削弱模型的核心多模态能力。广泛的评估表明,虽然体积更小且更高效,Gemini 1.5 Flash 仍然表现出比 Gemini 1.0 Pro 更为出色的性能。
- 多模态推理: Flash 1.5 可以跨不同类型的数据进行推理,如文本、图像、音频、视频、PDF、图像中的表格等,这在处理复杂任务时非常有用。此外,它能够进行 函数调用(金融、天气、地图 API)以及 响应锚定(获取世界数据和最新信息)。
- 出色性能: 尽管体积更小且更高效,同时提供更快的服务,Gemini 1.5 Flash 在其上下文窗口增加时仍保持高水平的性能。“Gemini 1.5 模型在跨模态的长上下文检索任务中接近完美的召回率,并在长文档 QA、长视频 QA 和长上下文 ASR (自动语音识别) 等方面达到了当前最先进的水平”(Gemini 团队,2024)
最近我运行了一个Langchain评估笔记本(代码在此):代码在此,其中只有一个生成的爱因斯坦和牛顿之间的对话,并由GPT-4进行了评估,这次运行在OpenAI上花了2.6美元。我又运行了一次成对实验,比较了Gemini-1.5-Flash和GPT-3.5,得到了如下结果:
通过Langchain进行的Gemini-Flash-1.5与GPT-3.5的对阵比较
Gemini-Flash-1.5与GPT-3.5的, 两两对比(使用Langchain工具进行的对比)
注意,对于同一任务,Gemini-1.5-Flash 的推理时间少于 GPT-3.5 的一半。不过这只是个单一的对话,所以不能做任何结论,但这是我们分析推理时间、成本和该任务性能的地方。与此任务相关的性能表现也值得一提。
在这里,我将在文章末尾提供的例子中对模型进行定量分析,然后在同样的例子中进行定性分析,并根据DeepMind发布的性能基准进行分析,这些基准的置信度更高。
Gemini-1.5-Flash与GPT-3.5的性能和成本对比
来源:https://artificialanalysis.ai/models/gemini-1-5-flash
摘自:“https://artificialanalysis.ai/models/gemini-1-5-flash”
以下表格显示了Gemini 1.5 Pro和其他版本(包括USM(谷歌AI)和Whisper(OpenAI),Gemini 1.0 Pro和Gemini 1.0 Ultra)在音频理解方面的比较:
不同模型在语音任务中的表现对比:WER(“单词错误率”)和“BLEU”指标
可以看出,Gemini 1.5 Flash 在大多数任务上比 USM 和 Whisper 更好。
这里有一些Gemini 1.5 Flash可以用来做的例子。
- 它能为长文档、文章、音频、视频或文本创建摘要: 它可以为长文档、文章、音频、视频或文本生成摘要。
- 它可以用来驱动聊天机器人或虚拟助手: 它可用于驱动聊天机器人或虚拟助手。
- 它能为图像和视频添加字幕,提取其中的特定数据并提供有价值的信息: 它可以为图像和视频生成字幕,提取其中的特定数据,提供有价值的信息。
- 它可以从长文档、表格(包括未结构化的PDF和表格)中提取特定信息: 它可以从长文档和表格(包括未结构化的PDF和表格)中提取特定信息。
- 它可以整合不同来源的知识: 它可以利用其多模态性从不同格式的来源中收集数据,并对这些数据进行复杂的分析。
- 其高质量的多模态输出使其非常适合 RAG,能够识别知识图谱中的实体: 其高质量的多模态输出使其非常适合 RAG,并能够识别知识图谱中的实体。
知识提炼
正如我之前所说,Gemini 1.5 Flash 是通过 知识蒸馏 得到的。这是一项在深度学习中使用的技巧,将知识从一个大型复杂的模型(教师模型)转移到一个更小更简单的模型(学生模型),同时尽量保持教师模型的精度。
步骤如下:
- 训练教师模型: 首先,在一个大规模数据集上训练一个复杂的模型以达到高精度。这个模型就成为了教师。
- 提取知识: 教师的“知识”可以从不同的来源获得:
- Soft Targets: 与其使用硬分类标签(例如,猫或狗,argmax),老师的预测被转换成概率,这些概率提供了超出最有可能类别之外的信息。这种概率方法在知识传递方面具有几个优点:某一类别的高概率表示老师非常确定,而较低的概率则表明存在某种程度的不确定性。这些信息不仅帮助学生模型学习正确的分类,还帮助它们理解与分类相关的置信度水平。此外,概率还可以捕捉到相似类别之间的细微差别。一张猫的图片可能有较高的“猫”概率,但也有非零的“狗”概率,因为两者都具有诸如毛发等共享特征。
- 中间激活值: 老师网络的隐藏层激活也可以提供关于数据特征的宝贵信息。众所周知,深度神经网络以分层方式学习特征。最初的隐藏层通常学习基本特征,如图像中的边缘、线条和形状,或文本中的基本单词模式。随着网络的深入,这些基本特征被组合和转换,以表示更复杂的概念。
3. 训练学生网络: 接着使用教师网络提供的软标签和原始硬标签进行训练。训练过程中使用一个结合了软标签和硬标签的交叉熵损失函数。
- _数据偏差损失:_此损失衡量学生模型在原始训练数据上的表现如何,类似于教师模型的训练方式。
- _蒸馏损失:_此损失函数惩罚学生模型与教师模型的概率分布差异。此损失函数鼓励学生模型模仿教师的预测(软目标)或中间激活状态。平衡这两种损失对于成功的知识转移至关重要。通过最小化此损失,学生模型学习到如何复制教师的“思考”过程,从而吸收了软目标中编码的宝贵知识。
4. 评价: 训练完成后,学生模型应该表现类似于教师模型,但体积更小,速度更快。这就是Gemini 1.5 Flash所实现的效果。
知识提炼的优点:
- 模型瘦身: 模型蒸馏技术允许你创建一个更省内存和计算力的模型,使其非常适合部署在资源有限的设备上。
- 性能提升: 在某些情况下,学生模型甚至可以超越教师模型,通过利用教师的较软目标或捕捉数据的不同特性。
- 鲁棒性: 学生模型有时比教师模型更能抵抗噪音或对抗攻击。这对大模型的安全性至关重要。我写了一篇关于这个的文章在这篇文章中。
- 泛化能力: 通过学习教师模型的软目标,学生模型可以更好地泛化到未见过的数据上,可能优于同样大小的模型直接在硬标签上训练的结果。
应用场景。
我们可以在视频中识别某个地点,分析音频,并通过以下代码进行操作。我下载了一个 YouTube 视频,使用 ffmpeg 移除了前 2 分钟,在这期间地点名称出现了两次,然后进行了分析。在这里我使用了零样本任务,即模型在没有具体示例的提示下执行任务,依赖于其自身掌握的知识:
视频里展示的是什么地方?
标有“HOME MADE DESSERTS”招牌的房子外墙是什么颜色?
视频里说的是什么语言?
世界上有哪些地方看起来像这个样子?请列出前三名。
## 剪辑视频片段,移除画面和音频中提到的圣托里尼名称
使用ffmpeg命令从视频中剪掉提到圣托里尼的部分,时间从00:02:00到00:05:30。
ffmpeg -ss 00:02:00 -to 00:05:30 -i input.mp4 -c copy output.mp4
## 在VertexAI上使用Gemini-1.5-Flash
"""
为了在http://aistudio.google.com/ 使用Gemini-1.5-Flash,
获取你的API_KEY并点击 <> 获取代码
这些Python代码(包含不同的示例和提示)
可以在GoogleCloudPlatform的Gemini仓库中找到:
https://github.com/GoogleCloudPlatform/generative-ai/gemini
"""
PROJECT_ID = "your-project" # @param {type:"string"}
LOCATION = "us-central1" # @param {type:"string"}
import vertexai
from vertexai.generative_models import (
GenerationConfig,
GenerativeModel,
Image,
Part,
)
vertexai.init(project=PROJECT_ID, location=LOCATION)
multimodal_model = GenerativeModel("gemini-1.5-flash")
prompt = """
这段视频中的地点在哪里?
在写着“HOME MADE DESSERTS”的房子墙上是什么颜色?
视频中讲的是什么语言?
世界上有哪些地方看起来像这个视频中的地方?请列出前三个。
"""
video = Part.from_uri(
uri="gs://your-bucket/output.mp4",
mime_type="video/mp4",
)
contents = [prompt, video]
responses = multimodal_model.generate_content(contents, stream=True)
print("-------提示--------")
print_multimodal_prompt(contents)
print("\n-------响应--------")
for 每个 response in responses:
print(response.text, end='')
请注意,我问的是“写着“HOME MADE DESSERTS”的房子墙面是什么颜色?”,这是一个视频中的特定细节,需要你留心观察,如下图所示:
这是输出:
这是一个很牛的OSINT工具。网络安全爱好者会很喜欢它。OSINT,也就是我们常说的 开源情报 ,就是从公开渠道收集和分析信息,从而生成可以实际应用的情报,主要目的是为了防御。从在工业垃圾里找知识产权的秘密,到用软件工具搜寻人和社交媒体账号,OSINT什么都干。
在一个第二个例子中,我们将识别水果种类,计数,从图像中的表格里获取它们的价格,进行数学计算并计算总数。这里我采用链式思考,即鼓励模型将复杂任务拆解为一系列步骤:
通过以下步骤回答问题:
步骤 1:看看第一张图片里有哪些水果。
步骤 2:统计每种水果的数量。
步骤 3:对于第一张图片中的每种水果,在价格表中查找该水果的价格。
步骤 4:计算每种水果的总价。
步骤 5:使用这些小计计算水果的总价。
image_grocery_url = "https://storage.googleapis.com/bucket/fruitbasket.png"
image_prices_url = "https://storage.googleapis.com/bucket/pricetable.png"
image_grocery = load_image_from_url(image_grocery_url)
image_prices = load_image_from_url(image_prices_url)
instructions = "说明如下:"
prompt1 = "一步一步地思考"
prompt2 = """
按照以下步骤回答问题:
步骤1:识别第一张图片中的水果种类。
步骤2:统计每种水果的数量。
步骤3:在价格表中查找每种水果的价格。
步骤4:计算每种水果的总价。
步骤5:根据每种水果的总价计算总价格。
请回答并描述您采取的步骤:
"""
contents = [
instructions,
image_grocery,
prompt1,
image_prices,
prompt2,
]
responses = multimodal_model.generate_content(contents, stream=True)
print("-------打印提示--------")
print_multimodal_prompt(contents)
print("\n-------打印响应--------")
for response in responses:
print(response.text, end="")
这是输出结果:
检查一下这些数学计算,你会发现它们是正确的。
同样使用链式推理的第三个例子。
一步一步地思考。
第一步,确定这是什么设备。
第二步,确认设备的型号。
第三步,说明如何在这个设备上取消订阅。
第四步,用英文和法文给出说明。
image_stove_url = "https://storage.googleapis.com/bucket/appliance.jpg"
image_stove = load_image_from_url(image_stove_url)
prompt = """逐步思考。
步骤一:识别这是什么家电。
步骤二:识别该家电的型号。
步骤三:回答如何取消该家电上的订阅?
步骤四:提供英文和法文的说明。
"""
contents = [image_stove, prompt]
responses = multimodal_model.generate_content(contents, stream=True)
print("-------提示--------")
print_multimodal_prompt(contents)
print("\n-------嗯...回复--------")
for response in responses:
print(response.text, end='')
显示:
你可以在AI Studio中测试Gemini 1.5 Flash(使用API密钥),或在Vertex AI中进行测试(使用服务账户的密钥.json文件)。它已经正式发布了。
价格
下表列出了 Gemini-1.5-Flash 的价格。
就像您所见,挺便宜。
zh: 参考资料
Aakanksha Chowdhery, Sharan Narang, Jacob Devlin, Maarten Bosma, Gaurav Mishra, Adam Roberts, Paul Barham, Hyung Won Chung, Charles Sutton, Sebastian Gehrmann, et al. PaLM:通过Pathways扩展语言模型规模. 《机器学习研究杂志》, 2023, 24(240):1–113. http://jmlr.org/papers/v24/22-1144.html.
双子团队。双子1.5:解锁千万令牌上下文的多模态理解,发布于2024。https://storage.googleapis.com/deepmind-media/gemini/gemini_v1_5_report.pdf
Geoffrey Hinton, Oriol Vinyals和 Jeff Dean。神经网络中知识的提炼,2015 ,
John Duchi, Elad Hazan 和 Yoram Singer. 自适应次梯度方法在线学习和随机优化中的应用. 机器学习研究期刊, 12(61):2121–2159, 2011. 详见:http://jmlr.org/papers/v12/duchi11a.html.
Lucas Beyer, 翟晓华, Amélie Royer, 拉丽莎·马尔克耶娃, Rohan Anil, 和 Alexander Kolesnikov. 知识蒸馏:一个好的老师要有耐心并且要保持一致。, 2021. https://api.semanticscholar.org/CorpusID:59695337
苏珊娜·贝克尔和杨·乐昆。使用二阶方法提高反向传播学习的收敛性。(原文) 1989年。
汤姆·赫斯凯斯(Tom Heskes)。关于“自然”学习和剪枝在多层感知机中的讨论。《神经计算》,12(4):881—901, 2000年4月。ISSN 0899–7667。doi: 10.1162/089976600300015637。https://doi.org/10.1162/089976600300015637
zh: 感谢
✨ Google 机器学习开发者计划和 Google Cloud 合作伙伴创新者计划通过提供 Google Cloud 信贷支持了这项工作 ✨
🔗 点击这里查看 https://cloud.google.com/innovators/champions?hl=en
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章