PostgresML:将PostgreSQL转变为AI应用程序平台的扩展

智能真的很好说 2024-03-07 06:32:52
了解如何在 PostgreSQL 中使用 PostgresML 扩展进行文本翻译、情绪分析和其他与 AI 相关的任务。

PostgresML 是 PostgreSQL 生态系统的扩展,允许在数据库中训练、微调和使用各种机器学习和大型语言模型。该扩展将 PostgreSQL 变成了一个完整的 MLOps 平台,支持各种自然语言处理任务,并扩展了 Postgres 作为向量数据库的功能。

该扩展是对 pgvector 的补充,pgvector 是另一个基础扩展,适用于希望使用 Postgres 作为 AI 用例的矢量数据库的应用程序。借助 pgvector,应用程序可以轻松存储和处理由大型语言模型 (LLM) 生成的嵌入。PostgresML 通过在数据库中启用模型的训练和执行来更进一步。

让我们看看 PostgresML 扩展通过使用 PostgreSQL 进行语言翻译任务和用户情绪分析的实际应用。

启用 PostgresML

开始使用 PostgresML 的最简单方法是在 Docker 中部署具有预安装扩展的数据库实例。

使用以下命令在容器中启动带有 PostgresML 的 PostgreSQL,并使用 psql 工具打开数据库会话:

docker run \br -it \br -v postgresml_data:/var/lib/postgresql \br -p 5432:5432 \br -p 8000:8000 \br ghcr.io/postgresml/postgresml:2.7.12 \br sudo -u postgresml psql -d postgresml

容器启动并打开 psql 会话后,请检查 pgml 扩展(PostgresML 的缩写)是否在扩展列表中:

SQL算法

select * from pg_extension;brbr oid | extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extconditionbr-------+---------+----------+--------------+----------------+------------+-----------+--------------br 13540 | plpgsql | 10 | 11 | f | 1.0 | |br 16388 | pgml | 16385 | 16387 | f | 2.7.12 | |br(2 rows)

最后,如果运行该命令,你将看到 PostgresML 内部使用的数据库对象列表。\d

SQL算法

\dbr List of relationsbr Schema | Name | Type | Ownerbr--------+-----------------------+----------+------------br pgml | deployed_models | view | postgresmlbr pgml | deployments | table | postgresmlbr pgml | deployments_id_seq | sequence | postgresmlbr pgml | files | table | postgresmlbr pgml | files_id_seq | sequence | postgresmlbr pgml | models | table | postgresmlbr pgml | models_id_seq | sequence | postgresmlbr...truncated

使用 PostgresML 进行文本翻译

PostgresML 与 Hugging Face Transformers 集成,以在 PostgreSQL 中启用最新的自然语言处理 (NLP) 模型。Hugging Face 具有数千个预训练模型,可用于情感分析、文本分类、摘要、翻译、问答等任务。

例如,假设您在 PostgreSQL 中存储一个产品目录,所有产品描述均为英文。现在,您需要为从法国访问您的电子商务网站的客户显示法语描述。

如果有人对 Apple 的 AirTag 感兴趣怎么办?PostgresML 可以使用其中一个翻译转换器来促进从英语到法语的翻译:

SQL算法

SELECT pgml.transform(br 'translation_en_to_fr',br inputs => ARRAY[br 'AirTag is a supereasy way to keep track of your stuff. br Attach one to your keys, slip another in your backpack. br And just like that, they’re on your radar in the Find My app, br where you can also track down your Apple devices and keep up with br friends and family.'br ]br) AS french;brbr-[ RECORD 1 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------brfrench | [{"translation_text": "AirTag est un moyen super facile de suivre vos objets. Attachez-leur à vos clés, glissez-leur dans votre sac à dos. Et comme ça, ils sont sur votre radar dans l’app Find My, où vous pouvez aussi retrouver vos appareils Apple et suivre vos amis et votre famille."}]

translation_en_to_fr- 使用 Hugging Face 模型之一的预配置变压器的名称。inputs- 需要翻译的文本数组。

如果电子商务网站也迎合西班牙语国家,则可以使用不同的模式将产品描述翻译成西班牙语:

SQL算法

select pgml.transform(br task => '{"task": "translation", br "model": "Helsinki-NLP/opus-mt-en-es"br }'::JSONB,br inputs => ARRAY[br 'AirTag is a supereasy way to keep track of your stuff. br Attach one to your keys, slip another in your backpack. br And just like that, they’re on your radar in the Find My app, br where you can also track down your Apple devices and keep up with br friends and family.'br ] br) as spanish;brbr-[ RECORD 1 ]-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------brspanish | [{"translation_text": "AirTag es una manera superfácil de hacer un seguimiento de tus cosas. Conecta una a tus llaves, desliza otra en tu mochila. Y así mismo, están en tu radar en la aplicación Find My, donde también puedes rastrear tus dispositivos Apple y mantenerte al día con tus amigos y familiares."}]

task- 使用Helsinki-NLP模型之一进行翻译的自定义任务。您可以从 Hugging Face 中心提供的数千种型号中进行选择。

总体而言,PostgresML可以通过将已翻译的文本返回回应用层来改善用户体验。

使用 PostgresML 进行情绪分析

使用 PostgresML 执行更复杂的 ML 和 AI 相关任务怎么样?其中一项任务是对数据库中插入或存储的数据进行情感分析。

想象一下,电子商务网站的客户可以分享他们对产品的反馈。PostgresML可以帮助监控客户对特定产品的情绪,并主动回应各种疑虑和投诉。

例如,一位客户购买了头戴式设备,并分享了 PostgresML 归类为负面的反馈:

SQL算法

SELECT pgml.transform(br task => 'text-classification',br inputs => ARRAY[br 'I regret buying this headset. It does not connect to my laptop over Bluetooth.'br ]br) AS positivity;brbr-[ RECORD 1 ]----------------------------------------------------brpositivity | [{"label": "NEGATIVE", "score": 0.9996261596679688}]

task- 文本分类任务的预配置转换。inputs- 情绪分析的文本。

公司代表及时联系了客户并帮助解决了问题。因此,客户分享了被归类为正面的后续反馈。

SQL算法

SELECT pgml.transform(br task => 'text-classification',br inputs => ARRAY[br 'I regret buying this headset. It does not connect to my laptop over Bluetooth.',br 'The problem is solved. Jane reached out to me and helped with the setup. Love the product!'br ]br) AS positivity;brbr-[ RECORD 1 ]-------------------------------------------------------------------------------------------------------brpositivity | br[{"label": "NEGATIVE", "score": 0.9996261596679688}, br{"label": "POSITIVE", "score": 0.999795138835907}]

就像翻译任务一样,您可以利用 Hugging Face 中的数千个其他模型进行情感分析和其他文本分类任务。例如,以下是切换到 RoBERTa 模型的方法,该模型是在 X (Twitter) 上大约 40,000 个英文帖子上训练的:

SQL算法

SELECT pgml.transform(br task => '{"task": "text-classification",br "model": "finiteautomata/bertweet-base-sentiment-analysis"br }'::jsonb,br inputs => ARRAY[br 'I regret buying this headset. It does not connect to my laptop over Bluetooth.',br 'The problem is solved. Jane reached out to me and helped with the setup. Love the product!'br ]br) AS positivity;brbr-[ RECORD 1 ]----------------------------------------------------------------------------------------------brpositivity | [{"label": "NEG", "score": 0.9769334197044371}, br {"label": "POS", "score": 0.9884902238845824}]

RoBERTa模型还准确地对评论的情绪进行了分类,使电子商务公司能够在负面反馈进入PostgreSQL后立即解决用户的担忧和投诉。

总结

作为一个向量数据库,Postgres 并不局限于存储和查询嵌入。借助 PostgresML 扩展,Postgres 可以转换为用于各种 AI 和 ML 任务的计算平台。

原文标题:PostgresML: Extension That Turns PostgreSQL Into a Platform for AI Apps

原文链接:https://dzone.com/articles/postgresml-extension-that-turns-postgresql-into-a

作者:Denis Magda

编译:LCR

0 阅读:0

智能真的很好说

简介:感谢大家的关注