Hola, soy ingeniero de ventas en Snowflake. Me gustaría compartir algunas de mis experiencias y experimentos con ustedes a través de varias publicaciones. En este artículo, le mostraré cómo crear una aplicación usando Streamlit en Snowflake para verificar el recuento de tokens y estimar los costos de Cortex LLM.
Nota: Esta publicación representa mis opiniones personales y no las de Snowflake.
Streamlit es una biblioteca de Python que le permite crear interfaces de usuario web con código Python simple, eliminando la necesidad de HTML/CSS/JavaScript. Puedes ver ejemplos en la Galería de aplicaciones.
Streamlit en Snowflake le permite desarrollar y ejecutar aplicaciones web Streamlit directamente en Snowflake. Es fácil de usar con solo una cuenta de Snowflake y excelente para integrar datos de tablas de Snowflake en aplicaciones web.
Acerca de Streamlit en Snowflake (Documentación oficial de Snowflake)
Snowflake Cortex es un conjunto de funciones de IA generativa en Snowflake. Cortex LLM le permite llamar a modelos de lenguaje grandes que se ejecutan en Snowflake usando funciones simples en SQL o Python.
Funciones del modelo de lenguaje grande (LLM) (Snowflake Cortex) (Documentación oficial de Snowflake)
Nota: El texto de la imagen es de "The Spider's Thread" de Ryunosuke Akutagawa.
Nota: tabla de precios de Cortex LLM (PDF)
Nota: Disponibilidad regional de Cortex LLM (Documentación oficial de 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.")
Esta aplicación facilita la estimación de costos para cargas de trabajo de LLM, especialmente cuando se trata de idiomas como el japonés, donde a menudo hay una brecha entre el recuento de caracteres y el recuento de tokens. ¡Espero que te resulte útil!
Estoy compartiendo las novedades de Snowflake en X. ¡No dudes en seguirnos si estás interesado!
Bot de novedades de Snowflake (versión en inglés)
https://x.com/snow_new_en
Bot de novedades de Snowflake (versión japonesa)
https://x.com/snow_new_jp
(20240914) Publicación inicial
https://zenn.dev/tsubasa_tech/articles/4dd80c91508ec4
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3