首页 今日快讯文章正文

在网页运行Gemma 3 270M

今日快讯 2025年10月19日 16:25 0 admin
在网页运行Gemma 3 270M

如果您曾经希望在笔记本电脑或手机上运行自己的小型 AI 模型(无需设置服务器或购买 GPU),我有一些好消息要告诉您。

认识一下 Gemma 3 270M——一款来自 Google 的小型但功能惊人的开源模型。它是 Gemma 系列的一部分,该系列本质上将 Gemini 模型中使用的相同技术融入了轻量级、可定制的形式。

有趣的是:你可以在不到一小时的时间内对其进行微调,将其大小缩减到 300MB 以下,并直接在浏览器中运行。

在这篇文章中,我将向你展示如何使用 Gemma 创建我自己的表情符号翻译器——一个将文本转换为表情符号并在本地运行的小型模型。

1、教 Gemma “用表情符号思考”

Gemma 开箱即用,是一个多面手。如果你让它把文本翻译成表情符号,它可能会表现得有点太客气了。

提示:

“将这段文字翻译成表情符号:多么有趣的派对”

模型:

“好的!这是你的表情符号:RRRqo;

接近了,但并非我最初的目标。对于我的应用,我只想使用表情符号——没有文字,没有“好的!”,只想要一些有趣的东西。

我决定对其进行微调。

在网页运行Gemma 3 270M

2、构建一个小型数据集

我从一个简单的 JSON 文件开始——输入文本,输出表情符号。

[  { "input": "what a fun party", "output": "" },  { "input": "good morning sunshine", "output": "☀️" },  { "input": "so tired today", "output": "" }]

我也做了一些有趣的尝试——我问了 ChatGPT (讽刺的是)为同一组表情符号生成不同的短语。这有助于模型学习诸如“那是亮着的R”→“RRRqo;”之类的变体。

3、在 Colab 中进行微调

微调过去需要 A100 GPU 和耐心。现在不用了。我使用 QLoRA(它只更新少量参数),在 Google Colab 的免费 T4 GPU 上对模型进行了微调。

以下是大致的概述:

from transformers import (    AutoModelForCausalLM,     AutoTokenizer,     Trainer,     TrainingArguments,     DataCollatorForLanguageModeling)from peft import LoraConfig, get_peft_modelfrom datasets import load_datasetmodel_name = "google/gemma-3-270m"tokenizer = AutoTokenizer.from_pretrained(model_name)# Critical: Set pad_token for Gemmaif tokenizer.pad_token is None:    tokenizer.pad_token = tokenizer.eos_tokenmodel = AutoModelForCausalLM.from_pretrained(    model_name,     torch_dtype="auto",  # Optional: Use auto dtype for efficiency    device_map="auto"    # Optional: Auto-map to GPU if available)dataset = load_dataset("json", data_files="emoji_dataset.json")# Optional: Pre-tokenize and truncate if sequences are long (Trainer can handle raw text, but this is explicit)# def tokenize_function(examples):#     return tokenizer(examples["text"], truncation=True, max_length=512)# dataset = dataset.map(tokenize_function, batched=True, remove_columns=dataset["train"].column_names)lora_config = LoraConfig(    r=8,     lora_alpha=32,     target_modules=[        "q_proj", "k_proj", "v_proj", "o_proj",  # Attention layers        "gate_proj", "up_proj", "down_proj"     # MLP layers    ],     lora_dropout=0.05,    task_type="CAUSAL_LM"  # Explicit for clarity)model = get_peft_model(model, lora_config)training_args = TrainingArguments(    output_dir="./gemma-emoji",    num_train_epochs=3,    per_device_train_batch_size=4,    save_steps=100,    logging_steps=10,      # Optional: Log more frequently    evaluation_strategy="no",  # Add eval_dataset if you have one    # group_by_length=True,  # Optional: Group similar lengths for efficiency    # max_steps=-1,          # Optional: Run for full epochs)# Critical: Proper collator for CLMdata_collator = DataCollatorForLanguageModeling(    tokenizer=tokenizer,     mlm=False  # Causal LM, not masked)trainer = Trainer(    model=model,     args=training_args,     train_dataset=dataset["train"],    tokenizer=tokenizer,       # Enables auto-tokenization if not pre-tokenized    data_collator=data_collator)trainer.train()

就是这样——训练完成后,我的模型开始只生成表情符号。

在网页运行Gemma 3 270M

如果您希望模型记住特定的表情符号,请在数据集中提供更多示例。

4、使其足够小以适应 Web

经过微调后,模型大小保持在 1GB 左右——按照LLM的标准来说很小,但对于浏览器来说很大。

为了在本地运行,我使用 LiteRT 将其量化为 4 位(如果您更喜欢使用 Transformers.js,也可以选择 ONNX 路径)。

量化只是“用更少的位数存储数字”的高级数学。结果:模型占用更少的空间,但准确率几乎相同。我的模型最终大小不到 300MB。

这个较小的版本非常适合 MediaPipe 或 Transformers.js,它们都利用 WebGPU 访问您设备的硬件。所以是的——它实际上在您的浏览器中运行。

5、在浏览器中运行模型

最有趣的部分来了——无需服务器,无需 API,无需等待。

我使用 MediaPipe 的 GenAI Tasks 直接在浏览器中加载并运行我的模型。

const genai = await FilesetResolver.forGenAiTasks(  'https://cdn.jsdelivr.net/npm/@mediapipe/tasks-genai@latest/wasm');const llmInference = await LlmInference.createFromOptions(genai, {  baseOptions: { modelAssetPath: 'path/to/yourmodel.task' }});const prompt = "Translate this text to emoji: what a fun party!";const response = await llmInference.generateResponse(prompt);console.log(response); 

缓存后,它完全离线运行。零延迟。完全隐私。即使在飞行模式下也能正常工作。

在网页运行Gemma 3 270M

更小的模型可以加快应用程序的加载速度,并为最终用户带来更好的体验。

6、为什么这很重要

这就是人工智能的发展方向——您可以管理的小型、私密、个性化的模型。

您不需要大型 GPU 或云 API。您可以微调、压缩和部署适合您应用程序的模型,并使其执行您训练的目标。

Gemma 3 270M 是一个优秀的平台——快速、轻量级且易于使用,方便您进行实验。

7、结束语

这个项目从开始到结束只花了我不到一个小时的时间,最终的模型感觉就像我自己的一样。它甚至在测试时使用了我最喜欢的表情符号。

所以,如果您一直想尝试本地人工智能,那就从小处着手吧。选择一个简单的任务,微调 Gemma,对其进行量化,然后让它直接在您的浏览器中运行。

因为人工智能的未来不仅仅在于云端的大型模型,更在于你口袋里的小型模型。


原文链接:网页运行Gemma 3 270M - 汇智网

发表评论

长征号 Copyright © 2013-2024 长征号. All Rights Reserved.  sitemap