Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「encode」を含む日記RSS

はてなキーワード:encodeとは

2025-09-27

anond:20250927220009

その修正をしてると思われるPRがすでにありますね。

Fix 2 bugs and improve performance from O(N²+NxM) to O(N+M) in _assign_requests_to_connections by VictorPrins · Pull Request #1035 · encode/httpcore · GitHub

しかコメントによると作者はそもそも httpcore に依存しない新バージョン (httpx/v1) の開発に取り掛かっている模様?

Permalink |記事への反応(0) | 23:15

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-02

AI技術的に根本から全く使えない3つの理由

https://anond.hatelabo.jp/20250630114221 https://anond.hatelabo.jp/20250626125317 https://anond.hatelabo.jp/20250627100609 https://anond.hatelabo.jp/20250628122821

AI技術批判する記事がバズりまくってるが、それに対して凄い数の批判がいってる、だけど肝心の批判個人攻撃めいていて、どれも技術的な部分はふわふわした物言いなので

どれだけ技術的にまったく使い物にならないかを、技術から3つ理由を上げようと思う、これを見れば、確かにAIってそんなもんじゃないな、って正しい理解が進むと思う、と同時に、

ネットAI擁護したり喧伝してる人間で誰一人、エンジニア自称したりしてる奴らでさえAI理解してる人間ゼロっていうのがわかると思う

ちなみに、IT技術全然知らない増田向けに技術的な部分は補足説明を入れているので、ちょっと長くなってるかもしれない

① LLM言語モデル本質意味理解ではなく「統計予測」、プログラミングに使えるというのは全く嘘、技術的背景から考えても二度手間になるだけ

LLMがわかっていない!と喚いてる当人たちも上で言った通り、LLMっていうのが理解できてないの丸わかりなので、ここでまずLLM「大規模言語モデル」とは何かを簡単説明しよう

生成AI特にChatGPTのような大規模言語モデル、LLM)というのは「文脈に最もふさわしい次の単語予測する」」という統計タスクを行っている、これがLLMだ

わかりやすい例で言えば「私はコーヒーを」という文を書いたらAIはこう判断して動いている

「飲みます」→90%の確率 「買いました」→7% 「投げました」→0.5%

というような統計予測をして、「飲みます」を選ぶ

この過程には、意味理解感情意図文脈の内的把握は一切関わっていない、これが致命的な欠陥の1つ

プログラミング自動でまるで仮面ライダー01の01ドライバーの様にベルトの作成までやってくれているように喧伝してる奴らが多い

が、これを本気で信じ込んでプログラミング言語を書かせた奴がいたら、ほぼ間違いなくクビになる

わかりやすく上で例えた通り、LLMは、インターネット上に存在する膨大なコード断片・技術記事GitHubリポジトリ・StackOverflow投稿などを学習している。

そのため【よく使われる文法構造】や【特定言語における関数の使い方】や【ライブラリ典型的な使い方】などを【意味を全く理解できず模倣している】だけって事

意味理解や構文チェックをしているわけではない、だからこんな問題が頻発する。

【動かないコードをアホほど入れる(変数が未定義、型が合っていない、ライブラリ存在しない関数を呼んでいるとかい小学生プログラミングスクールでもありえないミス

【. 「それっぽいけど間違っている」コードを大量に入れ込む(SQLインジェクションXSSなどセキュリティ危険実装を入れまくる、パフォーマンスが極端に悪い実装バグを含んでいるロジック特にif文の条件分岐ではほぼ100%発生する)】

もっと致命的な問題はこれ↓

【実行環境依存した誤り(存在しないAPIライブラリを使う、ほぼ9割の確率で…あと特定PythonバージョンNode.js環境しか動かないコードを汎用的に提示、つまり動きようがない)

専門的な意見となったのでわかりづらいので、もっとわかりやすく言うと「小学校プログラミングスクール入りたて1週間の子供が書いためっちゃくちゃなプログラミングにすらなってないコードを、製品利用するからレビューして出してこい」と言われてるに等しい、つまり最初から自分で書いた方が早い2度手間になる

これが、プログラミング革命だ!とか喚いてる奴らが隠すAI実態である

ちなみに↓がAIに書かせたコードの1例、

import jwt

token = jwt.encode({'user_id': 123}, 'secret', algorithm='HS256')

一見正しく見えるだろうから解説すると、実際には 【jwt という名前ライブラリ】が複数存在し(PyJWT,python-jwtとか)importの仕方によってエラーが出たり挙動が変わったりする。普通な絶対間違えない様な挙動AI構造上全く判断できない、これは上で上げた根本的な問題なので恐らく絶対解決できない。

② AI最大の欠点ハルシネーション これは永遠に解決ができないメビウスの輪

ハルシネーションがどういうものであるのか、AI批判でバズった記事などで言及されている通り、デマデタラメを出力してしまう、あれは本当にわかやすAIの致命的欠陥を検証してるので、あえて説明はここではしない。

しかもその増田の元記事では「文章データテキストまで読み込ませれば間違いがなくなるのでは?」といってたが、これも絶対になくならない、というより、もっとひどくなる。

批判をしている増田やXでの意見は単なる個人攻撃誹謗中傷のみで、技術的に改善可能プロセスさえ示せていない、例えば現在研究者の間では以下の様な解決案は研究されているが、どれも全く問題外とされている

検証システムとのハイブリッド…いわゆる「RAG」】

これは、AIが「知っている風」に語る代わりに、外部の信頼できるデータベース検索エンジンから情報を引っ張ってくる方式、バズった元記事増田がやっていた「自分図書館言って本の内容読んで誤りであることを確認する」これを検索エンジン使ってAIさらやらせる、という機能

また【メタモデル】すなわち、AI自分の出力を裏でさらに別のAIが別プロセスでチェックして間違いをただす、という方式研究されてる。

これは致命的な欠点が2つある、まず「検索で引っ張ってくる知識のものが間違いだった場合さらに間違いの結果を出し続ける」ということ。

記事増田MP5というマシンガン有効射程について突っ込んでいたと思うが、これが典型的RAGメタモデルの致命的欠点元増田は「実際に自分の手で銃を取り扱ったりしたことがある確かな経験で言ってる」が、書籍などの工業スペック仕様書定義しかネット上では流布してない、だからそもそも答えというものAIがたどり着けない。

2つ目は「文脈倫理常識道徳根本的に読めないので、解決策が乱暴すぎるもの」になる。

上で上げた鉄砲以外では、例えば医学などでこれをやってしまうと取り返しのつかないことになる。例えば医者の投薬治療治療ガイドラインに従ってるというが、優れた医者論文を読み込んで原理不明だがエビデンスはあるので、漢方薬を出したりするというお医者さんがよくいるだろう。あれは実際に患者を診て、西洋医学的には全く問題ないが、心理的な面も絡んで心身症になっているから、論文などで勉強して「暗黙知経験知」として処方してるし、その量も患者を診た医者経験で精度を上げている。

そして医療分野では、「冷え性の軽いむくみ」に対して「サムスカ(トルバプタン)」という劇薬指定危険利尿薬をAI提示した事例すらある。これを「笑い話」で済ませることはできない。

例えるなら判断が「脳外科医竹田君」並になる、投薬治療で3か月で治る程度の病気を、病根から外科手術で切除しましょう、なんて提案になる。最新のAIなのに80年前みたいな医学知識判断になってしまうのだ(胃潰瘍ってだけで胃袋は全摘、ついでに脾臓盲腸もいらねーからとっとこ、みたいな手術が昭和の昔、本当にガイドライン治療だった、「K2」などで言及されている)

学習できるベースがどうしても偏る以上、情報統合限界がある、さらに間違いが間違いをよび、さらに変な間違いを起こしたりありえない架空のことをいったりする、これがハルシネーションというメビウスの輪である

Neuro-symbolicAIという次世代さら文脈も読み取れるアーキテクチャAI研究しているが、全く実用化されていない、核融合量子コンピューターみたいな雲をつかむ話なので、AIがこの問題解決することは恐らく今後数百年はありえない、という結論が出ている。

③ 文化的偏在(Cultural Bias)

元増田記事批判もあったが、恐らくAIで一番致命的な問題はこれ

基本的AI英語ソース、つまりリングワ・フランカで圧倒的にテキスト量の多い(約95%)英語日本語含めそれ以外の全世界言語が5パーセントという偏った学習になっている

そのため、倫理道徳常識規範などがすべて西洋基準になってしまう、という問題がある。(元増田はこれを「脱獄基準倫理は誰が決めるのか?」と根本的な問題に気が付いていて批判していたようだ)

ちなみに、バズってた例の記事に「AIに書かせたんだろ」という批判も大量にあるしよくみかけるが、この場合においてのみ言うなら、これは③の問題からまずありえないということがわかる、以下が根拠

【滅茶苦茶一部の人間にしかさらない罵詈雑言

元増田は「俺達の麻生かいって秋葉原で踊ってた…」とか「レムちゃんエミリアたん、ヘスティアちゃんウマ娘たん、刀剣乱舞くん、ライカン様…」といった批判を繰り返し書いていた

これに激怒できる人間は、2005~2010年オタク界隈や秋葉原にすでにかかわっていて、実際に渦中にいたか同じ属性人間しか罵倒されていると文脈的に理解できないのである。つまり、大量の英語文化圏情報を食ってるAIではなんでそれが罵声侮蔑なのか理解できないので、書きようがない表現の数々、であるということである

AIからすれば「ライカン様?ウマ娘?なんじゃそりゃ」なのであるもっと言えば、その直後にコンテクストとして「アホ、ボケ弱者男性豚丼性器自慰で虚しく…」といった言葉があるから、なんならAIウマ娘ライカンキャラクターでなく侮蔑単語として理解してしまう、これは実際、元増田記事の一文をAIに食わせて質問したらガチでそうなるので、ぜひお手元で試してもらいたい。

【それ以外にも世界的にこんな問題がある】

プログラマーイメージを描いて」と依頼すると、男性画像ばかりが出るされる

看護師」→女性、「エンジニア」→男性という職業的性差自動的に反映される

アフリカ文化」→貧困紛争サバンナなど、植民地主義視点が強く反映される(実際は南アなどはすげえ都会である)

これに前述のハルシネーション問題として現れれば、人間と同じような差別偏見を「ガチ真実」として学習してしまう、人間場合、8割くらいは本当はおかしいこととメタ批判心理的にできるとされているが、AIにはその構造根本的に存在しない。

AI信者陰謀論者になるという本末転倒

元増田記事コメント欄やXなどで元増田AI批判批判しつつ、「金持ち上級白人専用のハイエンドAIがあるに違いないんだ」といっている意見が少なくない数がある。

冷静に考えれば、そんなめんどうくせえもん誰が作るんだ、と普通に考えればわかるのだが、この③の問題、すなわち95%の学習データ英語ソースなので、結果的西洋文明ベース文化圏人間向けにカスタマイズされているので、アジア圏やその他文化圏では利用に不利でそう感じてしまう素地ができている、という錯覚に由来している

例えば、パレスチナ問題などがそうだ、ガザ地区でほぼ国際条約や人道違反の残虐行為を国が行っているわけで、他文化圏や歴史的文脈から見ればどっちかって言えばパレスチナ人こそ被害者なのだが、イスラエルから見ればそれは正義であり正当な攻撃なわけで、後者の方がAIは正しいと判断した結論を下す様になる、といった問題である

これも上記問題に由来した結果である

あの記事元増田は「テロ組織ヤバイマニュアルまで学習してpdfで元データ提示してきた」と言っていた。実際AIに調べさせて持ってこさせてみると、出所アメリカ法務執行機関研究用にネットで公開したものであった。

日本人日本警察対応レベルで「ヤバイものでも、海外軍隊みたいな装備の警察で見れば大したことがないから、公開させてもいい=倫理違反には当たらない、という文化規範意識の違いを、あの元増田自身証明してしまっている、あの記事は、AIの治しようがない根本的な技術的欠陥をほとんど言及しているといっていい

AIは確かに便利だが、既存技術しかないし、既存技術の延長線上にはなれないし、技術ブレイクスルーにもならない

元増田が口汚く罵っている内容の様に、「AIは0を1にできないか格差が広がるだけ」という根本的な哲学を投げつけている

それを受けて批判してる意見の中には「(自分が1を持ってる側と何故か根拠もなく信じ込んでて)100にできるから(なら)便利」とか「そのAIから勉強したりしてる俺たちは先行者利益強者になれる」と信じて疑わない意見が多かった

問題の通り、そもそもキリスト教圏かつ非英語圏の国家で生まれて育った民族、というだけで、我々は等しく「0」側の人間であり、結局競争になると勝てない、ということに全く気が付いていないのである。ここにAI信者の宿痾といえる病理がある

かつて日本人黒船を見て5年そこらで蒸気機関模倣した、火縄銃を一丁買えば10年でオスマン帝国の次に鉄砲を使うようになった、それは当時の日本人の基礎工学技術が導入可能なほど優れており、かつそれに対して現代では考えられないほぼバクチといっていい投資を行った結果であって、その結果を見て自分たちはAIを使いこなせて強くなれるなんていうのは、物凄い妄想である。つまりAIは少なくとも「非英語圏」の人間にとっては、ブレイクスルー絶対に起こりえない、ということである

Permalink |記事への反応(17) | 08:43

このエントリーをはてなブックマークに追加ツイートシェア

2024-07-30

anond:20240730120037

Encode.pmには世話になりました、が答えのような気がする

Permalink |記事への反応(0) | 13:51

このエントリーをはてなブックマークに追加ツイートシェア

2023-12-17

プログラミング初心者です。以下のコードの誤りはなんですか

僕はプログラミング歴2週間の初心者です。キーと値を入力できるデータベースを作っています

以下のコードを実行してデータを追加し続けると、一定サイズを超えるとエラーが出てしまうみたいです。

理想は、データが追加された後にサイズが足りなくなったら動的に自動拡大されることです。

もし詳しい人がいたらご教示お願い致します。

import sysimportosimportmmapimport hashlibdef h(x):    return int(hashlib.sha512(x.encode()).hexdigest(), 16)def create_db(filename):    withopen(filename, 'wb')as f:        f.write(b'\0' * 1024 * 1024)  # 1MBの空ファイル作成defset_key(filename,key,value):    withopen(filename, 'r+b')as f:mm =mmap.mmap(f.fileno(), 0)pos = h(key) %mm.size()        whilemm[pos:pos+1] != b'\0':pos = (pos + 1) %mm.size()            ifpos == h(key) %mm.size():f.seek(0,os.SEEK_END)                f.write(b'\0' *mm.size())  #ファイルサイズを2倍にするmm =mmap.mmap(f.fileno(), f.tell())  #ファイルサイズを反映させるpos = h(key) %mm.size()  #ハッシュ値を再計算する        data =key + '\0' +value + '\0'        data = data.encode()mm[pos:pos+len(data)] = datamm.close()  #mmapオブジェクトを閉じるdefget_key(filename,key):    withopen(filename, 'r+b')as f:mm =mmap.mmap(f.fileno(), 0)pos = h(key) %mm.size()        whilemm[pos:pos+1] != b'\0':            end =mm.find(b'\0',pos,mm.size())  # 第2引数と第3引数指定する            if end == -1:                end =mm.size()            ifmm[pos:end].decode() ==key:pos = end + 1                end =mm.find(b'\0',pos,mm.size())  # 第2引数と第3引数指定する                if end == -1:                    end =mm.size()value =mm[pos:end].decode()mm.close()  #mmapオブジェクトを閉じる                returnvaluepos = (pos + 1) %mm.size()            ifpos == h(key) %mm.size():                breakmm.close()  #mmapオブジェクトを閉じる        return Nonedefmain():    cmd = sys.argv[1]    if cmd == 'create':        create_db(sys.argv[2])    elif cmd == 'set':set_key(sys.argv[2], sys.argv[3], sys.argv[4])    elif cmd == 'get':print(get_key(sys.argv[2], sys.argv[3]))if __name__ == '__main__':main()

Permalink |記事への反応(0) | 12:13

このエントリーをはてなブックマークに追加ツイートシェア

2020-03-08

anond:20200308170826

Encode.pm

Permalink |記事への反応(1) | 17:31

このエントリーをはてなブックマークに追加ツイートシェア

2018-04-29

昔、dankogaiという人がいた

もう、老人会くらいの人か覚えてないと思うけど、昔dankogaiという人がいたんですよ。

perlハッカーでね、Encode.pm作ったりして貢献されていたんですよ。

すごく本を読むのが早くて、頭がいいもんで、書評ブログを書いていたんですよ。結果、最初の有名ブロガー(アルファブロガー)になったんですよ。

当然perlハッカーからperlソースを書かれてたんですけど、読みづらくてねぇ。perl = 読みづらいを加速させてくれたんじゃないかと思いますよ。

(ex.http://blog.livedoor.jp/dankogai/archives/50502585.html)

人気ブログだったので本とかも出されてね、2000年代インターネット重要人物だったんですよ。

毎日のようにホットエントリしてたくらいだから

それから、4、5年くらい前かなぁ?Twitterの波がグワーって来た頃から更新が減りましてTwitterにすっかり移っちゃったんですな。

さっきみたら去年の7月更新最後だったんですな。内容を見たらVALUリードエンジニアになったとの記事ですね。

サイト行って確認するまでなんのサービスだったかも忘れていました。

まぁ、そんなdankogaiさんなんですけどね、最近はおなじアルファブロガー池田ノビー先生同様、信者商売をされているようでしてニコニコ動画自分チャンネルをやっておられるようです。

さて、そんなdanさんなんですが、結構政権批判ツイートいいねしておりまして、別に個人思想なんて自由だとは思うのですが、「dan kogaiさんはこのツイートいいねしました」で入ってくるもんで、へぇそうなんだと思い、増田らせていただきました。

もう2018年なんですなぁ。

Permalink |記事への反応(3) | 15:29

このエントリーをはてなブックマークに追加ツイートシェア

2018-04-08

読んだページを全部自動ブクマする

数日前に puppeteer で自動PDF にする試みを書いたブログホッテントリに入ってるのを見た

それに影響されて自動ブクマするもの作ってみた

bg.js

const username = ""const api_key = ""chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {if(message.bookmark){bookmark(message.bookmark)}})async functionbookmark(url){fetch("http://b.hatena.ne.jp/atom/post", {method: "POST",referrer: "no-referrer",headers: {Accept: "application/x.atom+xml,application/xml,text/xml, */*","X-WSSE": await createCredential(),},body: `<entryxmlns="http://purl.org/atom/ns#"><link rel="related" type="text/html"href="${url}" /></entry>`.replace(/\t/g, ""),}).then(e => {console.log(e)})}async function createCredential(){const non = Math.random().toString(36).substr(2)const now = newDate().toISOString()const buf = newTextEncoder().encode(non + now + api_key)const u8a = new Uint8Array(await crypto.subtle.digest("SHA-1", buf))conststr = Array.from(u8a, e =>String.fromCharCode(e)).join("")const b64 = btoa(str)return `UsernameToken Username="${username}", PasswordDigest="${b64}", Nonce="${btoa(non)}", Created="${now}"`}

username と api_key を埋めてバックグラウンドで動かす

page.js

chrome.runtime.sendMessage({bookmark: location.href})

ページ内で動かすコード

URLバックグラウンドに投げる

今は全部投げるコードになってるが、必要に応じていらないドメインを弾いたりする

Permalink |記事への反応(1) | 04:06

このエントリーをはてなブックマークに追加ツイートシェア

 
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp