Gemma 是开放模型系列,与 Gemini 模型基于相同的研究成果和技术构建而成。该系列目前包括 Gemma、CodeGemma、PaliGemma 和 RecurrentGemma。总的来说,这些模型不仅能够执行包括文本生成、代码完成和生成、视觉语言任务在内的广泛任务,还可以在边缘设备、桌面设备和云端设备等设备上运行。您可以进一步微调 Gemma 模型,以满足您的特定需求。
Gemma 专为开发者和研究人员组成的开放社区而设计,旨在助力 AI 创新。您可以在 ai.google.dev/gemma 上探索有关 Gemma 的更多信息并访问快速入门指南
在这篇博文中,我们将探讨 3 个有趣的项目创意,以及如何使用 Gemma 模型进行创建:
韩语字母表或韩文随着时间的推移而发生变化,导致几个字母在现代韩语中不再使用。这些过时的字母包括:
2. ㆆ (Yeorin-hieut):在韩语中的发音为“light h”,类似于英语字母“h”的柔声版。
3. ㅿ (Bansiot):表示“z”音。
4. ㆁ (Yet-ieung):软腭鼻音,发音与单词“sing”中“ng”的发音类似。
对于韩语母语人士来说,旧文学作品中使用的现已过时的字母为阅读带来了挑战。早期的韩文没有字与字之间的空格,这进一步增加阅读难度。相比之下,现代韩文采用空格,与大多数拼音文字系统相一致。
利用 Gemma 的诸多功能,开发者可以创建翻译器,以帮助理解含义并弥合当代韩语和古代韩语之间的分歧。SentencePiece 是 Gemma 分词器的基础。与严重依赖语言特定指南或预定义词典的传统分词器不同,SentencePiece 直接使用原始文本数据进行训练。因此,它独立于任何特定语言,可适应各种形式的文本数据。
软件
为了简化任务,我们将采用以下结构来微调模型。该模型将根据用户在古韩语中的输入生成当代韩语文本。
指令调整 (IT) 模型使用特定的格式化程序进行训练。请注意,控制令牌在单个令牌中按以下方式进行令牌化:
对于模型训练,我们将使用朝鲜王朝时期的韩语小说《洪吉童传》。
为了评估模型的输出质量,我们将使用训练数据集之外的文本,特别是一位无名作者的经典韩语小说《Suk Yeong Nang Ja jeon》。
该模型无法翻译早期韩文。
经过微调后,模型会遵循指示做出响应,并根据早期韩语文本生成当代韩文文本。
以下的人工翻译文本供您参考:
“금두꺼비가 품에 드는 게 보였으니 얼마 안 있어 자식을 낳을 것입니다.
하였다. 과연 그 달부터 잉태하여 십삭이 차니”
注意:韩语的意思是:“我看到她抱着一只金蟾,所以她很快就会生下孩子。”的确,她在那个月就怀孕了,并且已经有十个月的身孕了。
这是另一个输出。
下面人工翻译:
“이 때는 사월 초파일이었다. 이날 밤에 오색구름이 집을 두르고 향내 진동하며 선녀 한 쌍이 촉을 들고 들어와 김생더러 말하기를,”
注意:韩语文本的意思是,4 月 8 日那天晚上,房子周围萦绕着五色云彩,空气中弥漫着香气,一对仙女手持蜡烛走进来对金生说,
虽然译文并非完美无瑕,但它提供了一个不错的初稿。考虑到数据集仅限于一本书,所以成果十分显著。增加数据源的多样性可能会提高翻译质量。
在微调模型后,您只需将其发布到 Kaggle 和 Hugging Face 即可。
下面是示例。
# 保存微调后的模型
gemma.save_to_preset("./old-korean-translator")
# 将模型变体上传到 Kaggle
kaggle_uri = "kaggle://my_kaggle_username/gemma-ko/keras/old-korean-translator"
keras_nlp.upload_preset(kaggle_uri, "./old-korean-translator")
为了实现类似的任务,您可以复制相同的结构。以下是一些示例:
各种日常物品和概念的名称因地区而异。例如,在美式英语 (AmE) 中,人们使用“elevator”、“truck”、“cookie”和“french fries”,而在英式英语 (BrE) 中,则分别对应“lift”、“lorry”、“biscuit”和“chips”。
除了词汇差异,拼写也存在差异。例如,在 AmE 中,以“-or”结尾的单词通常在 BrE 中拼写为“-our”。示例包括“color”(AmE) 和“colour”(BrE),或“humor”(AmE) 和“humour”(BrE)。
另一种拼写变化是“-ize”与“-ise”的区别。在 AmE 中,“organize”和“realize”等单词通常拼写为“z”,而在 BrE 中,首选拼写为“organise”和“realise”,改用“s”。
借助 Gemma 等 AI 工具,您可以完成从一种英语到另一种英语的风格转化,从而实现美式英语和英式英语写作风格之间的顺畅转换。
在日本关西地区,有一种独特的方言,称为“关西方言”。与标准日语相比,日语母语人士认为关西方言的发音和语调都更有节奏感、更尖锐。
利用 Gemma 的功能,您可以通过准备大量的关西方言数据集来创建方言翻译器。
作为您值得信赖的伴侣,Gemma 可以为您踏上创造迷人游戏的旅程提供帮助。这一切都始于简单的一句话推介,作为游戏概念的基础。Gemma 将巧妙地指导您充实游戏的概念,制作复杂的主角,并撰写迷人的主线故事,从而让玩家沉浸在游戏的世界中。
软件
首先,撰写核心概念,即用一句话介绍您的游戏,如下所示:
Gemma 可以根据您的推介添加更多细节。
输入:“使用下面给出的核心概念详细说明此游戏。\n{pitch}”
示例输出:
输入:“设计主角”
示例输出:
输入:“设计反派角色”
示例输出:
输入:“撰写这款游戏的主线故事,包括介绍、发展、转折和结局。”
示例输出:
通过修改提示,您可以让模型为几乎任何类型的创意内容生成类似的内容。
推介:“新款蒸汽牙刷”
输入:“为下方的新产品生成营销口号。\n{pitch}”
示例输出:
推介:“宇宙和流星”
输入:“根据下方的概念生成花店创意,并提出合适的花卉购买建议。\n{pitch}”
示例输出:
推介:“Cyberpunk Kraken”
输入:“根据下方的概览生成食谱。\n{pitch}”
示例输出:
给圣诞老人寄信的传统方法可能有限且缺乏人情味。孩子们通常需要等待数周甚至数月才能得到回复,但圣诞老人的回信可能没有他们想要的那么详细或生动。
在这个项目中,我们将使用在 Raspberry Pi 上运行的 Gemma,利用大型语言模型的功能来撰写来自圣诞老人的神奇信件。
硬件
软件
文本生成
您可以使用 libgemma 编写自己的 C++ 应用。
使用下面的提示为模型提供指示
在构建之前,修改代码中定义的 MODEL_PATH
。
$ g++ santa.cc -I . -I build/_deps/highway-src -I build/_deps/sentencepiece-src build/libgemma.a build/_deps/highway-build/libhwy.a build/_deps/sentencepiece-build/src/libsentencepiece.so -lstdc++ -l
运行
$ LD_LIBRARY_PATH=./build/_deps/sentencepiece-build/src ./a.out
模型将读取 letter.txt 中文本
,并生成一封来自圣诞老人的信。
注意:在 Raspberry Pi 上生成文本可能需要一些时间。
以下是最终结果:
$ ./main -m models/gemma-2b-it.gguf --repeat-penalty 1.0 -p“假如您是圣诞老人,请给这个小孩写封回信。”\n<start_of_turn>user\nPLACE_THE_CONTEXT_OF_LETTER_HERE<end_of_turn>\n<start_of_turn>model\n”
Gemma 提供无限的可能性。我们希望这些建议能激发您的灵感,同时我们迫切期待看到您创造精彩的作品。
我们建议您加入 Google 开发者社区 Discord 服务器。在那里,您可以分享自己的项目,并与其他志同道合的人建立联系。
祝您享受愉快的创建体验!