ls articles --sort created

Articles

61 entries indexed

  1. cdd for herdrI made cdd work with herdr so I can jump to working directories from tabs, panes, workspaces, and agents.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. Looking Back on 2024A personal look back at 2024, covering life, building a house, work on AI and information retrieval, and technical projects.
  17. 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.
  18. 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.
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. Technical Report on Building Japanese RerankersA technical report on training Japanese CrossEncoder rerankers, including data construction, hard negatives, model variants, and evaluation results.
  24. 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.
  25. 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.
  26. 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.
  27. 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.
  28. 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.
  29. 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.
  30. 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.
  31. 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.
  32. 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.
  33. 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.
  34. 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.
  35. 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.
  36. 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.
  37. 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.
  38. 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.
  39. 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.
  40. 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.
  41. 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.
  42. 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.
  43. 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.
  44. 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.
  45. 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.
  46. 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.
  47. 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.
  48. 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.
  49. 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.
  50. 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.
  51. 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.
  52. 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.
  53. 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.
  54. 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.
  55. 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.
  56. 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.
  57. 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.
  58. 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.
  59. 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.
  60. 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.
  61. 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.