[掌握LLM Token使用追踪:优化成本的关键]

144 阅读2分钟

掌握LLM Token使用追踪:优化成本的关键

在将您的应用程序推向生产环境时,追踪Token使用以计算成本是一项重要的任务。本文将指导您如何从LangChain模型调用中获取此信息,以便更好地进行成本管理。

引言

随着大规模语言模型(LLM)在各种应用中的普及,准确追踪Token的使用变得至关重要。这不仅可以帮助开发者控制使用成本,还能提升模型调用的效率。本文旨在介绍如何使用LangSmith和回调机制,来追踪您的LLM应用程序中的Token使用情况。

主要内容

使用LangSmith进行Token追踪

LangSmith是一款出色的工具,可以帮助您跟踪LLM应用中的Token使用。通过参考LangSmith的快速入门指南,您可以轻松集成该工具。

使用回调机制

一些API提供了特定的回调上下文管理器,可以帮助您在多次调用中追踪Token使用。如果您的模型没有现成的集成,可以尝试根据OpenAI回调管理器,自行创建一个自定义回调管理器。

OpenAI的示例

让我们首先看看如何在一次简单的Chat模型调用中追踪Token使用。

from langchain_community.callbacks import get_openai_callback
from langchain_openai import OpenAI

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

# 使用API代理服务提高访问稳定性
with get_openai_callback() as cb:
    result = llm.invoke("Tell me a joke")
    print(result)
    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}")

代码示例

单次调用示例

在上述代码中,我们使用了get_openai_callback来监控一次简单的LLM调用。这是了解Token使用的第一步。

多次调用示例

我们可以在上下文管理器内跟踪多个调用:

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

# 使用API代理服务提高访问稳定性
with get_openai_callback() as cb:
    response = chain.invoke({"topic": "birds"})
    print(response)
    response = chain.invoke({"topic": "fish"})
    print("--")
    print(response)

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}")

常见问题和解决方案

如何处理流式数据?

当前,get_openai_callback不支持对流式Token进行计数。对于需要在流式环境中准确计数的场合,您可以:

  1. 使用针对聊天模型的推荐方法。
  2. 实现一个自定义的回调处理器,使用合适的分词器进行计数。
  3. 使用如LangSmith的监控平台。

总结和进一步学习资源

通过本文的介绍,您应该可以在LangChain应用程序中有效追踪Token使用情况,从而优化成本管理。为了进一步学习,您可以访问以下资源:

参考资料

  • LangSmith Quick Start Guide
  • LangChain Community Callbacks Documentation
  • OpenAI Token Management Guide

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

---END---