diff --git a/site/en/gemma/docs/agile_classifiers.ipynb b/site/en/gemma/docs/agile_classifiers.ipynb
index 991552fca..07963dbfe 100644
--- a/site/en/gemma/docs/agile_classifiers.ipynb
+++ b/site/en/gemma/docs/agile_classifiers.ipynb
@@ -1,5 +1,15 @@
{
"cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "G3MMAcssHTML"
+ },
+ "source": [
+ "\n",
+ ""
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {
diff --git a/site/en/gemma/docs/codegemma/code_assist_keras.ipynb b/site/en/gemma/docs/codegemma/code_assist_keras.ipynb
index 7ef3444e0..65119e45a 100644
--- a/site/en/gemma/docs/codegemma/code_assist_keras.ipynb
+++ b/site/en/gemma/docs/codegemma/code_assist_keras.ipynb
@@ -1,5 +1,15 @@
{
"cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "G3MMAcssHTML"
+ },
+ "source": [
+ "\n",
+ ""
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {
diff --git a/site/en/gemma/docs/codegemma/codegemma_flax_inference.ipynb b/site/en/gemma/docs/codegemma/codegemma_flax_inference.ipynb
index 85dc0f08e..f39fc0538 100644
--- a/site/en/gemma/docs/codegemma/codegemma_flax_inference.ipynb
+++ b/site/en/gemma/docs/codegemma/codegemma_flax_inference.ipynb
@@ -1,5 +1,15 @@
{
"cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "G3MMAcssHTML"
+ },
+ "source": [
+ "\n",
+ ""
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {
diff --git a/site/en/gemma/docs/codegemma/keras_quickstart.ipynb b/site/en/gemma/docs/codegemma/keras_quickstart.ipynb
index eba18f483..e220465a3 100644
--- a/site/en/gemma/docs/codegemma/keras_quickstart.ipynb
+++ b/site/en/gemma/docs/codegemma/keras_quickstart.ipynb
@@ -1,5 +1,15 @@
{
"cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "G3MMAcssHTML"
+ },
+ "source": [
+ "\n",
+ ""
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {
diff --git a/site/en/gemma/docs/distributed_tuning.ipynb b/site/en/gemma/docs/distributed_tuning.ipynb
index ea5a355e1..6d66e547f 100644
--- a/site/en/gemma/docs/distributed_tuning.ipynb
+++ b/site/en/gemma/docs/distributed_tuning.ipynb
@@ -1,5 +1,15 @@
{
"cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "G3MMAcssHTML"
+ },
+ "source": [
+ "\n",
+ ""
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {
@@ -42,7 +52,7 @@
" View on ai.google.dev\n",
" \n",
"
Tell me, in a few words, how to compute all prime numbers up to 1000?🤖\n\n> **Sieve of Eratosthenes.** \n>
Tell me, in a few words, how to compute all prime numbers up to 1000?🤖\n", + "\n", + "> **Sieve of Eratosthenes.** \n", + ">
Now in Python! No numpy, please!🤖\n\n> ```python\n> def sieve_of_eratosthenes(n):\n> \"\"\"Returns a list of prime numbers up to n.\"\"\"\n> primes = [True] * (n + 1)\n> primes[0] = primes[1] = False\n> for i in range(2, int(n**0.5) + 1):\n> if primes[i]:\n> for j in range(i * i, n + 1, i):\n> primes[j] = False\n> return [i for i, is_prime in enumerate(primes) if is_prime]\n> \n> primes = sieve_of_eratosthenes(1000)\n> print(primes)\n> ```\n> \n> **Explanation:**\n> \n> 1. **Initialization:**\n> - `primes = [True] * (n + 1)`: Creates a list `primes` of boolean values, initially assuming all numbers are prime.\n> - `primes[0] = primes[1] = False`: Sets 0 and 1 as non-prime.\n> \n> 2. **Iteration:**\n> - `for i in range(2, int(n**0.5) + 1):`: Iterates from 2 to the square root of `n`. We only need to check up to the square root because any composite number must have a prime factor less than or equal to its square root.\n> - `if primes[i]:`: If `i` is marked as prime:\n> - `for j in range(i * i, n + 1, i):`: Marks all multiples of `i` as non-prime.\n> \n> 3. **Result:**\n> - `return [i for i, is_prime in enumerate(primes) if is_prime]`: Creates a list of indices where `primes[i]` is True, representing the prime numbers.\n> \n> \n> Let me know if you'd like a more detailed explanation of any part! \n>
Now in Python! No numpy, please!🤖\n", + "\n", + "> ```python\n", + "> def sieve_of_eratosthenes(n):\n", + "> \"\"\"Returns a list of prime numbers up to n.\"\"\"\n", + "> primes = [True] * (n + 1)\n", + "> primes[0] = primes[1] = False\n", + "> for i in range(2, int(n**0.5) + 1):\n", + "> if primes[i]:\n", + "> for j in range(i * i, n + 1, i):\n", + "> primes[j] = False\n", + "> return [i for i, is_prime in enumerate(primes) if is_prime]\n", + "> \n", + "> primes = sieve_of_eratosthenes(1000)\n", + "> print(primes)\n", + "> ```\n", + "> \n", + "> **Explanation:**\n", + "> \n", + "> 1. **Initialization:**\n", + "> - `primes = [True] * (n + 1)`: Creates a list `primes` of boolean values, initially assuming all numbers are prime.\n", + "> - `primes[0] = primes[1] = False`: Sets 0 and 1 as non-prime.\n", + "> \n", + "> 2. **Iteration:**\n", + "> - `for i in range(2, int(n**0.5) + 1):`: Iterates from 2 to the square root of `n`. We only need to check up to the square root because any composite number must have a prime factor less than or equal to its square root.\n", + "> - `if primes[i]:`: If `i` is marked as prime:\n", + "> - `for j in range(i * i, n + 1, i):`: Marks all multiples of `i` as non-prime.\n", + "> \n", + "> 3. **Result:**\n", + "> - `return [i for i, is_prime in enumerate(primes) if is_prime]`: Creates a list of indices where `primes[i]` is True, representing the prime numbers.\n", + "> \n", + "> \n", + "> Let me know if you'd like a more detailed explanation of any part! \n", + ">
Thank you, it works! Can you explain the code in French?🤖\n\n> Bien sûr ! Voici une explication du code en français :\n> \n> ```python\n> def sieve_of_eratosthenes(n):\n> \"\"\"Retourne une liste de nombres premiers jusqu'à n.\"\"\"\n> primes = [True] * (n + 1)\n> primes[0] = primes[1] = False\n> for i in range(2, int(n**0.5) + 1):\n> if primes[i]:\n> for j in range(i * i, n + 1, i):\n> primes[j] = False\n> return [i for i, is_prime in enumerate(primes) if is_prime]\n> \n> primes = sieve_of_eratosthenes(1000)\n> print(primes)\n> ```\n> \n> **Explication:**\n> \n> 1. **Initialisation:**\n> - `primes = [True] * (n + 1)`: Crée une liste `primes` de valeurs booléennes, initialement supposant que tous les nombres sont premiers.\n> - `primes[0] = primes[1] = False`: Définit 0 et 1 comme non-premiers.\n> \n> 2. **Itération:**\n> - `for i in range(2, int(n**0.5) + 1):`: Itère de 2 jusqu'à la racine carrée de `n`. Nous ne devons vérifier que jusqu'à la racine carrée car tout nombre composite doit avoir un facteur premier inférieur ou égal à sa racine carrée.\n> - `if primes[i]:`: Si `i` est considéré comme premier:\n> - `for j in range(i * i, n + 1, i):`: Marquer tous les multiples de `i` comme non-premiers.\n> \n> 3. **Resultat:**\n> - `return [i for i, is_prime in enumerate(primes) if is_prime]`: Crée une liste des indices où `primes[i]` est vrai, représentant les nombres premiers.\n> \n> \n> N'hésitez pas à me demander si vous avez besoin d'une explication plus détaillée de quelque chose! \n>
Thank you, it works! Can you explain the code in French?🤖\n", + "\n", + "> Bien sûr ! Voici une explication du code en français :\n", + "> \n", + "> ```python\n", + "> def sieve_of_eratosthenes(n):\n", + "> \"\"\"Retourne une liste de nombres premiers jusqu'à n.\"\"\"\n", + "> primes = [True] * (n + 1)\n", + "> primes[0] = primes[1] = False\n", + "> for i in range(2, int(n**0.5) + 1):\n", + "> if primes[i]:\n", + "> for j in range(i * i, n + 1, i):\n", + "> primes[j] = False\n", + "> return [i for i, is_prime in enumerate(primes) if is_prime]\n", + "> \n", + "> primes = sieve_of_eratosthenes(1000)\n", + "> print(primes)\n", + "> ```\n", + "> \n", + "> **Explication:**\n", + "> \n", + "> 1. **Initialisation:**\n", + "> - `primes = [True] * (n + 1)`: Crée une liste `primes` de valeurs booléennes, initialement supposant que tous les nombres sont premiers.\n", + "> - `primes[0] = primes[1] = False`: Définit 0 et 1 comme non-premiers.\n", + "> \n", + "> 2. **Itération:**\n", + "> - `for i in range(2, int(n**0.5) + 1):`: Itère de 2 jusqu'à la racine carrée de `n`. Nous ne devons vérifier que jusqu'à la racine carrée car tout nombre composite doit avoir un facteur premier inférieur ou égal à sa racine carrée.\n", + "> - `if primes[i]:`: Si `i` est considéré comme premier:\n", + "> - `for j in range(i * i, n + 1, i):`: Marquer tous les multiples de `i` comme non-premiers.\n", + "> \n", + "> 3. **Resultat:**\n", + "> - `return [i for i, is_prime in enumerate(primes) if is_prime]`: Crée une liste des indices où `primes[i]` est vrai, représentant les nombres premiers.\n", + "> \n", + "> \n", + "> N'hésitez pas à me demander si vous avez besoin d'une explication plus détaillée de quelque chose! \n", + ">
Great! Now add those explanations as comments in the code.🤖\n\n> ```python\n> def sieve_of_eratosthenes(n):\n> \"\"\"Retourne une liste de nombres premiers jusqu'à n.\"\"\"\n> # Initialise une liste de boolean avec True pour tous les nombres de 0 à n\n> primes = [True] * (n + 1)\n> # Définit 0 et 1 comme non-premiers\n> primes[0] = primes[1] = False\n> # Itère de 2 à la racine carrée de n\n> for i in range(2, int(n**0.5) + 1):\n> # Si i est considéré comme premier\n> if primes[i]:\n> # Itère sur tous les multiples de i\n> for j in range(i * i, n + 1, i):\n> # Définit les multiples de i comme non-premiers\n> primes[j] = False\n> # Retourne la liste des indices des nombres premiers\n> return [i for i, is_prime in enumerate(primes) if is_prime]\n> \n> primes = sieve_of_eratosthenes(1000)\n> print(primes)\n> ```\n> \n> **Explication:**\n> \n> * **Initialisation:**\n> * `primes = [True] * (n + 1)`: Crée une liste `primes` de valeurs booléennes, initialement supposant que tous les nombres sont premiers.\n> * `primes[0] = primes[1] = False`: Définit 0 et 1 comme non-premiers.\n> * **Itération:**\n> * `for i in range(2, int(n**0.5) + 1):`: Itère de 2 jusqu'à la racine carrée de `n`. Nous ne devons vérifier que jusqu'à la racine carrée car tout nombre composite doit avoir un facteur premier inférieur ou égal à sa racine carrée.\n> * `if primes[i]:`: Si `i` est considéré comme premier:\n> * `for j in range(i * i, n + 1, i):`: Marquer tous les multiples de `i` comme non-premiers.\n> * **Resultat:**\n> * `return [i for i, is_prime in enumerate(primes) if is_prime]`: Crée une liste des indices où `primes[i]` est vrai, représentant les nombres premiers. \n> \n> \n> \n>
Great! Now add those explanations as comments in the code.🤖\n", + "\n", + "> ```python\n", + "> def sieve_of_eratosthenes(n):\n", + "> \"\"\"Retourne une liste de nombres premiers jusqu'à n.\"\"\"\n", + "> # Initialise une liste de boolean avec True pour tous les nombres de 0 à n\n", + "> primes = [True] * (n + 1)\n", + "> # Définit 0 et 1 comme non-premiers\n", + "> primes[0] = primes[1] = False\n", + "> # Itère de 2 à la racine carrée de n\n", + "> for i in range(2, int(n**0.5) + 1):\n", + "> # Si i est considéré comme premier\n", + "> if primes[i]:\n", + "> # Itère sur tous les multiples de i\n", + "> for j in range(i * i, n + 1, i):\n", + "> # Définit les multiples de i comme non-premiers\n", + "> primes[j] = False\n", + "> # Retourne la liste des indices des nombres premiers\n", + "> return [i for i, is_prime in enumerate(primes) if is_prime]\n", + "> \n", + "> primes = sieve_of_eratosthenes(1000)\n", + "> print(primes)\n", + "> ```\n", + "> \n", + "> **Explication:**\n", + "> \n", + "> * **Initialisation:**\n", + "> * `primes = [True] * (n + 1)`: Crée une liste `primes` de valeurs booléennes, initialement supposant que tous les nombres sont premiers.\n", + "> * `primes[0] = primes[1] = False`: Définit 0 et 1 comme non-premiers.\n", + "> * **Itération:**\n", + "> * `for i in range(2, int(n**0.5) + 1):`: Itère de 2 jusqu'à la racine carrée de `n`. Nous ne devons vérifier que jusqu'à la racine carrée car tout nombre composite doit avoir un facteur premier inférieur ou égal à sa racine carrée.\n", + "> * `if primes[i]:`: Si `i` est considéré comme premier:\n", + "> * `for j in range(i * i, n + 1, i):`: Marquer tous les multiples de `i` comme non-premiers.\n", + "> * **Resultat:**\n", + "> * `return [i for i, is_prime in enumerate(primes) if is_prime]`: Crée une liste des indices où `primes[i]` est vrai, représentant les nombres premiers. \n", + "> \n", + "> \n", + "> \n", + ">