昨年の振り返りはこちら。
概要
今年から振り返りページが表示されるようになりましたが(ありがとうございます)、それまではメールでいただいていたのでそれらのデータとも比較してみます。
2021 | 2022 | 2023 | |
---|---|---|---|
Contribution | 851 | 1299 | 2434 |
書いた記事数 | 299 | 563 | 483 |
読まれた数 | 211,421 | 621,553 | 1,531,531 |
いいねされた数 | 368 | 567 | 1468 |
ストックされた数 | 369 | 342 | 962 |
可視化します。このサイズのデータセットならExcel使います。
執筆記事数は去年より減ってますが、それ以外は相当な増加率。そして、読まれた数は倍以上に。
分析データの準備
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)
テーブルに永続化します。
(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;
詳細分析
投稿日の分布
ワードクラウド
ぱっと見、LLM、言語モデル、RAGなどのキーワードが目立ちます。それ以外にはUnity CatalogのCatalogなど。
記事の参照回数、いいねの数
記事を確認してみるとオープンソースDollyの記事、GPTの論文の翻訳、LLMを試してみた系が上位を占めています。まさに今年は生成AI、大規模言語モデル(LLM)と言える年だった訳で、私自身興奮しながらこれらの記事を書いていたのでした。ITエンジニアとして現場で働いている時にこのようなテクノロジーシフトに立ち会えたことは非常に嬉しいです。
ピックアップ記事
[翻訳] 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特に自分の場合は大規模言語モデルの記事をたくさん書いた年となりました。来年も執筆して参ります!