gcp-batch-inference
Run Gemini batch inference on Google Cloud Vertex AI.
Skill by viktor-ferenczi
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/viktor-ferenczi-gcp-batch-inference
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: cloud, data, ml
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/gcp-batch-inference
What's inside
- Skill name
gcp-batch-inference- Description
- Run Gemini batch inference on Google Cloud Vertex AI. Use when the user wants to process a large number of prompts asynchronously and cheaply (50% discount) on GCP — bulk classification, annotation, extraction, or generation — from Cloud Storage JSONL files or BigQuery tables.
- License
- MIT
- Instructions
- 80 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Overview
Get asynchronous, high-throughput, and cost-effective inference for your large-scale data processing needs with Gemini's batch inference (formerly known as batch prediction). This guide will walk you through the value of batch inference, how it works, its limitations, and best practices for optimal results.
## Why use batch inference?
In many real-world scenarios, you don't need an immediate response from a language model. Instead, you might have a large dataset of prompts that you need to process efficiently and affordably. This is where batch inference shines.
## Key benefits include
- **Cost-Effectiveness** Batch processing is offered at a 50% discounted rate compared to real-time inference, making it ideal for large-scale, non-urgent tasks. Implicit caching is enabled by default for Gemini models (e.g. Gemini 3.5 Flash and Gemini 3.1 Flash-Lite). Implicit caching provides a 90% discount on cached tokens compared to standard input tokens. However, the discounts for cache and batch don't stack. The 90% cache hit discount takes precedence over the batch discount.
- **High rate limits** Process hundreds of thousands of requests in a single batch with a higher rate limit compared to the real time Gemini API.
- **Simplified Workflow** Instead of managing a complex pipeline of individual real-time requests, you can submit a single batch job and retrieve the results once the processing is complete. The service will handle format validation, parallelize requests for concurrent processing, and automatically retry to strive for a high completion rate with 24 hours turnaround time.
## Optimal for tasks
Batch inference is optimized for large-scale processing tasks like:
- **Content Generation** Generate product descriptions, social media posts, or other creative text in bulk.
- **Data Annotation and Classification** Classify user reviews, categorize documents, or perform sentiment analysis on a large corpus of text.
- **Offline Analysis** Summarize articles, extract key information from reports, or translate documents at scale.
# Choosing the input/output source
- **Data already in BigQuery, or naturally tabular** (rows of prompts, results joined back to tables) → use **batch inference from BigQuery**.
- **Everything else** (files, exports, ad-hoc datasets) → use **batch inference from Cloud Storage** with JSONL files. This is the default choice.
- Very large inputs: split into multiple JSONL files / multiple batch jobs to parallelize and to limit the blast radius of a failed job.
- Repeated long shared prefix across requests (e.g. a large system prompt or document)? Put it first in every request so implicit caching kicks in, then verify cache hits in the job metrics — don't assume.
# Worked example (GCS + Python SDK)
Verify details against the linked docs before running — API surfaces change.
1. Prepare `input.jsonl`, one request per line:
```json
{"request": {"contents": [{"role": "user", "parts": [{"text": "Classify this review: ..."}]}]}}
```
2. Upload and submit the job with the `google-genai` SDK:
```python
from google import genai
from google.genai.types import CreateBatchJobConfig
client = genai.Client(vertexai=True, project="YOUR_PROJECT", location="us-central1")
job = client.batches.create(
model="gemini-3.5-flash", # or gemini-3.1-flash-lite for cheaper, simpler tasks
src="gs://your-bucket/input.jsonl",
config=CreateBatchJobConfig(dest="gs://your-bucket/output/"),
)
print(job.name, job.state)
```
3. Poll until done (typically well under the 24h turnaround), then read the per-line results from the `dest` prefix:
```python
job = client.batches.get(name=job.name) # repeat until job.state is JOB_STATE_SUCCEEDED / _FAILED / _CANCELLED
```
4. Check the output JSONL: each line echoes the request plus a `response` (or per-line `status` on failure). Failed lines can be collected into a new input file and resubmitted.
# Google Cloud Documentation Links
Review these documentation pages when you need it for the task at hand:
- [Overview](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/batch-prediction-gemini) - See the up-to-date list of supported AI models here.
- [Batch inference from Cloud Storage](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/batch-prediction-from-cloud-storage) - Batch inference from JSONL blobs in a GCS bucket
- [Creating a batch from GCS using the Python SDK](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/batch-prediction-from-cloud-storage#create-batch-job-python_genai_sdk)
- [Batch inference for BigQuery](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/batch-prediction-from-bigquery) - Batch inference from table rows in BigQuery
- [Creating a batch from BigQuery using the Python SDK](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/batch-prediction-from-bigquery#create-batch-job-python_genai_sdk)
- [Resume an incomplete batch inference job](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/batch-prediction-resume)
- [Context caching](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/context-cache/context-cache-overview) - Implicit caching is simpler, but always store and double-check the inference metrics to ensure that prefix caching is actually effective.
- [Labels for billing](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/add-labels-to-api-calls) - Labels are useful for filtering the GCP Billing dashboard for specific models, batches or job executions.
- [Pricing](https://cloud.google.com/vertex-ai/generative-ai/pricing)
# Abbreviations
- GCP: [Google Cloud Platform](https://cloud.google.com/)
- GCS: [Google Cloud Storage](https://cloud.google.com/storage)From viktor-ferenczi/skills, MIT.
More from viktor-ferenczi/skills
- 0.582score
pr-description-concise-markdown
viktor-ferenczi
Writes a concise, high-level PR description in Markdown for the changes in the current branch.
SkillAFreshness: A★ 1Claude Code +9 - 0.539score
pr-review-comment-fix
viktor-ferenczi
Fixes an issue pointed out by a comment in a PR review.
SkillBFreshness: B★ 1Claude Code +9 - 0.502score
bizzfactory-document-downloader
viktor-ferenczi
Download all of a client's documents from the Bizz Factory portal (portal.bizzfactory.se) into a local folder tree that mirrors the page, without converting…
SkillCFreshness: C★ 1Claude Code +9 - 0.499score
recursive-language-model
viktor-ferenczi
Recursive Language Model workflow for processing documents that exceed context window limits.
SkillCFreshness: C★ 1Claude Code +9 - 0.498score
sdl3-wiki
viktor-ferenczi
Complete offline copy of the SDL3 (Simple DirectMedia Layer 3) wiki in CommonMark format.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
consistency-check
viktor-ferenczi
Finds and fixes internal inconsistencies in a software project — code vs configuration vs documentation drift, plus linter findings.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
structured-documentation
viktor-ferenczi
Generate a verified, modular handbook from a large source-code or document tree, then keep it cheap to refresh as the inputs change.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
stabilization-loop
viktor-ferenczi
Iterates on a locally runnable project (typically a server with a test suite) until it builds, runs, and passes all tests cleanly, fixing failures between runs.
SkillCFreshness: C★ 1Claude Code +9 - 0.494score
python-guidelines
viktor-ferenczi
Guiding principles for writing clear, concise, human readable and maintainable Python code.
SkillCFreshness: C★ 1Claude Code +9 - 0.493score
godot-documentation
viktor-ferenczi
Installs and serves an offline copy of the official Godot Engine documentation (getting started guides, tutorials, API class reference, engine details).
SkillCFreshness: C★ 1Claude Code +9 - 0.492score
swdev-best-practices
viktor-ferenczi
Best practices to follow and principles to adhere to during software development.
SkillCFreshness: C★ 1Claude Code +9 - 0.492score
token-saving-techniques
viktor-ferenczi
A list of techniques for reducing token usage while working on complex tasks.
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jul 4, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/viktor-ferenczi/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from viktor-ferenczi
- 0.582score
pr-description-concise-markdown
viktor-ferenczi
Writes a concise, high-level PR description in Markdown for the changes in the current branch.
SkillAFreshness: A★ 1Claude Code +9 - 0.539score
pr-review-comment-fix
viktor-ferenczi
Fixes an issue pointed out by a comment in a PR review.
SkillBFreshness: B★ 1Claude Code +9 - 0.502score
bizzfactory-document-downloader
viktor-ferenczi
Download all of a client's documents from the Bizz Factory portal (portal.bizzfactory.se) into a local folder tree that mirrors the page, without converting…
SkillCFreshness: C★ 1Claude Code +9 - 0.499score
recursive-language-model
viktor-ferenczi
Recursive Language Model workflow for processing documents that exceed context window limits.
SkillCFreshness: C★ 1Claude Code +9 - 0.498score
sdl3-wiki
viktor-ferenczi
Complete offline copy of the SDL3 (Simple DirectMedia Layer 3) wiki in CommonMark format.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
consistency-check
viktor-ferenczi
Finds and fixes internal inconsistencies in a software project — code vs configuration vs documentation drift, plus linter findings.
SkillCFreshness: C★ 1Claude Code +9
Cite this page
gcp-batch-inference skill. Agent Mart. https://agentmart.dev/skills/viktor-ferenczi-gcp-batch-inference (last updated 2026-10-24)