ls articles --sort created
Articles
61 entries indexed
- cdd for herdrI made cdd work with herdr so I can jump to working directories from tabs, panes, workspaces, and agents.
- herdr-tiny-fingers: tmux-fingers-style Copying for herdrI made herdr-tiny-fingers, a small herdr plugin for copying URLs, SHAs, UUIDs, and similar text from the terminal screen with short keys.
- trn: A Fast Local Translation Command for macOS TahoeI built trn, a small macOS translation CLI that uses Apple's on-device Translation framework, with a low-latency default that was about 12x faster than high-fidelity mode in my local README test.
- OpenAI API-Compatible Access Without Additional API Billing via CodexA Codex-authenticated OpenAI API-compatible server for Responses, Chat Completions, and image generation. Within the Codex subscription scope, it can be used without additional API usage billing.
- Japanese Full-Text Search in SQLite and DuckDB with VaporettoHow to add Japanese full-text search to SQLite and DuckDB with Vaporetto, including extensions, a browser demo, and BM25 search examples.
- Building a Machine Learning PC with Two RTX 5090 GPUsNotes from building a two RTX 5090 machine learning PC in Japan, including power supply constraints, cooling, parts, and multi-GPU training tradeoffs.
- Looking Back on 2025A personal look back at 2025, covering the birth of our child, life in the countryside, a new car, and AI and retrieval work.
- OpenProvence: A Model for Removing Irrelevant Sentences Before Passing Text to an LLMI released OpenProvence, an open project for pruning irrelevant sentences from retrieved text before passing it to an LLM.
- Evaluating the Japanese Performance of Embedding Gemma 300M with JMTEBI benchmarked google/embeddinggemma-300m on JMTEB v1 and compared its Japanese embedding performance with multilingual and Japanese models.
- JFWIR: A Large Japanese Information Retrieval Dataset Built from Japanese FineWebI released JFWIR, a 64M-pair Japanese information retrieval dataset built from FineWeb2 Edu Japanese, with query types and hard negatives.
- Evaluating the Japanese Performance of Qwen3 Embedding with JMTEBI benchmarked Qwen3-Embedding-0.6B on Japanese JMTEB tasks and compared it with Japanese embedding models and OpenAI embeddings.
- Releasing Small, Fast, and Practical Japanese Rerankers: tiny, xsmall, small, and base v2I released tiny, xsmall, small, and base v2 Japanese rerankers designed for practical CPU and Apple silicon latency with competitive quality.
- query-crafter-japanese: A Model for Generating Queries for Information RetrievalI released query-crafter-japanese, small Apache-2.0 models that generate retrieval queries from documents for synthetic IR datasets.
- FineWeb2 Edu Japanese: A High-Quality Educational Japanese DatasetFineWeb2 Edu Japanese is a filtered Japanese educational web dataset with 120M records and about 89.3B tokens, built from FineWeb2.
- Releasing a Japanese StaticEmbedding Model for Practical 100x Faster Text EmbeddingsI released static-embedding-japanese, a fast non-Transformer embedding model for Japanese and English text, and evaluated it on JMTEB.
- Looking Back on 2024A personal look back at 2024, covering life, building a house, work on AI and information retrieval, and technical projects.
- Releasing Japanese SPLADE v2, a Strong Retrieval Model for Texts Under 512 TokensI released japanese-splade-v2, an improved Japanese SPLADE model with strong JMTEB retrieval scores for documents up to 512 tokens.
- Releasing Japanese BERT RetroMAE Models and Evaluating Them on Downstream Retrieval TasksI pretrained Japanese BERT models with RetroMAE, released the weights, and evaluated how the pretraining affects JMTEB retrieval tasks.
- How to Build a SPLADE Model: Japanese SPLADE Technical ReportHow I built a Japanese SPLADE sparse retrieval model, including tokenizer issues, training implementation, evaluation, and the YAST trainer.
- Releasing a High-Performance Japanese SPLADE Sparse Retrieval ModelI released a Japanese SPLADE sparse retrieval model and compare its retrieval and reranking performance with dense embedding models.
- Running Japanese Tokenizer Models with text-embeddings-inferenceHow to run Japanese embedding models that lack tokenizer.json on Hugging Face text-embeddings-inference by adding a dummy fast tokenizer.
- Releasing High-Performance Japanese Rerankers, and What Rerankers AreI released Japanese reranker models trained for search reranking and explain how rerankers improve retrieval quality after initial vector or keyword search.
- Technical Report on Building Japanese RerankersA technical report on training Japanese CrossEncoder rerankers, including data construction, hard negatives, model variants, and evaluation results.
- After reading Human-in-the-Loop Machine Learning: a data-centric and suggestive bookA review of the Japanese translation of Human-in-the-Loop Machine Learning, focusing on why its data-centric view of active learning, annotation, and collaboration with annotators is valuable in the current AI era.
- ColBERT reaches e5-large-level performance on a Japanese RAG taskI evaluated JaColBERT, a Japanese pretrained ColBERT model, on my usual AI-Ou Q&A RAG benchmark and found performance only slightly below multilingual-e5-large.
- Evaluating OpenAI's new text-embedding-3-small on a RAG taskI evaluated OpenAI's text-embedding-3-small on a Japanese Wikipedia Q&A RAG retrieval task and compared it with multilingual-e5 models, using 512-dimensional reduced embeddings.
- Summarizing same-date diary entries from secon.dev and sending them to DiscordI built a small system that summarizes years of same-date diary entries from secon.dev and posts them to a private family Discord channel, using OpenAI and an LCEL-based implementation.
- Understanding LangChain Expression Language (LCEL)LCEL is LangChain's recommended way to build chains. This article explains the basic behavior of Runnable, RunnableSequence, RunnableParallel, dict syntax, invoke, and RunnablePassthrough step by step.
- Looking back on 2023A personal 2023 retrospective covering work, travel, daily life, technology, social networks, and how I want to spend 2024 at my own pace.
- Solving the first AI-Ou quiz competition with vector search onlyI tried solving the first AI-Ou Japanese quiz competition using only vector search over Japanese Wikipedia passages, and compared several Japanese embedding models on a Q&A retrieval task.
- Training a Q&A + RAG-focused LLM with SFT, making 4-bit quantized models, and exceeding GPT-3.5 with a 7B modelI fine-tuned rinna's youri-7b-instruction with SFT for Japanese Q&A over RAG context, quantized it with 4-bit methods, and compared exact match, partial match, speed, and GPU memory against GPT-3.5 and GPT-4.
- Building Japanese Wikipedia embeddings and a FAISS index for RAGI created embeddings for about 5.5 million Japanese Wikipedia passages and published FAISS indexes that can be used easily for RAG-style retrieval and question answering experiments.
- Measuring speed, data size, and accuracy for vector search algorithms and quantization parametersA benchmark of FAISS vector search settings, including IVF, HNSW, and product quantization, with a focus on recall@1, @3, and @5 for RAG systems where top-N retrieval quality matters.
- Making Transformers inference 1.6 to almost 2 times faster with CTranslate2I tried CTranslate2 through hf_hub_ctranslate2 for SentenceTransformer-style embedding inference and found it easy to get about 1.6x faster GPU inference and 1.9x faster CPU inference with almost no accuracy change.
- Embedding conversion performance on Apple Silicon GPU (MPS)I measured how fast Apple Silicon MPS can convert text into embeddings, comparing a MacBook Air M2 with RTX 4090, Colab T4, and CPU execution for multilingual-e5-small.
- Starting Weekly AI News: automated summaries with clustering and GPTI started a weekly Substack newsletter that automatically summarizes AI-related news. This note explains how I cluster articles with multilingual-e5-small and generate topic titles and summaries with GPT.
- Implementing and trying gzip + kNN text classification from the paper that beats BERTI implemented the gzip-based NCD + kNN classifier from the paper “Low-Resource” Text Classification and tried it on Japanese and English datasets, including livedoor news, MARC-ja, and AGNews.
- Generating answers from images with ChatGPT 3.5 and extracting information through BLIP-2 promptsA note on using BLIP-2 with ChatGPT 3.5 for image-based answer generation when the task fits, and more importantly, on extracting image information through prompts to BLIP-2.
- Enjoying Stable Diffusion again from a technical perspectiveAfter using Stable Diffusion again through stable-diffusion-webui, I wrote notes on the surrounding techniques I had not followed closely: ControlNet, LoRA, textual inversion embeddings, and checkpoint merging.
- Another major benefit of LoRA: switching task models instantly while sharing GPU memoryLoRA is usually discussed as a cheaper training method, but it also lets multiple task-specific adapters share one LLM base model in memory. This article shows how to switch adapters with Hugging Face PEFT.
- Analyzing the Iris dataset with ChatGPT's Noteable pluginAfter trying Noteable on a tiny OpenCALM dataset, I asked it to analyze the classic Iris dataset. It quickly generated plots, model comparisons, clustering, and dimensionality reduction notebooks.
- Using ChatGPT's Noteable and WebPilot plugins to build a notebook that predicts OpenCALM 14B performanceI tried the Noteable plugin with ChatGPT and WebPilot to scrape OpenCALM model data, build a notebook, plot parameter counts and perplexity, and estimate the performance of a hypothetical 14B model.
- Quantizing fastText to build a practical 1.7 MB text classifierI built a text classifier for AI News with fastText and quantization, reducing the model to 1.7 MB while keeping practical accuracy and recall for filtering AI-related English articles.
- After reading Kaggle ni Idomu Deep Learning Programming no GokuiA review of the Japanese book Kaggle ni Idomu Deep Learning Programming no Gokui, which works well as a compact index of practical machine learning ideas for both Kaggle beginners and people already working with machine learning.
- Similar embedding search with SVM: an alternative to kNNLangChain added an SVM Retriever implementation that searches for embeddings similar to a query embedding using SVM. I looked into how it works and compared kNN, SVM, and a hybrid search on AI News data.
- Launching AI News and how I used OpenAI behind itI launched AI News, a site that collects AI, data science, and machine learning topics and summarizes them into three lines with AI. This article describes why I built it and how I used OpenAI APIs for classification and summarization.
- RAPIDS SVR and SVC: fast training without fine-tuning, evaluated on MARC-jaAn introduction to RAPIDS SVR and SVC, using neural-network embeddings as features without fine-tuning and evaluating the approach on the Japanese MARC-ja classification dataset.
- How secon.dev was implemented, December 2022 editionA snapshot of how secon.dev worked in late 2022: Markdown files synced through Dropbox, static builds with Next.js, related-article generation, image processing on GCS, and the parts I wanted to improve next.
- Kaggle Feedback Prize - English Language Learning: team gold medal, 15th place, and Kaggle MasterOur team finished 15th in Feedback Prize - English Language Learning, earning a gold medal and giving me the medals needed to become a Kaggle Competitions Master.
- Solo silver medal, 43rd place, in Kaggle Feedback Prize - Predicting Effective ArgumentsI joined Feedback Prize - Predicting Effective Arguments solo, finished 43rd out of 1,566 teams, and wrote down what worked, what failed, and what solo participation felt like.
- Was the end of Japan's 2022 rainy season unusually early?Using Japan Meteorological Agency data, I checked the standard deviation of rainy-season ending dates to see how unusual the 2022 Kanto-Koshin date really was.
- Finding optimal weighted-ensemble coefficients with constrained least squaresFor a Kaggle ensemble, I used non-negative least squares to compute model blending weights automatically instead of tuning them by hand.
- My first Kaggle competition ended with a team gold medal, 8th placeI joined my first Kaggle competition through a strong team, learned how collaborative competition work is organized, and ended up with a gold medal in the U.S. Patent Phrase to Phrase Matching competition.
- Reading Basic Statistics by Kimio Miyakawa: statistics before machine learningAfter several months of studying machine learning, I realized I was missing the statistical foundations needed to understand data, experiments, estimation, testing, and model evaluation.
- Adding type hints to a Python project and getting value from type checkingI added Python type hints and pyright to a machine learning project, and found that the setup cost was low while editor support and static checks were immediately useful.
- A CLI for finding similar documents in static site generatorsI published similar-documents-cli, a small tool that computes TF-IDF and cosine similarity over Markdown or HTML files so static sites can generate related-article data at build time.
- When sharp fails to install on WSLOn WSL2, sharp tried to fall back to a local build because APPDATA pointed at a Windows npm cache path. Clearing APPDATA let the Linux prebuilt binary install correctly.
- Fixing WSL clock drift after sleep from the Windows sideWhen WSL2's clock drifted after waking from sleep, I fixed it by registering a Windows Task Scheduler command that runs hwclock inside WSL.
- NumPy cast overflow behavior can vary by environment and array sizeI ran into a NumPy casting issue where overflowing float32 values cast to uint8 behaved differently depending on the environment and array length.
- Building a simple fully connected neural network with TensorFlow 2 without KerasA hands-on note implementing a simple feed-forward neural network with only TensorFlow APIs, without Keras, to understand layers, activation functions, losses, automatic differentiation, and manual training.
- Inferring Hiragana in the Browser with TensorFlow.jsI built a small TensorFlow.js demo that recognizes handwritten hiragana in the browser, then looked at model size, conversion from Keras, and the limits of importing Python-trained models into JavaScript.