💡

[2024年3月6日]週刊AI・WEB開発関連記事まとめ

2024/03/06に公開

こんにちは、Kaiです。
私は情報収集した技術ネタを週次でまとめて社内共有しておりまして、社外の方にとっても
有用なのではないかという声を頂いたため、試みにしばらく社外発信してみたいと思います。

注意事項

  • 先週収集したAIおよびWeb系の記事やポストが中心になります
  • 私のアンテナに引っかかった順なので、多少古い日付のものを紹介する場合があります
  • 業務状況次第でお休みしたり、掲載タイミングが変わったりします

それでは先週のトピックスです。

BitNet

先週のAI界隈はもうこの話題で持ちきりでしたね。
Microsoftの中国チームが発表した実装で、32bitや16bitで表現されていたパラメータを、
1bit(正確には3値)で表現して、高速化・性能向上を実現したというものです。

これまでも8bit量子化や4bit量子化が提案されていましたが、確かに省メモリ高速化は
実現できるものの、性能は劣化するというのが通説でした。

原論文

The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits
https://arxiv.org/pdf/2402.17764.pdf

しかし、この論文によると「-1,0,1」の3値量子化により高速化・省メモリ化・性能向上の
全てを達成できたということです。

これが本当であれば凄まじいゲームチェンジです。
なぜなら、加算器のみで学習も推論も完結してしまうため、これまでGPUによる浮動小数点計算の
並列化がカギであった大規模LLMが、一般のCPUでも実現できてしまうかもしれません。
(あるいは、専用のアーキテクチャが産まれるかもしれない)

ただし、まだ実装が公開されていません。
正直「ほんとにござるか?」という反応も多く、割り引いて考える必要がありそうです。
以下に解説記事と簡単な実装試験をされた方の記事を載せておきます。

解説・実装試験

https://wirelesswire.jp/2024/02/86094/
https://qiita.com/tech-Mira/items/67dec9c5a5f025d2727a
https://note.com/shi3zblog/n/n58b0a2252727
https://qiita.com/fuyu_quant/items/fa4fc3930ddfd2ec6f16
https://note.com/hatti8/n/ndba2c57d87c5

動画生成

Alibabaからも動画系の新しいアーキテクチャが出ました。
1枚の絵と音声データ(会話、講演、歌など)から、自然な動画を生成できるというものです。
特筆すべきはその名(EMO: Emote Portrait Alive)の通り、感情表現です。
会話でも歌でも、実に抒情的に表情を制御しており、これまでのものとは一線を画しています。

公開サイト

https://humanaigc.github.io/emote-portrait-alive/

その他AI系話題

KaggleのNLPコンペで初手に使える可視化 〜BERTopicを用いた文書クラスタリングと可視化〜

BERTopicという、Transformerのトピック分類モデルで直感的に文章を可視化する手法です。
とりあえずおおまかな傾向をつかむ、という点では確かに初手使えそうです。
https://zenn.dev/nishimoto/articles/74fddcb5c67960

大規模言語モデルは専門医の診断を超えるか

既報ですが、松尾研よりGPT-4と専門医のトリアージ精度を比較した論文の紹介です。
https://zenn.dev/mkj/articles/76f9aa28cc75d6

RAGでの回答精度向上のためのテクニック集(基礎編)

RAGチートシートの翻訳・解説記事です。
RAGとは?から解説されているので、初心者でも分かりやすいと思います。
https://zenn.dev/knowledgesense/articles/47de9ead8029ba

独立成分分析(ICA)を使ってText Embeddingを分析してみた

BitNetでひょっとしたらルールが変わるのかもしれませんが、Embeddingの解釈性は
ビジネスでAIを利用する上では重要なポイントです。
この記事では、独立成分分析でEmbeddingを解析することで、解釈性の高い独立成分を
取り出す論文についての解説と、実装試験を取り扱っています。
Embeddingを使ったテキスト解析をやっていれば、即試してみたくなる内容です。
https://qiita.com/otakumesi/items/332004aba132a64f7a26

SHAPで因果関係を説明できる?

上の記事にも関連しますが、AIの処理プロセスにおいて解釈性を持たせたいケースは
多々あり、SHAP値はその代表的なツールです。
ただし万能なものではなく、本記事では特に因果関係を焦点に注意喚起をしています。
https://qiita.com/s1ok69oo/items/0bf92b84e565789a2191

LayerXにおけるAI・機械学習技術の活用事例とその裏側

「セキュリティヒアリングシートの一次回答自動生成」は使えそうです!
あと、単独AIでは課題解決は難しく、LLM/特化AI/ルールベースを組み合わせる必要があるのは
ほんとにその通りだと実感してます。
https://speakerdeck.com/yuya4/layerx-ai-deim2024

Web開発系話題

Amazon Data Firehose に CloudWatch Logs ログイベントからメッセージデータのみを抽出出来るオプションが追加されたので有効にしてみた

Firehose経由で、CloudWatch Logsのjson形式ログからメッセージ本体のみを抽出できるように
なったとのことです。
これまではLambdaをかまさなければいけなかったので、一手減るようです。
https://dev.classmethod.jp/articles/data-firehose-message-extraction-cloudwatch-logs/

yamlでテストシナリオを書いてそのまま実行までできるAPIテストツールの新星 “runn” を試してみた

テストコードを書くにはコードの知識が必要でしたが、yamlならコード知識がなくても書ける!
ということです。
とはいえ、ちょっとこの書き方は習熟に時間がかかりそうですが……。
https://dev.classmethod.jp/articles/trying-runn/

Prisma Entity Relationship Diagram Generator

Node.jsのORMであるPrismaからER図を作れるよ!というやつです。
当社でも一部Prismaを利用しているため、設計の確認や漏れ抜けチェックに使えそうです。
https://github.com/keonik/prisma-erd-generator

Amazon S3 へのファイルアップロードで POST Policy を使うと、かゆいところに手が届くかもしれない

S3ヘビーユーザならご存知かもしれませんが、Go実装例が付いていてそのまま利用できそうです。
https://kaminashi-developer.hatenablog.jp/entry/2024/02/28/083000

TypeScript x GraphQLで2年開発してみて

当社の一部でもこの組み合わせを使っていて、似たような問題に直面したことがありました。
https://speakerdeck.com/yutank34/typescript-x-graphqlde2nian-kai-fa-sitemite

一般テック話題

技術的負債の発生と返し方の判断基準

みんな大好き(大嫌い)技術的負債。
会社のステージや事業のステージによって大きく対応方針は変わると思いますが、
考え方、アプローチについて整理してくださっている記事です。
https://speakerdeck.com/mkitahara01985/ji-shu-de-fu-zhai-nofa-sheng-tofan-sifang-nopan-duan-ji-zhun

マイクロソフト、Copilotに作業を依頼するとユーザーに代わって手順を考え、Windowsデスクトップ上でRPAにより自動操作してくれる新機能「Power Automate via Copilot in Windows」、Windows 11に搭載へ

簡易なRPAならわざわざコードを書く必要がなくなりそうです。
https://www.publickey1.jp/blog/24/copilotwindowsrpapower_automate_via_copilot_in_windowswindows_11.html

ビジネスの実務で「因果」を推測するということ

実際にビジネスをやっていて直面するKPI測定(マーケ施策は本当に効果があったのか?等)に
対して、学術上ではなく実務上のアプローチを綺麗に整理してくださっています。
https://tjo.hatenablog.com/entry/2024/02/28/174811

CareNet Engineers

Discussion