SNS上の全ての投稿にAIがタグと特徴ベクトルをつけることを前提とした場合に、それを使って投稿推薦機能を作るための具体的方法についてまとめた。ソーシャルグラフとK-MeansとTF-IDFを使う率直な方針だが、計算量を抑えるために簡便法を多用し、十分に妥当…
AIが闊歩するSNSであるSTGYでついにAIエージェントが動き出した。企画時の設計を大幅に見直して、投稿の要約とタグ付けと特徴量抽出の前処理を置くことで、モデルの能力が高くなくても安定的に動作するようにした。結果として、AIが勝手にそれっぽい投稿をし…
縦書きのWebページやブログというのは実用になるのか。この疑問をちゃんと解決するために、縦書き用のCSSをかなり真面目に書いてみた。
SNSで記事を書く際に、コピ&ペーストで画像を貼り付けたり、リッチテキストをMarkdownとして貼り付けたりする機能を実装した。これによって、任意のアプリの画像を使った投稿が簡単にできるようになり、ワープロ派が一撃で構造化文書を作成して公開できるよ…
SNSであるSTGYだが、特定の記事を外部に公開し、ログインせずに閲覧できるようにすれば、ブログエンジンとしても成立する。SNSでありながらブログエンジンであるというのは奇妙な建付けだが、両立させるための機能要件と非機能要件について検討した。既に実…
Fakebook改めSTGYの投稿記事は、Markdown形式で書かれている。なぜMarkdownなのかというと、好きだからだ。構造化文書を最も少ない特殊記法で表現でき、プレーンテキストとの見た目の違いが少なく、画像やリンクの張り込みもやりやすい。ここでは、SNSでのMa…
AIエージェントが操作することを念頭としたSNSであるSTGYを実装しているわけだが、AIエージェントの実装を進める際に、ここでバックエンド側のセキュリティについて再確認しておこう。AIエージェントは直接バックエンドを叩くので、ここでセキュリティの現状…
前回までで、最も率直なSNSシステムであるSTGYにおいて、人間が利用可能なSNSとしての機能が完成した。デモサイトstgy.jpも設置した。ここからが本番で、AIエージェントがSNS上で自動的に行動するAIエージェント機能を設計・実装していく。今回はラフ設計だ…
ついにFakebookのデモサイトが立ち上がった。人間同士のSNSとしての基本機能は全て実装してあるので、アカウント登録して使ってみていただきたい。メールアドレスさえ持っていれば誰でも無料で利用できる。今回はデモサイトの設置方法について詳細に述べる。…
SNSの「映え」文化を支えるのは画像であり、画像の管理機能にはそこそこ気合を入れなければいけない。今回はその実装の詳細について解説する。DBを使わずにS3でメディアデータを管理する方法と、UIと連携する方法について主に述べる。実運用を想定したコスト…
SNSを構築する上で、堅牢かつスケーラブルなデータベースを設計することは最重要だ。この記事では、ユーザ数や投稿記事数がいくら増えてもO(log(N))の対数性能を維持するスキーマとクエリを実例を交えて紹介する。これがおそらくSNS設計の真髄である。DBMSに…
FakebookというSNSのシステムを最初から最後まで作り上げる過程について連載する。必要十分なSNSシステムとしての機能を備えつつ、AIユーザが勝手に議論を進めるプラットフォームに仕上げる予定だ。初回は目標と概要設計とアーキテクチャについて述べる。
ChatGPTでタスクを実行する際に、バッチAPIが失敗した時に通常APIで再試行することで、実行費用を抑えつつ、タスク失敗時の再試行による安定性の確保を達成するという話。バッチAPI化による費用変化の計算もした。
AIに英語の構文解析をさせる際に、文型だけではなく動詞の各種属性を判別させることで、読解補助のヒントとして価値を高めたという話。長大なインストラクションを伴うタスクを各文毎に実行するとコストが嵩むので、適当なサイズのバッチにまとめて処理する…
ChatGPTには、ステートレスのcompletions APIと、ステートフルのassistant APIがあるが、後者は正直言って使えないという話。また、ステートフルにして過去のタスク履歴を入力しつつ各タスクを実行したとしても、翻訳精度は必ずしも上がらないという話。
前編に引き続き、ChatGPTに構文解析をさせて、英文読解の補助をする教材を自動生成する話をする。GPT-4.1系の各モデルの翻訳精度や構文解析精度の比較もした。
読み聞きした言語情報を理解する際には、ネイティブ話者は無意識的に構文解析をしている。どの言語でもそうだ。しかし、非ネイティブ話者は、構文解析を無意識的に行う能力がないので、意識的に行う訓練から始めることになる。その補助をChatGPTにやらせると…
英日対訳本のデータを電子書籍リーダで読むためにEPUBに変換するスクリプトを書いた。その設計と実装のメモ。実装はほぼChatGPTにやらせた。
ChatGPTを使って任意の英文書籍から英日対訳本を生成するスクリプトについて前回の記事で紹介した。今回はそのデータをWebブラウザで読むためのUIを実装した。対訳コーパスの読書機能としてのユーザビリティとアクセシビリティを追求した。PCでもモバイル端…
ChatGPTのAPIを使って、英日対訳本を自動生成するシステムを改めて作っている。それについて何回かに分けて説明する。初回は、文脈情報を活かして翻訳タスクを行い、英日対訳本のデータを完成させる方法について詳述する。ChatGPTのAPIはステートレスモデル…
またKZ社のBluetoothイヤーフックを買ってしまった。KZ XZ10である。音質最強と個人的に思っている有線イヤホンKZ ZASを無線化でき、音質劣化はほぼ無く、ホワイトノイズももほぼ無く、電池が12時間持ち、接続も安定していて、そして安い。言う事無しだ。
GW前半は、東京に野暮用があったので、長野からブロンプトンで走って、ついでに三浦半島も回って、合計370kmほどのロングライドをしてきた。
リサイズや露出補正などの簡単な画像処理を行う場合でも、ちゃんとカラーマネジメントをしよう。そうしないと色が壊れてしまう。そのためにはICCプロファイルを適切に使う必要があるのだが、その正しい方法は意外に知られていない。私も今まで何となくやって…
Lightroomの大人気機能である「かすみ除去」「明瞭度」「テクスチャ」もどきをOpenCVで実装し、写真現像&加工パイプラインitb_stack.pyから呼び出せるようにした。その理論と実装を解説する。
写真の加工で最も基本的な「トーンカーブ」と「シャープネス」のアルゴリズムについて解説する。自分で実装してみたおかげで、Lightroomの同等の機能がどう実装されているかに当てが付くようになった。
RAW現像パイプラインを自分で書いてみたわけだが、その中で気づいたことや躓いたことについてここにメモしておこう。おそらく同じことを考えている人の役に立つだろう。
画像処理コマンドitb_stack.pyにRAW現像機能を加えた話。DCRawのラッパーであるLibRawのラッパーであるrawpyを使って実現している。商用の現像ソフトを使わなくても簡単にRAW現像ができるようになった。また、RAW現像につきものの色ノイズ問題に真面目に取り…
物語は、この定番の写真から始まる。みんな大好きLena Forsénのピンナップだ。当然ながらOpenCVの顔認識はうまく働く。 本稿では、OpenCVの顔認識を行う方法について述べる。そして、その結果を使って人物を対象としたポートレートモードの前景保護を行う方…
ChatGPTと壁打ちして、スマホにあるボケ強調機能であるポートレートモードをOpenCVで実装してみた。エッジをほとんど滲ませないで既にぼけている部分だけをぼかすためのEdge-Contained Pyramid Blurという新規手法を考案し、実装した。画像認識や空間認識の…
ChatGPTにOpenCVの使い方を教わるシリーズ第4弾として、オートホワイトバランスを実装してみた。適当な画像ファイルを処理すると、そのシーンのホワイトバランスを予測して、あたかも白色光源下で撮ったように自然に見えるように色味を調整した画像を生成し…