💎

Googleの最新軽量LLMモデル「Gemma」をKaggleで触ってみた

2024/02/22に公開

Gemmaとは

Gemmaは、Gemini(旧称Bard)と同じ技術を活用した軽量LLMモデルで、同規模の他のモデルと比較しても、ベンチマーク的に高いパフォーマンスを発揮すると言われています。(まあ毎回この文言見ますけどね)
https://ai.google.dev/gemma?hl=ja

Gemmaの面白いところに、入口からKaggleを紹介しているという点があります。
GPUをブラウザ上で使用できる環境が整っており、多くのユーザーが自分のノートブックを公開しているため面白い試みだと思いました。(Discussionもあるし)

Kaggleで触ってみる

そんなわけでKaggleで触ってみます
GemmaのKaggleのリンクにアクセスすると、Gemmaを使用したノートブックが共有されています。

Modelの認証

GemmaをKaggleで利用するには、まずモデルの認証を受ける必要があります。
Modelから赤丸で囲んだ「Request Access」をクリックし、必要事項を入力後、画面下部の「Accept」をクリックしてください。

Notebookのコピー

公開されているNotebookから興味のあるものを選び、開いてみてください。
個人的にはGemma - First Stepsが特にシンプルでオススメです。(※2bモデルですが)

ノートブックを開くと、次に示すような画面に移動します。ここで「Edit My Copy」を押すと、ノートブックが自分の環境にコピーされます。

入出力例(日本語)

my_prompt = ['Gemmaではどのようなことができますか']
LLM.generate(my_prompt, max_length=360)
出力
['Gemmaではどのようなことができますか?\n\nGemmaGemmaは、デジタルコンテンツ作成やデジタルマーケティングのためのツールやサービスを提供する企業です。\n\nGemmaGemmaは、以下の機能を提供しています。\n\n* **コンテンツ作成**:ブログ記事、ウェブサイト、ソーシャルメディア投稿など、さまざまなコンテンツを自動生成するツール\n* **マーケティングツール**: SEO対策、ソーシャルメディアマーケティング、広告など、さまざまなマーケティングツールを提供する\n* **マーケティング分析**:マーケティングデータに基づいた分析を提供するツール\n\nGemmaGemmaは、さまざまな企業にデジタルコンテンツやマーケティングサービスを提供しています。\n\n**主な機能の例:**\n\n* **ブログ記事自動生成ツール**は、ブログ記事のタイトルと本文を自動生成する機能を提供します。\n* **SEO対策ツール**は、ブログ記事のタイトルと本文を自動生成し、検索エンジンに最適化する機能を提供します。\n* **ソーシャルメディア投稿ツール**は、ソーシャルメディアアカウントに自動的に投稿する機能を提供します。\n\n**主な企業への提供**\n\nGemmaGemmaは、さまざまな企業にデジタルコンテンツやマーケティングサービスを提供しています。特に、以下の企業とパートナー関係を構築しています。\n\n* **株式会社アソラ**\n* **株式会社アフィリエイト**\n* **株式会社アトラクション**\n* **株式会社メディアプラス**\n* **株式会社メディアファクトリー**\n\n**主な特徴**\n\n* **自動化**:自動化されたコンテンツ作成やマーケティングツールは、より効率的で低コストなコンテンツやマーケティングサービスを提供します。\n* **マーケティング分析**:マーケティングデータに基づいた分析は、より効果的なマーケティング戦略を構築するための基盤を提供します。\n* **顧客サポート**:']

若干、目が滑る文章ですが悪く無さそうです。

コード修正
my_prompt = ['''次のコードを修正してください
"""def calculate_total(items):
    total_cost = 0
    for item in items:
        total_price += item.price
    return total_price"""
''']
LLM.generate(my_prompt, max_length=360)
出力
['次のコードを修正してください\n"""def calculate_total(items):\n    total_cost = 0\n    for item in items:\n        total_price += item.price\n    return total_price"""\n```\n\nこのコードは、`items` の要素の `price` を合計する計算を行うコードですが、`total_price` が `item.price` であることに注意してください。\n\n修正したコードは次のとおりです。\n\n```python\ndef calculate_total(items):\n    total_cost = 0\n    for item in items:\n        if item.price:\n            total_cost += item.price\n    return total_cost\n```']

変数名間違い程度ですが、修正出来てました。

短文作成
my_prompt = ['「どんより」を使用して短文を作りなさい']
LLM.generate(my_prompt, max_length=360)
出力
['「どんより」を使用して短文を作りなさい。\n\nどんより、どんより、\nどんより、どんより、\nどんより、どんより、\nどんより、どんより、\nどんより、どんより。\n\nこの短文は、どんよりの繰り返しで、どんよりの持つ悲しみと絶望を表していると考えられます。']

流石に少し難しかったか・・・?

全体的には軽量LLMにしては良さそうに思えます。

ヘッドウォータース

Discussion