LLM Inference API, büyük dil modellerini (LLM) tamamen çalıştırmanızı sağlar Bu özelliği, geçiş gibi çok çeşitli görevleri metin üretmek, doğal dilde bilgi almak ve en iyi uygulamaları paylaşacağım. Görev, birden fazla kullanıcı için Metinden metne dönüştürülebilir büyük dil modelleri sayesinde cihazdaki en yeni özellikleri uygulayabilirsiniz üretken yapay zeka modellerini test edin.
Görev, Google Cloud'un bir parçası olan Gemma 2B basit, son teknoloji ürünü açık modeller ailesi Gemini'ı oluşturmak için kullanılan araştırmalar ve teknoloji modeller. Ayrıca aşağıdaki harici modelleri de destekler: Phi-2 Falcon-RW-1B ve StableLM-3B.
Kullanıcılar, yerel olarak desteklenen modellere ek olarak, Google'ın AI Edge'ini kullanan modeller olanaklar ( PyTorch modellerinin eşlenmesi). Bu, kullanıcıların eşlenen bir modeli çoklu imzaya aktarmasına olanak tanır. TensorFlow Lite modellerine hoş geldiniz. Bu model, Görev Paketi oluşturun.
Başlayın
Aşağıdaki uygulama rehberlerinden birini izleyerek bu görevi kullanmaya başlayın: yardımcı olur. Platforma özel bu kılavuzlar, Google'ın temel özelliklerini kullanılabilir bir modeli kullanan kod örnekleriyle birlikte bu görevin önerilen yapılandırma seçeneklerini kullanabilirsiniz:
Görev ayrıntıları
Bu bölümde özellikler, girişler, çıkışlar ve yapılandırma açıklanmaktadır. bu görev için kullanılabilir.
Özellikler
LLM Inference API aşağıdaki temel özellikleri içerir:
- Metinden metne oluşturma - Giriş metni istemine göre metin oluşturun.
- LLM seçimi - Uygulamayı kendi ihtiyaçlarınıza göre uyarlamak için birden fazla model uygulayın kullanım alanlarına yoğunlaşabilirsiniz. Ayrıca, aynı zamanda her bir reklam grubuna özelleştirilmiş ağırlıkları da modeli.
- LoRA desteği - LoRA modeliyle geniş kapsamlı dil modeli özelliğinin kapsamını genişletin ve özelleştirin veya önceden oluşturulmuş LoRA'dan yararlanarak tüm veri kümelerinizi geliştirebilirsiniz. açık kaynak topluluğundan modeller (yalnızca yerel modeller).
Görev girişleri | Görev çıkışları |
---|---|
LLM Inference API aşağıdaki girişleri kabul eder:
|
LLM Inference API aşağıdaki sonuçları verir:
|
Yapılandırma seçenekleri
Bu görev aşağıdaki yapılandırma seçeneklerine sahiptir:
Seçenek Adı | Açıklama | Değer Aralığı | Varsayılan Değer |
---|---|---|---|
modelPath |
Modelin proje dizininde depolandığı yol. | YOL | Yok |
maxTokens |
Modelin işlediği maksimum jeton sayısı (giriş jetonları + çıkış jetonları). | Tamsayı | 512 |
topK |
Modelin, oluşturma sürecinin her adımında dikkate aldığı jeton sayısı. Tahminleri en olası k jetonla sınırlandırır. | Tamsayı | 40 |
temperature |
Oluşturma sırasında sunulan rastgelelik miktarı. Daha yüksek oluşturulan metinde daha fazla yaratıcılığa yol açar. Ancak, daha düşük sıcaklıklarda üretim daha tahmin edilebilir hale gelir. | Kayan | 0,8 |
randomSeed |
Metin oluşturma sırasında kullanılan rastgele başlangıç noktası. | Tamsayı | 0 |
loraPath |
Cihazdaki LoRA modelinin yerel olarak mutlak yolu. Not: Bu yalnızca GPU modelleriyle uyumludur. | YOL | Yok |
resultListener |
Sonuç işleyiciyi, sonuçları eşzamansız olarak alacak şekilde ayarlar. Yalnızca eşzamansız oluşturma yöntemi kullanılırken geçerlidir. | Yok | Yok |
errorListener |
İsteğe bağlı bir hata işleyici ayarlar. | Yok | Yok |
Modeller
LLM Inference API, ayrılabilir büyük metinden metne yönelik yerleşik destek içerir tarayıcı ve mobil cihazlarda çalışacak şekilde optimize edilmiş dil modelleridir. Bu hafif modeller indirilerek tamamen cihaz üzerinde çıkarımlar yapabilirsiniz.
LLM Inference API'yi başlatmadan önce desteklenen modellerden birini indirin ve dosyayı proje dizininizde depolayın.
Gemma 2B
Gemma 2B, bir ailenin üyesidir: ve aynı araştırma temel alınarak oluşturulmuş hafif, son teknoloji ürünü açık modeller Gemini modellerini oluşturmak için kullanılan teknoloji. İlgili içeriği oluşturmak için kullanılan model 2 milyar parametre ve açık ağırlıklar içeriyor. Bu model bir metin oluşturma görevleri gibi çeşitli metin ve muhakeme.
Gemma 2B'yi indirin 'nı inceleyin.
Gemma 2B modellerinin dört varyantı vardır:
- gemma-2b-it-cpu-int4: CPU uyumluluğuna sahip Gemma 2B 4 bit modeli.
- gemma-2b-it-cpu-int8: CPU uyumluluğuna sahip Gemma 2B 8 bit modeli.
- gemma-2b-it-gpu-int4: GPU uyumluluğuna sahip Gemma 2B 4 bit modeli.
- gemma-2b-it-gpu-int8: GPU uyumluluğuna sahip Gemma 2B 8 bit modeli.
Ayrıca, uygulamaya eklemeden önce modeli ayarlayabilir ve yeni ağırlıklar ekleyebilirsiniz. Örneğin, Gemma'yı ayarlama ve özelleştirme hakkında daha fazla bilgi için Tuning Gemma'yı inceleyin. Gemma'yı Kaggle Modelleri'nden indirdikten sonra, model zaten MediaPipe ile kullanılacak uygun biçimdedir.
Hugging'den Gemma 2B'yi indirirseniz Yüz kullanıyorsanız dönüştürmeniz gerekir uygun bir biçime dönüştürmeyi gerektirir. LLM Inference API aşağıdaki dosyaların indirilip dönüştürülmesini gerektirir:
model-00001-of-00002.safetensors
model-00002-of-00002.safetensors
tokenizer.json
tokenizer_config.json
Gemma 7B
Gemma 7B, 7B boyutuyla daha büyük bir Gemma modelidir ve açık ağırlıklardan oluşur. Model, çeşitli metinler için daha güçlüdür gibi pek çok farklı işlevi vardır. Gemma 7B yalnızca web'de desteklenir.
Gemma 7B'yi indirin 'nı inceleyin.
Gemma 7B modelinin tek bir varyantı vardır:
- gemma-1.1-7b-it-gpu-int8: GPU uyumluluğuna sahip Gemma 7B 8 bit modeli.
Hugging Face'ten Gemma 7B'yi indirirseniz modeli MediaPipe uyumlu bir biçime dönüştürmeniz gerekir. İlgili içeriği oluşturmak için kullanılan LLM Inference API, aşağıdaki dosyaların indirilmesini ve dönüştürülmesini gerektirir:
model-00001-of-00004.safetensors
model-00002-of-00004.safetensors
model-00003-of-00004.safetensors
model-00004-of-00004.safetensors
tokenizer.json
tokenizer_config.json
Doğan 1B
Falcon-1B, 350B üzerinde eğitilmiş, yalnızca 1 milyar parametreli, nedensel kod çözücü bir modeldir. jetonlar RefinedWeb.
Falcon 1B'yi indirin 'nı inceleyin.
LLM Inference API, aşağıdaki dosyaların indirilmesini ve depolanmasını gerektirir. yerel olarak:
tokenizer.json
tokenizer_config.json
pytorch_model.bin
Falcon modeli dosyaları indirildikten sonra model, olarak belirleyin. Modeli MediaPipe'e dönüştürün biçimindedir.
StableLM 3B
StableLM-3B, önceden eğitilmiş 3 milyar parametreli yalnızca kod çözücü dil modelidir. 4 dönem için çeşitli İngilizce ve kod veri kümelerinden oluşan 1 trilyon jeton.
StableLM 3B'yi indir 'nı inceleyin.
LLM Inference API, aşağıdaki dosyaların indirilmesini ve depolanmasını gerektirir. yerel olarak:
tokenizer.json
tokenizer_config.json
model.safetensors
StableLM model dosyaları indirildikten sonra model dönüştürülmeye hazır olur dosyası olarak ekleyebilirsiniz. Modeli MediaPipe'e dönüştürün biçimindedir.
Phi-2
Phi-2, 2,7 milyar parametreli bir Dönüştürücü modelidir. Farklı proje yönetimi metodolojileri NLP yapay metinler ve filtrelenmiş web siteleri. Model, istemlere en uygun sohbet ve kod biçimini kullanabilirsiniz.
Phi-2'yi indirin 'nı inceleyin.
LLM Inference API, aşağıdaki dosyaların indirilmesini ve depolanmasını gerektirir. yerel olarak:
tokenizer.json
tokenizer_config.json
model-00001-of-00002.safetensors
model-00002-of-00002.safetensors
Phi-2 model dosyaları indirildikten sonra model, olarak belirleyin. Modeli MediaPipe'e dönüştürün biçimindedir.
AI Edge'den Dışa Aktarılan Modeller
AI Edge, kullanıcılar tarafından eşleştirilen modelleri dönüştürmenizi sağlayan bir Google ürünüdür modellerine entegre eder. Harita çıkarma ve AI Edge Torch'u ziyaret edin GitHub sayfası.
Model TFLite biçimine dışa aktarıldıktan sonra kullanıma hazır dönüştürüldüğünden emin olun. Daha fazla bilgi için bkz. Modeli MediaPipe biçimine dönüştürün.
Modeli MediaPipe biçimine dönüştür
Yerel model dönüştürme
Harici bir LLM (Phi-2, Falcon veya StableLM) ya da Kaggle olmayan bir LLM kullanıyorsanız sürümünü yüklemek istiyorsanız dönüşüm komut dosyalarımızı kullanarak modeli uyumlu bir şekilde çalışır.
Model dönüştürme işlemi için MediaPipe PyPI paketi gerekir. Dönüşüm
komut dosyası, 0.10.11
tarihinden sonraki tüm MediaPipe paketlerinde kullanılabilir.
Bağımlılıkları aşağıdakilerle yükleyip içe aktarın:
$ python3 -m pip install mediapipe
Modeli dönüştürmek için genai.converter
kitaplığını kullanın:
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
input_ckpt=INPUT_CKPT,
ckpt_format=CKPT_FORMAT,
model_type=MODEL_TYPE,
backend=BACKEND,
output_dir=OUTPUT_DIR,
combine_file_only=False,
vocab_model_file=VOCAB_MODEL_FILE,
output_tflite_file=OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
LoRA modelini dönüştürmek için ConversionConfig
, temel modeli belirtmelidir
hem de ek LoRA seçenekleri yer alıyor. Yalnızca API'nin yalnızca
GPU ile LoRA çıkarımını destekliyorsa arka uç 'gpu'
olarak ayarlanmalıdır.
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
# Other params related to base model
...
# Must use gpu backend for LoRA conversion
backend='gpu',
# LoRA related params
lora_ckpt=LORA_CKPT,
lora_rank=LORA_RANK,
lora_output_tflite_file=LORA_OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
Dönüştürücü, biri temel model için olmak üzere iki TFLite sabit arabellek dosyası çıktısı verir diğeri ise LoRA modeli içindir.
Parametre | Açıklama | Kabul Edilen Değerler |
---|---|---|
input_ckpt |
model.safetensors veya pytorch.bin dosyasının yolu. Bazı durumlarda model güvenli tensor biçiminin birden fazla dosyaya bölündüğünü (ör. model-00001-of-00003.safetensors , model-00001-of-00003.safetensors . model*.safetensors gibi bir dosya kalıbı belirtebilirsiniz. |
YOL |
ckpt_format |
Model dosyasının biçimi. | {"safetensors", "pytorch"} |
model_type |
Dönüştürülen LLM. | {"PHI_2", "FALCON_RW_1B", "STABLELM_4E1T_3B", "GEMMA_2B"} |
backend |
Modeli çalıştırmak için kullanılan işlemci (yetki verilmiş kullanıcı). | {"cpu", "gpu"} |
output_dir |
Katman başına ağırlık dosyalarını barındıran çıkış dizininin yolu. | YOL |
output_tflite_file |
Çıkış dosyasının yolu. Örneğin, "model_cpu.bin" veya "model_gpu.bin" ekleyin. Bu dosya yalnızca LLM Inference API ile uyumludur ve genel bir "tflite" dosyası olarak kullanılamaz. | YOL |
vocab_model_file |
tokenizer.json ve
tokenizer_config.json dosya. Gemma için, fare imlecini tek tokenizer.model dosyasının üzerine getirin. |
YOL |
lora_ckpt |
LoRA adaptör ağırlığını depolayan güvenlitensörlerin LoRA ckpt dosyasının yolu. | YOL |
lora_rank |
LoRA ckpt rütbesini temsil eden bir tam sayı Lora ağırlıklarını dönüştürmek için gereklidir. Sağlanmazsa dönüştürücü, herhangi bir LoRA ağırlığı olmadığını varsayar. Not: Yalnızca GPU arka ucu, LoRA'yı destekler. | Tamsayı |
lora_output_tflite_file |
LoRA ağırlıkları için çıkış tflite dosya adı. | YOL |
AI Edge modeli dönüştürme
AI Edge üzerinden TFLite modeliyle eşlenmiş bir LLM kullanıyorsanız komut dosyasını kullanarak Görev Paketi oluşturun. Paketleme sürecinde ek meta veriler (ör. Tokenizer Parametreleri) gerekiyor uçtan uca çıkarım yapmak için de kullanılabilir.
Model paketleme işlemi MediaPipe PyPI paketi gerektirir. Dönüşüm
komut dosyası, 0.10.14
tarihinden sonraki tüm MediaPipe paketlerinde kullanılabilir.
Bağımlılıkları aşağıdakilerle yükleyip içe aktarın:
$ python3 -m pip install mediapipe
Modeli gruplandırmak için genai.bundler
kitaplığını kullanın:
import mediapipe as mp
from mediapipe.tasks.python.genai import bundler
config = bundler.BundleConfig(
tflite_model=TFLITE_MODEL,
tokenizer_model=TOKENIZER_MODEL,
start_token=START_TOKEN,
stop_tokens=STOP_TOKENS,
output_filename=OUTPUT_FILENAME,
enable_bytes_to_unicode_mapping=ENABLE_BYTES_TO_UNICODE_MAPPING,
)
bundler.create_bundle(config)
Parametre | Açıklama | Kabul Edilen Değerler |
---|---|---|
tflite_model |
AI Edge'in dışa aktarılan TFLite modelinin yolu. | YOL |
tokenizer_model |
SentencePiece jeton oluşturucu modelinin yolu. | YOL |
start_token |
Modele özel başlangıç jetonu. Başlangıç jetonu sağlayan token oluşturucu modeli. | Dize |
stop_tokens |
Modele özel durdurma jetonları. Durdurma jetonları sağlayan token oluşturucu modeli. | LİSTE[STRING] |
output_filename |
Çıkış görev paketi dosyasının adı. | YOL |
LoRA özelleştirme
Mediapipe LLM çıkarım API'si, Düşük Dereceli Uyarlama'yı (LoRA) destekleyecek şekilde yapılandırılabilir büyük dil modelleri için. Geliştiriciler, ince ayar yapılmış LoRA modellerinden yararlanarak uygun maliyetli bir eğitim süreci ile LLM'lerin davranışını özelleştirmek.LLM Inference API için LoRA desteği, Gemma-2B ve Phi-2 modellerinde GPU arka ucu (LoRA ağırlıkları yalnızca dikkat katmanları için geçerlidir). Bu ilk uygulama gelecekteki geliştirmeler için deneysel bir API işlevi görür yakında daha fazla model ve çeşitli katman türlerini desteklemeyi planlıyoruz güncellemelerine göz atın.
LoRA modellerini hazırlama
Desteklenen model türleri (Gemma-2B veya Phi-2) ile kendi veri kümenizde hassas ayarlanmış bir LoRA modeli eğitmek için HuggingFace talimatlarını uygulayın. Gemma-2B ve Phi-2 modellerinin her ikisi de HuggingFace'te güvenli tensor biçiminde kullanılabilir. LLM Inference API yalnızca dikkat katmanlarında LoRA'yı desteklediğinden, LoraConfig
öğesini aşağıdaki gibi oluştururken yalnızca dikkat katmanlarını belirtin:
# For Gemma-2B
from peft import LoraConfig
config = LoraConfig(
r=LORA_RANK,
target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
)
# For Phi-2
config = LoraConfig(
r=LORA_RANK,
target_modules=["q_proj", "v_proj", "k_proj", "dense"],
)
Test amacıyla HuggingFace'te LLM Inference API'ye uyan ve herkesin erişebileceği, ince ayar yapılmış LoRA modelleri vardır. Örneğin, Gemma-2B için monsterapi/gemma-2b-lora-maths-orca-200k ve Phi-2 için lole25/phi-2-sft-ultrachat-lora.
Hazırlanan veri kümesi üzerinde eğitim alıp modeli kaydettikten sonra, ince ayar yapılmış LoRA modeli ağırlıklarını içeren bir adapter_model.safetensors
dosyası elde ediyorsunuz. Safetensors dosyası, model dönüştürme işleminde kullanılan LoRA kontrol noktasıdır.
Sonraki adım olarak, MediaPipe Python Paketi'ni kullanarak model ağırlıklarını bir TensorFlow Lite Flatbuffer'a dönüştürmeniz gerekir. ConversionConfig
, temel model seçeneklerini ve ek LoRA seçeneklerini belirtmelidir. API yalnızca GPU ile LoRA çıkarımını desteklediğinden arka ucun 'gpu'
olarak ayarlanması gerekir.
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
# Other params related to base model
...
# Must use gpu backend for LoRA conversion
backend='gpu',
# LoRA related params
lora_ckpt=LORA_CKPT,
lora_rank=LORA_RANK,
lora_output_tflite_file=LORA_OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
Dönüştürücü, biri temel model için olmak üzere iki TFLite sabit arabellek dosyası çıktısı verir diğeri ise LoRA modeli içindir.
LoRA modeli çıkarımı
Web, Android ve iOS LLM Inference API, LoRA model çıkarımını destekleyecek şekilde güncellendi. Web, çalışma zamanı boyunca farklı LoRA modellerini değiştirebilen dinamik LoRA'yı destekler. Android ve iOS, görevin ömrü boyunca aynı LoRA ağırlıklarını kullanan statik LoRA'yı destekler.
Android, başlatma sırasında statik LoRA'yı destekler. LoRA modeli yüklemek için kullanıcılar hem LoRA model yolunu hem de temel LLM'yi belirtir.// Set the configuration options for the LLM Inference task
val options = LlmInferenceOptions.builder()
.setModelPath('<path to base model>')
.setMaxTokens(1000)
.setTopK(40)
.setTemperature(0.8)
.setRandomSeed(101)
.setLoraPath('<path to LoRA model>')
.build()
// Create an instance of the LLM Inference task
llmInference = LlmInference.createFromOptions(context, options)
LoRA ile LLM çıkarımı çalıştırmak için temel modelle aynı generateResponse()
veya generateResponseAsync()
yöntemlerini kullanın.