2026/09/23

Domino IQ: Embedding Model のダウンロード

前回紹介した Domino IQ の RAG サポートのセットアップですが最初の手順は『Embedding model をダウンロードして llm_models フォルダに配置』 でした。

Embedding Model の知識は全くない状態だったので、作業にあたり Chat-GPT 先生の助けを借りながら理解を進めました。新しいことはすぐに忘れちゃうので、記録しておきます。

このような背景から、誤解や間違いがあるかもしれません。予めご了承ください。



Embedding Model の役割

DominoIQ の RAG の動作をざっくりまとめると下図のようになります。

Embedding Model の利用シーンは大きく2つあります。

一つは、対象の文書をベクトル化しデータベースに登録する処理で、もう一つは、質問をベクトル化して、ベクトルデータベースへ問い合わせする際に利用します。後者では、ヒットした結果を LLM に渡して回答を得る処理につながります。

Embedding Model は、与えた文書や質問をベクトル化する処理を担当します。これが RAG サポートで、LLM のほかに Embedding Model のセットアップが必要な理由となります。


Qdrant のセットアップは不要

ちなみに、前回紹介した RAG サポートのセットアップには、ベクトルデータベース(Qdrant)は登場しませんでした。その理由は、Domino IQ RAG Support のドキュメントに記載があます。

『The DominoIQ task starts the embedding model using the llama-server and the vector database server locally on the Domino IQ server.』

Qdrantは「セットアップするもの」というより「DominoIQが内部で起動するもの」なんですね。


Embedding Model の選び方

HCL の技術情報 では、いきなり4つの候補が紹介され、bge-m3 でセットアップすることが決まっています。

  • mxbai-embed-large
  • bge-m3
  • nomic-embed-text
  • snowflake-arctic-embed
なぜこのような判断となったのか疑問だったので、Hugging Face で各モデルを調査しました。

◇ bge-m3

技術情報内のモデルダウンロードリンクをクリックすると[Files and versions]タブが開きます。その左に[Model card]タブがあり、モデルの情報が確認できます。

残念ながらここには詳しい情報はなく、詳細は最後のリンク見るように指示があります。そのリンクを開くと書いてありました。今度は素人には詳しすぎる情報だったのですが、先頭にばっちり書いてありました(画像は Chrome で翻訳済み)。『多機能性、多言語性、多粒度性といった汎用性の高さが際立つ』モデルだそうです。

◇ mxbai-embed-large

検索ボックスを使用して探し出し、モデルカードを翻訳してみました。



他のモデルも調べてみたのですが、似たような感じでよくわかりませんでした...。各モデルで書き方がバラバラなので、ミリしらのシロートが読んでも比較はできないですね。仕方がないので、Chat-GPT 先生にこの4つのモデルを一般的な比較指標とともに特徴をまとめてもらいました。

今回候補として挙げられたモデルのバージョンを調べた範囲では、bge-m3が多言語対応という点で日本語環境に適していると判断しました。長文に対応している点も Notes/Domino にマッチした特徴を持っていると思います。


Embedding Model のダウンロード

bge-m3 のダウンロードページ には複数のファイルがリストされています。

ファイル名の Q の後の数字は、モデルの学習済みパラメータを何 Bit 程度で量子化するかを表しており、ざっくりいうとモデルの圧縮度合いを表します。数字が小さいほどファイルサイズを小さくできるそうです。

K は K-quants という量子化方式だそうです。

S / M / L は Small / Medium / Large を表し、同じQ系でも、どの部分をどの程度の精度で保持するかなどの違いによってサイズが変わります。

なお、F16は16bit浮動小数点形式であることを表し、このモデルの基本形となります。いわば「無圧縮」に近い状態と考えてよさそうです。


とはいっても、現時点ではよくわからないので、技術情報の通り『bge-m3-Q6_K.gguf』をダウンロードすることにしましょう...

ダウンロードしたファイルは llm_models フォルダに配置します。


Embedding Model のサイズ

この記事の最初に『Embedding Model は文書をベクトル化』すると紹介しました。これだけだとアルゴリズム(プログラム)になるので、なぜ先ほどの圧縮でモデルのサイズが変わるんだろう?と疑問を持ったので調べてみました。

結果はアルゴリズムだけはなく、データも含むことがわかりました。

   Embedding Model = ベクトル化のプログラム + 学習済みの巨大な「重み」データ

モデルの比較表にまとめた通り、bge-m3 は 約 568 M パラメータのモデルで、その結果が重みデータとしてモデル内に組み込まれており、このデータの圧縮の仕方で複数のファイルが存在したというわけですね。


まとめ

最初に書いた通り、知識がない状態からのスタートだったので、少しずつ理解を進める過程をまとめてみました。まだまだ分からないことだらけなので、少しずつ理解を進め記事にしていきたいと思います。

このような背景からモデルの選定は、技術情報に倣って bge-m3-Q6_K.gguf を選択しました。いつか自分で判断して選択できるようになりたいですね。


2026/09/16

Domino IQ: RAG のセットアップ

2026.03.19 にリリースされた Domino 14.5.1 より、Domino IQ で RAG がサポートされました。すでに半年が経過してしまいましたが、いまさらながらセットアップしてみました。

セットアップの手順については、例によって HCL Software の Customer Support から技術情報が公開されています。

Domino 14.5.1 新機能: Domino 14.5.1 で実装される Domino IQ RAG の概要と利用例

この記事を参照しながら実際にセットアップをしてみました。後日、本格的に検証するときに備えて、手順を整理しておこうと思います。


◇ Domino IQ のセットアップ

  1. Domino 14.5.1、FixPack 1、ランゲージパックのインストールとセットアップ
  2. llama Server for Domino IQ のサーバモジュールを配置
  3. Large language model をダウンロードして llm_models フォルダに配置
  4. Domino ディレクトリプロフィールの Domino IQ タブを設定
    (Domino IQ Configuration DB が作成)
  5. LLM Model 文書作成
    (14.5.1 では Model Type = Large language model)
  6. Domino IQ Configuration 文書作成

この部分は Domino IQ の基本セットアップ手順で、14.5 でも同様です(過去の記事 Domino IQ: インストールとセットアップ を参照)。


◇ RAG サポートのセットアップ

  1. Embedding model をダウンロードして llm_models フォルダに配置
  2. LLM Model 文書作成(Model Type = Embedding model)
  3. Domino IQ Configuration 文書を編集し[Embedding Model]タブを設定
  4. トランザクションログの有効化(ベクトル化時に必要)


◇ 対象 DB の設定

  1. 全文索引の作成
  2. Domino IQ オプションで有効化(管理クライアント)
  3. LLM System Prompt 文書作成
  4. LLM Command 文書作成(対象の DBを指定し、フィールドを列挙)
  5. ベクトル化(updall -w 〇〇〇.nsf)


今回は、手順のリスト化を目的にした記事となります。詳細な手順や設定画面、テスト結果などは順次整理したいと思います。

なお、今回の記事では、RAG と同時にサポートされた Guard Model は、対象外としています。


2026/09/15

表のプロパティ ⑫ - その他の表の機能

ノーツの表のさまざまな設定を紹介してきましたが今回が最終回となります。今回は表にまつわる小技的なものを紹介したいと思います。


Ctrl+↑↓

表を編集していると表の内容を並び替えたり、セルの内容を別のセルに移動したくなることがあります。この時に便利なのが、Ctrl キー + カーソルの上下キーです。この操作を行うと、カーソル内のセルの内容がその方向のセルと入れ替わります。

この操作は複数のセルを選択しても機能するので、行を入れ替える場合にも利用できます。


カスケードの表

ノーツの表のセルはリッチテキストとほぼ同様の機能を持っています。ですので、セル内に表を配置して、カスケードした表を作成することができます。

下図は 2 行 1 列 の表の左のセルに 3 行 2 列の表を作成しました。それぞれの表でプロパティが自由にでき、内側の表の罫線だけ色を変えたり、マージンを設定することができます。

また、内側の表をマージンに合わせるようにしておけば、外側の列幅に合わせて、内側の表を伸縮させることも可能です。1 列目幅を変えると、このように柔軟に動作してくれます。


表の上下の段落

ノーツで表を作成すると表の上下に段落が必要になります。

特にカスケードの表では、上下に1行分の隙間が空き、間延びした感じになります。この隙間を消したい場合には、その段落を非表示にしましょう。

フォーム設計の場合には単純に非表示にするだけで構いません。フォームの編集画面では非表示の段落も表示されるからです。

しかし、文書の場合には注意が必要です。

フォームのように常時非表示にしてしまうと戻すことができなくなります。非表示で見えなくなった段落にカーソルが移動できないので、プロパティを開けなくなるからです...

このような状況に陥らないよう、文書の場合は、編集モードでは表示するようにしておくといいでしょう。



コピペの挙動

表をコピー&ペーストする際、コピー先が表のセルだった場合には次のようにメッセージが順に表示されます。2つ目のメッセージが重要で、文言の通り、貼り付け方を決定します。


◇ はい … 重ねて貼り付け

コピー元の表のセルの内容を各セルに貼り付けます。行、列に不足がある場合には、自動で追加してくれます。

この機能はセル内のコンテンツの貼り付けがメインとなるので、コピー元の表のプロパティは無視されます。逆に文字寄せなど段落の設定はコピー元が優先されます。


◇ いいえ … カスケードで貼り付け

こちらの機能では貼り付け位置にカスケードの表として貼り付けます。上記の貼り付けとは違い、コピー元の表のプロパティが維持されますので、罫線や枠、背景などの設定をまるごと貼りつけることになります。


タブの色

ノーツのタブ表では、タブの色はセルの背景色で決定されます。

ただ、このまま使用するとセル全体がその色になり、コンテンツが見づらくなったり、セルが目立ちすぎたりします。1 x 1 の表をカスケード表として配置し、背景色をセットすることで、回避することができます。

この時、タブ表の列の間隔を 0.15 cm に設定しておくと、タブとセルの枠の色をいい感じで設定できます。


表形式でコピー

最後は、ノーツクライアントの便利機能と表のプロパティの合わせ技を紹介します。

[編集]メニューに[リンクのコピー]-[表]というものがあります。ビューで文書を選択し、このメニューを選び、メールなどリッチテキストに貼り付けると、ビューが表として貼りつく便利機能です。

ただ、そのままだと不要な列があったり、見た目があまりよくありません。ですが、このシリーズで覚えた技を駆使すれば簡単に見やすい表にできます。

いかがですか?

ひと手間かけるだけで、仕事ができる人ように見えますよね😎


2026/09/08

表のプロパティ ⑪ - 行の切り替えをプログラムで行う

タブ形式の表を実用しているとユーザの権限に応じて表示するタブを切り替えたいことがあります。実はノーツの表では、こんなことまで実現できてしまいます。


一般的な動作

まずは、特別な機能を使用しない場合のタブ表の動作を確認しましょう。

デザイナーで最後のタブを開いた状態でフォームを保存しても、次に開いたときには最初のタブが開きます。もちろんこのフォームを利用した文書を開いたときも最初のタブが開きます。

ノーツのタブは、必ず、最初のタブが開く仕様になっています。

最初のタブとは、表の1行目になるのですが、その行が非表示の場合は、次の行となります。要は、非表示でない最初の行が表示されるということですね。

この機能を利用すれは、表示/非表示をコントロールする行を1行目にしておけば、権限に応じて、表示するタブを切り替えることができます。

この方法は簡易的な手段となり、タブ順も限定されます。もっと柔軟に対応したい場合には、後述の方法を使うことになります。


行の切り替えをプログラムで行う

表のプロパティ[表の行]タブには「行の切り替えをプログラムで行う」という選択肢があります。

以前のバージョンではこの選択肢を選ぶと左に以下のようなアイコンが表示されていました。

このアイコンが示す通り、行の切り替えをプログラムで行うには、フィールドと表(行)を組み合わせる機能となっています。フィールドの値に応じて、表示するタブ(= 表示する行)を指定する機能だと想像できますね。

値を格納するフィールド名の指定は、表のプロパティの別のタブ、[表のプログラミング]の「名前/ID」で指定します。

続いて、フォームに2つめのタブを表示するボタン【次世代エース養成】ボタンを作成します。

クリック時の式には、次のように記述します。

@SetField("$WS"; 1);
@Command([RefreshHideFormulas])

フィールド名は表に指定した名称の前に $ が付きます。ノーツが内部的に使っているぞというのが醸し出されていて、ノーツらしい仕様ですね。設定する値は行番号になるのですが、0 始まりとなるため、2行目は 1 となる点に注意が必要です。


なお、各行にも名前を指定することで、より正確に記述できます。まず、次のように行のタグで名前を付けます(2行目を選択してセット)。

そしてボタンの式で、その名前を指定することで、表示するタブを明示できます。

@SetField("$WS"; "Next-Gen");
@Command([RefreshHideFormulas])

ただ、複数のタブをコントロールしたい場合など、それぞれ設定するのは少し面倒ではありますが、行を追加したりしてもバグにならない利点があります。


まとめ

今回は、行の切り替えをプログラムで行う方法を紹介しました。

フィールドを使用し、その値で表示タブをコントロールする機能でした。今回紹介した事例では、ボタンでフィールド値を操作して切り替えましたが、$WS などのフィールドを表示用の計算結果として定義し、ロールに応じて表示するタブを操作してもいいですし、LotusScript で $ フィールド値を変化させ、タブを切り替えることも可能です。

フィールド+表の組み合わせで、構成要素は単純です。応用しやすい機能となっていますので、チャレンジしてみましょう。


2026/09/06

表のプロパティ ⑩ - 動きのある表

前回、行の特殊表示について紹介しましたが、今回もその続きです。

タブやアコーディオン形式の表も操作により切り替えられるので動きがある表と言えなくもないのですが、今回はアニメーション的に動く機能について紹介します。


表示行を切り替え

前回紹介したなかった「表示行の切り替え」を利用すると一定のタイミングで表示する行を切り替える表を作成することができます。

この表を使ったわかりやすい例を紹介します。

下図のように 1 行ごとに少しずつ色ずらした表を作成します。「表示行の切り替え」を選択し、タイミングに 100 ミリ秒を設定します。

その表を表示モードで参照すると、このように流れて表示されます。


表示効果の設定

表示行を切り替えの機能には、その行をどのようなアクションで表示するのかを指定する「効果」という項目があります。パワポのアニメーションのように登場の仕方を指定できます。

各行に効果を順に設定し、切り替え時間を 5000 ミリ秒に設定してみました。

この動画はすべての効果を2回終了するまで記録しました。動作を見ていて、次のような点が気になりました。

  • 最初の行の効果が実行されない ← 行の切り替え機能なので仕方がない?
  • 効果が実行されると、上のマージンが少し開く
  • ワイプの動作が見えない(ほど早い?) ← ウェイトの指定ミス??

若干、挙動が不安定ですが、面白い機能ですので機会があればお試しください。


行の巡回パターン

表示行を切り替えの機能の動作パターンを設定する機能です。

図の通り4種類から設定できます。それぞれ、次のような動作となります。

クリックで次の行へ マウスでクリックすることで次の行を表示します。
最後の行でクリックすると最初の行へ戻ります。
連続 最初から最後の行へ自動で進みます。
最後まで進むと最初の行へ戻ります。
開いたときに1回 最初から最後の行へ自動で進みます。
最後の行を表示したら、そこで動作を停止します。
クリックで1回 マウスをクリックすると最初から最後の行へ自動で進みます。
最後の行を表示したら、そこで動作を停止します。
もう一度クリックすると、最初から実行します。


2026/09/05

表のプロパティ ⑨ - 行の特殊表示

ノーツの表には行の特殊表示という機能があります。認知度の高い機能で言うとタブ形式の UI を提供できる機能ですね。設定は表のプロパティの[表の行]タブで行います。


タブ形式の表

まず、通常通り表を作成します。今回は 2 行 1 列の単純な表を作成して、各セルにコンテンツを埋めます(下図では 1 行おきの色を使用しています)。

表のプロパティ[表の行]タブを開き、「1 行のみ表示」を選択、その下の表の表示方法で「タブボタンで行を選択」を選択します。

すると、表の表示が変わり、1 行目だけが表示されます。14.5.1 になってからタブのデザインがすっきりしたため、気が付きにくくなったのですが、表の上部(赤枠の部分)にタブが表示されます。

タブの名称は、選択した行セクションのタブラベルと表題に指定します。この設定はタブ(= 行)ごとのの設定になるので、順に設定します。

ラベルを設定するとタブらしくなりますね。ラベルをクリックするとタブが切り替わります。この動作は、編集モードでも読み込みモードでも同様です。


アコーディオン形式

タブ形式の表と同様の機能でアコーディオン形式の表示切り替えることが可能です。行の表示方法で「表題で行を選択」を指定するだけです。

設定するとタブラベルにあたる部分が1行で表示され、選択した行のコンテンツが表示されます。ノーツクライアント右側のサイドバーの表示に近い動作ですね。


2026/08/31

表のプロパティ ⑧ - 境界線のスタイルとイメージ

今回はノーツの表で一番特殊な機能だと感じている境界線のスタイルの「イメージ」を紹介します。利用するのは表のプロパティの[表の境界線]タブです。


境界線のスタイル

表のプロパティの[表の境界線]タブについては『表のプロパティ ⑥ - 枠の設定』で、枠の設定には、[厚さ][内側][外側]の3種類の設定があり、それぞれを詳細に設定できることを紹介しました。

この記事で触れなかったのが「境界線のスタイル」です。

基本的には、境界線のデザインを決定するだけの選択肢なのですが、特殊なものとして「画像」と「イメージ」という機能があります。名称だけでは違いが判らないですね...

「画像」は比較的単純な機能です。選択すると表枠がポラロイド写真(チェキ)のようなイメージとなります。

これは特別な機能ではなく、枠の厚さと内側、影と影の幅を一括で設定するだけの機能です。[内側]の設定を見るとよくわかるのですが、下の余白だけ大きくしてそれっぽく見せているということですね。


イメージ

いよいよ本題の「イメージ」の使い方を紹介します。この機能は、画像を使って枠を表現する機能になっており、他の境界線のスタイルとは一線を画します。

詳細な設定方法は後で説明するとして、まずは動作を見てみます。

境界線のスタイルに「イメージ」を選択します。プロパティ下部に枠に表示する画像を指定できるようになるので、イメージリソースから選択します。今回は、R5 のアイコンを四隅に配置した画像を作成して使用しました。

以下の動画では、枠の厚さを順に増減させています。表の枠のイメージがどのように伸縮するのか確認できます。

この表は 1 x 1 で、白抜きの部分がセルとなります。その外側、枠の部分に指定した画像を表示しています。一定の高さ以上は枠線が伸びるだけの動作になっています。

実際の文書ではこのように表の幅と高さに合わせて、伸縮する画像の枠となります。


枠画像の準備

この機能のキモは枠に使用する画像です。画像の縦横をそれぞれ 3 等分して四隅に配置、真ん中の部分は伸縮する部分として使用されます。詳細な仕組みや挙動は先輩ブロガーの中野さんがまとめてくださっています。詳しくは以下のリンクをご確認ください。

使用した画像の作成は R5 のアイコンを利用しました。懐かしいアイコンですね。

アイコンは 32 pixel なので、縦横 3 倍した画像を作成し、四隅にアイコンを配置、枠線やその内側に簡単な装飾をしました。伸縮する部分(四隅でない部分)の画像は、継ぎ足しても崩れないよう直線的にしておくとよいでしょう。

この枠に画像を配置する機能は GIF ファイルでないと正しく動作しないようです。ですので、画像が完成したら GIF ファイルとして保存します。ただし、ペイントで変換すると減色機能の都合で画像が極端に劣化し、色使いがざらざらになります。Web 上のフリーツールなどを使用して GIF ファイルに変換しましょう。


セルの背景のイメージ

このままでは、表の中身の背景が白いままとなります。そこで、真ん中の黄色い部分だけの画像を作成してリソースに登録します。

表のプロパティを開き[表/セルの背景]タブを開き、作成したイメージリソースを選択します。繰り返しに「タイル」を指定しておくと、セルのサイズにかかわらず、黄色の背景で埋めてくれます。

単色の画像であれば、セルの色で背景色を指定するだけでも OK ですね。


2026/08/25

表のプロパティ ⑦ - 表の余白の折り返し

これまで6回にわたってノーツの表のさまざまな設定を紹介してきました。そろそろ後半戦、少しレア度が高い設定に突入します。今回は、表のプロパティ[表の余白]タブにある「折り返し」セクションの設定について紹介します。


表の外側

固定幅の表の場合、余ったスペースを活用したいことがあります。ノーツでは「表の外側」という機能を使用すれば実現できます。

通常では表に続いて文字を入力すると表の下に文字が表示されます。

この状態で表のプロパティを開き[表の余白]タブ、「折り返し」セクションにある 表の外側、「表の周囲のテキスト」にチェックを付けると、表の右側の余白部分にテキストを表示することができます。

この機能は余白を活用する機能になります。例えば文字のプロパティで余白を狭めることで文字を表示する範囲を調整することができます。

なお、表の右側からはみ出た部分は、表の下側に表示されます。


表の内側

続いて、「折り返し」セクションのもう一つの機能、「表の内側」について紹介します。

この機能は、段組みのような構成を実現します。1ページを縦方向に複数の列(段)に分割して配置するレイアウト機能のことですね。

ノーツで次のような表を作成したとします。

表のプロパティで 表の内側 「セル間のテキスト」にチェックを入れると、2つのセル内のコンテンツが連結し、段組みしたような表示となります(高さには1行の高さを指定)。


この機能はフォームでも利用できます。

例えば、記事の構成をイメージして、Title、Lead、Body のフィールドを作成し、「セル間のテキスト」を設定した表に配置します。今回はサンプルなので、初期値でコンテンツを設定しておきます。

フォームをプリビューするとはみ出た部分が自動的に右側のセルに表示されます。コンテンツの長さに合わせて調整してくれるで、手間がなくて都合がいいですね。フィールドに設定したフォント通りに表示されることもあり、既存文書を体裁よく表示するのに使えそうです。


挙動不審な表の内側

表のプロパティ調査をしていて、初めて表の内側の機能を発見しました。まだまだ、経験が浅いのですが、評価してみた限りでいうと、この機能は時折動作が挙動不審になります。

例えば、表に直接入力や削除を繰り返しているとセル間のカーソルやコンテンツの移動が狂うことがあります。例えば、以下の動画では入力した文字を削除しても元の状態に戻りません。

また、マージンに合わせた表で幅を変更した場合も微妙です。下図の例では青字のエリアが広がる現象が発生しました。青字の設定が別のフィールドの値まで侵食しています。

どちらの機能も文書を開きなおすと戻るようなので、UI のコントロールと描画にバグがあるようですね。


このように表の内側の機能は面白い機能ではあるのですが、品質面で少々問題があります。現時点では、入力を伴わない表示用のフォームで固定幅の表で利用するなど、用途の限定が必要といえます。

@関数や LotusScript で画面に表示するコンテンツの幅を取得することはできないはずです。なので、段組みの実現には「表の内側」機能に頼るしかありません。何とか改善して、自由に使える機能にしてほしいですね。