使用和学习人工智能堆栈的lm驱动产品,建立AI膳食计划,第2部分,分析数据集内容
扫描二维码
随时随地手机看文章
你已经阅读了这个理论,了解了数据的重要性以及所有可以使用的方法。我们准备好开始创建数据集了吗?呃,没那么快。我们需要确保我们了解问题空间,并使用它来确定我们甚至需要什么数据。
用户体验
以人为本的设计 是一个原则,它总是从用户和他们的需要开始考虑(而不是技术、政策或其他外部因素)。这可能是一个非常令人兴奋和有益的活动,以更好地了解目标用户和如何服务他们。确保用户体验预期是明确的,也可以通过确保团队中的每个人都能适应相同的成功定义来降低建模项目的风险。
在澄清用户身份时要问的一些问题包括:
· 我们需要从用户那里得到什么信息?
· 提供的信息是开放式的还是某种结构化的?
· 模型应如何响应信息不完整的提示?
· 我们的输出应该是结构化的,还是以散文的形式?
· 我们是否应该总是生成输出,或者有时要求用户澄清或提供更多信息?
在我们的案例中,我们将坚持开放式输入和结构化输出,以允许用户灵活性,同时保持可预测性。我们将避免后续行动,以降低我们的概念证明的复杂性。
现有各种技术和指南 在别处 帮助建模团队通过更好地理解用户来制定更好的需求。
实体关系图
ER图显示了系统中涉及的所有实体和关系,是理解系统、用例等的一个非常强大的工具。画一幅用例的图片,我们可以使用ERDS来精确了解我们需要捕捉的数据,同时确保我们没有盲点。
创建ER图的过程很简单:写出所有你能想到的与应用程序相关的实体(名词)。然后写出他们之间的关系,就这样!实际上,这是经过几个回合完成的,但它创建了一个丰富的工具,对理解和交流您的系统都有用。
下面是我们为雷佩巴迪绘制的急诊室图:
我们的关系很简单,所以 相当复杂的 .
数据集属性
等等!我们还需要对我们的数据集做出更多的决定。下面是一些考虑因素,但您必须深入思考您的用例,以确保您涵盖了您的数据集的所有基础。
数据集类型
在本系列中,我们坚持收集和培训SFT数据,但正如我们之前所述,有许多不同类型的数据需要培训。
输入和输出属性
在建模中,需要考虑的输入变量的数量和生成输出的变量数量是重要的考虑因素,也是衡量用例复杂性的指标。在决定这一点时应该非常谨慎,因为这将影响到你需要包含在数据中的多种情况,并影响到你需要收集的数据量(这也将影响到所需的计算,从而影响到训练你的模型的成本)。
在我们的案例中,让我们使用以下输入:
· 年龄
· 高度
· 重量
· 活动水平
· 饮食限制
· 个人偏好/目标
在输出量上,让我们包括多餐的每日膳食计划,并为每顿膳食提供具体的指导:
· 早餐
· 午餐
· 晚餐
· 小吃1
· 小吃2
每餐:
· 碳水化合物
· 鸡/鱼/肉
· 乳清蛋白
· 蔬菜
· 油/脂
分布
对于您正在探索的每个属性,您应该考虑该属性的自然多样性。高度多样化的属性比有界限的属性需要更多的数据来充分覆盖。例如,考虑创建一个数据集,允许用户询问周期表中的元素。简单:周期表中只有这么多元素。现在考虑一个经过训练的LLM,它可以识别出在提供元素清单时所有可能的化合物。对于任何给定的输入,可能的输出数量实际上是无限的,这使这项任务更具挑战性。
此外,请注意,你的培训数据越多样化,模型就能更好地将概念推广到培训语料库中没有的例子。
为了证明我们的概念,我们不会用尽每个属性的分布,而是专注于有限数量的示例。
边缘案例
在定义您的需求时,您还可能希望确定您希望避免的特定边缘情况。
在我们的案例中,让我们避免在用户怀孕时回答任何问题,而是引导他们寻求专业人员的帮助。
我们现在有一个很好的数据收集任务规范,除了一件事:我们需要多少数据?正如我们前面所描述的,这是由输入/输出属性、这些属性的分布以及我们想要处理的边缘情况的数目所决定的。
一个快速了解你需要多少价值的方法是考虑一个简单的公式:
1. 对于每个输入属性,评估值可以包含多少"桶"。例如,年龄可能是0-18岁,18-40岁,40-60岁,或者60岁以上4桶。
2. 在你所有的属性中,把水桶的数量加起来。
3. 加上用例的数量。
这是一种粗略衡量你需要多少数据来完全覆盖你的用例的方法,也是一个出发点,可以考虑你要排除哪些数据,或者你不希望考虑某个特定属性的分布。