未分類」カテゴリーアーカイブ

周波数

LTE(Long Term Evolution)で主に使われる無線周波数帯(バンド)は国・事業者によって異なりますが、一般的/代表的なLTEバンドは以下のようになります:

バンド番号周波数範囲備考
12100 MHz (1920–1980 MHz 上り / 2110–2170 MHz 下り)多くの国で利用
31800 MHz (1710–1785MHz / 1805–1880MHz)世界中で広く利用
72600 MHz (2500–2570MHz / 2620–2690MHz)都市部で多い
8900 MHz (880–915MHz / 925–960MHz)一部で利用
18/19800 MHz (815–830MHz / 860–875MHz)日本の一部事業者
20800 MHz (832–862MHz / 791–821MHz)欧州など
28700 MHz (703–748MHz / 758–803MHz)新しい周波数帯
412500 MHz (2496–2690MHz)TDD方式(一部地域)

WiFi

区分主な周波数範囲チャネル例備考
2.4GHz帯2.400~2.4835GHz1~14ch(主に1~13ch)家電と干渉多い
5GHz帯5.170~5.250GHz(W52)36,40,44,48屋内
5.250~5.350GHz(W53)52,56,60,64屋内/DFS必要
5.470~5.730GHz(W56)100,104,…,140屋外可/DFS必要

地デジ

日本の**地上デジタル放送(地デジ)の物理チャンネルごとの中心周波数(MHz)**は下記の通りです

物理CH中心周波数 (MHz)
13473.142857
14479.142857
15485.142857
16491.142857
17497.142857
18503.142857
19509.142857
20515.142857
21521.142857
22527.142857
23533.142857
24539.142857
25545.142857
26551.142857
27557.142857
28563.142857
29569.142857
30575.142857
31581.142857
32587.142857
33593.142857
34599.142857
35605.142857
36611.142857
37617.142857
38623.142857
39629.142857
40635.142857
41641.142857
42647.142857
43653.142857
44659.142857
45665.142857
46671.142857
47677.142857
48683.142857
49689.142857
50695.142857
51701.142857
52707.142857
  • 各チャンネルは6MHz幅です。
  • この一覧は**地デジUHF帯(13ch~52ch、470~710MHz)**に対応します

GPS欺瞞

gpsの欺瞞ですが、簡易的にはGPSシミュレータから偽の信号を出すと、最初は妨害電波のように作用して、しばらくして、偽の信号にロックして欺瞞が成立します。妨害電波では、対象のGPS受信機のロックが解除されるので、それをトリガーに妨害の検知が可能となります。妨害電波(ジャミング)とならずに、欺瞞を成立させるには?

GPSの欺瞞(スプーフィング)を妨害電波(ジャミング)とならずに成立させるには、以下のポイントが重要です。

スプーフィングとジャミングの違い

  • **ジャミング(妨害電波)**は、強いノイズ信号でGPS信号そのものを受信不能にし、受信機のロックを解除させます。このため、受信機側で「GPS信号が消えた」と検知でき、妨害の兆候として扱われやすいです123
  • **スプーフィング(欺瞞)**は、GPS衛星を装った偽の信号を送り、受信機に誤った位置情報を認識させる攻撃です。うまく行えば、受信機は攻撃に気付かず、正常に動作しているように見せかけられます1234

ジャミングとならずに欺瞞を成立させる技術的ポイント

  1. シームレスな信号切り替え(キャプチャ)
    • 受信機が本物の衛星信号から偽信号に「気付かず」ロックを移す必要があります。
    • そのためには、最初から強い偽信号を出してしまうとジャミングと同じくロックが外れてしまうため、まず本物の信号と同じ強度・内容の偽信号を重ねて送信し、徐々に偽信号の強度を上げていきます23
    • さらに、偽信号のタイミングや内容も本物と完全に一致させておき、受信機が「違和感なく」偽信号にロックするよう誘導します(これを「deception spoofing」や「seamless takeover」と呼びます)23
  2. 信号の内容とタイミングの精密な同期
    • 偽信号の内容(エフェメリス、時刻情報など)やタイミングを本物と完全に一致させる必要があります。
    • これにより、受信機は「信号が途切れた」とは認識せず、正常な信号の一部として偽信号を受信し続けます234
  3. 徐々に偽位置へ誘導(ドラッグオフ)
    • 偽信号にロックした後、急激に位置情報を変えると受信機が異常を検知する可能性があるため、位置や時刻情報を「ゆっくり」ずらしていきます。
    • これにより、受信機は自然な形で誤った位置に導かれます23

まとめ

  • いきなり強い偽信号を送るとジャミングとして検知されやすいため、まず本物と同じ内容・強度の偽信号を重ねて送信し、徐々に偽信号にロックさせる「シームレスキャプチャ」が必要です。
  • 信号内容・タイミングの精密な同期と、徐々に位置情報をずらすことが、ジャミングとならずに欺瞞を成立させるカギです234

補足:

  • 近年は到来方向センシングや信号認証技術も進んでおり、こうした高度なスプーフィングも検知されやすくなっています534

gemini deepresearchによる詳細なレポート

生成AIによる短編の作成実験

生成AIツール:文章 gemeni flash,  動画 gemini veo2

プロンプト:米国は第2次世界大戦後、ロシアとの冷戦に勝利して世界の覇権を握ってきました。しかし、最近になって国内世論の分断が進み、財政面でも負債が膨らんでいます。今日米国が世界の覇権を握っている重要な要素として、国家間の貿易が米ドルで行われていることにあると思います。この米ドルがその地位を失うシナリオは?

動画生成ツール gemini veo2が生成したイメージ動画

生成された文章を音声で要約:ツール google NotebookLM(6分34秒)

生成された全文の読み上げ:ツール VOICEBOX (14分21秒)

生成された本文 「コードの波涛、揺れるドル

東京、日本橋。老舗商社の為替担当、田中健司(40歳)は、深まる秋の空を見上げていた。ここ数年、世界の金融市場には異変が起きていた。米ドルの独歩高時代は終わりを告げ、ドルは荒い波に揉まれる小舟のようだった。各国の高インフレ、際限なき債務膨張、そして「制裁ツール」としてのドルの濫用…それらが積み重なり、ドルへの信頼は静かに、だが確実に侵食されていたのだ。

健司は、目の前のパソコン画面を見つめた。国際的な取引を行う際、通貨の両替や送金は避けて通れない。そして、そのプロセスの大半は、数十年変わらない強固な仕組みの上に成り立っていた。

「国際送金といえば、かつては決まり切った手順だったな…」

健司は心の中で呟いた。例えば、日本の会社が海外の取引先にドルで支払いを行う場合。まず日本の銀行から、海外の銀行へ送金指示を出す。この時、銀行間で安全に、迅速に「支払いに関するメッセージ」をやり取りするために使われるのが、国際銀行間通信協会、通称SWIFTというネットワークだ。世界中のほぼ全ての銀行が加盟しており、まさに国際金融の「郵便局」のような役割を果たしている。

そして、肝心の「お金」そのものの移動だが、これはほとんどの場合、米ドルを介して行われる。日本の銀行にある円預金は、コルレス契約を結んだアメリカの銀行にあるドル口座で、米ドルに両替される。そのドルは、SWIFTで受け取った指示に基づき、さらに相手国の銀行がアメリカに持つドル口座へ送金される。最終的に、そのドルが現地の通貨に両替され、取引先の口座に入金されるのだ。

なぜドルなのか?それは、ドルが世界の基軸通貨だからだ。最も取引量が多く、最も信用され、最も流動性の高い通貨。世界の貿易の大部分がドル建てで行われ、各国の政府や中央銀行が外貨準備としてドルを大量に保有している。石油取引(ペトロダラー)も長くドル建てが中心だった。この「ドルを世界の銀行が保有し、ニューヨークの銀行を通じて清算する」という仕組みが、国際金融システムの根幹を成していた。そして、この仕組みを握る米国は、世界の金の流れを把握し、特定の国や組織をシステムから締め出す金融制裁という強力な武器を持つことができたのだ。SWIFTからの排除や、米国内のドル資産凍結は、国家にとって致命的な打撃となり得た。

その堅牢さが、ドルの基軸たる所以だった…はずなのに。

「田中さん、今日の取引、どうしますか?またドルが不安定で…」

部下が不安げに覗き込む。主要な取引先である東南アジアの工場から、「今後はドル以外の決済手段を検討したい」という打診が増えていた。人民元も候補には挙がるが、中国経済への不透明感や資本規制のリスクから、躊躇する企業は多かった。ユーロや円も、それぞれの経済圏を越えるには力不足だ。

「…少し様子を見よう。こんなに不安定なドルで長期契約を結ぶのは危険すぎる」

健司はモニターの隅に表示された、聞き慣れないティッカーシンボルを眺めた。”GLOB”。それは、数年前に国際的な技術者・金融専門家集団が発表した、新しい概念のデジタル通貨だった。「グローバス(Globus)」と呼ばれるそれは、特定の国家が管理するのではなく、分散型台帳技術(ブロックチェーン)を基盤とし、複数国の主要コモディティとソフトペッグすることで価値の安定を目指す、という触れ込みだった。当初は懐疑的に見ていた健司だが、最近になってこのGLOBの取引量が静かに、だが着実に増えていることに気づいていた。

一方、ワシントンD.C.。財務省のサラ・ジェンキンス次官補(50歳)は、連日の緊急会議に疲れ果てていた。ロシアへの追加制裁、某産油国への資産凍結…ドルを武器とする米国の戦略は、短期的な効果はあっても、長期的には裏目に出始めていた。ターゲットとされた国々だけでなく、彼らと取引のある第三国までが、ドルシステムから距離を置き始めていたのだ。

サラは知っていた。米国がドルを基軸通貨として維持してきた背景には、単なる経済力だけでなく、圧倒的な軍事力と、そして何よりも「信頼」があったことを。世界の国々は、自国の通貨をドルに換え、米国債を購入することで、米国経済の安定と、それによって保たれる国際秩序、そして自由に貿易できる環境への「保険料」を支払ってきたのだ。SWIFTという「郵便局」の管理権、そしてドルという「世界の共通語」の発行権は、米国に情報と影響力をもたらした。

しかし、最近の強権的な制裁発動や、国内の度重なる政治的混乱、そして制御不能な財政赤字は、その「信頼」という最も重要な基盤を揺るがしていた。

「IMFの報告書です、次官補。各国の外貨準備におけるドルの比率が、過去20年で最も低い水準に低下しています。代替として増えているのは金、そして…あの『グローバス』です」

部下の言葉に、サラは忌々しげに顔を歪めた。

「グローバス?あの胡散臭いデジタル通貨か。特定の国家の保証もない、得体の知れないものに、なぜ各国のソブリンファンドが資金を投じるんだ?」

「…データによれば、その『特定の国家の保証がない』ことこそが、今の彼らにとって魅力的なようです。米国の意向に左右されず、政治的なリスクから切り離されている。加えて、ドルやユーロのような既存の法定通貨よりもインフレ耐性がある、と見なされています。初期の設計者が公開した安定化メカニズムの透明性も、一部で評価されているようです」

サラは苛立ちを募らせた。彼らは戦おうとしている相手が見えないのだ。特定の敵国ではない。巨大な金融機関でもない。国境を持たない、分散されたコードの集合体。どうやって規制する?どうやって圧力をかける?かつてSWIFTやコルレス銀行を盾にすれば、世界のどこへでも金融的な圧力をかけられたはずだった。しかし、グローバスは、その古いシステムの外側で、P2P(ピア・ツー・ピア)で取引されることを目指している。

「馬鹿げている!通貨は国家の主権だ!匿名性の高いデジタル資産が世界の金融システムを支配するなど、断じて許されない!」

サラの言葉は、しかし、時代の流れには届かなかった。

シンガポール。グローバスの開発を主導した「ワールド・エコノミック・レジリエンス・コンソーシアム(WERC)」の共同代表、アニャ・シャルマ博士(40代)は、晴れやかな表情で記者会見に臨んでいた。

「本日、WERCは世界の主要な穀物、エネルギー、金属を扱う複数のトレーディングプラットフォームと提携し、これらの国際取引において、決済通貨としてグローバスを導入することを発表します。これは、国境や特定の国家の意向に左右されない、真にグローバルで安定した経済活動を実現するための一歩です」

会場からは大きな拍手が起こった。彼女の背後には、欧州、アジア、南米、アフリカ…様々な地域の企業や機関のロゴが並んでいた。そこには、米国の主要企業の姿はなかったが、彼らはもう、世界の全てではなかった。

「グローバスは、特定の国家が発行する通貨ではありません。したがって、いかなる国家の制裁や政治的思惑からも独立しています。その価値は透明性の高いメカニズムによって維持され、世界中の誰でも、インターネットに接続できれば利用できます。これは、地政学的なリスクから解放された、より効率的で公正なグローバル経済への扉を開くものです」

アニャの言葉は、世界中に波紋を広げた。特に、米国の制裁に苦しむ国々や、ドル高・ドル安の波に翻弄されてきた新興国、そして既存の金融システムへの不信感を持つ人々にとって、グローバスは希望の光のように見えた。それはSWIFTやコルレス銀行といった既存の枠組みに縛られない、全く新しい選択肢だった。

東京の健司は、記者会見のニュースを見て、息を呑んだ。穀物、エネルギー…それは世界の経済を動かす最も基本的な取引だ。それがグローバスに流れ始めるということは、ドルの牙城が崩壊寸前であることを意味していた。そして、それはSWIFTを始めとする既存の金融インフラそのものへの挑戦だった。

「田中さん!どうしますか?あのグローバス、市場で急騰しています!問い合わせが殺到していて…」

部下の声に、健司は立ち上がった。迷っている時間は終わった。リスクを回避するために、そして新たなビジネスチャンスを掴むために、グローバスを理解し、活用する時が来たのだ。

「対応するぞ。すぐにグローバスの取引口座を開設する手配を。それに、クライアント向けに、グローバス決済のメリットとリスクに関する緊急説明会を設定してくれ」

米ドル中心の時代は終わりを告げた。多極化する通貨に加えて、特定の国家に属さないデジタル通貨が、新たな主要プレイヤーとして登場したのだ。それは、SWIFTのような中央集権的なシステムとは異なる、分散型のネットワークを基盤としていた。

ワシントンのサラは、WERCの発表を聞き、血の気が引くのを感じた。彼らはドルという武器を避け、全く新しい戦場で戦いを挑んできたのだ。規制しようにも、WERCはスイスに本部を置く非営利団体であり、グローバスのネットワークは世界中に分散している。かつてのように、スウィフトから排除したり、ニューヨークの銀行を締め付けたりする手法は通用しない。彼らは、自分たちの喉元に、国家の主権が及ばない「コード」でできた刃を突きつけてきたのだ。

「副長官!どうしましょう?大手銀行がグローバス取引サービスの開始を発表し始めました!無視できません!」

「くっ…彼らは…彼らは世界の金融システムそのものを迂回しようとしている…!」

サラは唇を噛み締めた。ドルの覇権とは、単に強い通貨を持っていることではなかった。ドルを基盤とした金融システム、決済ネットワーク(SWIFTなど)、そしてそれらを支える法や制度、軍事力…その複合体が「覇権」だったのだ。しかし、グローバスのような分散型デジタル通貨は、そのシステムの外側で機能しようとしている。これは、国家の権力ではコントロールしにくい、新しい時代の「力」だった。

数ヶ月後。グローバスは急速に普及していた。特に国際的なサプライチェーンを持つ企業や、国境を越えた個人間の送金で利用が拡大。金の現物取引や主要コモディティ取引の一部でも標準的な決済手段となりつつあった。その価値の安定性は、ボラティリティの高い法定通貨や他の仮想通貨と比較して際立っていた。ドルを介さず、SWIFTを通さずとも、価値が世界を移動する手段が現れたのだ。

米国の経済は困難な調整期を迎えていた。インフレは収まらず、金利は高止まり。ドル資産からの資金流出は止まらず、米国債の消化は困難を極めた。かつての「桁外れの特権」は失われ、米国は自国の経済力に見合った生活水準への調整を迫られていた。国際社会における発言力も相対的に低下し、多極化、あるいはそれ以上に複雑な「無極化」した世界で、米国は新たな立ち位置を模索していた。

中国経済は、人民元の国際的地位向上を目指したが、グローバスという強力なライバルの出現により、その道のりは平坦ではなかった。欧州や他の地域通貨も、グローバスとの共存を模索し始めた。

東京の健司は、相変わらず忙しい日々を送っていた。彼のオフィスでは、ドルだけでなく、ユーロ、円、そして何よりもGLOBのチャートが大きな画面に表示されている。世界の通貨は多様化し、それぞれが複雑に絡み合っていた。グローバスは全ての取引を置き換えたわけではないが、国際決済におけるドルのシェアを大きく奪っていた。そして、それはSWIFTのような既存のインフラへの依存度も下げていた。

「田中さん、次の取引、ロシアとの間で鉄鋼の輸入です。向こうからはグローバス建てでの請求が来ていますが、よろしいですか?」

「ああ、問題ない。グローバスでの支払い準備を進めてくれ」

健司は頷いた。かつては考えられなかった取引形態だ。国家間の政治的な対立が、直接、経済取引の通貨選択に影響を与える。そして、それを回避する手段として、国家の枠を超えた通貨が使われる。

窓の外には、夕日が沈みかけている。ドルの時代の「黄昏」は、もう完全に訪れたのかもしれない。そして、ブロックチェーンというコードによって支えられる、新しい金融世界の「夜明け」。それは希望に満ちていると同時に、未知のリスクも孕んでいる。国家の管理が及ばない通貨が、どこまで安定を保てるのか?そのガバナンスは?新たなデジタル格差は生まれないか?

健司は、パソコンのキーボードに手を置いた。金融の世界は、かつてなくエキサイティングで、かつてなく危険になっていた。彼の戦いは、まだ始まったばかりだ。コードの波涛に立ち向かい、この新しい世界を生き抜いていく。それが、彼の、そして日本の、新たな使命だった

AIMOS USB ボリュームコントローラ

参考URL

初期設定

メモ帳を起動し、フォーカスした状態で、AMOSのノブを押しながらPCと接続する。

iWit USB Controller V4.01
http+//iWit.me

Sort Press ) <1 Second To Enter Windows Mode

Long Press ) >1 Second To Enter Mac Mode
Enter Setup Mode

カスタマイズ

  • WINDOWS MODE –
    1 Clockwise + PageUp
    2 Counterclockwise + PageDown
    3 Press + Volume Mute
    4 Press~Clockwise + Volume~2
    5 Press~Counterclockwise + Volume-2
    6 Long Press + Volum Mute
    @RESTORE DEFAULT[
    @SAV ‘ QUIT[

LLM/RAG環境の構築

実行スクリプト

PS C:\Users\mars> docker run -d -p 3000:8080 –e RAG_EMBEDDING_ENGINE=ollama -e RAG_EMBEDDING_MODEL=bge-m3:latest –add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data –name open-webui-rag –restart always ghcr.io/open-webui/open-webui:main

PS C:\Users\mars>docker run -d -p 3000:8080 -e RAG_EMBEDDING_ENGINE=ollama -e RAG_EMBEDDING_MODEL=bge-m3:latest –gpus all –add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data –name open-webui –restart always ghcr.io/open-webui/open-webui:cuda

埋め込みモデル設定

  • 設定画面 → ドキュメント(Documents)セクションで:
  • セマンティックベクトルエンジン: Ollama
  • モデル名: bge-m3:latest
  • チャンクサイズ: 1500
  • チャンクオーバーラップ: 100
  • その他パラメータはデフォルト維持13
  • **知識ベース作成**
  • 1. Workspace → Knowledge → [+ Create Knowledge Base]
  • 2. 名前と用途(例: Assistance)を設定
  • 3. ドキュメントファイル(PDF/TXT/Markdown)をドラッグ&ドロップでアップロード[2][5]
  • **質問方法**
  • 1. 新規チャット作成時に使用するLLMを選択(例: Qwen2.5系モデル)
  • 2. チャット入力欄に`#`を入力→アップロード済みドキュメントを選択
  • 3. 自然言語で質問を入力[1][5]


openwab-uiの画面のchat controlパラメータで、設定をdefaultから変更した方が良い項目と内容を教えて

推奨される変更例:

以下は、一般的なユースケースにおける例です:

ユースケースMax TokensTemperatureTop-pRepetition Penalty
短い正確な回答1000.50.81.2
長文で詳細な説明3000.70.91.1
創造的・自由な文章生成5001.01.01.0

Grokに問い合わせた結果

Open WebUIのRAG機能を利用する場合、重要なパラメータなどの要素と、その設定値は?

Open WebUIでRAG(Retrieval-Augmented Generation)機能を利用する際、効果的な動作を実現するためには、いくつかの重要なパラメータや設定要素を適切に調整する必要があります。以下に、主要な要素とその設定値について説明します。これらはOpen WebUIの管理者パネル(例: 「設定 > ドキュメント」や「ワークスペース > モデル」)で調整可能な項目に基づいています。


1. 埋め込みモデル (Embedding Model)

  • 役割: ドキュメントをベクトル化し、検索時の類似度計算に使用するモデル。
  • デフォルト: Sentence Transformers(例: all-MiniLM-L6-v2)。軽量だがパラメータ数が少ない。
  • 推奨設定値:
  • 高精度を求める場合: nomic-embed-text(137Mパラメータ)やmxbai-embed-large(334Mパラメータ)など、より大きなモデルを選択。
  • 多言語対応が必要な場合: bge-m3(多言語対応で高性能)。
  • ポイント: デフォルトモデルは軽量だが精度が不足する場合があるため、用途に応じて変更を検討。モデル変更後はドキュメントの再アップロードが必要。

2. モデル再ランキング (Model Reranking)

  • 役割: 検索結果の関連性を再評価し、より適切なドキュメントを上位に配置。
  • デフォルト: 再ランキングなし。
  • 推奨設定値:
  • 軽量モデル: cross-encoder/ms-marco-MiniLM-L-6-v2(高速だが精度は中程度)。
  • 高精度モデル: cross-encoder/ms-marco-MiniLM-L-12-v2(より正確だが処理負荷が増加)。
  • ポイント: 再ランキングを有効にすると回答の質が向上する。特に情報量が多いドキュメントを扱う場合に有効。

3. チャンクサイズ (Chunk Size)

  • 役割: ドキュメントを分割するサイズ。検索精度とコンテキストのバランスに影響。
  • デフォルト: 1500トークン。
  • 推奨設定値:
  • 小規模ドキュメント: 500〜1000トークン(細かい粒度で検索精度を向上)。
  • 大規模ドキュメント: 1500〜2000トークン(コンテキストを広く保持)。
  • ポイント: 小さすぎるとコンテキストが不足し、大きすぎるとノイズが増えるため、ドキュメントの内容に応じて調整。

4. コンテキストの長さ (Context Length)

  • 役割: LLMが回答生成時に参照するコンテキストの最大長。
  • デフォルト: 2048トークン。
  • 推奨設定値:
  • 短い回答: 1024〜2048トークン。
  • 詳細な回答: 4096トークン(モデルが対応している場合)。
  • ポイント: 使用するLLMの最大トークン数に依存。長すぎると処理速度が低下する可能性がある。

5. トップK (Top K)

  • 役割: 検索結果から上位何件のドキュメントをコンテキストとして使用するか。
  • デフォルト: 10。
  • 推奨設定値:
  • 高精度重視: 3〜5(関連性の高いものだけを厳選)。
  • 情報量重視: 10〜15(幅広い情報をカバー)。
  • ポイント: 値が大きいほど多様な情報を含むが、ノイズも増える可能性がある。

6. ドキュメントの前処理

  • 役割: 検索用データの品質を向上させる。
  • 設定値:
  • テキストファイル推奨(PDFやWordは事前にテキスト変換)。
  • ノイズ除去(余分な空白、タブ、改行の整理)。
  • ポイント: 前処理が不十分だと検索精度が落ちるため、きれいなデータを用意することが重要。

7. 生成モデル (LLM)

  • 役割: 検索されたコンテキストをもとに回答を生成するモデル。
  • 推奨設定値:
  • ローカル: gemma2:2b(軽量)、ELYZA-japanese-Llama-2-13b(日本語対応)。
  • API経由: gpt-4o-mini(高精度だがコストがかかる)。
  • ポイント: RAGの効果は生成モデルの性能にも依存。ローカル環境ではハードウェアスペックを考慮。

設定の流れ(例)

  1. 管理者パネル > 設定 > ドキュメントで埋め込みモデルをbge-m3に変更。
  2. モデル再ランキングcross-encoder/ms-marco-MiniLM-L-12-v2を指定。
  3. チャンクサイズを1000、コンテキストの長さを2048、トップKを5に設定。
  4. 前処理済みのテキストファイルをアップロード。
  5. ワークスペース > モデルで生成モデル(例: gemma2:2b)を選択し、RAG用にカスタムモデルを作成。

注意点

  • ハードウェア依存: ローカル環境ではGPUやメモリ容量が処理速度に影響。
  • 再アップロード: 埋め込みモデルやチャンクサイズを変更した場合、既存ドキュメントを削除して再登録が必要。
  • 試行錯誤: 最適な設定はデータや用途により異なるため、実験しながら調整する。

これらのパラメータを適切に設定することで、Open WebUIのRAG機能を最大限に活用し、高精度で有用な回答を得られる環境を構築できます。

100K文字程度のテキストをRAGで検索すると仮定した際に、それぞれのパラメータの最適値は

100K文字程度のテキストをRAG(Retrieval-Augmented Generation)で検索する場合、データ量としては中規模(日本語で約50K〜100Kトークン程度と仮定)に該当します。この規模のテキストを効率的かつ高精度に処理するためには、パラメータの設定に以下の点を考慮する必要があります。以下に、前回の回答をベースに具体的な最適値を提案します。


前提条件

  • テキスト量: 100K文字(日本語の場合、約50Kトークンと仮定。句読点や単語の長さに依存)。
  • 目的: 関連性の高い情報を迅速に検索し、正確な回答を生成。
  • 環境: ローカル(GPUあり)またはクラウド(API利用)を想定。

1. 埋め込みモデル (Embedding Model)

  • 最適値: bge-m3
  • 理由:
  • 100K文字は複数のトピックを含む可能性が高く、多言語対応かつ高精度な埋め込みが必要。
  • bge-m3は約568Mパラメータを持ち、日本語を含む多言語で優れた性能を発揮。
  • 代替案: リソースが限られる場合、all-MiniLM-L12-v2(軽量かつそこそこの精度)。

2. モデル再ランキング (Model Reranking)

  • 最適値: cross-encoder/ms-marco-MiniLM-L-12-v2
  • 理由:
  • 中規模テキストでは検索結果にノイズが混ざりやすいため、再ランキングで精度を向上。
  • L-12-v2は精度と速度のバランスが良く、100K文字程度の処理に適している。
  • 代替案: 高速処理優先ならMiniLM-L-6-v2

3. チャンクサイズ (Chunk Size)

  • 最適値: 800〜1000トークン
  • 理由:
  • 100K文字(約50Kトークン)を50〜60チャンクに分割可能。
  • 800〜1000トークンは、1チャンクで十分なコンテキストを保持しつつ、検索時のノイズを抑える。
  • 補足:
  • 日本語は英語よりトークン数が多くなりがちなので、1000トークン以下に抑えるのが現実的。
  • 小さすぎると(例: 500トークン)コンテキストが不足し、大きすぎると(例: 2000トークン)関連性が薄れる。

4. コンテキストの長さ (Context Length)

  • 最適値: 2048トークン
  • 理由:
  • 検索結果から複数チャンク(例: トップ3〜5)を参照する場合、合計で1500〜2000トークン程度になる。
  • 2048トークンは多くのモデル(例: Llama系やGemma系)が対応可能で、実用的な上限。
  • 補足: 高性能モデル(例: GPT-4o, 128Kトークン対応)を使う場合、4096トークンも検討可能だが、ローカルでは負荷が増大。

5. トップK (Top K)

  • 最適値: 5
  • 理由:
  • 100K文字から50〜60チャンクが生成されると仮定し、上位5件で十分な関連性を確保。
  • 5は精度と情報量のバランスが良く、生成時のコンテキスト過多を防ぐ。
  • 補足: 幅広い情報を求める場合、10まで増やしても可。ただし、ノイズが増えるリスクを考慮。

6. ドキュメントの前処理

  • 最適値:
  • テキストを事前に整形(余分な空白や改行を削除)。
  • 段落ごとに明示的な区切り(例: ---)を挿入。
  • 理由:
  • 100K文字は構造化されていない場合が多く、前処理で検索精度を向上。
  • 日本語特有の曖昧な句読点を整理することで、チャンク分割が自然に。

7. 生成モデル (LLM)

  • 最適値:
  • ローカル: gemma2:9b(9Bパラメータで高精度かつ中規模データに適応)。
  • クラウド: gpt-4o-mini(コスト効率と性能のバランス)。
  • 理由:
  • 100K文字のコンテキストを理解し、自然な日本語で回答するには、中〜大規模モデルが必要。
  • gemma2:9bはローカルで実行可能な高性能モデル、gpt-4o-miniはAPI利用時の最適解。

具体的な設定例

  • 埋め込みモデル: bge-m3
  • 再ランキング: cross-encoder/ms-marco-MiniLM-L-12-v2
  • チャンクサイズ: 1000トークン
  • コンテキストの長さ: 2048トークン
  • トップK: 5
  • 前処理: 整形済みテキスト、段落区切り付き
  • 生成モデル: gemma2:9b(ローカル)またはgpt-4o-mini(クラウド)

想定される動作

  • チャンク数: 100K文字 ÷ 1000トークン ≈ 50チャンク。
  • 検索時間: 埋め込み生成と再ランキングで数秒〜十数秒(ハードウェア依存)。
  • コンテキストサイズ: トップ5 × 1000トークン = 約5000トークン(2048に制限されるため、実質上位2〜3チャンクが使用される)。

調整のポイント

  • 精度不足の場合: トップKを3に減らし、再ランキングモデルの精度を上げる(例: L-12-v2Electra)。
  • 速度不足の場合: チャンクサイズを1200に増やし、チャンク数を減らす。
  • コンテキスト不足の場合: コンテキスト長を4096に拡張(対応モデルが必要)。

この設定なら、100K文字程度のテキストをRAGで効率的に検索し、高精度な回答を生成できるはずです。実際のデータやハードウェアに応じて微調整してください。

Install RTL_SDR Support

https://gist.github.com/derme302/a702e421b7cd133753e5ab87101a01c4

https://github.com/merbanan/rtl_433/tree/master

データの取得例

$ rtl_433  2>/dev/null
[SDR] Using device 0: Realtek, RTL2838UHIDIR, SN: 00000001, "Generic RTL2832U OEM"
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2024-11-12 21:58:45
model     : Emax-W6      id        : dd9
Channel   : 4            Battery_OK: 1             Temperature: 59.3 F       Humidity  : 81 %
Wind avg speed: 0.0 km/h Wind Direction: 228       Total rainfall: 0.2 mm    UV Index  : 1             Lux       : 0
Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2024-11-12 21:59:15
model     : Emax-W6      id        : dd9
Channel   : 4            Battery_OK: 1             Temperature: 59.1 F       Humidity  : 80 %
Wind avg speed: 0.0 km/h Wind Direction: 229       Total rainfall: 0.2 mm    UV Index  : 1             Lux       : 0
Integrity : CHECKSUM

$ rtl_433 2>/dev/null | python t.py

$ cat t.py
#!/usr/bin/python
import sys
for line in sys.stdin:
    #print(line.strip())
    res=line.split()
    if len(res) == 34:
        TT=round((float(res[6])-32)/1.8,1)
        HH=res[10]
        WS=round(float(res[15])/3600,1)
        WD=res[19]
        RR=res[22]
        UV=res[27]
        UL=res[30]
        print(TT,HH,WS,WD,RR,UV,UL)
mars@pi4Bu:~/rtl_433 $ rtl_433   2>/dev/null |python t.py
18.4 69 0.0 229 0.2 1 0
18.4 69 0.0 229 0.2 1 0
18.4 69 0.0 229 0.2 1 0
18.4 69 0.0 229 0.2 1 0
18.5 69 0.0 229 0.2 1 0
18.4 69 0.0 229 0.2 1 0
18.4 69 0.0 229 0.2 1 0
18.4 69 0.0 229 0.2 1 0