问题验证
- 我已经在文档和discord上寻找答案。
问题
你好!
假设我使用一个多模态模型,如 gpt-4o
,以及一个文本模型,如 gemini
。
我如何最好地使用 TokenCountingHandler
来监听来自每个模型的调用,并使用适当的分词器每次计算令牌?
似乎像这样声明两个处理程序:
mm_llm_token_counter = TokenCountingHandler(
tokenizer=gpt_tokenizer,
event_starts_to_ignore=[CBEventType.EMBEDDING],
event_ends_to_ignore=[CBEventType.EMBEDDING],
)
llm_token_counter = TokenCountingHandler(
tokenizer=gemini_tokenizer,
event_starts_to_ignore=[CBEventType.EMBEDDING],
event_ends_to_ignore=[CBEventType.EMBEDDING],
)
只会有一个处理程序记录调用。
非常感谢!
2条答案
按热度按时间axzmvihb1#
嘿,@paulpalmieri!我在这里帮助你解决在等待人工维护者时遇到的任何问题或疑问。让我们一起解决这个问题!
要使用
TokenCountingHandler
监听每个模型的电话并使用适当的分词器每次计算令牌数,你应该使用一个管理多个CallbackManager
示例的单个CallbackManager
,每个示例都用适当的分词器配置了每个模型。以下是如何实现这一点的示例:这种设置确保每个
TokenCountingHandler
都为其各自的模型 1(https://github.com/run-llama/llama_index/blob/main/docs/docs/module_guides/observability/callbacks/token_counting_migration.md)2(https://github.com/run-llama/llama_index/blob/main/docs/docs/examples/callbacks/TokenCountingHandler.ipynb)3(https://github.com/run-llama/llama_index/blob/main/llama-index-legacy/llama_index/legacy/callbacks/token_counting.py)4(https://github.com/run-llama/llama_index/blob/main/llama-index-core/llama_index/core/callbacks/token_counting.py) 正确记录通话。xyhw6mcr2#
你必须将每个处理程序附加到LLM。
OpenAI(..., callback_manager=CallbackManager([mm_llm_token_counter])
Gemini(..., callback_manager=CallbackManager([llm_token_counter])