帖文详情
avatar
@dotey@x.good.news
问:宝玉老师,有个问题想咨询一下,我现在手里有一张excel,里面大概有两万多行数据,都是一些很细碎的零件描述,我想用ai来给每一行做零件分类,我试了4o,但是4o只会帮我写程序去跑,本质上来说还是模糊匹配,准确率很低,老师知道有啥办法吗 答: 首先这件事你不能指望AI帮你一次性完成,不是说你上传一个Excel给AI,然后AI给你生成一个新的Excel,目前还做不到,或者说很难。 所以你需要人工拆解,把这个复杂的任务拆解成简单的任务,半手动的让AI帮你完成这个任务。 这里面有几个难点: 1. 需要读取Excel的数据 2. 需要让AI帮你对每一条记录分类 3. 需要将结果写回Excel 4. 无法一次性完成2万条记录的任务,需要拆分成多次,拆分后需要合并 如果我做这样的任务我会这么做: 1. 将Excel导出成CSV文件,并且只保留用来分类的字段,但有两个字段是必须的:零件ID和零件描述 因为大语言模型对文本支持是很好的,相对成本也比较低,这样的任务理论上来说纯文本就够了,如果多模态要复杂很多。 程序读取、写入CSV文件都很方便,甚至于你把CSV文件内容给模型,也能识别的很好。 至于只保留用来分类相关的字段,是因为大模型的上下文窗口有长度限制,无关信息越少越好。 至于唯一ID,是因为要方便的让大语言模型生成的结果解析后,可以正确的对应,可以正确的写回去。 这部分使用 Excel 软件手动操作就可以了 2. 将大的CSV文件用程序拆分成多个小的CSV文件 2万条记录让大语言模型去分类,恐怕上下文窗口不够用的,并且内容长了出错的概率也会很大,所以要拆分。我不知道Excel是否直接可以导出多个小CSV文件,但CSV的文件拆分用程序做很容易的,你甚至可以让 AI 帮你写一个大CSV文件拆分成小CSV文件的程序,应该很容易做到。 至于每个文件多少条记录,取决于你内容的长度,这部分需要先试验一下一次给 LLM(大语言模型) 多少条效果最好,比如100条、50条、10条都试试。 3. 写一个Prompt,让其可以根据输入的一组零件ID和零件描述生成分类 这是一个相当核心的任务,也是最复杂的部分: a). 你需要预先定义好分类,方便 LLM 归类时选择 b). 需要定义好输出的数据结构,方便程序解析。可以用JSON、XML、YAML,理论上来说也可以直接生成CSV格式,这样可以不需要程序介入,直接CSV输入,CSV输出,但是CSV出错的概率会大一些,不过值得试试 c). 需要写好Prompt,让 LLM 根据输入的内容,输出你想要的结果,输出你前面定义好的数据结构 这里的分类、数据结构和Prompt都需要自己去写,但是也可以借助AI完成,比如让AI帮你生成分类,帮你定义数据结构,帮你写Prompt。 比如我告诉 GPT-4o: 我现在手里有一张excel,里面大概有两万多行数据,都是一些很细碎的零件描述,我想用ai来给每一行做零件分类,请帮我生成: - 5条零件描述,要详细,大约1段文字 - 完整的零件分类,大约10条 - 一条Prompt来根据输入的零件编号和描述返回对应的零件分类,返回JSON格式。输入示例: [{"id": "123", "description": "XXXXX"}, {"id": "345", "description": "YYYY" }] 返回示例: {"123", "cat1", "345": "cat2"} 它就帮我生成了分类、示例数据和Prompt(参考图一) 然后我把Prompt和示例数据拿到Gemini去生成,直接就得到了想要的结果(参考图二) 4. 写程序调用 LLM 的 API 如果懂编程的话,这部分其实很简单,就是调用 API 的事情,如果不懂程序就比较麻烦,但是理论上来说也可以借助 LLM 帮忙,帮你写代码,这部分代码主要逻辑: a) 每次读取一个小CSV文件 b) 解析CSV文件内容,得到零件列表 c) 调用 LLM 的 API,输入前面调试好的 Prompt,输入CSV中的零件列表,按照Prompt设定好的输入格式输入 d) 解析 API 返回的结果,得到零件id和分类之间的对应关系 e) 保存为新的 CSV 文件,在原来的基础上给每个零件加上分类 f) 直到生成所有新的带有分类的CSV文件 5. 将新的带分类的CSV文件合并 再让 LLM 写一个小程序,将所有 CSV 文件合并成一个大的 CSV 文件,将CSV文件内容导入Excel 大概的思路就是这样的,还是要把复杂的问题拆分成相对简单的小问题,每一个小问题可以去借助 AI 帮你完成。实际做的时候肯定还会有些小的问题,理论上来说将遇到的问题去询问 LLM,能帮你解决。
查看详情
0
0
0
@dotey@x.good.news
0/481
加载中