Gemma é uma família de Large Language Model (LLM) de peso aberto do Google DeepMind, com base na pesquisa e tecnologia Gemini.
Este repositório contém uma implementação de inferência e exemplos, baseados em Flax e JAX.
O relatório técnico Gemma (v1, v2) detalha as capacidades dos modelos.
Para tutoriais, implementações de referência em outras estruturas de ML e muito mais, visite https://ai.google.dev/gemma.
Para instalar o Gemma você precisa usar Python 3.10 ou superior.
Instale JAX para CPU, GPU ou TPU. Siga as instruções no site da JAX.
Correr
python -m venv gemma-demo . gemma-demo/bin/activate pip install git+https://github.com/google-deepmind/gemma.git
Os pontos de verificação do modelo estão disponíveis no Kaggle em http://kaggle.com/models/google/gemma. Selecione uma das variações do modelo Flax , clique no botão ⤓ para baixar o arquivo do modelo e extraia o conteúdo para um diretório local. O arquivo contém os pesos do modelo e o tokenizer, por exemplo, a variação 2b Flax contém:
2b/ # Directory containing model weights tokenizer.model # Tokenizer
Para executar os testes de unidade, instale as dependências opcionais [test]
(por exemplo, usando pip install -e .[test]
da raiz da árvore de origem) e, em seguida:
pytest .
Observe que os testes em sampler_test.py
são ignorados por padrão, pois nenhum tokenizer é distribuído com as fontes Gemma. Para executar esses testes, baixe um tokenizer seguindo as instruções acima e atualize a constante _VOCAB
em sampler_test.py
com o caminho para tokenizer.model
.
Para executar o script de amostragem de exemplo, passe os caminhos para o diretório de pesos e o tokenizer:
python examples/sampling.py --path_checkpoint=/path/to/archive/contents/2b/ --path_tokenizer=/path/to/archive/contents/tokenizer.model
Existem também vários tutoriais de notebook Colab:
colabs/sampling_tutorial.ipynb
contém um notebook Colab com um exemplo de amostragem.
colabs/fine_tuning_tutorial.ipynb
contém um Colab com um tutorial básico sobre como ajustar Gemma para uma tarefa, como tradução de inglês para francês.
colabs/gsm8k_eval.ipynb
é um Colab com uma implementação de avaliação GSM8K de referência.
Para executar esses notebooks você precisará baixar uma cópia local dos pesos e do tokenizer (veja acima) e atualizar as variáveis ckpt_path
e vocab_path
com os caminhos correspondentes.
Gemma pode ser executado em uma CPU, GPU e TPU. Para GPU, recomendamos mais de 8 GB de RAM na GPU para o ponto de verificação de 2B e mais de 24 GB de RAM na GPU para o ponto de verificação de 7B.
Estamos abertos a relatórios de bugs, pull requests (PR) e outras contribuições. Consulte CONTRIBUTING.md para obter detalhes sobre PRs.
Direitos autorais 2024 DeepMind Technologies Limited
Este código está licenciado sob a Licença Apache, Versão 2.0 (a "Licença"); você não pode usar este arquivo exceto em conformidade com a Licença. Você pode obter uma cópia da Licença em http://www.apache.org/licenses/LICENSE-2.0.
A menos que exigido pela lei aplicável ou acordado por escrito, o software distribuído sob a Licença é distribuído COMO ESTÁ, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Consulte a Licença para saber o idioma específico que rege as permissões e limitações da Licença.
Este não é um produto oficial do Google.