🦜🔗使用Pydantic和Langchain构建稳健的机器学习后端

🦜🔗使用Pydantic和Langchain构建机器学习后端

来自Unsplash的Bradley Ziffer的照片

学习如何防止用户和LLMs在您的代码中犯错误

介绍

众所周知,数据科学家通常不是最好的程序员。他们往往具有高级的理论技能,擅长数学和统计学,但他们不能独立开发全栈应用,甚至是简单的应用。

我是第一个写这类文章的人,为了提高自己的编程能力而写。今天我要告诉你关于Pydantic,这是一个现在在Python编程中被广泛使用的库,主要用于数据验证,以及如何使用它来使基于语言链的应用更加健壮。

开始使用Pydantic

让我们快速看一个Pydantic的用例,对于数据科学家来说它可以很有用。当我们构建一个机器学习或深度学习模型时,例如使用PyTorch或Tensorflow,我们知道模型的质量将取决于许多超参数,我们需要设置这些超参数。

假设你在一个大团队中,你想让某个人可以启动大量的实验并查看结果。为此,你可以创建一个简单的前端界面,让启动实验的人可以使用图形用户界面而不是编写Python代码。

显然,当你从用户那里接收输入参数时,你必须进行大量的检查,因为如果你的函数期望输入一个整数,但用户输入了1.0而不是1,你的代码很可能会出问题。

现在让我们通过一个具体的例子来说明。我们在这里创建一个非常简单的PyTorch模型,它期望初始化一些超参数。

import torchimport torch.nn as nnclass SimpleModel(nn.Module):    def __init__(self, input_size, hidden_size, output_size, activation):        super(SimpleModel, self).__init__()        self.input_size = input_size        self.hidden_size = hidden_size        self.output_size = output_size        self.activation = activation        # Define the layers        self.fc1 = nn.Linear(self.input_size, self.hidden_size)        self.activation_func =…