Avatar
ると
2888961a564e080dfe35ad8fc6517b920d2fcd2b7830c73f7c3f9f2abae90ea9
Secure ScuttlebuttとかNostrとか。

WWDCでLE Audioのサポートがひっそり追加されたりするかな。

問1:

every(p, [x]) ⇔ p(x)

かつ

every(p, xs ++ xy) ⇔ every(p, xs) ∧ every(p, ys)

であるとき、

every(p, []) = true

を証明せよ。

ただし++はリストの連結であり、[x]と[]はそれぞれxのみを持つリストと空リストとする。

問2:

every(p, xs ++ xy) ⇔ every(p, xs) ∧ every(p, ys)

であるとき、

every(p, []) = false

となるeveryの例を示せ。

GPTとかのLLMが不正なUTF-8バイト列を出力しないのはなぜなんだろう。

Windows 11のウィジェットのニュース(Microsoft Start)は、今まではサインアウトしてれば表示されなかったんだけど、最近の更新で表示されるようなってしまった。グループポリシーでウィジェットごと無効化した。

https://allthings.how/how-to-disable-news-in-windows-11-widgets/

AppleのPoint and Speak in Magnifierが実世界版VoiceOverという感じですごい。指差したものを音声で読み上げてる。

https://www.apple.com/newsroom/2023/05/apple-previews-live-speech-personal-voice-and-more-new-accessibility-features/

Google Bardにウェブを“google”することができるかと聞いたけど、「私の辞書にはgoogleという動詞はありません」とかは言われなかった。変な質問してごめんなさい。

InstructGPTの学習は何段階かあって、その最後の段階では人間のフィードバックを元に強化学習をして悪い答えを出さないようにするんだけど、このとき人間のフィードバックで直接学習するのではなく、人間のフィードバックを予想するモデルを作って、それを使ってメインのモデルを強化学習するというのは面白い。内なる良心っぽい(推論時にはフィードバックを予想するモデルは使わないので違うんだけど)。

https://openai.com/research/learning-from-human-preferences

Codeium https://codeium.com/ をインストールしてみた。ちゃんとEmacsでEmacs Lispが補完できる。

Node.jsのパーミッション、node --experimental-permission index.jsとしたとき、index.js自体の読み込みもエラーになるっぽい。空のjsファイルでもエラーになる。

https://shisama.hatenablog.com/entry/2023/04/24/083000

LLMを使って、コンピュータプログラムのマニュアルや自動テストや実際の挙動をもとにそのプログラムのクローンを作成できるだろうか。それは何らかの権利を侵害するだろうか。

人間によるものであればそのようなクローンの作成は今まで行われてきたことで、うまくやれば合法である。

TOTP機能付き自作キーボード欲しい。問題はどうやってシークレットを登録するかと、時刻合わせか。

LLMが流行ってるけど、それはそれとして拡散モデルも知っておきたいので読んだ。

https://www.iwanami.co.jp/book/b619864.html

前の方読んでて疑問に思ったこと(これだと1番近い学習データがそのまま出てくるのではとか)が後の方で回答されててなるほどー、となる。全体としてはあんまりわかってないけど。

Google検索、今までhl=enをURLに付けて英語優先にしてたけど、ここ数年はトップにも日本語ページがヒットして不安がある。

例えば"java string"で検索するとJava SE 8の日本語版のAPIドキュメントがトップになる。2番目はJava SE 7の英語版で、その下には英語でよくある質問が表示されて、3番目の検索結果はW3Schools(英語)。トップの上には英語だけに絞るリンクが表示される。

https://www.google.com/search?q=java+string&hl=en

今までも下の方に日本語ページが出ることはあった。

言語を絞ることはできるけど、英語を入れたら英語ページがヒットして、日本語を入れたら日本語ページがヒットしてほしい。

SSHサーバの鍵を更新したとき、ちゃんと新しい公開鍵を信頼できる場所で公開するのすばらしい。

https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/

さくらのレンタルサーバはSSHサーバの公開鍵が公開されてなくて、サポートに問い合わせても無いとのことだった。

GPT-4の32 kトークン制限ってどのくらいかと思ってEmacsのswift-modeをwcしてみたら34706語だった。実際には1語複数トークンになるので入らないけど、それなりのコードならプロンプトに詰め込んで毎回渡すという力技でも扱えてしまうのか。

Replying to Avatar ると

Transformerにおいて、入力トークン数が増えるとエンコーダ側はn²のオーダーで処理時間が増えるのに対して、デコーダ側はnのオーダーでしか増えない。なのでエンコーダ側の処理を減らしたい。

ある種のユースケースではプロンプトは前提知識となる部分とメインの質問部分からなり、前提知識となる部分は毎回同じ値が渡されて同じようなエンコード結果になる(要検証)。そのため前提知識部分が事前処理できるとパフォーマンスの向上が期待できる。

案1: エンコーダの最初の方の層ではself-attentionを計算するときに、全トークンではなく比較的近くのトークンのみに対して重みを計算するようにする(それ以外については重み0)。また、最初の方の層では前提知識部と質問部の間では重みは常に0とする。その上で前提知識部分について途中の層まで事前計算しておく。

案2: 質問部分のトークンのself-attentionを計算するときは前提知識部分のトークンとの重みを計算するが、前提知識部分のトークンのself-attentionを計算するときは質問部分のトークンとの重みは計算しない(重み0)とする。その上で前提知識部分について事前計算をしておく。途中の層の結果も保持しておく。

案1は重みを計算する範囲を絞ること自体でも計算量を減らせる。一方能力としては落ちる可能性がある(要検証)。最初の方の層の計算結果を捨てられる。最後の方の層については依然として事前知識部分を含めたn²のオーダーで処理が増える。

案2は最初の方の層のうちから前提知識を使えるようになる。一方、トークン間の重みが非対称になる。これはどのような影響を与えるだろうか。

GPTはdecoderのみのtransformerらしいので、入力の前半のみ事前処理しておくとかできそう。

GPTはtransformerのdecoderのみ使っているらしい。

https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf

Decoderのみのtransformerの元論文。こちらでは長い入力を扱うために入力を分割したり複数のkeyとvalueを圧縮したりしてる。

https://arxiv.org/pdf/1801.10198.pdf

Transformerにおいて、入力トークン数が増えるとエンコーダ側はn²のオーダーで処理時間が増えるのに対して、デコーダ側はnのオーダーでしか増えない。なのでエンコーダ側の処理を減らしたい。

ある種のユースケースではプロンプトは前提知識となる部分とメインの質問部分からなり、前提知識となる部分は毎回同じ値が渡されて同じようなエンコード結果になる(要検証)。そのため前提知識部分が事前処理できるとパフォーマンスの向上が期待できる。

案1: エンコーダの最初の方の層ではself-attentionを計算するときに、全トークンではなく比較的近くのトークンのみに対して重みを計算するようにする(それ以外については重み0)。また、最初の方の層では前提知識部と質問部の間では重みは常に0とする。その上で前提知識部分について途中の層まで事前計算しておく。

案2: 質問部分のトークンのself-attentionを計算するときは前提知識部分のトークンとの重みを計算するが、前提知識部分のトークンのself-attentionを計算するときは質問部分のトークンとの重みは計算しない(重み0)とする。その上で前提知識部分について事前計算をしておく。途中の層の結果も保持しておく。

案1は重みを計算する範囲を絞ること自体でも計算量を減らせる。一方能力としては落ちる可能性がある(要検証)。最初の方の層の計算結果を捨てられる。最後の方の層については依然として事前知識部分を含めたn²のオーダーで処理が増える。

案2は最初の方の層のうちから前提知識を使えるようになる。一方、トークン間の重みが非対称になる。これはどのような影響を与えるだろうか。