关于AIGC人工智能、思维方式、知识拓展,能力提升等。投稿/合作: @inside1024_bot
AIGC 领域的最新工具、开源项目以及行业大事件
AIGC 领域的最新工具、开源项目以及行业大事件
阳萌:『以前我在 Google 做搜索工程师,2008 年我们内部的评价标准下,Google 搜索就已经能到 62、63 分了,但十几年过去了,这个分数也没有提高特别多。
这个背后有一些底层逻辑。首先,分治法因为要避免累积误差,所以要把每个步骤都尽可能做好。然后就发现很多步骤越往细做,其实都是在越钻牛角尖,没有意义。例如机器人要讲重定位精度,而人的重定位精度很差,也能做很复杂的操作。
其次,分治法在不断细分问题时会消耗大量人力。搜索要一千人打底,自动驾驶也要一千人。到后面更糟的情况是,分得越精细,代码越复杂,所需要的理解和迭代成本指数上升。最终它的天花板就到了,这个时候再加更多的人,或者拆得再细,都弊大于利了。…( ➠ 详见正文)』🤔
转发自通往AGI之路的ai大模型的微信🤖️搭建教程:
张梦飞|微信机器人搭建小小白教程:https://waytoagi.feishu.cn/wiki/A9w1wUcXSihF6XkeKVic8CXxnHb
Yaki|新手小白可以看这个教程:https://waytoagi.feishu.cn/wiki/UADkwZ9B0iAWdTkFJIjcN7EgnAh
熊猫大侠|梳理更详细的教程
https://waytoagi.feishu.cn/wiki/YNNuwEqCXiSj2akS5mlcjpZgnrb
丁先生|全程白嫖 - 拥有一个AI大模型的微信小助手
https://waytoagi.feishu.cn/wiki/EYdCw5tTTimCOukGiSfczj2Gnqd
张梦飞|微信机器人搭建小小白教程:https://waytoagi.feishu.cn/wiki/A9w1wUcXSihF6XkeKVic8CXxnHb
Yaki|新手小白可以看这个教程:https://waytoagi.feishu.cn/wiki/UADkwZ9B0iAWdTkFJIjcN7EgnAh
熊猫大侠|梳理更详细的教程
https://waytoagi.feishu.cn/wiki/YNNuwEqCXiSj2akS5mlcjpZgnrb
丁先生|全程白嫖 - 拥有一个AI大模型的微信小助手
https://waytoagi.feishu.cn/wiki/EYdCw5tTTimCOukGiSfczj2Gnqd
评估系统所积累的数据和流程,可以很自然地应用到 LLM 产品的微调和数据管理中。微调最关键的是数据质量,而评估系统可以通过筛选、清洗、合成等手段来生成高质量的微调数据。评估系统中记录的跟踪数据、断言规则、人工反馈等,都可以直接用于微调数据的管理。总的来说,评估基础设施和微调及数据合成所需的基础设施有很大重叠。
✲ 调试
LLM 产品的调试也可以受益于评估系统。理想的评估系统应该能够支持快速定位错误,找到问题的根本原因。其中的关键是丰富的跟踪数据、可以标记错误的机制、高效的日志搜索和导航工具等。此外,系统的设计应当允许快速测试解决方案并验证有效性。总之,调试和评估所需的基础设施在很多方面是共通的。
全文翻译:https://quail.ink/op7418/p/e4bda0e79a84e4babae5b7a5e699bae883bde4baa7e59381e99c80e8a681e8af84e4bcb0-e5a682e4bd95e8af84e4bcb0llme4baa7e59381
✲ 调试
LLM 产品的调试也可以受益于评估系统。理想的评估系统应该能够支持快速定位错误,找到问题的根本原因。其中的关键是丰富的跟踪数据、可以标记错误的机制、高效的日志搜索和导航工具等。此外,系统的设计应当允许快速测试解决方案并验证有效性。总之,调试和评估所需的基础设施在很多方面是共通的。
全文翻译:https://quail.ink/op7418/p/e4bda0e79a84e4babae5b7a5e699bae883bde4baa7e59381e99c80e8a681e8af84e4bcb0-e5a682e4bd95e8af84e4bcb0llme4baa7e59381
流程包括单元测试、人工评估、模型评估和 A/B 测试,强调快速迭代和数据管理的重要性。
一个好的测试流程是模型进步的必要条件,如果没办法准确测试模型质量,就没办法帮助模型进步。
👇下面是大致的内容整理,后面有全文翻译:
✲ 大语言模型产品的评估系统
评估系统对大语言模型(LLM)产品的成功至关重要。许多 LLM 产品之所以失败,根本原因在于未能创建健壮的评估系统。评估、调试和改进是 LLM 产品成功的关键,而良好的评估系统可以创造一个良性循环,加速产品的迭代和改进。案例研究中的 Lucy 就是一个典型的例子,它初期通过提示工程取得了进展,但后来遇到了性能瓶颈,需要建立系统的评估方法来突破瓶颈。
✲ 评估的类型
LLM 产品的评估主要分为三个层次:单元测试、人工评估和模型评估、A/B 测试。单元测试是通过编写一些断言语句,在开发过程中快速获得反馈。人工评估和模型评估是通过人工检查和训练评估模型来评估整个系统。A/B 测试则用于确保 AI 产品能够驱动期望的用户行为或结果。除了评估整个系统,还需要对子组件如 RAG 进行单独评估。
✲ 单元测试的步骤
单元测试是 LLM 产品评估的基础,通常包括三个步骤:编写特定范围的测试、创建测试用例和定期执行测试并追踪结果。编写测试时要针对 LLM 的不同功能和场景,检验相应的断言。可以利用 LLM 自动生成测试用例,触发不同的场景。测试应当定期执行,利用 CI 基础设施可以很方便地实现自动化测试和结果跟踪。测试通过率并不一定要达到100%,而是要在错误容忍度和产品目标之间取得平衡。
✲ 人工评估和模型评估
人工评估和模型评估是更高层次的测试手段。首先要记录 LLM 系统的跟踪数据,包括用户的输入和系统的响应,为后续分析提供数据基础。在查看数据时,定制化的查看工具和良好的可视化非常重要。将人工评估结果与评估模型的预测对齐,可以极大提高评估的效率。随着评估模型性能的提升,可以渐进式地用自动评估来替代人工评估。
✲ 微调和数据合成与管理
在Colab笔记本中,需要根据实际情况调整一些参数。例如,可以根据数据集的token数量来设置max_sequence_length参数,借助rope scaling技术,模型能够支持任意长度的上下文。此外,还可以选择使用Instruct系列模型作为base model,直接在其基础上进行指令微调。为了节省资源,可以启用4-bit量化。同时,参考Q-Lora论文的建议,调整R值和alpha值,以在资源占用和模型质量之间取得平衡。
✲ 训练过程中的资源使用监控:
在模型训练过程中,用户可以通过Colab的资源监控选项卡实时观察GPU、内存和硬盘的使用情况。如果发现资源不足,可以考虑从T4升级到A100。通过监控资源占用,用户能够及时调整配置,确保微调任务稳定高效地进行。
✲ 模型训练的loss变化和最佳checkpoint的选择:
通过记录不同训练步数下的loss值,可以判断模型的收敛情况。理想的做法是选择loss下降曲线趋于平缓的点作为最佳checkpoint,这样既能充分训练模型,又能避免过拟合。为了事后方便筛选,可以设置每隔一定步数保存一次checkpoint。
✲ 模型微调完成后的保存与使用:
微调完成后,可以选择只保存adapter layers以加快保存速度。但更推荐的做法是保存完整模型,并使用float16精度,这样可以得到一个更通用和标准的模型格式,方便后续的部署和使用。
✲ 在Hugging Face上公开或私有发布微调后的模型:
用户可以选择在Hugging Face的模型库中公开或私有地发布自己微调后的模型。发布之前,需要在Hugging Face账号中创建一个访问令牌,并在发布时提供相应的用户名和令牌信息。通过在Hugging Face上发布模型,用户可以方便地与他人分享自己的微调成果。
✲ 使用微调后的模型进行推理(inference):
在使用微调后的模型进行推理时,首先需要加载保存的模型。接着,使用tokenizer对输入的文本进行处理,并将其传入模型。进行推理时,max_length参数需要与训练时保持一致,以确保生成的结果不会被截断。完成以上步骤后,就可以利用微调后的模型进行各种实际应用了。
来源:https://youtu.be/rANv5BVcR5k?si=7pJoD7X6JpRWo_Ex:
✲ 训练过程中的资源使用监控:
在模型训练过程中,用户可以通过Colab的资源监控选项卡实时观察GPU、内存和硬盘的使用情况。如果发现资源不足,可以考虑从T4升级到A100。通过监控资源占用,用户能够及时调整配置,确保微调任务稳定高效地进行。
✲ 模型训练的loss变化和最佳checkpoint的选择:
通过记录不同训练步数下的loss值,可以判断模型的收敛情况。理想的做法是选择loss下降曲线趋于平缓的点作为最佳checkpoint,这样既能充分训练模型,又能避免过拟合。为了事后方便筛选,可以设置每隔一定步数保存一次checkpoint。
✲ 模型微调完成后的保存与使用:
微调完成后,可以选择只保存adapter layers以加快保存速度。但更推荐的做法是保存完整模型,并使用float16精度,这样可以得到一个更通用和标准的模型格式,方便后续的部署和使用。
✲ 在Hugging Face上公开或私有发布微调后的模型:
用户可以选择在Hugging Face的模型库中公开或私有地发布自己微调后的模型。发布之前,需要在Hugging Face账号中创建一个访问令牌,并在发布时提供相应的用户名和令牌信息。通过在Hugging Face上发布模型,用户可以方便地与他人分享自己的微调成果。
✲ 使用微调后的模型进行推理(inference):
在使用微调后的模型进行推理时,首先需要加载保存的模型。接着,使用tokenizer对输入的文本进行处理,并将其传入模型。进行推理时,max_length参数需要与训练时保持一致,以确保生成的结果不会被截断。完成以上步骤后,就可以利用微调后的模型进行各种实际应用了。
来源:https://youtu.be/rANv5BVcR5k?si=7pJoD7X6JpRWo_Ex:
发现一个讲的很细的大语言模型微调教程,详细介绍了整个流程,包括数据准备、参数设置、资源监控等关键步骤。
基本没有技术能力也可以完成微调。想要了解 LLM 原理的可以按这个实践一下。
时间轴:
0:00 概念概览
3:02 自定义数据的准备
8:17 微调操作演示(T4 版本)
16:52 微调操作演示(A100 版本)
19:13 在 Hugging Face 上的保存与使用方法
文字版整理:
✲ 如何使用自己的数据对大语言模型进行微调(fine-tuning):
对大语言模型进行微调并不一定非常困难和昂贵。通过使用自己的数据集对预训练模型进行微调,可以让模型更好地适应特定的任务需求。微调过程能够在保留原模型语言理解能力的基础上,进一步提升其在特定领域或任务上的表现。
✲ 使用Hugging Face模型库和Unslaw工具进行模型微调:
Hugging Face提供了丰富的预训练语言模型资源,用户可以根据任务需求选择合适的模型作为基础进行微调。而Unslaw工具则提供了一套简单高效的微调流程,其优点包括出色的内存使用效率以及对扩展上下文窗口的支持。通过Unslaw,用户能够以较低的资源开销完成模型微调。
✲ 在Google Colab上使用免费/付费GPU资源进行微调:
Google Colab提供了免费和付费的GPU资源,用户可以根据任务的复杂程度选择使用T4或A100。对于大多数微调任务而言,免费的T4资源已经足够。但如果数据集较大或模型较为复杂,升级到A100可以获得更充裕的算力支持。Colab为用户提供了一个易于上手的模型微调环境。
✲ 准备自定义的微调数据集:
准备微调数据的过程并不复杂。用户可以直接使用纯文本文件作为数据来源,而无需进行额外的预处理。为了获得理想的微调效果,建议至少准备100-200个样本。在示例中,为了快速演示,仅使用了几个样本。通过一个简单的Python脚本,可以方便地将原始文本数据转换为微调所需的JSON格式。
✲ 修改Colab笔记本中的参数设置:
做了个AI短动画:Devices✨
AI绘画特别适合奇思妙想的多重变换!
仿佛在平面色彩中穿梭!
利用好这个特点可以做出很有趣的画面🌱
(果味十足🤣)
让AI可控绘制以前工作流的内容
很困难还很难出彩 一直在想AI原生的内容
到底具备什么要素
实践了一些工作流发现AI特别擅长
在潜意识中发散艺术细胞
不让它可控生成效果好得多!
新的AI内容应该放大逻辑正确、想象力的美学
点赞转发分享制作过程✨
*灵感来源于open interpreter宣传片
AI绘画特别适合奇思妙想的多重变换!
仿佛在平面色彩中穿梭!
利用好这个特点可以做出很有趣的画面🌱
(果味十足🤣)
让AI可控绘制以前工作流的内容
很困难还很难出彩 一直在想AI原生的内容
到底具备什么要素
实践了一些工作流发现AI特别擅长
在潜意识中发散艺术细胞
不让它可控生成效果好得多!
新的AI内容应该放大逻辑正确、想象力的美学
点赞转发分享制作过程✨
*灵感来源于open interpreter宣传片