Snowflake(SiS)のStreamlitを使ったトークン数チェックアプリを作ってみた
導入
こんにちは、私は Snowflake のセールス エンジニアです。さまざまな投稿を通じて、私の経験や実験の一部を皆さんと共有したいと思います。この記事では、Snowflake で Streamlit を使用してトークン数を確認し、Cortex LLM のコストを見積もるアプリを作成する方法を説明します。
注: この投稿は私の個人的な見解を表すものであり、Snowflake の見解ではありません。
Snowflake (SiS) の Streamlit とは何ですか?
Streamlit は、HTML/CSS/JavaScript を必要とせずに、単純な Python コードで Web UI を作成できる Python ライブラリです。アプリ ギャラリーで例をご覧ください。
Snowflake の Streamlit を使用すると、Snowflake 上で Streamlit Web アプリを直接開発して実行できます。 Snowflake アカウントだけで簡単に使用でき、Snowflake テーブル データを Web アプリに統合するのに最適です。
Snowflake の Streamlit について (Snowflake 公式ドキュメント)
スノーフレーク コーテックスとは何ですか?
Snowflake Cortex は、Snowflake の生成 AI 機能のスイートです。 Cortex LLM を使用すると、SQL または Python の単純な関数を使用して、Snowflake 上で実行されている大規模な言語モデルを呼び出すことができます。
大規模言語モデル (LLM) 関数 (Snowflake Cortex) (Snowflake 公式ドキュメント)
機能の概要
画像
注: 画像内のテキストは、芥川龍之介の「蜘蛛の糸」から引用しています。
特徴
- ユーザーは Cortex LLM モデルを選択できます
- ユーザー入力テキストの表示文字数とトークン数
- 文字に対するトークンの比率を表示します
- Snowflake クレジット価格に基づいて推定コストを計算します
注: Cortex LLM 価格表 (PDF)
前提条件
- Cortex LLM アクセスを持つ Snowflake アカウント
- snowflake-ml-python 1.1.2 以降
注: Cortex LLM リージョンの可用性 (公式 Snowflake ドキュメント)
ソースコード
import streamlit as st from snowflake.snowpark.context import get_active_session import snowflake.snowpark.functions as F # Get current session session = get_active_session() # Application title st.title("Cortex AI Token Count Checker") # AI settings st.sidebar.title("AI Settings") lang_model = st.sidebar.radio("Select the language model you want to use", ("snowflake-arctic", "reka-core", "reka-flash", "mistral-large2", "mistral-large", "mixtral-8x7b", "mistral-7b", "llama3.1-405b", "llama3.1-70b", "llama3.1-8b", "llama3-70b", "llama3-8b", "llama2-70b-chat", "jamba-instruct", "gemma-7b") ) # Function to count tokens (using Cortex's token counting function) def count_tokens(model, text): result = session.sql(f"SELECT SNOWFLAKE.CORTEX.COUNT_TOKENS('{model}', '{text}') as token_count").collect() return result[0]['TOKEN_COUNT'] # Token count check and cost calculation st.header("Token Count Check and Cost Calculation") input_text = st.text_area("Select a language model from the left pane and enter the text you want to check for token count:", height=200) # Let user input the price per credit credit_price = st.number_input("Enter the price per Snowflake credit (in dollars):", min_value=0.0, value=2.0, step=0.01) # Credits per 1M tokens for each model (as of 2024/8/30, mistral-large2 is not supported) model_credits = { "snowflake-arctic": 0.84, "reka-core": 5.5, "reka-flash": 0.45, "mistral-large2": 1.95, "mistral-large": 5.1, "mixtral-8x7b": 0.22, "mistral-7b": 0.12, "llama3.1-405b": 3, "llama3.1-70b": 1.21, "llama3.1-8b": 0.19, "llama3-70b": 1.21, "llama3-8b": 0.19, "llama2-70b-chat": 0.45, "jamba-instruct": 0.83, "gemma-7b": 0.12 } if st.button("Calculate Token Count"): if input_text: # Calculate character count char_count = len(input_text) st.write(f"Character count of input text: {char_count}") if lang_model in model_credits: # Calculate token count token_count = count_tokens(lang_model, input_text) st.write(f"Token count of input text: {token_count}") # Ratio of tokens to characters ratio = token_count / char_count if char_count > 0 else 0 st.write(f"Token count / Character count ratio: {ratio:.2f}") # Cost calculation credits_used = (token_count / 1000000) * model_credits[lang_model] cost = credits_used * credit_price st.write(f"Credits used: {credits_used:.6f}") st.write(f"Estimated cost: ${cost:.6f}") else: st.warning("The selected model is not supported by Snowflake's token counting feature.") else: st.warning("Please enter some text.")
結論
このアプリを使用すると、特に文字数とトークン数の間にギャップがある日本語のような言語を扱う場合に、LLM ワークロードのコストを簡単に見積もることができます。お役に立てば幸いです!
お知らせ
X の Snowflake の新機能アップデート
X に関する Snowflake の新着情報を共有しています。ご興味がございましたら、お気軽にフォローしてください。
英語版
Snowflake 新着情報ボット (英語版)
https://x.com/snow_new_ja
日本語版
Snowflake 新着情報ボット (日本語版)
https://x.com/snow_new_jp
変更履歴
(20240914) 最初の投稿
日本語オリジナル記事
https://zenn.dev/tsubasa_tech/articles/4dd80c91508ec4
以上がSnowflake(SiS)のStreamlitを使ったトークン数チェックアプリを作ってみたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









