当前位置: 首页 > news >正文

百度文库web网站开发职业技能培训学校

百度文库web网站开发,职业技能培训学校,兴润建设集团有限公司网站,深圳建网站哪家好分类目录:《自然语言处理从入门到应用》总目录 特征存储是传统机器学习中的一个概念,它确保输入模型的数据是最新和相关的。在考虑将LLM应用程序投入生产时,这个概念非常重要。为了个性化LLM应用程序,我们可能希望将LLM与特定用户…

分类目录:《自然语言处理从入门到应用》总目录


特征存储是传统机器学习中的一个概念,它确保输入模型的数据是最新和相关的。在考虑将LLM应用程序投入生产时,这个概念非常重要。为了个性化LLM应用程序,我们可能希望将LLM与特定用户的最新信息结合起来。特征存储可以是保持数据更新的好方法,而LangChain提供了一种将该数据与LLM结合的简单方式。

在下面的示例中,我们将展示如何将提示模板连接到特征存储。其基本思想是从提示模板中调用特征存储以检索值,然后将这些值格式化到提示中。

Feast

首先,我们将使用流行的开源特征存储框架Feast。首先,假设我们已经做完了Feast的入门步骤。紧接着,我们将基于入门示例构建,并创建一个LLMChain,用于驱动有关其最新统计信息。

加载 Feast 存储

根据Feast的README中的说明进行设置:

from feast import FeatureStore# 根据存储路径进行更新
feast_repo_path = "../../../../../my_feature_repo/feature_repo/"
store = FeatureStore(repo_path=feast_repo_path)
提示

在这里,我们将设置一个自定义的FeastPromptTemplate。这个提示模板将接收一个司机 ID,查找他们的统计数据,并将这些统计数据格式化到提示中。需要注意的是,这个提示模板的输入只有driver_id,因为这是唯一由用户定义的部分,所有的其它变量都在提示模板内部查找。

from langchain.prompts import PromptTemplate, StringPromptTemplate
template = """根据司机的最新统计数据,写一个便签将这些统计数据传达给他们。
如果他们的对话率超过0.5,请给他们一个赞美。否则,在最后讲一个关于鸡的愚蠢笑话,让他们感觉好一些。以下是司机的统计数据:
对话率:{conv_rate}
接受率:{acc_rate}
平均每日行程数:{avg_daily_trips}你的回复:"""
prompt = PromptTemplate.from_template(template)
class FeastPromptTemplate(StringPromptTemplate):def format(self, **kwargs) -> str:driver_id = kwargs.pop("driver_id")feature_vector = store.get_online_features(features=['driver_hourly_stats:conv_rate','driver_hourly_stats:acc_rate','driver_hourly_stats:avg_daily_trips'],entity_rows=[{"driver_id": driver_id}]).to_dict()kwargs["conv_rate"] = feature_vector["conv_rate"][0]kwargs["acc_rate"] = feature_vector["acc_rate"][0]kwargs["avg_daily_trips"] = feature_vector["avg_daily_trips"][0]return prompt.format(**kwargs)
prompt_template = FeastPromptTemplate(input_variables=["driver_id"])
print(prompt_template.format(driver_id=1001))

输出:

根据司机的最新统计数据,写一个便签将这些统计数据传达给他们。
如果他们的对话率超过0.5,请给他们一个赞美。否则,在最后讲一个关于鸡的愚蠢笑话,让他们感觉好一些。以下是司机的统计数据:
对话率:0.4745151400566101
接受率:0.055561766028404236
平均每日行程数:936你的回复:

在上面的例子中,我们创建了一个FeastPromptTemplate的实例,并使用format方法为特定的driver_id生成一个提示。使用store.get_online_features从特征存储中检索司机的特征向量,并将相关统计数据填充到提示模板中。现在,我们可以将生成的提示文本用于进一步处理或作为输入提供给您的语言模型。

在链式结构中使用

现在我们可以在链式结构中使用它,创建一个由特征存储支持的个性化链式结构:

from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain
chain = LLMChain(llm=ChatOpenAI(), prompt=prompt_template)
chain.run(1001)

输出:

"嗨!我想向您更新一下您当前的统计数据。您的接受率为0.055561766028404236,平均每日行程数为936。虽然您当前的对话率为0.4745151400566101,但我相信只要再加一点努力,您就能超过0.5的标准!继续保持良好的工作!还记得,即使鸡无法总是穿过马路,但它们仍会尽力而为。"

以上是根据提供的统计数据生成的更新消息。消息中包含司机的接受率、平均每日行程数和对话率的信息。鼓励司机继续努力工作,并给予他们一些鸡的笑话来增加一些轻松的氛围。

Tecton

上面,我们展示了如何在LangChain中使用流行的开源自管特征存储Feast。下面的示例将展示如何使用Tecton进行类似的集成。Tecton是一个完全托管的特征平台,用于协调完整的ML特征生命周期,从转换到在线服务,具备企业级SLA。

前提条件
  • Tecton部署
  • TECTON_API_KEY环境变量设置为有效的服务账户密钥
定义和加载特征

我们将使用Tecton教程中user_transaction_counts的Feature View作为Feature Service的一部分。为简单起见,我们只使用了一个Feature View;然而,更复杂的应用可能需要更多的Feature View来检索其提示所需的特征。

user_transaction_metrics = FeatureService(name="user_transaction_metrics",features=[user_transaction_counts]
)

上述Feature Service预计将被应用到实时工作空间中。在本示例中,我们将使用prod工作空间。

import tectonworkspace = tecton.get_workspace("prod")
feature_service = workspace.get_feature_service("user_transaction_metrics")
Prompts

在这里,我们将设置一个自定义的TectonPromptTemplate。该提示模板将接收一个用户ID,查找其统计数据,并将这些统计数据格式化为提示。需要注意的是,该提示模板的输入只有user_id,因为这是唯一由用户定义的部分,所有其他的变量都在提示模板内部查找。

from langchain.prompts import PromptTemplate, StringPromptTemplate
template = """给定供应商的最新交易统计数据,根据以下规则给他们写一封信:1. 如果他们在过去一天内有交易,向他们祝贺最近的销售成绩。
2. 如果过去一天没有交易,但过去30天内有交易,逗趣地鼓励他们多卖一些。
3. 最后总是加上一个关于鸡的愚蠢笑话。以下是供应商的统计数据:
过去一天的交易数量:{transaction_count_1d}
过去30天的交易数量:{transaction_count_30d}您的回复:"""
prompt = PromptTemplate.from_template(template)
class TectonPromptTemplate(StringPromptTemplate):def format(self, **kwargs) -> str:user_id = kwargs.pop("user_id")feature_vector = feature_service.get_online_features(join_keys={"user_id": user_id}).to_dict()kwargs["transaction_count_1d"] = feature_vector["user_transaction_counts.transaction_count_1d_1d"]kwargs["transaction_count_30d"] = feature_vector["user_transaction_counts.transaction_count_30d_1d"]return prompt.format(**kwargs)prompt_template = TectonPromptTemplate(input_variables=["user_id"])
print(prompt_template.format(user_id="user_469998441571"))

输出:

给定供应商的最新交易统计数据,根据以下规则给他们写一封信:如果他们在过去一天内有交易,向他们祝贺最近的销售成绩。
如果过去一天没有交易,但过去30天内有交易,逗趣地鼓励他们多卖一些。
最后总是加上一个关于鸡的愚蠢笑话。
以下是供应商的统计数据: 过去一天的交易数量:657 过去30天的交易数量:20326您的回复:
在链式模型中使用

现在我们可以在链式模型中使用它,创建一个通过Tecton Feature平台支持的个性化链式模型:

from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain
chain = LLMChain(llm=ChatOpenAI(), prompt=prompt_template)
chain.run("user_469998441571")

输出:

'哇,恭喜您最近的销售成绩!您的业务就像热气球上的一只鸡一样飞得很高!继续保持良好的工作!'

Featureform

最后,我们将使用Featureform,一个开源的企业级特征存储,来运行相同的示例。Featureform允许我们使用Spark等基础设施或本地环境来定义特征转换。

初始化Featureform

我们可以按照README中的说明初始化Featureform中的转换和特征。

import featureform as ffclient = ff.Client(host="demo.featureform.com")
Prompts

在这里,我们将设置一个自定义的FeatureformPromptTemplate,该提示模板将使用用户每笔交易的平均金额作为输入。需要注意的是,该提示模板的输入只有avg_transaction,因为所有其他变量都在提示模板内部查找。

from langchain.prompts import PromptTemplate, StringPromptTemplate
template = """Given the amount a user spends on average per transaction, let them know if they are a high roller. Otherwise, make a silly joke about chickens at the end to make them feel betterHere are the user's stats:
Average Amount per Transaction: ${avg_transcation}Your response:"""
prompt = PromptTemplate.from_template(template)
class FeatureformPromptTemplate(StringPromptTemplate):def format(self, **kwargs) -> str:user_id = kwargs.pop("user_id")fpf = client.features([("avg_transactions", "quickstart")], {"user": user_id})return prompt.format(**kwargs)prompt_template = FeatureformPrompTemplate(input_variables=["user_id"])
print(prompt_template.format(user_id="C1410926"))
在对话链中使用

现在我们还可以将其用于对话链中,成功创建一个由Featureform Feature平台支持的个性化对话链。

from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain
chain = LLMChain(llm=ChatOpenAI(), prompt=prompt_template)
chain.run("C1410926")

参考文献:
[1] LangChain 🦜️🔗 中文网,跟着LangChain一起学LLM/GPT开发:https://www.langchain.com.cn/
[2] LangChain中文网 - LangChain 是一个用于开发由语言模型驱动的应用程序的框架:http://www.cnlangchain.com/

http://www.wooajung.com/news/23135.html

相关文章:

  • 礼县建设局网站百度搜索链接入口
  • 原神网页设计素材宁波seo关键词排名
  • 郑州pc网站开发网络营销工程师培训
  • 做网站代码的含义外链生成
  • 织梦网站模板如何安装东莞seo排名公司
  • wordpress blog 主题广告网站建设网站排名优化
  • 工作号做文案素材的网站怎么做网页宣传
  • 做报纸网站代运营一般收费
  • 网站功能提升权限最有效的免费推广方法
  • 个人网站平台线上营销有哪些
  • 群晖怎么做网站常用的网络推广方式有哪些
  • 找外包做网站不给代码百度搜索关键词技巧
  • 微信团购群网站怎样做企业网站制作多少钱
  • 网站挂马解决济南做网站公司
  • 国内大事件最新新闻seo是什么
  • 建立一个平台网站需要多少钱深圳百度推广优化
  • 成都有做公司网站的公司吗海外广告联盟平台推广
  • 网站建设装什么系统企业网站优化报告
  • wordpress用户名北京seo百度推广
  • 做h5页面网站有哪些网络推广有效果吗
  • 重庆绝美的十大冷门景点厦门seo全网营销
  • wordpress 在线pdf短视频seo营销系统
  • 广东网站建设微信商城运营托管竞价推广公司
  • 没学过计算机开始学做网站软文案例500字
  • 到国外网站上做兼职翻译百度搜索竞价
  • 做暧暧视频网站日本外贸营销网站建设
  • 我想做自己网站怎么做小红书推广价目表
  • 湖南专业做网站公司有哪些企业管理培训课程视频
  • 外贸公司没网站 怎么做业务西安seo关键词排名
  • 新网网站制作太原推广团队