<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title><![CDATA[A Day in the Life - 日記]]></title>
        <description><![CDATA[Yuichi Tateno による、日々の日記など]]></description>
        <link>https://secon.dev</link>
        <generator>RSS for Node</generator>
        <lastBuildDate>Thu, 30 Jul 2026 12:33:28 GMT</lastBuildDate>
        <atom:link href="https://secon.dev/feed" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[2026年7月30日]]></title>
            <description><![CDATA[<p>KUUHAKUで開かれている、SHOKO KITAMOTO氏の個展最終日、ということもあり猪苗代湖へ。途中、KUUHAKUの空間にライブペイントなどで描かれた作品等々も加わり、最後の感じも見たかったのだ。シュールでポップでKAWAII空間で見れて良かった。在廊日でご本人もいらっしゃり、おしゃべりさせていただく。</p>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260730_L1004548.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260730_L1004548.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260730_L1004460.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260730_L1004460.webp" class="photo" itemprop="image" /></a></span></div>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260730_L1004456.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260730_L1004456.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260730_L1004469.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260730_L1004469.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260730_L1004463.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260730_L1004463.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>この日の猪苗代湖は、土砂降りだったり一瞬晴れ間が見えたりと、慌ただしい天気の1日だった。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260730_L1004528.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260730_L1004528.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>ドモンパン&#x26;時さえ忘れてで美味しいネルドリップ。ドライブイン磐尚の蕎麦、喉越しもよく汁も好みの味でうますぎる。店内改装で新しくなったお久しぶりの Taro Cafe。</p>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260730_L1004453.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260730_L1004453.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260730_L1004516.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260730_L1004516.webp" class="photo" itemprop="image" /></a></span></div>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260730_L1004538.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260730_L1004538.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260730_L1004540.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260730_L1004540.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>夕方、個展終了後にお迎え入れする作品を受け取ったのち、途中磐梯熱海温泉の共同浴場、霊泉元湯へ。16:00〜なら300円、安すぎでしょ。ぬるい温泉(30度ぐらい?)と普通の温度の温泉、交互で入れるのだけど、これは延々と繰り返して湯につかれるね。ph 9超えというぬるぬるさも良き。</p>
<p>はー充実した1日だった。猪苗代湖大好き。</p>]]></description>
            <link>https://secon.dev/entry/2026/07/30/210000</link>
            <guid isPermaLink="false">/entry/2026/07/30/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Thu, 30 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月29日]]></title>
            <description><![CDATA[<p>野良論文が公開されたので、細かなあれこれをしたり、広報をしたり。</p>
<hr>
<p>一区切りついた記念に、敷島でちょっと豪華なランチ焼肉。29日で肉の日だったので、若干お得だった。うまい肉はうまい。お腹いっぱい。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260729_RX009453.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260729_RX009453.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>印象的な日の入りの雲。</p>
<div class="photos photos-medium"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260729_L1004446.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260729_L1004446.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/29/210000</link>
            <guid isPermaLink="false">/entry/2026/07/29/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Wed, 29 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[超小型な多言語ベクトル検索モデル Bekko Embedding を公開]]></title>
            <description><![CDATA[<p>昨今、ベクトル(文章埋め込み)モデルは性能向上とともにサイズも巨大になってきました。総パラメータ数が100M〜600Mの多言語モデルでは、<a href="https://huggingface.co/google/embeddinggemma-300m">EmbeddingGemma</a>、<a href="https://huggingface.co/ibm-granite/granite-embedding-311m-multilingual-r2">Granite Embedding R2 311M</a>、<a href="https://huggingface.co/Alibaba-NLP/gte-multilingual-base">gte-multilingual-base</a>、<a href="https://huggingface.co/BAAI/bge-m3">BGE-M3</a>、<a href="https://huggingface.co/Snowflake/snowflake-arctic-embed-l-v2.0">Arctic Embed</a> などがあります。さらに大きなモデルとしてLLMを基盤にした <a href="https://huggingface.co/nvidia/Nemotron-3-Embed-8B-BF16">Nemotron-3-Embed-8B</a>、<a href="https://huggingface.co/Qwen/Qwen3-Embedding-8B">Qwen3-Embedding-8B</a>、<a href="https://huggingface.co/perplexity-ai/pplx-embed-v1-4b">pplx-embed-v1-4b</a> など、数Bのモデルも出てきました。十分な速度で動かせるGPU環境があるなら、こうした大きな高性能モデルを使うと良いですね。</p>
<p>ただ、自分が興味を持ったのは巨大な高性能化とは反対の、どこまで小型にできるかというアプローチです。実際の検索に使える性能を残したまま、どこまで小さくできるのか。そこで作ってみたのが Bekko Embedding です。 <a href="https://huggingface.co/hotchpotch/bekko-embedding-v1-a8m">bekko-embedding-v1-a8m</a> と <a href="https://huggingface.co/hotchpotch/bekko-embedding-v1-a25m">bekko-embedding-v1-a25m</a> の2モデルでMITライセンスで公開しています。以下では短く bekko-a8m、bekko-a25m と表記します。</p>
<p>小さい方(a8m)のモデルは、<strong>Active Parameters（AP）がわずか 7.67M</strong>です。APとはトークン埋め込み参照テーブルを除いた、Transformer演算で使う重みの部分のパラメータです。検索性能も公式の <a href="https://huggingface.co/spaces/mteb/leaderboard">MMTEB Multilingual v2</a> に含まれる18の検索タスクでは平均スコアをa8m では56.2を記録し、APが約3〜40倍ある <a href="https://huggingface.co/intfloat/multilingual-e5-small">multilingual-e5</a> 系の全モデルと BGE-M3 を上回りました。またよりパラメータが大きい bekko-a25m はより良いスコアを出しています。</p>
<p><img src="https://storage.googleapis.com/secons-site-images/other/huggingface/bekko/blog/01_frontier.webp?v=2" alt="Active Parametersあたりの検索性能"></p>
<table>
<thead>
<tr>
<th></th>
<th align="right"><a href="https://huggingface.co/hotchpotch/bekko-embedding-v1-a8m">bekko-embedding-v1-a8m</a></th>
<th align="right"><a href="https://huggingface.co/hotchpotch/bekko-embedding-v1-a25m">bekko-embedding-v1-a25m</a></th>
</tr>
</thead>
<tbody>
<tr>
<td>Active Parameters</td>
<td align="right">7.67M</td>
<td align="right">24.93M</td>
</tr>
<tr>
<td>総パラメータ数</td>
<td align="right">106M</td>
<td align="right">123M</td>
</tr>
<tr>
<td>出力次元</td>
<td align="right">384 (→ 256 / 128 / 64)</td>
<td align="right">384 (→ 256 / 128 / 64)</td>
</tr>
<tr>
<td>最大入力長</td>
<td align="right">8,192トークン</td>
<td align="right">8,192トークン</td>
</tr>
<tr>
<td>MMTEB Multilingual v2、検索18タスク</td>
<td align="right">56.2</td>
<td align="right">57.5</td>
</tr>
<tr>
<td>MMTEB Multilingual v2、全131タスク</td>
<td align="right">56.7</td>
<td align="right">58.3</td>
</tr>
<tr>
<td>CPUスループット (Ryzen 9 7950X、OpenVINO)</td>
<td align="right">364 docs/s</td>
<td align="right">134 docs/s</td>
</tr>
<tr>
<td>軽量 ONNX ファイル</td>
<td align="right">124 MiB</td>
<td align="right">190 MiB</td>
</tr>
<tr>
<td>query / document prefix</td>
<td align="right">なし</td>
<td align="right">なし</td>
</tr>
</tbody>
</table>
<p>インストールせずに試すこともできます。<a href="https://huggingface.co/spaces/hotchpotch/bekko-embedding-web">bekko-embedding-web</a> のデモはモデルをブラウザに読み込み、そのままブラウザ上で実行します。</p>
<h2>小型モデルを作った理由</h2>
<p>コーディング・AIエージェントの台頭により、PCの使い方が変わりました。LLMの推論はAPIの先にあるフロンティアモデルが行うため、その部分においては手元のマシン性能は以前ほど気になりません。一方、エージェントが情報を探すための処理は、今も手元のマシンで動かします。ドキュメントの埋め込み(ベクトルに変換)、インデクス作成、コンテキストの探索等々です。</p>
<p>手元のマシンにGPUがないことも多く、低スペックなマシン(Raspberry Piなど)で動かすこともあります。その際 multilingual-e5-large で1万件の文書を埋め込むと、高速なデスクトップCPUでも約8分、Raspberry Pi 5 では2時間近くかかります。しかもクエリの埋め込みはインデックス作成時に一度計算すれば終わりではなく、検索のたびにも推論が必要です。</p>
<p>小さな埋め込みモデル、たとえばAPが30M未満のモデルの選択肢はかなり少ないです。自分が調べた範囲では、オープンなライセンスで利用でき、文脈を考慮する多言語埋め込みモデルのうち、Bekko以外で30M未満かつ検索に使える性能だったのは2つだけでした。2020年に蒸留された MiniLM を初期値にした <a href="https://huggingface.co/intfloat/multilingual-e5-small">multilingual-e5-small</a> と、2026年に公開されたAP 28.3Mの <a href="https://huggingface.co/ibm-granite/granite-embedding-97m-multilingual-r2">granite-embedding-97m-r2</a> です。</p>
<p>なおModel2Vec などの <a href="https://huggingface.co/blog/static-embeddings">静的埋め込み Static Embeddings</a> はさらに小さくできます。ただし、Transformers のような文脈を理解するモデルではなく、性能も低くなります。</p>
<h2>モデルパラメータと演算量</h2>
<p>多言語埋め込みモデルの演算量は、総パラメータ数だけでは見積もれません。モデルが118Mパラメータと書かれていると、そのパラメータすべてを使って計算するように思えます。しかし、多言語エンコーダでは、その大半が多言語のためのトークン埋め込みテーブルです。Bekkoの場合はこの埋め込みテーブルが256,000トークンありますが、推論時にはこのテーブルを参照するだけです。トークンごとに1つを取り出すため行列積はなく、このルックアップテーブルから読み込むだけです。</p>
<p>各トークンで実際に行列積を行うのは、Transformerブロックに含まれるパラメータです。<a href="https://arxiv.org/abs/2001.08361">スケーリング則で用いられるパラメータの数え方</a>にならい、ここではこれらを <strong>Active Parameters</strong>(AP) と呼びます。総パラメータ数よりもより推論コストを考える際に重要な指標となります。</p>
<p>この Active Parameters (AP) という言葉は別の意味でも使われるため、補足します。ここでいう AP は、ルータがトークンごとに異なるエキスパートを選び、全重みの一部だけを動かす Mixture-of-Experts(MoE) の文脈のAPではありません。Bekko は MoE ではない通常のエンコーダで、7.67Mのパラメータすべてを推論時に使います。パラメータ数から除いているのは、埋め込みのルックアップだけです。</p>
<p>たとえば、multilingual-e5-small は総パラメータ数118Mのうち、APが21.6Mです。bekko-a8m は総パラメータ数106M、AP 7.67Mです。この差が推論時間に表れます。なおこのAPだけで速度が決まるわけではありませんが、小さいほど基本的に推論が高速です。</p>
<h2>Bekko Embedding</h2>
<p>Bekko は、22層の <a href="https://huggingface.co/jhu-clsp/mmBERT-small">mmBERT-small</a> エンコーダを4層(a8m)と13層(a25m)にそれぞれ pruning し、これらの2モデルを約11億の多言語ペアで学習しています。</p>
<ul>
<li>100以上の言語を含むデータで、言語横断検索ができるように学習しました。翻訳を挟まず、日本語のクエリから英語の文書を検索できます。後述する言語別評価では、そのうち14言語を扱います。</li>
<li>どちらのモデルも8,192トークンまで入力できます。</li>
<li>出力は384次元です。Matryoshka学習により、256 / 128 / 64次元へ切り詰めて使えます。bekko-a25m を256次元にすると、検索性能は HAKARI-Bench Overall が相対で約1.3%、128次元では約6.2%低下します。</li>
<li>モデルの重みはMITライセンスです。</li>
<li>学習データも、<a href="https://huggingface.co/datasets/hotchpotch/bekko-embedding-v1-unsupervised">第一段階のコーパス</a>と<a href="https://huggingface.co/datasets/hotchpotch/bekko-embedding-v1-hard-negatives">マイニングしたhard negatives</a>を公開しています。</li>
</ul>
<h2>ベンチマーク結果</h2>
<p>下の図には6つの列があります。最初の2列は、同じ <a href="https://huggingface.co/spaces/mteb/leaderboard">MMTEB Multilingual v2</a> 評価を異なる切り口で集計したものです。ALLは全131タスクの平均、Retはそのうち18の検索タスクだけの平均です。比較モデルのスコアには公式に公開されているスナップショットを使い、Bekkoも同じタスク集合と集計方法で評価しました。</p>
<p>残る4列は、すべて検索タスクのベンチマーク評価です。<a href="https://huggingface.co/collections/zeta-alpha-ai/nanobeir-66e1a0af21dfd93e620cd9f6">Multilingual NanoBEIR</a> は、英語版のオリジナル NanoBEIR に、コミュニティが公開した13の翻訳版を加えたものです。これらの翻訳版は私が作ったものではありませんが、他の Nano-set は後述の HAKARI-Bench 用に私が作った物です。NanoRTEB は、実運用に近い検索データセットを集めた <a href="https://huggingface.co/blog/rteb">RTEB</a> の小型版です。NanoCoIR は<a href="https://huggingface.co/CoIR-Retrieval">コード検索</a>、NanoLongEmbed は<a href="https://huggingface.co/datasets/dwzhu/LongEmbed">長文入力</a>を扱います。この4つは、私が作った <a href="https://huggingface.co/spaces/hakari-bench/leaderboard">HAKARI-Bench</a>（<a href="https://arxiv.org/abs/2606.22778">arXiv</a>）で同じ設定を使って評価しました。語彙一致のベースラインとして、BM25も含めています。</p>
<p><img src="https://storage.googleapis.com/secons-site-images/other/huggingface/bekko/blog/02_benchmarks.webp?v=2" alt="12モデルとBM25を6つのベンチマークで比較"></p>
<p>MMTEBの2列を並べると、順位がかなり違います。特に分かりやすいのが granite-embedding-97m-r2 で、18の検索タスクでは60.3と比較中4位ですが、全131タスクでは51.9と最下位です。検索タスクを集中して学習すると、そのほかのタスクで性能を落とすことがあります。Bekkoも検索向けに学習したモデルですが、全タスクの平均も悪くはありません。</p>
<p>bekko-a8m は6つの列すべてで multilingual-e5-small を上回り、multilingual-e5-small のAPは2.8倍と約3倍の大きさです。bekko-a25m は、APが約12分の1でありながら、MMTEBの検索18タスクでは multilingual-e5-large と BGE-M3 を上回ります。ただしMMTEB全131タスクでは、どちらのモデルも bekko-a25m より高いスコアです。</p>
<p>18の検索タスクでは、5モデルが bekko-a25m を上回ります。<a href="https://huggingface.co/microsoft/harrier-oss-v1-270m">harrier-oss-v1-270m</a>、granite-embedding-311m-r2、EmbeddingGemma-300M、granite-embedding-97m-r2、snowflake-arctic-embed-l-v2.0 です。全131タスクでは4モデルが上回ります。harrier-oss-v1-270m と EmbeddingGemma-300M に加え、BGE-M3 と <a href="https://huggingface.co/intfloat/multilingual-e5-large">multilingual-e5-large</a> です。gte-multilingual-base は同点でした。</p>
<p>ここで bekko-a25m を上回ったモデルは、granite-embedding-97m-r2 を除き、bekko-a25m の4〜13倍のAPを持ちます。検索精度を最優先し、十分な計算資源があるなら、どれも優れたモデルと言えるでしょう。</p>
<p>コード検索では、bekko-a25m は78.6で、multilingual-e5-large と BGE-M3 を上回る一方、84.7の EmbeddingGemma-300M と81.4の granite-embedding-311m-r2 には届きません。長文入力の結果は、もう少し意外でした。長い文書の中から1つの箇所を探す場合、語彙一致は強く、BM25が82.2で全モデルを上回ります。しかし12の密ベクトルモデルの中では、bekko-a25m が70.6で1位、bekko-a8m が3位でした。</p>
<h2>言語別の結果</h2>
<p>平均値だけを見ると、特定の言語でモデルの性能が崩れていても気づけません。以下は、Multilingual NanoBEIR の14言語を個別に見た結果です。</p>
<p><img src="https://storage.googleapis.com/secons-site-images/other/huggingface/bekko/blog/03_languages.webp?v=2" alt="Multilingual NanoBEIR 14言語の言語別評価結果"></p>
<p>bekko-a25m は、14言語すべてで multilingual-e5-small と BM25 を上回りました。BGE-M3 との差が最も大きい言語でも2.7ポイントです。14言語の中ではタイ語、アラビア語、セルビア語が弱く、まだ改善の余地があります。</p>
<h2>推論速度</h2>
<p>APはスループットを大まかに見積もる目安になります。Raspberry Pi 5 から RTX 5090 まで、4つの環境で6モデルを同じ条件で測定しました。</p>
<p><img src="https://storage.googleapis.com/secons-site-images/other/huggingface/bekko/blog/04_speed_devices.webp" alt="4つの環境すべてで最も高速"></p>
<p>bekko-a8m は、どの環境でも6モデル中もっとも高速でした。実際のインデックス作成で、Ryzen 9 7590X CPUで10万文書を埋め込みベクトルに変換すると、bekko-a8m なら約5分ですが、multilingual-e5-large なら約80分かかります。</p>
<p>自分がより面白いと思ったのは、Raspberry Pi 5 の結果です。1秒あたり33文書はGPUに比べれば圧倒的に遅いですが、1万文書のインデックスなら約5分で作成可能です。これぐらいの速度なら、用途によっては実用的でしょう。同じ Raspberry Pi 5 で multilingual-e5-large を使うと、2時間近くかかります。</p>
<p>図の2つのCPUパネルでは、それぞれのモデルが公開している PyTorch のバックエンドに OpenVINO を使う版を使っています。6モデルとも、CPUでは OpenVINO が最速だったためです。一部のモデルだけOpenVINO を使わずに動かすと公平な比較になりません。同等の OpenVINO 版がないモデルに、ここでの数値をそのまま当てはめることはできません。Bekko は両サイズとも OpenVINO 版を公開しています。</p>
<p>APだけですべての速度差を説明できるわけではありません。multilingual-e5-small のAPは bekko-a25m の87%ですが、CPUでは1.7倍高速です。granite-embedding-97m-r2 はAPが14%多いものの、速度はほぼ変わりません。</p>
<p>自分は、アーキテクチャの違いが効いているのではないかと思っています。<a href="https://arxiv.org/abs/2412.13663">ModernBERT</a> のアーキテクチャでは、unpadding、可変長 FlashAttention カーネル、global attention と local attention の相互配置など、GPUカーネルを意識した高速化を行っています。一方、素直な XLM-R 系エンコーダアーキテクチャは、CPUバックエンドに載せやすそうです。原因を切り分けるところまではできていないので、ここは実際の実装を真に確認した結果ではなく自分の解釈です。ただこうした違いがあっても、bekko-a8m は十分に小さく、今回の比較では最速でした。</p>
<h2>124 MiB の配布サイズとブラウザ実行</h2>
<p>総パラメータ数を大きくしている語彙埋め込みテーブルは、ダウンロードサイズも大きくします。このテーブルは静的なルックアップなので、ONNX 版と OpenVINO 版では行ごとの int8 量子化で保存し、Transformer の重みは fp32 のままにしました。リリース時の検証では、PyTorch 版とのコサイン類似度は最小でも0.9994でした。</p>
<p>これにより bekko-a8m は124 MiB、bekko-a25m は190 MiBになり、ブラウザへ配れるサイズになりました。なおTransformer の重み自体をさらに小さくfloatから int8 にしサイズ削減もできるのですが、精度劣化が激しいため行なっておりません。</p>
<table>
<thead>
<tr>
<th></th>
<th align="right">bekko-a8m</th>
<th align="right">bekko-a25m</th>
</tr>
</thead>
<tbody>
<tr>
<td>ブラウザ、WebGPU</td>
<td align="right">187 docs/s</td>
<td align="right">89 docs/s</td>
</tr>
<tr>
<td>ブラウザ、WASM (CPU)</td>
<td align="right">51 docs/s</td>
<td align="right">16 docs/s</td>
</tr>
<tr>
<td>ネイティブ、Apple GPU (MPS)</td>
<td align="right">592 docs/s</td>
<td align="right">351 docs/s</td>
</tr>
</tbody>
</table>
<p>上の速度図と同じ Natural Questions の入力を使っています。最後の行はブラウザでの結果ではなく、比較用に同じモデルをネイティブ実行した値です。</p>
<p>ブラウザデモは <a href="https://huggingface.co/spaces/hotchpotch/bekko-embedding-web">huggingface.co/spaces/hotchpotch/bekko-embedding-web</a> で試せます。埋め込みの計算はブラウザ内で行うため、入力した文章をサーバーへ送ることはありません。</p>
<h2>ほかのモデルを選んだ方がよい場合</h2>
<ul>
<li>日本語のみを扱いたい場合、ruri-v3 シリーズは小さく Bekko より高性能です。<a href="https://huggingface.co/cl-nagoya/ruri-v3-30m">ruri-v3-30m</a>は AP 10M、出力次元が 256 と小型ながら必要十分な性能のことも多いでしょう</li>
<li>計算資源に余裕があり、この比較で最も高い検索精度を求める場合は、harrier-oss-v1-270m、granite-embedding-311m-r2、EmbeddingGemma-300M の方が高いスコアです。</li>
<li>検索以外にも広く使える文章埋め込みモデルが必要な場合、Bekko の分類とクラスタリング性能はは中位から下位です。検索ではない目的なら、他のモデルの方が適していることも多いでしょう。</li>
</ul>
<h2>Bekko Embedding の使い方</h2>
<p>どちらのモデルを試すか迷ったら、CPUでのインデックス作成やブラウザ検索には a8m、Apple MPS やGPUが使え速度より検索性能を優先するなら a25m がよいでしょう。</p>
<p>PyTorchでそのまま動かすほか、CPUでは OpenVINO、ブラウザでは Transformers.js を使えます。3つとも同じモデルIDで動き、prefixも不要です。実行環境ごとにAPIが異なります。</p>
<pre><code class="hljs language-bash">pip install -U <span class="hljs-string">"sentence-transformers>=5.0"</span> <span class="hljs-string">"transformers>=5.12"</span></code></pre>
<pre><code class="hljs language-python"><span class="hljs-keyword">from</span> sentence_transformers <span class="hljs-keyword">import</span> SentenceTransformer, util

model = SentenceTransformer(<span class="hljs-string">"hotchpotch/bekko-embedding-v1-a8m"</span>)

query = <span class="hljs-string">"What are the characteristics of sushi?"</span>
docs = [
    <span class="hljs-string">"A warm noodle soup served in broth with sliced toppings."</span>,
    <span class="hljs-string">"天ぷらは魚や野菜に衣をつけて揚げた料理です。"</span>,
    <span class="hljs-string">"Une fine crepe garnie de sucre, de beurre ou de fruits."</span>,
    <span class="hljs-string">"A Japanese dish made with vinegared rice, often shaped with seafood, vegetables, or egg."</span>,
]

scores = util.cos_sim(
    model.encode(query, normalize_embeddings=<span class="hljs-literal">True</span>),
    model.encode(docs, normalize_embeddings=<span class="hljs-literal">True</span>),
)[<span class="hljs-number">0</span>]
<span class="hljs-built_in">print</span>(<span class="hljs-string">"best doc:"</span>, docs[<span class="hljs-built_in">int</span>(scores.argmax())])</code></pre>
<p>prefix やタスク指示は不要で、クエリと文書はどちらも同じ <code>encode</code> 呼び出しで処理します。上の条件では、a8m の OpenVINO 実装は PyTorch より x86 で約2.8倍、Raspberry Pi 5 で約1.7倍高速です。</p>
<details>
<summary><strong>CPU で OpenVINO を使う</strong></summary>
<pre><code class="hljs language-bash">pip install -U \
  <span class="hljs-string">"sentence-transformers[openvino]>=5.0"</span> \
  <span class="hljs-string">"transformers>=4.57,&#x3C;5"</span></code></pre>
<pre><code class="hljs language-python"><span class="hljs-keyword">from</span> sentence_transformers <span class="hljs-keyword">import</span> SentenceTransformer, util

model = SentenceTransformer(
    <span class="hljs-string">"hotchpotch/bekko-embedding-v1-a8m"</span>,
    backend=<span class="hljs-string">"openvino"</span>,
    device=<span class="hljs-string">"cpu"</span>,
    model_kwargs={<span class="hljs-string">"file_name"</span>: <span class="hljs-string">"openvino/openvino_model.xml"</span>, <span class="hljs-string">"device"</span>: <span class="hljs-string">"CPU"</span>},
)

query = <span class="hljs-string">"What are the characteristics of sushi?"</span>
docs = [
    <span class="hljs-string">"A warm noodle soup served in broth with sliced toppings."</span>,
    <span class="hljs-string">"A Japanese dish made with vinegared rice, often shaped with seafood, vegetables, or egg."</span>,
]

scores = util.cos_sim(
    model.encode(query, normalize_embeddings=<span class="hljs-literal">True</span>),
    model.encode(docs, normalize_embeddings=<span class="hljs-literal">True</span>),
)[<span class="hljs-number">0</span>]
<span class="hljs-built_in">print</span>(<span class="hljs-string">"best doc:"</span>, docs[<span class="hljs-built_in">int</span>(scores.argmax())])</code></pre>
<p>OpenVINO 連携は Transformers を5.1未満に固定するため、先ほどの <code>transformers>=5.12</code> と同じ環境には入れられません。別環境を用意するか、両方とも Transformers 4.57 を使ってください。通常の PyTorch の例も4.57で動きます。</p>
</details>
<p>Transformers.js でも、同じモデルをブラウザ内で動かせます。対応しているブラウザでは WebGPU を使います。</p>
<details>
<summary><strong>ブラウザで Transformers.js を使う</strong></summary>
<pre><code class="hljs language-bash">npm install @huggingface/transformers</code></pre>
<pre><code class="hljs language-js"><span class="hljs-keyword">import</span> { pipeline } <span class="hljs-keyword">from</span> <span class="hljs-string">"@huggingface/transformers"</span>;

<span class="hljs-comment">// Browser: use WebGPU when available, otherwise fall back to WASM.</span>
<span class="hljs-comment">// Node.js: replace this line with `const device = "cpu";`.</span>
<span class="hljs-keyword">const</span> device = navigator.gpu ? <span class="hljs-string">"webgpu"</span> : <span class="hljs-string">"wasm"</span>;

<span class="hljs-keyword">const</span> extractor = <span class="hljs-keyword">await</span> pipeline(
  <span class="hljs-string">"feature-extraction"</span>,
  <span class="hljs-string">"hotchpotch/bekko-embedding-v1-a8m"</span>,
  { device, <span class="hljs-attr">dtype</span>: <span class="hljs-string">"fp32"</span> },
);

<span class="hljs-keyword">const</span> embedding = <span class="hljs-keyword">await</span> extractor(<span class="hljs-string">"What are the characteristics of sushi?"</span>, {
  <span class="hljs-attr">pooling</span>: <span class="hljs-string">"mean"</span>,
  <span class="hljs-attr">normalize</span>: <span class="hljs-literal">true</span>,
});

<span class="hljs-built_in">console</span>.log(embedding.dims); <span class="hljs-comment">// [1, 384]</span></code></pre>
</details>
<h2>リソースへのリンク</h2>
<ul>
<li>モデル：<a href="https://huggingface.co/hotchpotch/bekko-embedding-v1-a8m">bekko-embedding-v1-a8m</a> と <a href="https://huggingface.co/hotchpotch/bekko-embedding-v1-a25m">bekko-embedding-v1-a25m</a></li>
<li>ブラウザデモ：<a href="https://huggingface.co/spaces/hotchpotch/bekko-embedding-web">bekko-embedding-web</a></li>
<li>学習データ：<a href="https://huggingface.co/datasets/hotchpotch/bekko-embedding-v1-unsupervised">第一段階のコーパス</a> と <a href="https://huggingface.co/datasets/hotchpotch/bekko-embedding-v1-hard-negatives">hard negatives</a></li>
</ul>
<h2>モデルの学習方法</h2>
<p>使い方を中心にした記事なので、学習については簡単に。mmBERT-small の22層を4層と13層に削り、先頭側の層と、深い位置にある global attention の層を1つ残しました。削った後のチェックポイントを、そのまま基盤モデルとして使っています。</p>
<p>そこから2段階の対照学習を行いました。第一段階では、公開しているコーパスの約11億多言語ペア(合成データセットなども多様して作成)を使っています。性質の異なる2系統の LLM 合成クエリも含まれます。続いて、8,192トークンの長文も含む hard negative を使ってファインチューニングしました。どちらの段階でも教師モデルや蒸留は使っていません。</p>
<p>両モデルとも、RTX PRO 6000 Blackwell Max-Q 1枚のみで学習しました。所要時間は a8m が約3日、a25m が約8日です。一般的な規模の多言語埋め込みモデルは GPU クラスターで学習され、BGE-M3 の論文では最大96基の GPU を使ったと報告されています。APを小さくすると推論コストが下がり、学習もワークステーション GPU 1枚で行えます。RTX5090でも学習時間は増えますが、学習可能です。大量のGPUが必要ないことも、自分がこのサイズのモデルに取り組む大きな理由の1つです。</p>
<p>今回のモデルは、かなり多くの研究や実装を参考にしています。基盤モデルには mmBERT と ModernBERT、学習方法には E5、GTE、BGE-M3、Qwen3 Embedding、Ruri、実装には sentence-transformers を使いました。これだけ小さなモデルで、どうやって多言語検索の性能を保ったのか。残す層を選ぶ実験、損失、約11億ペアの収集・合成方法、詳しい評価結果をまとめた野良論文は以下で公開しています。</p>
<ul>
<li>arXiv: <a href="https://arxiv.org/abs/2607.25180">Bekko Embedding: Parameter-Efficient Multilingual Retrieval with Ultra-Compact Encoders</a></li>
<li>日本語版: <a href="https://storage.googleapis.com/secons-site-images/other/huggingface/bekko/blog/bekko_embedding_paper_ja.pdf">Bekko Embedding: 超小型エンコーダによるパラメータ効率の高い多言語検索</a></li>
</ul>
<p>小さな多言語検索モデルを探している方に、Bekko Embedding が一つの選択肢になれば幸いです。</p>]]></description>
            <link>https://secon.dev/entry/2026/07/29/080000-bekko-embedding</link>
            <guid isPermaLink="false">/entry/2026/07/29/080000-bekko-embedding</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Tue, 28 Jul 2026 23:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月28日]]></title>
            <description><![CDATA[<p>今年頭から8ヶ月間ぐらい個人研究として取り組んできた、マルチリンガルモデル dense retrieval 論文を仕上げ <a href="https://arxiv.org/abs/2607.25180">arXiv に投稿</a>。公開は明日予定。ふーひと段落。</p>
<p>3月末にはモデル自体はほぼ出来上がっていたのだけど、ちゃんと検索の評価をし出すと、評価自体が面白くて<a href="https://github.com/hakari-bench/hakari-bench">HAKARI-Bench</a>を作理、先にこちらの論文を書いたり、アブレーションしだしたら、興味深い結果が得られたので何度も作り直したり(フル学習に3〜8日)してたら、結構時間がかかってしまった。締め切りがないものは全てにおいて間延びしがち。出来上がりには満足しているので良いけどね。</p>
<hr>
<p>トイレのスイッチ。私の顔アイコンに似ている。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260729_RX009457.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260729_RX009457.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/28/210000</link>
            <guid isPermaLink="false">/entry/2026/07/28/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Tue, 28 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月27日]]></title>
            <description><![CDATA[<p>長谷川あかり氏レシピの<a href="https://www.youtube.com/watch?v=4x_D0o1vVIY">ちくわとじゃがいものバター煮</a>、めちゃうま。リピ確定。これはWASHOKUの定番料理になるぐらいのポテンシャルを感じる。まぁ料理したのは妻なのですが…（ありがたい）。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260727_L1004437.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260727_L1004437.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/27/210000</link>
            <guid isPermaLink="false">/entry/2026/07/27/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Mon, 27 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月26日]]></title>
            <description><![CDATA[<p>ベコ氏、母が近くにいる環境(別室に移動するなど)で父しかいなくなると、思いっきり泣け叫んで嫌がるように。これがパパイヤ期…。こうなると抱っこしても何しても諦めるまで泣き叫ぶので悲しみ。母の雰囲気をまたちょっとでも感じると泣き叫びが再開してしまい、ベコ氏を一人で見る、の難易度が上がってしまった。本当に思いっきり嫌がるので、面白くはあるのだけど…。</p>
<hr>
<p>冷凍ラーメン配送の<a href="https://www.takumen.com/">宅麺.com</a>が気になりだしたので、いくつかラーメンを購入。この日は<a href="https://www.takumen.com/products/1265">海老丸らーめん 海老丸カルボナーラ</a>を食べる。昔食べた味と同じ美味さだった。海老丸らーめんのリアル店舗に行く機会がめっきり減ってしまったので、少々高くつくがありがたいなぁ。</p>
<hr>
<p>頂き物のアップルバナナ。アップルというよりも、柿やアケビのような感じがするなぁ。面白い風味。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260727_L1004433.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260727_L1004433.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/26/210000</link>
            <guid isPermaLink="false">/entry/2026/07/26/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Sun, 26 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月25日]]></title>
            <description><![CDATA[<p>昨日一昨日の疲れで、日中は泥のように過ごす。夕方からは、保育園の夏まつりへ。ランタンづくり(子供と一緒に紙を折って作る)、流しそうめん(ベコ氏がもうちょっと大きくなれば参加できそう)・保育園で採れた食材を使った料理(とりわけじゃがバターがやたらうまかった)、そしてキャンプファイヤーと盛りだくさん。雨も降らず、曇りでちょうど涼しく、楽しく和むイベントだったなぁ。人が写っていない写真を選んでいるため、実際はもっと和気藹々していた。夏まつりスタッフの皆さん、ありがとうございます。</p>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002848.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002848.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002738.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002738.webp" class="photo" itemprop="image" /></a></span></div>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002748.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002748.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002751.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002751.webp" class="photo" itemprop="image" /></a></span></div>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002757.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002757.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002773.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002773.webp" class="photo" itemprop="image" /></a></span></div>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002778.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002778.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002831.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002831.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/25/210000</link>
            <guid isPermaLink="false">/entry/2026/07/25/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Sat, 25 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月24日]]></title>
            <description><![CDATA[<p>立ち食い肉そば屋<a href="https://www.instagram.com/toyoharu01/">豊はる</a>で、パイカそばを朝食に。うまー。6:30からやっているのがありがたいね。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002712.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002712.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>朝から晩まで、1日打ち合わせの日であった。時々ぐらいの頻度でのリアルミーティングは、いつもと違った感じで気分や内容が変わり良いねぇ。</p>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002715.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002715.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002720.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002720.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>夜は元同僚のR氏と東京駅地下で飯を食べる。金曜夜で、どの店も予約で埋まっていてアッとなりそうだったのだが、ギリギリ席があった店に入れてセーフ。10年ぶり以上にリアルで会うR氏は、元気そうで良かったなぁ。</p>]]></description>
            <link>https://secon.dev/entry/2026/07/24/210000</link>
            <guid isPermaLink="false">/entry/2026/07/24/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Fri, 24 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月23日]]></title>
            <description><![CDATA[<p>夕方から東京へ。ちょっと時間があったので秋葉原のヨドバシであれこれ眺める。スマートフォン、最新型はどれもサクサク動くのだけど、使っているバルミューダフォンの手の中に収まるフィット感・サイズが好きすぎて、大きい他のスマートフォンは全くほしいと思えないのであった。バルミューダフォンで中身だけ最新になった物出てくれ〜〜（出ない）。時々行く秋葉原は何時間でも居れるなぁ、外はめちゃ暑かったけど。都会はダイソンのドライヤーが小型になったような持ち運び扇風機が流行りなのね。</p>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002674.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002674.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002655.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002655.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>ちょいと早めの夕食は、<a href="https://ramendb.supleks.jp/s/172767.html">拘り麺屋 へご</a>でラーメン。甘い味の鶏淡麗醤油、めちゃうま。東京は競争が激しいから、ラーメンは安いうまい店が多くて良いよなぁ。</p>
<div class="photos photos-medium"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002663.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002663.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>夜は <a href="https://search-tech.connpass.com/event/396099/">Search Engineering Tech Talk 2026 Summer</a> で、<a href="https://speakerdeck.com/hotchpotch/hakari-bench-shi-yun-yong-shi-dian-denoqing-bao-jian-suo-moderuping-jia-bentimaku">HAKARI-Bench - 実運用視点での情報検索モデル評価ベンチマーク</a> について登壇。野良論文書いて満足してしまって、広報を全然していないので、検索技術勉強会で話させていただく。必要な人に届くと良いな。</p>
<p>懇親会、その後もスタッフの方々+のご飯に混ぜてもらう。前回登壇した時は、日帰りだったので自分の発表後すぐに帰ってしまい、もったいない感じだったので、この日は泊まりで。同じ技術を扱っている方々とは話が弾むなぁ。</p>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002695.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002695.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260725_R0002703.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260725_R0002703.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/23/210000</link>
            <guid isPermaLink="false">/entry/2026/07/23/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Thu, 23 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月22日]]></title>
            <description><![CDATA[<p>天気が良さそうなので、茶臼岳へ。</p>
<div class="photos photos-medium"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260722_R0002565.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260722_R0002565.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>夏休みなんで混んだら嫌だなーと早めに家を出て、ロープーウェイ始発(夏は8:00)のちょっと前の 7:35ごろに着くと、あれ今日もしかしてロープーウェイ休み？というぐらいに人が居ないくてびっくりする。警備員のおじさんと立ち話すると、夏休みも休みとくっついていないなか日(通常は火水木)は、始発時間はこんな感じらしい。9-10時ごろに人が増え始めると。確かに、朝食をホテル等でとって出ると、それぐらいの時間になっちゃうか。月金はちょっと混む、休日は始発でも激混みとのことだった。</p>
<p>最近は茶臼岳山頂まで登りに行かず、牛ヶ首経由でぐるっと散歩して下山することが多かったので、久しぶりに山頂まで行く、2回目だ。山頂周辺も素晴らしい景色じゃん。毎度山頂まで登っていい気がしてきたぞ。</p>
<p>午前中の早い時間は、晴れていても山頂付近は割と涼しい。風も多少あって、気持ちが良い。家周辺は34度ぐらいで暑すぎて日中は外無理だが、山はそこそこ涼しくていいね。とリフレッシュできた。</p>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260722_R0002528.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260722_R0002528.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260722_R0002532.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260722_R0002532.webp" class="photo" itemprop="image" /></a></span></div>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260722_R0002538.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260722_R0002538.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260722_R0002600.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260722_R0002600.webp" class="photo" itemprop="image" /></a></span></div>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260722_R0002609.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260722_R0002609.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260722_R0002612.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260722_R0002612.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>8時のロープーウェイ始発で上り、下りは徒歩で、駐車場には10:40着。2.5時間ぐらいの散歩でリフレッシュできたなぁ。その後は子鹿の湯で汗を流し、SHOZO那須高原でブルーベリーがベリー乗ってるタルトを食べながら作業。充実した1日。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260722_R0002645.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260722_R0002645.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/22/210000</link>
            <guid isPermaLink="false">/entry/2026/07/22/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Wed, 22 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月21日]]></title>
            <description><![CDATA[<p>以前、道の駅のクリスマスマーケットでカニのスープを食べて非常に美味しかったので、行ってみたかった BRASSERIE soleil へ。ランチで満腹、美味しかったなー。</p>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260721_L1004421.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260721_L1004421.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260721_L1004425.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260721_L1004425.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>ベコ氏、ひとり遊びで色々なものを広げつつ黙々と遊ぶ。色々なことが繋がってきたからか、遊びの領域が増えていっている。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260721_L1004386.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260721_L1004386.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>ベコ氏が移動に使う Mobley Works のスツール(軽く移動しやすいので、愛用している)に、冷蔵庫に貼ってあった動物マグネットを全て集め、上に乗せて移動していて、最近まで動物マグネットの上半身にしか興味なかったのに、かつマグネットもうまく剥がせて感動だ。剥がすのも、ちっちゃい手では大変だったもんなぁ。日々成長している。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260721_L1004416.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260721_L1004416.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/21/210000</link>
            <guid isPermaLink="false">/entry/2026/07/21/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Tue, 21 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月20日]]></title>
            <description><![CDATA[<p>ベコ氏、初めてのプール遊び。連日34度ぐらいの夏日が続き、シャワーをかけている親の方が暑さですぐに参ってしまった。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260721_L1004321.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260721_L1004321.webp" class="photo" itemprop="image" /></a></span></div>
<hr>
<p>散髪に行き、昼食は久しぶりの日乃屋カレー。牛すじトッピング(脂たっぷりであった)にし、天かすニンニクチップを振りかけると、めちゃくちゃギルティなうまさ。不健康一直線な旨さで、また食べたいが、罪を積むことになりそうだ。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260721_RX009443.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260721_RX009443.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/20/210000</link>
            <guid isPermaLink="false">/entry/2026/07/20/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Mon, 20 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月19日]]></title>
            <description><![CDATA[<p>ベコ氏、何もないところで立ち上がって、ついに第一歩を踏み出す。おおおっ〜〜〜。ちょうど妻と見ていたタイミングで親二人とも感動する。はぁ、ベコ氏は圧倒的成長を繰り返す日々だなぁ。</p>
<hr>
<p>今日もベコ氏と留守番。カゴに物を入れて遊んだり、積んだタワーを倒したり、マグネットを付けたり剥がしたり、と、遊び方のバリエーションが増えてきて楽しいね。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260719_L1004316.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260719_L1004316.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/19/210000</link>
            <guid isPermaLink="false">/entry/2026/07/19/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Sun, 19 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月18日]]></title>
            <description><![CDATA[<p>ベコ氏、今日は20秒ほど立っている。座っている状態から、何もサポートなしで立ち上がり、も成功確率が高くなってきたなぁ。</p>
<hr>
<p>妻はM家で開かれるマルシェで菓子販売。私も顔を出し、色々な方々（とりわけ那須移住の方や、これから移住する方）とあれこれ喋れて楽しい時間だったなぁ。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260719_RX009442.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260719_RX009442.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/18/210000</link>
            <guid isPermaLink="false">/entry/2026/07/18/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Sat, 18 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月17日]]></title>
            <description><![CDATA[<p>ベコ氏、連日一人立ちの練習をしていて、今日はコツを掴んだのか10秒ほどバランスよく立つことができた。もうすぐ一人歩きしちゃうのか〜〜〜〜。</p>
<hr>
<p>妻が週末に向けて仕込んでいる、とうもろこしのマフィン。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260719_L1004304.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260719_L1004304.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/17/210000</link>
            <guid isPermaLink="false">/entry/2026/07/17/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Fri, 17 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月16日]]></title>
            <description><![CDATA[<p>夜、何気なく外を見ると、窓がなんか光っている。よく見ると蛍！もうちょっと川沿いに行くと見れるのだが、まさか家でも見れるとはなぁ。1匹だけだったので、迷い込んできてしまっただけな感じもするが、感激する。</p>
<hr>
<p>ミルクチョコをかじってバナナを食べると、チョコバナナの味になりうまい。屋台のチョコバナナ、時々無性に食べたくなるけど、これだと家でもできる。バナナは夏場は冷蔵庫に入れておくと冷たくて美味しい。長時間入れる場合は身をラップに包んで入れる。</p>
<hr>
<p>暑さであっという間にしおれてしまった玄関の向日葵、のしおれる前。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260707_DSC08582.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260707_DSC08582.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/16/210000</link>
            <guid isPermaLink="false">/entry/2026/07/16/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Thu, 16 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月15日]]></title>
            <description><![CDATA[<p>ベコ氏が保育園に行くようになったので、ひさ〜しぶりに南国食堂マムアンでランチ。タイラーメンは相変わらず日本一好みのタイラーメンだし、ガパオは油のうまさにガツンとやられる。最高にうまいなぁ。妻はバインセオを頼んでいて、何口かもらったがココナッツの味がしっかりしていて、これまたうまし。野菜たっぷりなのも夏にいいね。期間限定なのでもう終わっちゃうけど。</p>
<p>この日は久しぶりに日差しが強い夏日で、激暑厨房で腕を振るっているマムアンさんすごいなぁ。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260715_L1004292.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260715_L1004292.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/15/210000</link>
            <guid isPermaLink="false">/entry/2026/07/15/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Wed, 15 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月14日]]></title>
            <description><![CDATA[<p>ベコ氏、生誕1年2ヶ月。毎月いろいろなことが出来るようになってきて引き続き圧倒的成長。1ヶ月ごとに生誕記録をつけていたが、出来ることの広がりは日記につけていることだし、来月からは1ヶ月単位の生誕記録は書かなくなるかもしれない。</p>
<hr>
<p>板室温泉神社〜板室が見渡せる高台へ。10時前に登ったのだが、蒸し暑く汗ダラダラ。クマ鈴をつけて行ったが、まぁクマ出るよなぁ、という感じの道だった。誰にも会わなかったしね。</p>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260715_L1004267.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260715_L1004267.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260715_L1004256.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260715_L1004256.webp" class="photo" itemprop="image" /></a></span></div>
<div class="photos photos-columns"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260715_L1004248.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260715_L1004248.webp" class="photo" itemprop="image" /></a></span><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260715_L1004275.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260715_L1004275.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/14/210000</link>
            <guid isPermaLink="false">/entry/2026/07/14/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Tue, 14 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月13日]]></title>
            <description><![CDATA[<p>ベコ氏は熱は下がったが保育園はお休み。が、一日中元気で、バッチリ回復したようでよかったよかった。</p>
<hr>
<p>トーテムっぽい。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260715_L1004244.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260715_L1004244.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/13/210000</link>
            <guid isPermaLink="false">/entry/2026/07/13/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Mon, 13 Jul 2026 12:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2026年7月12日]]></title>
            <description><![CDATA[<p>ベコ氏は昨日から高熱。ただ熱以外は元気（機嫌は悪いが）、早く良くなると良いね。</p>
<hr>
<p>戸田森商店のラーメン。輝いている。</p>
<div class="photos photos-small"><span itemscope="" itemtype="http://schema.org/Photograph"><a href="https://storage.googleapis.com/secons-site-images/photo/large/20260712_L1004237.webp"><img src="https://storage.googleapis.com/secons-site-images/photo/medium/20260712_L1004237.webp" class="photo" itemprop="image" /></a></span></div>]]></description>
            <link>https://secon.dev/entry/2026/07/12/210000</link>
            <guid isPermaLink="false">/entry/2026/07/12/210000</guid>
            <dc:creator><![CDATA[secondlife / @hotchpotch / Yuichi Tateno]]></dc:creator>
            <pubDate>Sun, 12 Jul 2026 12:00:00 GMT</pubDate>
        </item>
    </channel>
</rss>