readme: ---
  language: en
  tags:
  - Explain code
  - Code Summarization
  - Summarization
  
  license: mit
  ---
  
  
  # Gemini
  
  For in-depth understanding of our model and methods, please see our blog [here](https://www.describe-ai.com/gemini)
  
  ## Model description
  
  Gemini is a transformer based on Google's T5 model. The model is pre-trained on approximately 800k code/description pairs and then fine-tuned on 10k higher-level explanations that were synthetically generated. Gemini is capable of summarization/explaining short to medium code snippets in:
  
  - Python
  - Javascript (mostly vanilla JS, however, it can handle frameworks like React as well)
  - Java
  - Ruby
  - Go
  
  And outputs a description in English. 
  
  ## Intended uses
  
  Gemini without any additional fine-tuning is capable of explaining code in a sentence or two and typically performs best in Python and Javascript. We recommend using Gemini for either simple code explanation, documentation or producing more synthetic data to improve its explanations.
  
  ### How to use
  
  You can use this model directly with a pipeline for Text2Text generation, as shown below:
  
  ```python
  from transformers import pipeline, set_seed
  
  summarizer = pipeline('text2text-generation', model='describeai/gemini')
  code = "print('hello world!')"
  
  response = summarizer(code, max_length=100, num_beams=3)
  print("Summarized code: " + response[0]['generated_text'])
  
  ```
  
  Which should yield something along the lines of:
  
  ```
  Summarized code: The following code is greeting the world.
  ```
  
  ### Model sizes
  
  - Gemini (this repo): 770 Million Parameters
  - Gemini-Small - 220 Million Parameters
  
  
  ### Limitations
  
  Typically, Gemini may produce overly simplistic descriptions that don't encompass the entire code snippet. We suspect with more training data, this could be circumvented and will produce better results.
  
  
  ### About Us
  
  A Describe.ai, we are focused on building Artificial Intelligence systems that can understand language as well as humans. While a long path, we plan to contribute our findings to our API to the Open Source community.