1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Databricksの投稿記事から見る2023年の振り返り

Posted at

今年も振り返ります。
Screenshot 2023-12-29 at 7.48.05.png

昨年の振り返りはこちら。

概要

今年から振り返りページが表示されるようになりましたが(ありがとうございます)、それまではメールでいただいていたのでそれらのデータとも比較してみます。

2021 2022 2023
Contribution 851 1299 2434
書いた記事数 299 563 483
読まれた数 211,421 621,553 1,531,531
いいねされた数 368 567 1468
ストックされた数 369 342 962

可視化します。このサイズのデータセットならExcel使います。
Picture1.png

執筆記事数は去年より減ってますが、それ以外は相当な増加率。そして、読まれた数は倍以上に。
Picture2.png

分析データの準備

Qiita APIを使わせていただき、自分の記事データを取得します。

from time import sleep
import requests

access_token = "<トークン>"

item_list_base_url = "https://qiita.com/api/v2/authenticated_user/items"
headers = { "Authorization": f"Bearer {access_token}" }

page = 1
per_page = 100
item_count = 1

sleep_time = 0.01

page_views = []

while True:
    
    # 記事一覧を取得
    item_list_url = f"{item_list_base_url}?page={page}&per_page={per_page}"
    items = requests.get(item_list_url, headers = headers)
    #print(items)
    items_body = items.json()

    if not len(items_body):
        break

    for entry in items_body:
        item_id = entry["id"]

        item_url = f"https://qiita.com/api/v2/items/{item_id}"

        # 記事詳細を取得
        item = requests.get(item_url, headers = headers)
        item_body = item.json()
        print(item)

        print(f"Get infos: {item_count} {page} {item_body['title']} {item_body['created_at']}")

        title = item_body["title"]
        url = item_body["url"]
        tags = item_body["tags"]
        created_at = item_body["created_at"]
        page_views_count = item_body["page_views_count"]
        likes_count = item_body["likes_count"]
        body = item_body["body"]
        rendered_body = item_body["rendered_body"]
        
        page_views.append({
            "id": item_id,
            "title": title,
            "page": page,
            "url": url,
            "tags": tags,
            "created_at": created_at,
            "page_views_count": page_views_count,
            "likes_count": likes_count,
            "body": body,
            "rendered_body": rendered_body
        })

        item_count += 1

        # 記事数に基づく中断
        if item_count == 500: break

        sleep(sleep_time)

    page += 1

    sleep(sleep_time)
df = spark.createDataFrame(data=page_views)
df.printSchema()
display(df)

Screenshot 2023-12-29 at 8.00.17.png

テーブルに永続化します。

(df.
  withColumn("created_at_ts", to_timestamp("created_at")).
  write.mode("overwrite").option("mergeSchema", "true").
  saveAsTable("takaakiyayoi_catalog.qiita_2023.taka_qiita")
)

件数を確認します。

%sql
SELECT COUNT(*) FROM takaakiyayoi_catalog.qiita_2023.taka_qiita WHERE Year(created_at) = 2023;
484

レポートいただいてから記事書いているので件数増えてますが合っているようです。

前回はタグしか可視化しませんでしたが、今回はタイトルからキーワードを抽出してワードクラウドも作りたいと思います。こちらを参考に。

クラスターにinitスクリプトとライブラリを追加します。今ではワークスペースファイルでinitスクリプトを作成できるので楽になりました。

(ほぼ全ての記事に入っている)Databricksを除く名詞のみを抽出するUDF(ユーザー定義関数)を作成します。

import MeCab

def extract_words(text: str) -> str:
  """
  名詞のみを抽出するUDF
  :param text: Pyspark/SQLのカラム
  :return: 名詞を半角スペースで連結した文字列
  """
  
  word_str = ""
  
  mecab = MeCab.Tagger("-Ochasen")
  mecab.parseToNode('')
  node = mecab.parseToNode(text)
    
  while node:
    # 名詞のみを抽出
    if node.feature.split(",")[0] == "名詞" and node.surface != "Databricks":
      word = node.surface
      
      word_str = word_str + " " + word
      
    node = node.next
  
  return word_str

# Spark UDFとして関数を登録
spark.udf.register("extract_words", extract_words)
%sql
CREATE
OR REPLACE TABLE takaakiyayoi_catalog.qiita_2023.taka_qiita_2023 AS
SELECT
  *,
  extract_words(title) AS processed_title
FROM
  takaakiyayoi_catalog.qiita_2023.taka_qiita
WHERE
  Year(created_at) = 2023;

うまく抽出できました。これでワードクラウドを作成できます。
Screenshot 2023-12-29 at 9.27.14.png

詳細分析

Databricks SQLでダッシュボードを作成します。
Screenshot 2023-12-29 at 9.28.23.png

投稿日の分布

毎度のことながらほぼ毎日書いてます。
Screenshot 2023-12-29 at 9.29.10.png

ワードクラウド

ぱっと見、LLM、言語モデル、RAGなどのキーワードが目立ちます。それ以外にはUnity CatalogのCatalogなど。
Screenshot 2023-12-29 at 9.37.47.png

記事の参照回数、いいねの数

3月、4月のスパイクが顕著です。
Screenshot 2023-12-29 at 9.31.31.png

記事を確認してみるとオープンソースDollyの記事、GPTの論文の翻訳、LLMを試してみた系が上位を占めています。まさに今年は生成AI、大規模言語モデル(LLM)と言える年だった訳で、私自身興奮しながらこれらの記事を書いていたのでした。ITエンジニアとして現場で働いている時にこのようなテクノロジーシフトに立ち会えたことは非常に嬉しいです。
Screenshot 2023-12-29 at 9.31.08.png

ピックアップ記事

[翻訳] GPTs are GPTs: An Early Look at the Labor Market Impact Potential of Large Language Models (前編)

投稿日 2023年03月21日

GPT-4の話が出てから色々OpenAIの論文を読み始めました。こちらもその一つで翻訳したものとなっています。ボリュームが多かったので前後編にしています。こちらは生成AIがアメリカの労働市場にどのような影響を与えるのかをまとめたものとなっており、ほぼ全ての職業が影響を受けるという衝撃的な内容でした。しかも、提供側がここまで考察していることにも驚きました。

他にも以下の論文を訳していました。

Hello Dolly: オープンなモデルでChatGPTの魔法を民主化する

投稿日 2023年03月25日

3月にGPT-4のパフォーマンスが世界を席巻した頃は「すごいらしい」くらいの認知しかしていなかったのですが、社内では色々と動きがありました。いきなり「オープンソース版LLM Dollyだ!」と発表されてひっくり返った次第です。

Free Dolly: 世界初の真にオープンな指示でチューニングされたLLM

投稿日 2023年04月13日

上の記事が最初のリリースだったのですが、バージョン1では商用利用できないという制限がありましたが、商用利用できるようになったことを発表したのがこちらのリリースでした。この発表は日本国内でも好意的に受け取っていただけたのを覚えています。

大規模言語モデルを活用したDatabricksのQ&A bot構築のウォークスルー

投稿日 2023年05月27日

そして、Databricksの提供機能自体もどんどん生成AI自身や生成AIを用いたシステムの開発をサポートしていくようになります。今でも大きな人気を得ているRAG(Retrieval Augumented Generation)もこの頃からサポートし始めています。

日本語に対応したものも書きました。

今さら聞けないPython - pandasを用いたデータ分析

投稿日 2023年03月28日

LLM以外でPVが多かったのがこちらの記事です。以前実施したウェビナーのサマリー版です。何記事かに分けましたがpandasの記事が一番アクセスいただいています。やはりpandas人気すごいです。

以下の関連記事も結構アクセスいただいています。

Databricksアシスタントを試してオッサンびっくり

投稿日 2023年07月21日

この業界で20年以上働いているまごうことなきオッサンではありますが、LLMがデータ分析環境に組み込まれることでこれほど作業方法が変わるのかと驚いたことをつらつら書きました。10年後のコーディングってどうなっているんでしょうね。

[2023年12月版] Databricksとは何か?

投稿日 2023年12月02日

そして、Databricksのプラットフォームの名称もレイクハウスからデータインテリジェンスプラットフォームへと変わりました。そのタイミングでこちらを書きました。これはレイクハウスが生成AIによって進化したことを意味しています。プレビュー中の機能もありますが、上述のアシスタントやLLMOpsを実現するための機能がどんどん提供されていきます!

まとめ

あと、Databricksの日本語マニュアルが公開されたこともあって、マニュアルの翻訳の頻度は減って代わりにオリジナルの記事が増えた(と言っても試してみた系が多いですが)のも今年の変化ですかね。

兎にも角にも、生成AI特に自分の場合は大規模言語モデルの記事をたくさん書いた年となりました。来年も執筆して参ります!

Databricksクイックスタートガイド

Databricksクイックスタートガイド

Databricks無料トライアル

Databricks無料トライアル

1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?