1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SnowflakeのAI機能を試してみる(COMPLETE, TRANSLATE, SUMMARIZE, SENTIMENT)

Posted at

先日、下記のSnowflake Cortex AIに関するイベントに参加してきました!
そこで、SnowflakeのAI機能が簡単に利用できるということを今更ながら知ったので、試してみました!

Cortex AIではいくつかの関数が準備されており、それを呼び出すだけで簡単に利用できるようになっています。

今回は気軽に使えそうな以下の4つを試してみました!

  • COMPLETE
  • TRANSLATE
  • SUMMARIZE
  • SENTIMENT

COMPLETE

COMPRETEはChatGPTとの会話のように、入力したプロンプトに対してLLMからの回答が返ってくる関数です。
第1引数に利用するLLMモデル名、第2引数にプロンプトを入力します。

select SNOWFLAKE.CORTEX.COMPLETE('llama3.1-8b','DWHのSnowflakeについて簡単に説明して' );

出力結果

Snowflakeは、クラウドベースのデータウェアハウス(DWH)です。主にデータ分析に使用されます。
Snowflakeの特徴は以下のとおりです。

  • クラウドベース: Snowflakeはクラウド上で動作するため、スケーラビリティが高く、管理が容易です。
  • マルチモデル: Snowflakeはマルチモデルなので、SQL、JSON、AVRO、PARQUETなどのデータ形式をサポートしています。
  • データ分割: Snowflakeはデータ分割をサポートしており、データを小さなパーティションに分割して管理できます。
  • データキャッシュ: Snowflakeはデータキャッシュをサポートしており、頻繁に参照されるデータをキャッシュして読み取りの高速化を実現します。
  • セキュリティ: Snowflakeは高度なセキュリティ機能を備えており、データの保護と管理を容易にします。

Snowflakeは、データ分析、ビジネスインテリジェンス、データサイエンスなどの分野で広く使用されています。


COMPLETEにはテーブルから取得した結果を直接渡すことも可能です。

ChatGPTに作ってもらった渋谷の人気施設30個の一時テーブルをもとに、施設のカテゴリを判定してもらってみます。

SELECT 
    spot_name,
    SNOWFLAKE.CORTEX.COMPLETE(
        'llama3.1-70b',
        CONCAT('各施設について、「生活サービス」「宿泊」「ショッピング」「レジャー」「交通施設」「飲食」「観光」のいずれかのカテゴリーに分類してください。カテゴリー名のみを出力してください: <spot>', spot_name, '</spot>')
    ) AS category
FROM popular_spots_shibuya
;

こちらが出力結果です!
何となく良さそうな感じがします。(すごー)
※ ChatGPTが作ってくれた施設一覧なので、渋谷外の施設や、そもそも施設や場所でないものも紛れ込んでいますがそこは🙈

SPOT_NAME CATEGORY
スクランブル交差点 交通施設
ハチ公像 観光
SHIBUYA SKY 観光
渋谷パルコ ショッピング
渋谷ヒカリエ ショッピング
MIYASHITA PARK レジャー
東急プラザ渋谷 ショッピング
MAGNET by SHIBUYA109 ショッピング
Spotify O-EAST レジャー
Bunkamura ショッピング
国立代々木競技場 レジャー
NHKスタジオパーク 観光
代々木公園 レジャー
明治神宮 観光
キャットストリート ショッピング
スペイン坂 観光
タワーレコード渋谷店 ショッピング
HMV&BOOKS SHIBUYA ショッピング
SHIBUYA TSUTAYA ショッピング
ヴィレッジヴァンガード 渋谷本店 ショッピング
Disney HARVEST MARKET By CAFE COMPANY ショッピング
ゴンチャ 渋谷道玄坂店 飲食
猿カフェ レジャー
THE THEATRE TABLE 飲食
BIOTOP レジャー
niko and ... TOKYO 飲食
SHIBUYA CAST. ショッピング
青の洞窟 SHIBUYA 観光
シブヤノオト レジャー
RAYARD MIYASHITA PARK ショッピング

TRANSLATE

TRANSLATEは関数名のとおり、翻訳してくれる関数です!

select SNOWFLAKE.CORTEX.translate('`TRANSLATE`は関数名のとおり、翻訳してくれる関数です!','ja', 'en' );


出力結果はいかのとおりです!結構いい感じだと思います。

TRANSLATE is a function that translates, as the name of the function!


こちらもCOMPLETEと同様にテーブルの値を渡すことができます。
ChatGPTが作ってくれた文章を翻訳してみましょう。

select
    text as ja_text,
    SNOWFLAKE.CORTEX.translate(text,'ja', 'en' ) as en_text
from temp_japanese_texts;
JA_TEXT EN_TEXT
渋谷駅前に新しいカフェがオープンしました。 A new café has opened in front of Shibuya Station
渋谷ヒカリエで開催中の展示会が話題です。 The exhibition in Shibuya Hikariye is the topic of discussion
代々木公園で大規模なフリーマーケットが行われています。 Large-scale free markets are held in the tree park every day
明治神宮は観光客で賑わっています。 Meiji Shrine is packed with tourists
渋谷スクランブル交差点は世界的に有名な場所です。 Shibuya Scramble Intersection is a world famous place

SUMMARIZE

SUMMARIZEはテキストを要約するための関数です。

select snowflake.cortex.summarize(
    '渋谷は、東京で最も活気のあるエリアの一つとして知られています。
    この地域は、ショッピング、エンターテイメント、飲食、ファッションといった
    多様な楽しみ方ができるスポットが豊富に集まっています。特に、渋谷スクランブル
    交差点は世界的に有名であり、多くの観光客が写真を撮るために訪れます。
    渋谷駅周辺には渋谷ヒカリエや渋谷109といった商業複合施設が立ち並び、
    若者や観光客に人気です。また、少し足を伸ばせば代々木公園や明治神宮などの
    自然と歴史に触れることができる場所もあります。渋谷はその多様性とダイナミズムから、
    訪れる人々に常に新しい発見と興奮を与えてくれるエリアです。'
);


英語で出力されます。要約はされていないようです。
ドキュメントに「英語の入力を要約します」とあるように、日本語には対応していません。
日本語を英語にしてからSUMMARIZEするのが良さそうですね!

Shibuya is known as one of the most lively areas in Tokyo. It offers various ways to enjoy shopping, entertainment, dining, and fashion. The famous Shibuya Scramble intersection is a world-renowned spot where many tourists take photos. Shibuya Station area is home to popular commercial complexes like Shibuya Hikarie and Shibuya 109, and is popular among young people and tourists. Nearby are also natural and historical sites like Yoyogi Park and Meiji Shrine. Shibuya's diversity and dynamism continually offers new discoveries and excitement to visitors.

SENTIMENT

SENTIMENTは感情分析ができる関数です。
-1 ~ 1の範囲で数字が返ってきてネガポジ判定が成されます。

select
    text,
    snowflake.cortex.sentiment(text) as score
from temp_negapoji_texts
;

日本語だと正しく分析できていないようです。
こちらもドキュメントに英語のみが対応している書いてあります!

TEXT SCORE
渋谷はいつも楽しい場所です。 -0.1235845
渋谷の交通はとても混雑していて疲れます。 -0.15305562
渋谷の新しいカフェは美味しいです。 -0.01358631
渋谷の騒音が気になります。 -0.006846354
渋谷ヒカリエのイベントは素晴らしいです。 0.0473288
select
    text,
    snowflake.cortex.sentiment(
        snowflake.cortex.translate(text, 'ja', 'en')
    ) as score
from temp_negapoji_texts
;

英語に翻訳してからだと、こんな感じになりました。
「騒音が気になる」がマイナス値になってくれたら完璧だったのに!
ChatGPTによると『 英語の翻訳が「I care about the noise of Shibuya」となっており、「care」という単語がポジティブなニュアンスを持つため、誤ってポジティブなスコアをつけた可能性があります。』とのこと。

TEXT EN_TEXT SCORE
渋谷はいつも楽しい場所です。 Shibuya is always a fun place to be in 0.454862
渋谷の交通はとても混雑していて疲れます。 The traffic in Shibuya is very crowded and tiring -0.13499872
渋谷の新しいカフェは美味しいです。 The new cafe in Shibuya is good 0.38711646
渋谷の騒音が気になります。 I care about the noise of Shibuya 0.4065359
渋谷ヒカリエのイベントは素晴らしいです。 The event in Shibuya Hikariye is great! 0.5326819

用意されている関数だけでも、いろんな用途がありそうですね!
イベントでは他にもRAGやファインチューニングなども紹介されていたので、今後はそれらも試してみたいなと思います!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?