豪鬼メモ

一瞬千撃

2025-01-01から1年間の記事一覧

Fakebook: ゼロから作るSNS その6 Markdown礼賛

Fakebook改めSTGYの投稿記事は、Markdown形式で書かれている。なぜMarkdownなのかというと、好きだからだ。構造化文書を最も少ない特殊記法で表現でき、プレーンテキストとの見た目の違いが少なく、画像やリンクの張り込みもやりやすい。ここでは、SNSでのMa…

Fakebook: ゼロから作るSNS その5 セキュリティ

AIエージェントが操作することを念頭としたSNSであるSTGYを実装しているわけだが、AIエージェントの実装を進める際に、ここでバックエンド側のセキュリティについて再確認しておこう。AIエージェントは直接バックエンドを叩くので、ここでセキュリティの現状…

Fakebook: ゼロから作るSNS その4 AIエージェントの設計

前回までで、最も率直なSNSシステムであるSTGYにおいて、人間が利用可能なSNSとしての機能が完成した。デモサイトstgy.jpも設置した。ここからが本番で、AIエージェントがSNS上で自動的に行動するAIエージェント機能を設計・実装していく。今回はラフ設計だ…

Fakebook: ゼロから作るSNS その3 デモサイトstgy.jpの構築

ついにFakebookのデモサイトが立ち上がった。人間同士のSNSとしての基本機能は全て実装してあるので、アカウント登録して使ってみていただきたい。メールアドレスさえ持っていれば誰でも無料で利用できる。今回はデモサイトの設置方法について詳細に述べる。…

Fakebook: ゼロから作るSNS その2 メディアデータの管理

SNSの「映え」文化を支えるのは画像であり、画像の管理機能にはそこそこ気合を入れなければいけない。今回はその実装の詳細について解説する。DBを使わずにS3でメディアデータを管理する方法と、UIと連携する方法について主に述べる。実運用を想定したコスト…

Fakebook: ゼロから作るSNS その1 データベース設計とクエリ分析

SNSを構築する上で、堅牢かつスケーラブルなデータベースを設計することは最重要だ。この記事では、ユーザ数や投稿記事数がいくら増えてもO(log(N))の対数性能を維持するスキーマとクエリを実例を交えて紹介する。これがおそらくSNS設計の真髄である。DBMSに…

Fakebook: ゼロから作るSNS その0 概要設計

FakebookというSNSのシステムを最初から最後まで作り上げる過程について連載する。必要十分なSNSシステムとしての機能を備えつつ、AIユーザが勝手に議論を進めるプラットフォームに仕上げる予定だ。初回は目標と概要設計とアーキテクチャについて述べる。

ChatGPTのバッチAPIと通常APIの併用による効率化と安定性の両立

ChatGPTでタスクを実行する際に、バッチAPIが失敗した時に通常APIで再試行することで、実行費用を抑えつつ、タスク失敗時の再試行による安定性の確保を達成するという話。バッチAPI化による費用変化の計算もした。

AIによる英文の動詞の分析とバッチ処理の最適化

AIに英語の構文解析をさせる際に、文型だけではなく動詞の各種属性を判別させることで、読解補助のヒントとして価値を高めたという話。長大なインストラクションを伴うタスクを各文毎に実行するとコストが嵩むので、適当なサイズのバッチにまとめて処理する…

ChatGPTのアシスタントAPIの罠

ChatGPTには、ステートレスのcompletions APIと、ステートフルのassistant APIがあるが、後者は正直言って使えないという話。また、ステートフルにして過去のタスク履歴を入力しつつ各タスクを実行したとしても、翻訳精度は必ずしも上がらないという話。

ChatGPTで英語の構文解析をする 後編

前編に引き続き、ChatGPTに構文解析をさせて、英文読解の補助をする教材を自動生成する話をする。GPT-4.1系の各モデルの翻訳精度や構文解析精度の比較もした。

ChatGPTで英語の構文解析をする 前編

読み聞きした言語情報を理解する際には、ネイティブ話者は無意識的に構文解析をしている。どの言語でもそうだ。しかし、非ネイティブ話者は、構文解析を無意識的に行う能力がないので、意識的に行う訓練から始めることになる。その補助をChatGPTにやらせると…

英米文学の名作の対訳コーパスのEPUBを作った

英日対訳本のデータを電子書籍リーダで読むためにEPUBに変換するスクリプトを書いた。その設計と実装のメモ。実装はほぼChatGPTにやらせた。

ユーザビリティとアクセシビリティを追求した英日対訳本の読書機能

ChatGPTを使って任意の英文書籍から英日対訳本を生成するスクリプトについて前回の記事で紹介した。今回はそのデータをWebブラウザで読むためのUIを実装した。対訳コーパスの読書機能としてのユーザビリティとアクセシビリティを追求した。PCでもモバイル端…

ChatGPTで文脈情報を最大限に活かして翻訳をする

ChatGPTのAPIを使って、英日対訳本を自動生成するシステムを改めて作っている。それについて何回かに分けて説明する。初回は、文脈情報を活かして翻訳タスクを行い、英日対訳本のデータを完成させる方法について詳述する。ChatGPTのAPIはステートレスモデル…

BluetoothイヤーフックKZ XZ10購入

またKZ社のBluetoothイヤーフックを買ってしまった。KZ XZ10である。音質最強と個人的に思っている有線イヤホンKZ ZASを無線化でき、音質劣化はほぼ無く、ホワイトノイズももほぼ無く、電池が12時間持ち、接続も安定していて、そして安い。言う事無しだ。

久しぶりの東京ロングライド

GW前半は、東京に野暮用があったので、長野からブロンプトンで走って、ついでに三浦半島も回って、合計370kmほどのロングライドをしてきた。

画像処理でもカラーマネジメントを真面目にやろう

リサイズや露出補正などの簡単な画像処理を行う場合でも、ちゃんとカラーマネジメントをしよう。そうしないと色が壊れてしまう。そのためにはICCプロファイルを適切に使う必要があるのだが、その正しい方法は意外に知られていない。私も今まで何となくやって…

かすみ除去と明瞭度とテクスチャの実装

Lightroomの大人気機能である「かすみ除去」「明瞭度」「テクスチャ」もどきをOpenCVで実装し、写真現像&加工パイプラインitb_stack.pyから呼び出せるようにした。その理論と実装を解説する。

トーンカーブとシャープネスのアルゴリズム

写真の加工で最も基本的な「トーンカーブ」と「シャープネス」のアルゴリズムについて解説する。自分で実装してみたおかげで、Lightroomの同等の機能がどう実装されているかに当てが付くようになった。

RAW現像の哲学と手法

RAW現像パイプラインを自分で書いてみたわけだが、その中で気づいたことや躓いたことについてここにメモしておこう。おそらく同じことを考えている人の役に立つだろう。

rawpyによるRAW現像と自動露出と色ノイズ除去の手法

画像処理コマンドitb_stack.pyにRAW現像機能を加えた話。DCRawのラッパーであるLibRawのラッパーであるrawpyを使って実現している。商用の現像ソフトを使わなくても簡単にRAW現像ができるようになった。また、RAW現像につきものの色ノイズ問題に真面目に取り…

顔認識によるポートレートモードとホワイトバランスと自動露出補正

物語は、この定番の写真から始まる。みんな大好きLena Forsénのピンナップだ。当然ながらOpenCVの顔認識はうまく働く。 本稿では、OpenCVの顔認識を行う方法について述べる。そして、その結果を使って人物を対象としたポートレートモードの前景保護を行う方…

ChatGPTと話し合ってポートレートモードを作った

ChatGPTと壁打ちして、スマホにあるボケ強調機能であるポートレートモードをOpenCVで実装してみた。エッジをほとんど滲ませないで既にぼけている部分だけをぼかすためのEdge-Contained Pyramid Blurという新規手法を考案し、実装した。画像認識や空間認識の…

ChatGPTと話し合ってオートホワイトバランスを実装した

ChatGPTにOpenCVの使い方を教わるシリーズ第4弾として、オートホワイトバランスを実装してみた。適当な画像ファイルを処理すると、そのシーンのホワイトバランスを予測して、あたかも白色光源下で撮ったように自然に見えるように色味を調整した画像を生成し…

画像のコントラスト調整と位置合わせへの応用

ヒストグラム均等化の漫画をChatGPTに描かせるべく頑張ったのだが、これが限界だった。セリフをちゃんと指示通りに書いてくれない(英語でも駄目)なのが最も厳しい。おそらく数年以内にでできるようになるだろうけど、今はまだ実用にならない。仕方ないので…

ChatGPTと話し合ってフォーカススタッキングを実装した

画像合成関係の処理をコマンド一発でできるようにする便利コマンドitb_stack.pyで、フォーカススタッキングもできるようにした話。エッジ抽出後の合成の重み付けにソフトマックスを使うアイデアをChatGPTが提案してきたんだけど、素直に凄いと思った。そして…

HDR合成の各種アルゴリズムを試してみた

露出ブラケットで撮影した複数枚の画像からHDR画像を作るPythonプログラムを書いて、OpenCVで実装されている各種アルゴリズムによる出力の違いを確認してみた。それらアルゴリズムを使う上でのコツも述べておく。あと、実際に作った便利コマンドの話もする。…

ChatGPTでパノラマ写真とHDR写真と疑似STF写真が作れる

ChatGPTで写真の合成をすると楽しいという話。パノラマ写真とHDR写真はもちろん、露出ブラケットからの疑似STF合成もChatGPTだけでできる。

ブロンプトン用Recマウントスマホホルダの小ネタ

ブロンプトンにスマホをマウントするにあたって、Recマウントの台座とスマホホルダを加工した話。