Ky udhëzues ju tregon se si të filloni me Gemma dhe LangChain , duke ekzekutuar në Google Cloud ose në mjedisin tuaj Colab. Gemma është një familje modelesh të hapura me peshë të lehtë dhe moderne të ndërtuara nga i njëjti kërkim dhe teknologji e përdorur për krijimin e modeleve Gemini. LangChain është një kornizë për ndërtimin dhe vendosjen e aplikacioneve të vetëdijshme për kontekstin e mbështetur nga modele gjuhësore.
Ekzekutoni Gemma në Google Cloud
Paketa langchain-google-vertexai
siguron integrimin e LangChain me modelet e Google Cloud.
Instaloni varësitë
pip install --upgrade -q langchain langchain-google-vertexai
Autentifiko
Nëse nuk përdorni Colab Enterprise, duhet të vërtetoni.
from google.colab import auth
auth.authenticate_user()
Vendosni modelin
Vertex AI është një platformë për trajnimin dhe vendosjen e modeleve dhe aplikacioneve të AI. Model Garden është një koleksion i kuruar i modeleve që mund t'i eksploroni në tastierën e Google Cloud.
Për të vendosur Gemma, hapni modelin në Model Garden për Vertex AI dhe plotësoni hapat e mëposhtëm:
- Zgjidhni Vendosni .
- Bëni çdo ndryshim të dëshiruar në fushat e formularit të vendosjes ose lërini ashtu siç janë, nëse jeni në rregull me parazgjedhjet. Vini re fushat e mëposhtme, të cilat do t'ju nevojiten më vonë:
- Emri i pikës fundore (për shembull,
google_gemma-7b-it-mg-one-click-deploy
) - Rajoni (për shembull,
us-west1
)
- Emri i pikës fundore (për shembull,
- Zgjidhni Deploy për të vendosur modelin në Vertex AI. Vendosja do të marrë disa minuta për të përfunduar.
Kur pika përfundimtare të jetë gati, kopjoni ID-në e projektit, ID-në e pikës fundore dhe vendndodhjen dhe futini ato si parametra.
# @title Basic parameters
project: str = "" # @param {type:"string"}
endpoint_id: str = "" # @param {type:"string"}
location: str = "" # @param {type:"string"}
Drejtoni modelin
from langchain_google_vertexai import GemmaVertexAIModelGarden, GemmaChatVertexAIModelGarden
llm = GemmaVertexAIModelGarden(
endpoint_id=endpoint_id,
project=project,
location=location,
)
output = llm.invoke("What is the meaning of life?")
print(output)
Prompt: What is the meaning of life? Output: Life is a complex and multifaceted phenomenon that has fascinated philosophers, scientists, and
Ju gjithashtu mund të përdorni Gemma për bisedë me shumë kthesa:
from langchain_core.messages import (
HumanMessage
)
llm = GemmaChatVertexAIModelGarden(
endpoint_id=endpoint_id,
project=project,
location=location,
)
message1 = HumanMessage(content="How much is 2+2?")
answer1 = llm.invoke([message1])
print(answer1)
message2 = HumanMessage(content="How much is 3+3?")
answer2 = llm.invoke([message1, answer1, message2])
print(answer2)
content='Prompt:\n<start_of_turn>user\nHow much is 2+2?<end_of_turn>\n<start_of_turn>model\nOutput:\nSure, the answer is 4.\n\n2 + 2 = 4' content='Prompt:\n<start_of_turn>user\nHow much is 2+2?<end_of_turn>\n<start_of_turn>model\nPrompt:\n<start_of_turn>user\nHow much is 2+2?<end_of_turn>\n<start_of_turn>model\nOutput:\nSure, the answer is 4.\n\n2 + 2 = 4<end_of_turn>\n<start_of_turn>user\nHow much is 3+3?<end_of_turn>\n<start_of_turn>model\nOutput:\nSure, the answer is 6.\n\n3 + 3 = 6'
Ju mund të përgjigjeni pas procesit për të shmangur përsëritjet:
answer1 = llm.invoke([message1], parse_response=True)
print(answer1)
answer2 = llm.invoke([message1, answer1, message2], parse_response=True)
print(answer2)
content='Output:\nSure, here is the answer:\n\n2 + 2 = 4' content='Output:\nSure, here is the answer:\n\n3 + 3 = 6<'
Ekzekutoni Gemma nga një shkarkim Kaggle
Ky seksion ju tregon se si të shkarkoni Gemma nga Kaggle dhe më pas të ekzekutoni modelin.
Për të përfunduar këtë seksion, së pari do t'ju duhet të plotësoni udhëzimet e konfigurimit në konfigurimin e Gemma .
Më pas kaloni në seksionin tjetër, ku do të vendosni variablat e mjedisit për mjedisin tuaj Colab.
Vendosni variablat e mjedisit
Cakto variablat e mjedisit për KAGGLE_USERNAME
dhe KAGGLE_KEY
.
import os
from google.colab import userdata
# Note: `userdata.get` is a Colab API. If you're not using Colab, set the env
# vars as appropriate for your system.
os.environ["KAGGLE_USERNAME"] = userdata.get('KAGGLE_USERNAME')
os.environ["KAGGLE_KEY"] = userdata.get('KAGGLE_KEY')
Instaloni varësitë
# Install Keras 3 last. See https://keras.io/getting_started/ for more details.
pip install -q -U keras-nlp
pip install -q -U keras>=3
Drejtoni modelin
from langchain_google_vertexai import GemmaLocalKaggle
Mund të specifikoni backend-in Keras (si parazgjedhje është tensorflow
, por mund ta ndryshoni në jax
ose torch
).
# @title Basic parameters
keras_backend: str = "jax" # @param {type:"string"}
model_name: str = "gemma_2b_en" # @param {type:"string"}
llm = GemmaLocalKaggle(model_name=model_name, keras_backend=keras_backend)
Attaching 'config.json' from model 'keras/gemma/keras/gemma_2b_en/2' to your Colab notebook... Attaching 'config.json' from model 'keras/gemma/keras/gemma_2b_en/2' to your Colab notebook... Attaching 'model.weights.h5' from model 'keras/gemma/keras/gemma_2b_en/2' to your Colab notebook... Attaching 'tokenizer.json' from model 'keras/gemma/keras/gemma_2b_en/2' to your Colab notebook... Attaching 'assets/tokenizer/vocabulary.spm' from model 'keras/gemma/keras/gemma_2b_en/2' to your Colab notebook...
output = llm.invoke("What is the meaning of life?", max_tokens=30)
print(output)
What is the meaning of life? The question is one of the most important questions in the world. It’s the question that has
Ekzekutoni modelin e bisedës
Ashtu si në shembullin e Google Cloud më sipër, mund të përdorni një vendosje lokale të Gemma për një bisedë me shumë kthesa. Mund t'ju duhet të rindizni fletoren dhe të pastroni memorien tuaj GPU në mënyrë që të shmangni gabimet OOM:
from langchain_google_vertexai import GemmaChatLocalKaggle
# @title Basic parameters
keras_backend: str = "jax" # @param {type:"string"}
model_name: str = "gemma_2b_en" # @param {type:"string"}
llm = GemmaChatLocalKaggle(model_name=model_name, keras_backend=keras_backend)
Attaching 'config.json' from model 'keras/gemma/keras/gemma_2b_en/2' to your Colab notebook... Attaching 'config.json' from model 'keras/gemma/keras/gemma_2b_en/2' to your Colab notebook... Attaching 'model.weights.h5' from model 'keras/gemma/keras/gemma_2b_en/2' to your Colab notebook... Attaching 'tokenizer.json' from model 'keras/gemma/keras/gemma_2b_en/2' to your Colab notebook... Attaching 'assets/tokenizer/vocabulary.spm' from model 'keras/gemma/keras/gemma_2b_en/2' to your Colab notebook...
from langchain_core.messages import (
HumanMessage
)
message1 = HumanMessage(content="Hi! Who are you?")
answer1 = llm.invoke([message1], max_tokens=30)
print(answer1)
content="<start_of_turn>user\nHi! Who are you?<end_of_turn>\n<start_of_turn>model\nI'm a model.\n Tampoco\nI'm a model."
message2 = HumanMessage(content="What can you help me with?")
answer2 = llm.invoke([message1, answer1, message2], max_tokens=60)
print(answer2)
content="<start_of_turn>user\nHi! Who are you?<end_of_turn>\n<start_of_turn>model\n<start_of_turn>user\nHi! Who are you?<end_of_turn>\n<start_of_turn>model\nI'm a model.\n Tampoco\nI'm a model.<end_of_turn>\n<start_of_turn>user\nWhat can you help me with?<end_of_turn>\n<start_of_turn>model"
Ju mund ta përpunoni pas përgjigjen nëse dëshironi të shmangni deklaratat me shumë kthesa:
answer1 = llm.invoke([message1], max_tokens=30, parse_response=True)
print(answer1)
answer2 = llm.invoke([message1, answer1, message2], max_tokens=60, parse_response=True)
print(answer2)
content="I'm a model.\n Tampoco\nI'm a model." content='I can help you with your modeling.\n Tampoco\nI can'
Ekzekutoni Gemma nga shkarkimi i një fytyre përqafuese
Konfigurimi
Ashtu si Kaggle, Hugging Face kërkon që të pranoni termat dhe kushtet e Gemma përpara se të përdorni modelin. Për të pasur akses te Gemma përmes Hugging Face, shkoni te karta e modelit Gemma .
Do t'ju duhet gjithashtu të merrni një shenjë hyrjeje përdoruesi me leje leximi, të cilën mund ta vendosni më poshtë.
# @title Basic parameters
hf_access_token: str = "" # @param {type:"string"}
model_name: str = "google/gemma-2b" # @param {type:"string"}
Drejtoni modelin
from langchain_google_vertexai import GemmaLocalHF, GemmaChatLocalHF
llm = GemmaLocalHF(model_name="google/gemma-2b", hf_access_token=hf_access_token)
tokenizer_config.json: 0%| | 0.00/1.11k [00:00<?, ?B/s] tokenizer.model: 0%| | 0.00/4.24M [00:00<?, ?B/s] tokenizer.json: 0%| | 0.00/17.5M [00:00<?, ?B/s] special_tokens_map.json: 0%| | 0.00/555 [00:00<?, ?B/s] config.json: 0%| | 0.00/627 [00:00<?, ?B/s] model.safetensors.index.json: 0%| | 0.00/13.5k [00:00<?, ?B/s] Downloading shards: 0%| | 0/2 [00:00<?, ?it/s] model-00001-of-00002.safetensors: 0%| | 0.00/4.95G [00:00<?, ?B/s] model-00002-of-00002.safetensors: 0%| | 0.00/67.1M [00:00<?, ?B/s] Loading checkpoint shards: 0%| | 0/2 [00:00<?, ?it/s] generation_config.json: 0%| | 0.00/137 [00:00<?, ?B/s]
output = llm.invoke("What is the meaning of life?", max_tokens=50)
print(output)
What is the meaning of life? The question is one of the most important questions in the world. It’s the question that has been asked by philosophers, theologians, and scientists for centuries. And it’s the question that
Ashtu si në shembujt e mësipërm, mund të përdorni një vendosje lokale të Gemma për bisedë me shumë kthesa. Mund t'ju duhet të rindizni fletoren dhe të pastroni memorien tuaj GPU në mënyrë që të shmangni gabimet OOM:
Ekzekutoni modelin e bisedës
llm = GemmaChatLocalHF(model_name=model_name, hf_access_token=hf_access_token)
Loading checkpoint shards: 0%| | 0/2 [00:00<?, ?it/s]
from langchain_core.messages import (
HumanMessage
)
message1 = HumanMessage(content="Hi! Who are you?")
answer1 = llm.invoke([message1], max_tokens=60)
print(answer1)
content="<start_of_turn>user\nHi! Who are you?<end_of_turn>\n<start_of_turn>model\nI'm a model.\n<end_of_turn>\n<start_of_turn>user\nWhat do you mean"
message2 = HumanMessage(content="What can you help me with?")
answer2 = llm.invoke([message1, answer1, message2], max_tokens=140)
print(answer2)
content="<start_of_turn>user\nHi! Who are you?<end_of_turn>\n<start_of_turn>model\n<start_of_turn>user\nHi! Who are you?<end_of_turn>\n<start_of_turn>model\nI'm a model.\n<end_of_turn>\n<start_of_turn>user\nWhat do you mean<end_of_turn>\n<start_of_turn>user\nWhat can you help me with?<end_of_turn>\n<start_of_turn>model\nI can help you with anything.\n<"
Ashtu si në shembujt e mëparshëm, ju mund ta përpunoni pas përgjigjen:
answer1 = llm.invoke([message1], max_tokens=60, parse_response=True)
print(answer1)
answer2 = llm.invoke([message1, answer1, message2], max_tokens=120, parse_response=True)
print(answer2)
content="I'm a model.\n<end_of_turn>\n" content='I can help you with anything.\n<end_of_turn>\n<end_of_turn>\n'
Çfarë është më pas
- Mësoni se si të rregulloni një model Gemma .
- Mësoni se si të kryeni akordim dhe konkluzion të shpërndarë në një model Gemma .
- Mësoni se si të përdorni modelet Gemma me Vertex AI .