본문 바로가기

Data Engineering/Cloud

[AWS] Claude2 token counting

Langchain의 callbacks으로 묶으려고 하니까 OpenAI의 자연어 처리 API를 사용하는 것으로 확인이 되어 token을 count할 수 없었다

현재 사용하고 있는 llm은 aws의 claude2기 때문에, open ai와 맞지 않아 구글링 해본 결과 여러 개를 테스트해볼 수 있었다

1토큰 당 처리되는 글자가 언어에 따라 달라진다는 점. 영어의 경우 4글자당 1개 토큰을 사용하는 반면 한글은
1글자당 2~3개의 토큰을 사용한다. 챗GPT 최대 입력 글자 수로 계산했을 때 영어는 1만 5384자이나 한글은 1365자에 불과하다라고 한다.

 

  1. callback을 시도하려했으나 오류발생
ImportError: cannot import name 'ChainManagerMixin' from 'langchain.callbacks.base'

langchain의 version을 == 0.0.179 로 하면 해결될 것으로 보임

 

 

2. from anthropic_bedrock import AnthropicBedrock

!pip install anthropic_bedrock

from langchain.llms import Bedrock
from anthropic_bedrock import AnthropicBedrock
client = AnthropicBedrock()

bedrock = Bedrock(
    model_id = 'anthropic.claude-v2',
    client = bedrock,
    model_kwargs = {
        "max_tokens_to_sample":4096,
        "temperature":0.5
    }
)

 

https://python.langchain.com/docs/modules/callbacks/token_counting

 

Token counting | 🦜️🔗 Langchain

LangChain offers a context manager that allows you to count tokens.

python.langchain.com

langchain의 token counting

 

https://github.com/anthropics/anthropic-bedrock-python

 

GitHub - anthropics/anthropic-bedrock-python

Contribute to anthropics/anthropic-bedrock-python development by creating an account on GitHub.

github.com

 

반응형