链载Ai

标题: 大模型幻觉无法避免实证分析:Mistral AI-Pixtral12b开源及文本分块Late Chunking优化思路 [打印本页]

作者: 链载Ai    时间: 昨天 16:15
标题: 大模型幻觉无法避免实证分析:Mistral AI-Pixtral12b开源及文本分块Late Chunking优化思路

今天是2024年9月12日,星期四,北京,天气阴

本文来看三个点:

一个是20240911大模型侧相关早报回顾,社区例行活动,对跟进前沿有直接帮助。

另一个是关于文本embedding进展,Late Chunking,很简单的一个trick,用来照顾长文本,但前提是需要有一个长文文本模型,代价较高。

第三个是关于大模型幻觉不可避免的数学验证,这个论证实验很有意义,有理有据,值得大家警醒。

供大家一起参考并思考。

一、20240911大模型侧相关早报回顾

我们来关注昨日大模型进展早报,这是社区主要集中在开源进展、关于文本embedding进展、关于大模型下游训练数据选择、大模型幻觉,以及一些实践项目,文字版见社区。‍‍‍‍‍‍

其中,关于多模态方面进展。

Mistral AI发布模型pixtral-12b-240910:https://github.com/mistralai/mistral-common/releases/tag/v1.4.0,https://huggingface.co/mistral-community/pixtral-12b-240910

基础模型方面,使用Mistral Nemo 12B,视觉适配器 (Vision Adapter) 参数量4亿,使用GeLU(Gaussian Error Linear Unit,用于视觉适配器)和2D RoPE(二维旋转位置编码,用于视觉编码器);

架构方面,采用40层、14,336个隐藏维度大小和32个注意力头,配备了400M的专用视觉编码器,支持1024x1024图像尺寸和 24个隐藏层的高级图像处理。

性能方面,在开源模型的对比上,榜单上效果还不错。

另一个是语音方面开源进展。TTS模型Fish Speech,最近发布1.4版本,使用70万小时的多语言数据进行训练,适用于英语、中文、韩语、日语、法语、德语、阿拉伯语和西班牙语八种语言:https://github.com/fishaudio/fish-speech,huggingface.co/spaces/fishaudio/fish-speech-1

在部署要求上,GPU 内存: 4GB (用于推理), 8GB (用于微调)

微调脚本:https://speech.fish.audio/zh/finetune/

推理脚本:https://speech.fish.audio/zh/inference/#2-token

二、文本embedding-trickate Chunking

先来看提出背景,

在传统的文本处理中,为了提高检索效率,文本通常会被分割成更小的块,然后分别进行编码。

但这种方法可能会导致上下文信息的丢失,从而影响嵌入向量的质量。

例如:

Figure 1 展示了在传统的文本块编码方法中,上下文信息丢失的问题。在这个例子中,一个关于柏林的维基百科文章被分割成了几个文本块。可以看到,像“its”和“the city”这样的短语实际上是在指代“Berlin”,而“Berlin”这个词只在第一句话中提到。

这种分割方式会导致以下问题:

  1. 嵌入模型在处理后续文本块时,很难将“its”和“the city”这样的代词或短语与它们所指代的实体“Berlin”联系起来。
  2. 由于缺乏上下文信息,嵌入模型生成的向量表示质量较低,无法准确捕捉到这些短语与“Berlin”之间的关系。
  3. 这会影响文本块的语义表示,进而影响基于这些向量进行的文本检索任务的性能。

最近的工作《Late Chunking: Contextual Chunk Embeddings Using Long-Context Embedding Models》,https://arxiv.org/abs/2409.04701,https://arxiv.org/html/2409.04701v1,一种名为“late chunking”的新方法,用于改善文本检索系统中的文本块(chunk)嵌入表示。

现在来看实现路径,从基本实现思想上看,

“late chunking”方法的核心思想是利用长文本嵌入模型首先对整个长文本的所有标记(tokens)进行编码,然后在转换器模型之后、平均池化(mean pooling)之前进行文本块的分割。这样,每个文本块的嵌入都能够捕捉到整个文本的上下文信息,从而在各种检索任务中取得了更好的结果,而且不需要额外的训练。

其实现步骤为:

  1. 长文本编码:使用支持长输入序列的嵌入模型(如jina-embeddings-v2)对整个长文本进行编码。这允许模型捕捉整个文本的上下文信息。







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5