labring / FastGPT

FastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, and visual AI workflow orchestration, letting you easily develop and deploy complex question-answering systems without the need for extensive setup or configuration.
https://tryfastgpt.ai
Other
17.49k stars 4.69k forks source link

Embedding模型生成“数据集损失” #1107

Closed taurusduan closed 6 months ago

taurusduan commented 6 months ago

例行检查

你的版本 4.7

问题描述 生成的数据集有非常严重的损失 83组数据,最后只有28组,不知道问题出在哪里 image 配置 image

复现步骤

预期结果

相关截图

c121914yu commented 6 months ago

不清楚,未遇到过。可以看看日志

taurusduan commented 6 months ago

不清楚,未遇到过。可以看看日志

好的,我下载一下。

logs.txt

c121914yu commented 6 months ago

😅你这也太多了,哪里找得到你啥时候用的。

taurusduan commented 6 months ago

😅你这也太多了,哪里找得到你啥时候用的。

_bge-large-api_logs.txt

_fastgpt_logs.txt

image

image

image

抱歉,我重新创建了个fastgpt。

c121914yu commented 6 months ago

log 好像不全?

taurusduan commented 6 months ago

log 好像不全?

是全部了,这是新开的。我直接下载的。

taurusduan commented 6 months ago

log 好像不全?

使用了之前的版本4.6.5测试(只备份了这个版本)没有发现数据组丢失的问题。应该是新版什么地方出错了。 image

这是我使用的向量模型大哥你测试一下吧。

host 版本。

version: '3.3' services: bge-large-api: container_name: bge-large-api image: taurusduan/bge-large-api:latest

restart: always
ports:
  - 7008:6008 #默认端口6008

默认值:sk-aaabbbcccdddeeefffggghhhiiijjjkkk

c121914yu commented 6 months ago

暂时没遇到。看看其他人有没有遇到~

igangang commented 6 months ago
image

确实会丢失,版本4.7

c121914yu commented 6 months ago
image

确实会丢失,版本4.7

看这个意义不大,要看有没有报错日志。无效数据,重复数据,超长数据会被删除

leonharetd commented 6 months ago

https://github.com/labring/FastGPT/blob/adfad8ff7f299bb9780c209c6f26b96d24eb9386/packages/global/core/dataset/search/utils.ts#L26 会不会是这里把块合并了

leonharetd commented 6 months ago

https://github.com/labring/FastGPT/blob/adfad8ff7f299bb9780c209c6f26b96d24eb9386/packages/global/core/dataset/search/utils.ts#L84 if (totalTokens > maxTokens + 500) { break; } results.push(item); if (totalTokens > maxTokens) { break; } 这里应该只会对查看有影响吧

c121914yu commented 6 months ago

https://github.com/labring/FastGPT/blob/adfad8ff7f299bb9780c209c6f26b96d24eb9386/packages/global/core/dataset/search/utils.ts#L84 if (totalTokens > maxTokens + 500) { break; } results.push(item); if (totalTokens > maxTokens) { break; } 这里应该只会对查看有影响吧

这块是对导入数据进行过滤。如果块太大,确实会被忽略导入。 感觉可以优化下,二次分割。

但不确定是否是这里的问题,还需要debug。 另一种可能是,训练失败,会被永久锁住,直到7天后过期。可以看下training表,是否有数据。

zhanghx0905 commented 6 months ago

我遇到了相同的问题,有相当一部分块丢失了,而且没有报错日志。training表也没有任何记录。

我认为这个问题与分块长度有关。我的部署embedding模型最大长度是512,如果我将分块设置为400,就会丢失掉一些块,但是如果我将分块设置为300,就不会出现这种错误。

c121914yu commented 6 months ago

我遇到了相同的问题,有相当一部分块丢失了,而且没有报错日志。training表也没有任何记录。

我认为这个问题与分块长度有关。我的部署embedding模型最大长度是512,如果我将分块设置为400,就会丢失掉一些块,但是如果我将分块设置为300,就不会出现这种错误。

大概率是了,我仔细看了作者图,maxToken 只有 512,default 也有 512。按分割算法,向后取整,大部分都会超出 512。

一般至少预留 200 token 长度,保证下一个句子完整。