タグ

ブックマーク / nowokay.hatenablog.com (74)

  • x=x+1がわからないのは逐次実行がわかっていないからで、記号を変えても解決にならない - きしだのHatena

    x = x + 1がわからないという話が流行ってました。 で、「=ではなく:=を使えば」とか「イミュータブルにすれば」とかいう話が出たりしてますが、問題をあとまわしにしてるように見えます。 結局のところ、逐次実行がわかっていないことが表面化している場合がほとんどではないかと。 https://speakerdeck.com/kishida/lets-code-a-process?slide=8 プログラム以外の文章は、基的にひとつの状態を示していて状態が遷移するということがありません。 推理小説なども、最終的な状態が徐々に開示されるだけともいえます。途中から読むと犯人が変わるということはないですね。もちろんそのように途中から読むと犯人が変わるような叙述トリックは可能ですが、通常はそうではないからトリックになるわけで。 つまり、x = x + 1という式は、x + 1という演算を行ってから

    x=x+1がわからないのは逐次実行がわかっていないからで、記号を変えても解決にならない - きしだのHatena
    yojik
    yojik 2024/02/07
    変数定義・代入どころか、変数の利用すら1回しかみとめない線形論理なら……!
  • コミュニティノートがTwitterを壊している - きしだのHatena

    コミュニティノート、案の定暴走している。 どんな改悪、利用制限よりも大きくTwitter*1を壊してるんじゃなかろうか。 ※ 2024/3/12追記 コミュニティノートの、「追加の背景情報が必要ない理由を説明するノート」がうまくまわって、初期に見られた正義の暴走のようなノートは表示されないようになってきています。 コミュニティノートは、多数派に有利な仕組みです。 「コミュニティノートでは、さまざまな視点を持つユーザーにとって役に立つノートが特定されます」 となっていますが、多数派であればさまざまな視点を持つユーザーが確保しやすく、逆に少数派は視点が収束する傾向があるので不利になります。 そのため、なんらかの不満をもっているけどその不満を表明して言葉にするとだいたい間違っているという層には非常に居づらくなっています。 「間違ったツイートをしなければいい」のような発言をみかけるけど、裏を返せば

    コミュニティノートがTwitterを壊している - きしだのHatena
    yojik
    yojik 2023/08/04
    狩野英孝の例とか政治家への反対意見とか各種ツッコミ系はあきらかにコミュニティノートの誤用だけど、デマツイート防止効果は結構あるからなー。(不要なものは参考にならない、を押して育てよう)
  • ChatGPTなどLLMを使わずに自然言語でツールを操作する - きしだのHatena

    OpenAIのFunction Callingが出たときに、GPTを使って自然言語でツールを操作するというのをやったんだけど、この程度にGPT使う必要なくない?という感じもしたので、GPTなどLLM使わずに実装してみました。 LLM使わずに実現できることはLLM使わないほうがよさげ。 前回のブログ、これです。 こんな感じで動くようになっています。 ツールのテキスト操作にGPTなんかいらんかったんや! サクサク動くわ。 pic.twitter.com/JAD3grWJGx— きしだൠ(K1S) (@kis) 2023年7月1日 GPT4使ったときはこんな感じ OpenAIのFunction Callingでツール操作を試すやつ、GPT-4だとかなり文脈を理解してくれるし、位置関係も結構ただしく扱ってくれる。しかし遅い。 pic.twitter.com/nkijZpcnP6— きしだൠ(K1S

    ChatGPTなどLLMを使わずに自然言語でツールを操作する - きしだのHatena
    yojik
    yojik 2023/07/02
  • OpenAIのFunction Callingを使って自然言語でツールの操作をする - きしだのHatena

    先週、OpenAIから、APIでの返答に関数呼び出しのパラメータを返してくれるFunction Callingが発表されました。 試してみると結構たのしかったのでまとめてみます。 解説動画はこちら youtu.be とりあえず、こんな感じ。 OpenAIのFunction Callingでツール操作を試すやつ、GPT-4だとかなり文脈を理解してくれるし、位置関係も結構ただしく扱ってくれる。しかし遅い。 pic.twitter.com/nkijZpcnP6— きしだൠ(K1S) (@kis) 2023年6月19日 用意したのは3つの関数。 set_position(id, left, top) set_size(id, width, height) set_color(id, color) で、その割に、「中央に」だとか「隣に」だとか、コンテキストを踏まえて座標などを計算して関数を呼び出して

    OpenAIのFunction Callingを使って自然言語でツールの操作をする - きしだのHatena
    yojik
    yojik 2023/06/19
  • オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena

    「オブジェクト指向するとプログラムが読めなくなるから禁止」のような話は昔からあって、新しい技術についてこれない人を揶揄するようなニュアンスで使われていましたが、実際にはこれはオブジェクト指向迷路にうんざりした現場での率直な意見だと思います。 オブジェクト指向は、まじめにやるほどプログラムを読みにくくするという性質をもっています。 ※ 使い方次第というコメントついてますが、だからこそちゃんと性質をしっておく必要があると思います。 オブジェクト指向の代表的な指針を3つあげると次のようなものがあります。 オブジェクト同士の連携としてプログラムを組む 単一責務の原則 インタフェースと実装の分離 まず、オブジェクト同士の連携でプログラムを組むと、コードが飛びまくって追いにくくなります。そして単一責務の原則により、小さいクラスが大量に生成されて、追いにくさがさらにあがっていきます。 ダイクストラ先生が

    オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena
    yojik
    yojik 2023/06/02
    データ指向プログラミングも全然出自が違う概念が混じって多少困難はある。ゲームプログラミング出自のもの(ECSとか)、Clojure界隈(データ指向プログラミング)とか / 個人的には過剰設計しなけれゃ別に難しく無い派だけど
  • ChatGPTの登場でWeb3への興味が急速にしぼんでいる - きしだのHatena

    MidjourneyやStable Diffusionのような画像生成AIが出たりChatGPTが出たりで、Web3で騒いでいたところがAIに移行した感じあります。 Google Trendsだと、生成AIは完全にWeb3を抜いています。 メタバースも抜いたところ。 ChatGPTは圧倒的です 実際にニュースどうなってるか見てみると、Web3に関するニュースは4月以降は出ていないです。 5月に一件あるのは、AI規制の話をWeb3の人が話したというもので、Web3の記事ではないです。5月はあと3日残ってるけど、そんなになさそうな気が。 3月には「Web3格採用」のような記事が多いことを考えると、突然死のようにも見えます。 朝日新聞、INTERNET Watch、ITmediaエンタープライズ、日経xTech IT, エレキでのWeb3事件数は次のような感じ。 去年6月に盛り上がって漸減傾

    ChatGPTの登場でWeb3への興味が急速にしぼんでいる - きしだのHatena
    yojik
    yojik 2023/05/29
    Web3は投資話以外の盛り上がりが一切なかったな
  • GPTの仕組みをちゃんと勉強したい本 - きしだのHatena

    やっぱGPTを仕組みから勉強したい、というをいくつか見つけたのでまとめておきます。 まず理論的な概要。 機械学習からニューラルネットワーク、CNNでの画像処理、トランスフォーマーでの自然言語処理、音声認識・合成、そしてそれらを組み合わせたマルチモーダルと章が進むので、理論的な概観を得るのにいいと思います。 最初は数式が多いのだけど、Σをfor文だと思いつつ、定義が説明文中に埋まってるPerlよりたちが悪い記号主体言語だと思えば読めるけどめんどくさいので飛ばしても問題ないと思います。 深層学習からマルチモーダル情報処理へ (AI/データサイエンスライブラリ“基礎から応用へ” 3) 作者:中山 英樹,二反田 篤史,田村 晃裕,井上 中順,牛久 祥孝サイエンス社Amazon で、もういきなり作る。 トークナイザーから全部つくっていきます。TensorFlowでBERTをつくってGPT2をつくる

    GPTの仕組みをちゃんと勉強したい本 - きしだのHatena
    yojik
    yojik 2023/04/25
  • シンギュラリティは来ない - きしだのHatena

    ChatGPTが思いがけずいろいろなことを人間より賢くやっているのを見てシンギュラリティという言葉を使う人が増えたように思いますが、逆に、シンギュラリティは来ないのではという思いを強くしています。 まず、この文章でのシンギュラリティがなにかという話ですが、レイ・カーツワイルが「シンギュラリティは近い」の1章の終わりで「さあ、これが特異点だ」といっている特異点、そのシンギュラリティです。 シンギュラリティは近い―人類が生命を超越するとき 作者:レイ・カーツワイルNHK出版Amazon この特異点は単にAIが人間より賢くなるというだけではありません。人間より賢くなるだけだと、便利な道具が増えるだけなので、大騒ぎするほどの変化は起きません。人の仕事を奪うといっても、蒸気機関ほどでもないですね。印刷機などと並んで、人の生活を変える転換点にすぎず、ただひとつの点をあらわすシンギュラリティには なりま

    シンギュラリティは来ない - きしだのHatena
    yojik
    yojik 2023/04/19
    言語モデルが意識も知性も持たずシンギュラリティにほど遠いのは確かで、どちらかというと会話や汎用タスクが意識や知性無しでも成り立つのが発見だったと思う。(飛行機が鳥の真似をする必要ないのと似てる)
  • ChatGPTでわかる人間の思考、「意識」の実装方法 - きしだのHatena

    ChatGPTは完全ではないとはいえ人の脳みそのふるまいに似た動きをしているようにみえます。 そこで、覚えてるはずのことが思い出せなかったり、話しだすと思いがけない言葉がどんどんでてきたり、夢を思い出すことができなかったり、考えるときに言葉が必要だったりするような、人間の思考のふるまいをChatGPTの仕組みや動きから考えてみます。そしてついでに、「意識」や「クオリア」をChatGPTを使って実装するアイデアをまとめてみます。つまり汎用AI、強いAIです。 思考には2段階ある 話すことで続きの言葉が出てくる 知識を引き出すにはキッカケが必要 夢を思い出せないのはキッカケがないから 一度の経験でも記憶に影響を与えている 考えるために言葉が必要 ChatGPTの延長では人と同じように考えることは難しい 意識ってなんだろう?どう実装しよう? ※ 断定的に書いていても、これは きしだがそう考えてい

    ChatGPTでわかる人間の思考、「意識」の実装方法 - きしだのHatena
    yojik
    yojik 2023/01/27
    量子脳理論はともかく、現在のAIはニューラルネットワークを使っても人間のニューロンとシナプスとは結線や動作の仕方がかけ離れていて別物。人間のような意識にはたどり着かないと思うしそれで良いと思う。
  • ChatGPTがGoogle検索を使いものにならなくする未来 - きしだのHatena

    いろいろ仕組み的にChatGPTというのはGoogle検索の代替以上の働きをするなぁと思っていたのだけど、それとは別にChatGPTによって検索が使い物にならなく未来が考えられるなぁと思った。 ChatGPTが検索よりもいいのは、そのものズバリな文書がなくても、その周辺から学んだ単語の関係をもとに、答えを構築してくれることです。 たとえば検索の場合は、日語で書かれた文書が用意されていなければ、たとえ英語中国語の文書があったとしても日語での検索には引っかかりません。 けど、ChatGPTの場合は、英語中国語の文書から学んだ単語の関係や、ほかの文書から学んだ英語と日語の関係、日語での単語の関係などから、日語の回答を生成してくれます。 たとえばGluonという会社について日語で説明してる記事はおそらくないと思うのですが、ちゃんと日語で説明してくれます。社はベルギーですが。。。

    ChatGPTがGoogle検索を使いものにならなくする未来 - きしだのHatena
    yojik
    yojik 2023/01/25
    “やっぱ、ホームページをカテゴリごとに登録できるようサイトを作って審査して載せることで、ゴミのような自動生成ブログを回避してインターネットの入り口すると儲かるのかもしれない”
  • ChatGPTのヤバさは、論理処理が必要と思ったことが確率処理でできるとわかったこと - きしだのHatena

    ChatGPTのヤバいところは、論理処理が必要だと思っていたことが、じつは多数のデータを学習させた確率処理で解決可能だと示したことだと思います。 たとえば、このように正規表現にマッチする文字列を生成するには、特別に専用の論理処理が必要だと思っていました。 前のブログのときには特殊処理が必要だと考えてましたね。 ウソはウソと見抜ける人じゃないとChatGPTを使うのは難しい - きしだのHatena けど、123_45678world.mdはマッチするのにマッチしないと言っているので、そのような誤りが入ることを考えると、どうも確率処理だけでやっているようです。 考えてみると、3層以上のニューラルネットであれば論理素子を再現できるので、ディープラーニングで論理処理を模倣することは可能なんですよね。 バックプロパゲーションでニューラルネットの学習 - きしだのHatena そもそも論理は、多数の

    ChatGPTのヤバさは、論理処理が必要と思ったことが確率処理でできるとわかったこと - きしだのHatena
    yojik
    yojik 2023/01/10
    素人考えだけど、自然言語を制約論理に変換するところまで機械学習でやって、制約論理を解くのは普通のプログラムでやって、そこから意味のある回答にするのは機械学習で、みたいに適材適所はできないのかしら。。
  • ウソはウソと見抜ける人じゃないとChatGPTを使うのは難しい - きしだのHatena

    ChatGPT、すごいですね。 Javaは素晴らしいという歌も作ってくれます。すばらしい。 Java素晴らしいという歌を作ってもらいました。https://t.co/Dx94koO2ti pic.twitter.com/E4tWK5FbeM— きしだൠ(K1S) (@kis) 2022年12月1日 プログラミング関係ではいろいろ助けになりますね。 基的なコードの生成や、その解説までやってくれます。 SimulaとかAIDAとか古い言語のサンプルコード作るのが便利でした。 ぐぐってもなかなかコード例が出てこない言語のサンプルコードを見るのに便利 pic.twitter.com/JbDACwO9zU— きしだൠ(K1S) (@kis) 2022年12月2日 正規表現はおそらく専用処理で解析してる気がします。 ただ、「123_45678world.md」はマッチしますね。 こんな感じで、Cha

    ウソはウソと見抜ける人じゃないとChatGPTを使うのは難しい - きしだのHatena
    yojik
    yojik 2022/12/06
    わざわざ正規表現だけ取り出してパースするみたいなことはしないとは思うけど、じゃなんでマッチできてしまうのかは本当に謎。(正規表現→結果みたいなサンプルを学習してるうちにエンジンがモデル内にできちゃった?)
  • プログラミングの最初の壁は逐次実行 #projava - きしだのHatena

    プログラミングの入門書で、変数だとかfor文なんかは丁寧に例えなどを使って説明されていることが多いのですけど、逐次実行はほとんど説明されていることがありません。 入門書を書く人にとって、逐次実行は自明であって説明が必要なものではないという認識があると思います。 プログラムに慣れた人にとって、プログラムが上から順に実行されるというのは当たり前で学習が必要なことには思えないと思います。 「見たままやん」 となるのではないかと。 けど、実際には上から順に動くというのがよくわからないようです。 「あ、プログラムって上から順番に実行されるんですね、わかってなかった」 と言われたことがあります。そういうふうに言ってくれる人がいるということは、言わないけどわかってなかったという人が何倍もいるはずです。 通常の文章というのは、基的には一定の状態を仮定して書かれていて、前部と後部で表す状態が違うということ

    プログラミングの最初の壁は逐次実行 #projava - きしだのHatena
    yojik
    yojik 2022/03/18
  • JavaScriptはJavaのScript版(であろうと努力はした) - きしだのHatena

    JavaJavaScriptを混同する人に、名前がかぶってるだけの別モノという指摘がされることもあります。間違いではない。 技術的にも実務的にもコミュニティ的にもそのとおりではあります。 ただ、そう言い続けられた結果、ほんとに単にLiveScriptの名前にJavaをもってきてJavaScriptにしただけという誤解があるようです。 JavaScriptJavaのScript版、少なくともそうであろうという努力はされていました。 JavaScriptリリース時のCNETの記事には「JavaScript is based on Java」という記述があります。 Netscape and Sun Unveil JavaScript - CNET 実際には、LiveScriptにJavaから文法やライブラリなどを持ち込んでリリースにこぎつけたというのがあります。 JavaScriptのDat

    JavaScriptはJavaのScript版(であろうと努力はした) - きしだのHatena
    yojik
    yojik 2022/02/07
    JavaScriptのDateの元ネタのJavaのDateの元ネタはTaligent(AppleとIBMが共同で作ってポシャったオブジェクト指向OS)だったりするから、本当に言語に歴史ありだなーと思う。
  • プログラムを教えて理解されない場合は教える技術の不足 - きしだのHatena

    プログラムが組めるとプログラムが教えれると思いがちだけど、教えることは別の技術です。 教えてもなかなか理解してくれないとき、プログラミングに向いてないとさえ言う人もいますが、教える側の教える技術の不足です。 教えることも技術のひとつだと気付けば、教えてもなかなか理解してくれないときに技術の不足であるということにも思い至れると思います。技術の不足であると気付けば、改善もしていけます。 そして教える技術というのは、インストラクショナルデザインという名前で系統だてて整理されています。 たとえばそのまま「インストラクショナルデザイン」など、タイトルにインストラクショナルデザインが含まれた書籍もたくさん出ています。 インストラクショナルデザイン―教師のためのルールブック 作者:島宗 理発売日: 2004/11/01メディア: 単行 他にも、タイトルにはインストラクショナルデザインとついてないけどイ

    プログラムを教えて理解されない場合は教える技術の不足 - きしだのHatena
    yojik
    yojik 2021/01/07
  • Java最新フレームワーク、Helidon、Micronaut、Quarkusをnative-imageまでまとめて試す - きしだのHatena

    最近でてきたフレームワーク、Helidon、Micronaut、Quarkusのクイックスタート、Native-Imageをまとめて試しましょう。 準備 SDKMANインストール 今回はSDKMANで環境を作っていきます。 https://sdkman.io/ コマンドラインで次のコマンドを実行します。Windowsの場合はCygwinかWSLで。 $ curl -s "https://get.sdkman.io" | bash ターミナルを開きなおすか次のコマンドを実行するとSDKMANが有効になります。 $ source "$HOME/.sdkman/bin/sdkman-init.sh" JDKインストール 今回はnative-imageまで使うのでGraalVMを使っておきましょう。 $ sdk use java 19.1.0-grl native-imageの準備も行います。Cy

    Java最新フレームワーク、Helidon、Micronaut、Quarkusをnative-imageまでまとめて試す - きしだのHatena
    yojik
    yojik 2019/07/16
  • GraalVMはどれだけ遅いか - きしだのHatena

    GraalVM流行ってますね。 そして、多くの人はGraalをAOTとして使うnative-imageのことだけをGraalVMと言ってたりします。 ご安心を。このエントリではGraalをJITとして使うHotSpotモードとGraalをAOTとして使うnative-imageの両方が遅いという話です。 GraalVMは速い、と言われてますが、残念ながらHotSpotモードでC2より速い結果を手元では出せていません。 公式ブログでは1.7倍から5倍速くなると書いてますけど、手元では再現できてません。 Under the hood of GraalVM JIT optimizations - graalvm - Medium native-imageは速い、というのはよくありますが、これはネイティブ化によりJVMの起動時間や最適化の時間、最適化されずに動く時間が省略されるので起動が速い、とい

    GraalVMはどれだけ遅いか - きしだのHatena
    yojik
    yojik 2019/06/27
  • マイクロサービスフレームワークArmeriaを始める - きしだのHatena

    Armeriaのチュートリアルを書いてみる https://line.github.io/armeria/index.html RESTサーバーとして使う まずは、プロジェクトを用意します。 dependencyにcom.linecorp.armeria:armeria:0.62.0を追加します。 mavenの場合、次のようなpom.xmlを用意します。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.or

    マイクロサービスフレームワークArmeriaを始める - きしだのHatena
    yojik
    yojik 2018/04/10
    “Armeria”
  • 10年間のプログラミングの変化といえばクラウド、型推論、リアクティブ - きしだのHatena

    この10年間のプログラミングの変化、というのが流れてきたのだけど、個人的にはクラウド、型推論付き静的型、リアクティブかなぁという風に思ってます。 クラウド(とスマホ) 2008年にGoogle App Engineが出たり、最初のHadoopサミットが行われたり、ちょうど10年前に始まったとも言えるクラウドは、すでに流行ではなく常識になっています。 いまや、クラウドを考えずにシステムを組むということはないんじゃないでしょうか。 スマホもこの10年で広まり、端末にUI、データはクラウドということも当たり前になっています。 40%の視聴率をもった紅白で視聴者が同時投票するようなことも、AWSを使って危なげなく行えるようになっていますが、10年前にこのようなサービスをたった4時間だけ行うということはなかなか考えにくいもので、実現できるのも限られたベンダーだけだったと思います。けれどもいまではそれ

    10年間のプログラミングの変化といえばクラウド、型推論、リアクティブ - きしだのHatena
    yojik
    yojik 2018/01/08
  • 新しいリリースモデルはJavaを使う人 全員要注目だった - きしだのHatena

    9月の頭くらいに、Javaのリリースモデルが6ヶ月ごとの短期リリースになるということが発表されてました。 で、「へぇ〜」みたいな感じで見てたのですけど、JavaOneでの話を聞くと、これ結構大変なのかも、ということになってそうなので、ちょっとまとめてみます。 追記:2018年05月の状況をQiitaでまとめています。 [Javaのサポートについてのまとめ2018 - Qiita](https://qiita.com/nowokay/items/edb5c5df4dbfc4a99ffb) Javaの新しいリリースモデル 公式情報はこちらにまとめられています。(10/4にアップデートされてます) http://www.oracle.com/technetwork/jp/java/eol-135779-ja.html ざっくり言えば、6ヶ月ごとに機能リリースを行い、3ヶ月ごとにメンテナンス/セキ

    新しいリリースモデルはJavaを使う人 全員要注目だった - きしだのHatena
    yojik
    yojik 2017/10/10