※当サイトの記事には、広告・プロモーションが含まれます。

MySQLの移行先がMySQL以外の場合って一旦CSVファイルにエクスポートするしかなくない?

www.itmedia.co.jp

 米OpenAIは9月5日(現地時間)、LLMのいわゆる「幻覚」(ハルシネーション)についての論文を公開した。この論文は、ChatGPTやGPT-4oといったLLMが、なぜもっともらしく聞こえるけれども間違った情報を自信満々に生成してしまうのか、その根本的な理由を解き明かそうとするものだ。

OpenAI、LLMの「幻覚」についての論文公開 「評価方法の抜本的見直し」を提言 - ITmedia AI+

 論文では、言語モデルの幻覚は大きく分けて2つの段階で発生し、改善が難しい問題だとしている。

OpenAI、LLMの「幻覚」についての論文公開 「評価方法の抜本的見直し」を提言 - ITmedia AI+

1つは、モデルが膨大なテキストデータから言語のパターンを学習する「事前学習」の段階で、例えばカライ氏の誕生日といった、データの中に規則性や学習可能なパターンがほとんどない「恣意的な事実」の場合、完璧な学習データを与えられたとしても、統計的な目的関数の性質上、エラーが避けられないと分析している。

OpenAI、LLMの「幻覚」についての論文公開 「評価方法の抜本的見直し」を提言 - ITmedia AI+

 もう1つは、モデルがより人間らしい対話能力を身につける「後続訓練」の段階で、現在の評価方法が、不確実性を示すよりも推測することを推奨してしまっていることにあるという。多くの評価ベンチマークでは、正解には1ポイント、間違った答えや「分かりません」という回答には0ポイントが与えられる「二値評価スキーム」が採用されている。

OpenAI、LLMの「幻覚」についての論文公開 「評価方法の抜本的見直し」を提言 - ITmedia AI+

⇧ う~む...

  1. 間違い
  2. 回答不能

に対して同じ評価していた理由が全く持って分からないのだが...

とりあえず、

 この問題に対処するため、OpenAIは幻覚の発生を抑制するには、既存の主要な評価方法自体を抜本的に見直す必要があると主張している。

OpenAI、LLMの「幻覚」についての論文公開 「評価方法の抜本的見直し」を提言 - ITmedia AI+

 具体的な提案として、試験の指示の中に「間違いはペナルティ、正解は1ポイント、分かりませんは0ポイント」といった「明示的な信頼度目標」を含めることを挙げている。

OpenAI、LLMの「幻覚」についての論文公開 「評価方法の抜本的見直し」を提言 - ITmedia AI+

⇧ 改善するとあるが、評価のパターンが大雑把過ぎるんよな...

つまり、

  1. 限りなく正解に近い間違い
  2. 正解から程遠い間違い

も同じ評価にせざるを得ない構造上の問題が解決できないので、「回答」の精度が上がるはずが無いのよね...

「正解」についても同様の問題を孕んでいると思いますが...

MySQLの移行先がMySQL以外の場合って一旦CSVファイルにエクスポートするしかなくない?

公式のドキュメントによると、

dev.mysql.com

dev.mysql.com

2.11.14 MySQL データベースのほかのマシンへのコピー

データベースを異なるアーキテクチャー間で移動する必要がある場合、mysqldump を使用して SQL ステートメントを含むファイルを作成します。 次にそのファイルを別のマシンに転送して mysql クライアントへの入力として扱います。

https://dev.mysql.com/doc/refman/8.0/ja/copying-databases.html

⇧ 説明を見る限り、

No 移行元 移行先
1 MySQL MySQL

の移行についてしか想定していない...

ネットの情報を漁っていたところ、

zenn.dev

⇧ 上記サイト様で、異なる「ベンダー」の「データベース」間の移行の事例が紹介されていた。

まぁ、「テーブル」の「カラム」を「自動採番」する際の「データ型」なども異なるから「DDL」とかも異なって来るし、「テーブル」の「レコード」の部分を「CSV」ファイルとして一旦エクスポートする方式しか取りようが無いよね...

で、注意事項としては、

MySQLのデータをCSVファイルにエクスポート

  1. mysqldumpコマンドを利用する
  2. 事前にCSVファイル出力先のディレクトリを作成しておく

MySQLのデータをCSVファイルからインポート

  1. MySQL サーバー側の「パラメータ」の1つである「load_infile」を有効にする
  2. MySQL クライアント側で「オプション」の「--load-infile」を有効にする

といった感じで、設定を有効にする必要があるそうな。

yoku0825.blogspot.com

日々の覚書: MySQL 8.0でLOAD DATA LOCAL INFILEが "ERROR 1148 (42000): The used command is not allowed with this MySQL version" または "Error: 3948. Loading local data is disabled; this must be enabled on both the client and server sides" で失敗する時

⇧ 上記サイト様によりますと、元々は、デフォルトで有効だったらしいのだが、どこかのタイミングでデフォルトで無効になったらしい。

毎度モヤモヤ感が半端ない…

今回はこのへんで。