如果您曾经希望在笔记本电脑或手机上运行自己的小型 AI 模型(无需设置服务器或购买 GPU),我有一些好消息要告诉您。认识一下 Gemma 3 270...
2025-10-19 0
如果您曾经希望在笔记本电脑或手机上运行自己的小型 AI 模型(无需设置服务器或购买 GPU),我有一些好消息要告诉您。
认识一下 Gemma 3 270M——一款来自 Google 的小型但功能惊人的开源模型。它是 Gemma 系列的一部分,该系列本质上将 Gemini 模型中使用的相同技术融入了轻量级、可定制的形式。
有趣的是:你可以在不到一小时的时间内对其进行微调,将其大小缩减到 300MB 以下,并直接在浏览器中运行。
在这篇文章中,我将向你展示如何使用 Gemma 创建我自己的表情符号翻译器——一个将文本转换为表情符号并在本地运行的小型模型。
Gemma 开箱即用,是一个多面手。如果你让它把文本翻译成表情符号,它可能会表现得有点太客气了。
提示:
“将这段文字翻译成表情符号:多么有趣的派对”
模型:
“好的!这是你的表情符号:RRRqo;
接近了,但并非我最初的目标。对于我的应用,我只想使用表情符号——没有文字,没有“好的!”,只想要一些有趣的东西。
我决定对其进行微调。
我从一个简单的 JSON 文件开始——输入文本,输出表情符号。
[ { "input": "what a fun party", "output": "" }, { "input": "good morning sunshine", "output": "☀️" }, { "input": "so tired today", "output": "" }]
我也做了一些有趣的尝试——我问了 ChatGPT (讽刺的是)为同一组表情符号生成不同的短语。这有助于模型学习诸如“那是亮着的R”→“RRRqo;”之类的变体。
微调过去需要 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()
就是这样——训练完成后,我的模型开始只生成表情符号。
如果您希望模型记住特定的表情符号,请在数据集中提供更多示例。
经过微调后,模型大小保持在 1GB 左右——按照LLM的标准来说很小,但对于浏览器来说很大。
为了在本地运行,我使用 LiteRT 将其量化为 4 位(如果您更喜欢使用 Transformers.js,也可以选择 ONNX 路径)。
量化只是“用更少的位数存储数字”的高级数学。结果:模型占用更少的空间,但准确率几乎相同。我的模型最终大小不到 300MB。
这个较小的版本非常适合 MediaPipe 或 Transformers.js,它们都利用 WebGPU 访问您设备的硬件。所以是的——它实际上在您的浏览器中运行。
最有趣的部分来了——无需服务器,无需 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);
缓存后,它完全离线运行。零延迟。完全隐私。即使在飞行模式下也能正常工作。
更小的模型可以加快应用程序的加载速度,并为最终用户带来更好的体验。
这就是人工智能的发展方向——您可以管理的小型、私密、个性化的模型。
您不需要大型 GPU 或云 API。您可以微调、压缩和部署适合您应用程序的模型,并使其执行您训练的目标。
Gemma 3 270M 是一个优秀的平台——快速、轻量级且易于使用,方便您进行实验。
这个项目从开始到结束只花了我不到一个小时的时间,最终的模型感觉就像我自己的一样。它甚至在测试时使用了我最喜欢的表情符号。
所以,如果您一直想尝试本地人工智能,那就从小处着手吧。选择一个简单的任务,微调 Gemma,对其进行量化,然后让它直接在您的浏览器中运行。
因为人工智能的未来不仅仅在于云端的大型模型,更在于你口袋里的小型模型。
原文链接:网页运行Gemma 3 270M - 汇智网
相关文章
如果您曾经希望在笔记本电脑或手机上运行自己的小型 AI 模型(无需设置服务器或购买 GPU),我有一些好消息要告诉您。认识一下 Gemma 3 270...
2025-10-19 0
本文探讨了生成合成表格数据的方法,使得合成数据与真实数据中的分布相匹配。也就是说,给定一个数据集,我们研究如何生成任意数量的额外行,这些行可以看起来像...
2025-10-19 0
您好:这款游戏可以开挂,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-10-19 0
无需打开直接搜索微信:本司针对手游进行,选择我们的四大理由: 1、软件助手是一款功能更加强大的软件!无需打开直接搜索微信: 2、自...
2025-10-19 0
您好:这款游戏可以开挂,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-10-19 0
网络早已经成为现代家庭必备的设施,信号好,上网速度快成为很多家庭的刚需。其中路由器是家庭网络的重要节点,很多家庭都希望选择一台信号好、上网速度快的路由...
2025-10-19 0
2025年上半年,中国电视市场风云再起,高端化、大屏化趋势愈发显著。在这场激烈的角逐中,创维电视凭借其深厚的技术底蕴与卓越的品牌实力,再度交出了一份亮...
2025-10-19 0
亲,这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-07-18 6
发表评论