LLM) HuggingFace 에 사용하는 Tokenizer 의 결과 비교하는 Streamlit APP

2024. 6. 1. 16:09관심있는 주제/LLM

 

최근 인공지능 분야에서 언어 모델의 발전은 눈부십니다. 이러한 모델들은 텍스트를 처리하기 위해 고유한 방식으로 단어를 토큰화하는 토크나이저를 사용합니다. 본 글에서는 Python의 인기 라이브러리인 Streamlit을 사용하여 여러 LLM 토크나이저를 비교하는 웹 애플리케이션을 만들어서 배포했습니다.

이 앱은 Hugging Face의 transformers 라이브러리를 통해 다양한 토크나이저를 로드하고, 사용자가 입력한 텍스트에 대해 토큰화를 수행합니다. 사용자는 웹 인터페이스를 통해 원하는 토크나이저를 선택하고, 토크나이저의 세부 정보 및 토큰화된 결과를 비교할 수 있습니다.

 

Streamlit 앱 (링크)

- 아래에 임베디된 앱이 보이지 않으면 위의 링크를 클릭해서 활성화 부탁드립니다 :)

 

 

설정값

HuggingFace Token

HuggingFace 사이트에 접속 후 설정에 들어간 다음 Access Tokens에서 Token을 생성하고 복사해서 사용

Tokenizer Names

모델 여러개 가능하고 `,`로 구분하기

google/gemma-7b,mistralai/Mistral-7B-Instruct-v0.3,meta-llama/Meta-Llama-3-8B

 

 

기술 스택

  • Streamlit: 파이썬을 사용한 빠르고 간편한 웹 앱 개발을 가능하게 하는 라이브러리.
  • Transformers: 다양한 언어 모델을 위한 사전 훈련된 모델과 토크나이저를 제공하는 라이브러리.
  • TextHistory: 토큰별로 시각화하여 볼 수 있는 것을 추가하였습니다.

애플리케이션 구조

  • 환경 설정: Streamlit 페이지 설정과 필요한 라이브러리 로드.
  • 사용자 인증: Hugging Face 토큰을 이용하여 API 인증.
  • 토크나이저 선택: 사용자 입력을 받아 원하는 토크나이저를 선택. (huggingface 기준)
  • 토큰화 실행: 선택된 토크나이저로 텍스트를 토큰화하고, 토큰화된 결과를 사용자에게 보여줌.
  • 결과 분석: 토큰의 갯수, 고유 토큰의 갯수, 특수 토큰 등을 분석하여 결과를 제시.

특징

  • 캐싱: st.cache를 사용하여 모델 로딩을 최적화하고, 반복 실행 시 속도 향상.
  • 동적 UI: 사용자 입력에 따라 동적으로 토크나이저 옵션을 조정하고 결과를 시각화.
  • 보안: 사용자의 Hugging Face 토큰을 안전하게 입력받고 관리.

배포 결과(https://llm-tokenizer-app-srlee.streamlit.app/)

 

화면 구성

 

728x90