投稿

浅海ゼミ 第31回の講演ビデオと講演資料公開しました

【 浅海ゼミ 第31回の講演ビデオと講演資料公開しました 】 浅海ゼミ「クラウドアプリケーションのためのオブジェクト指向分析設計講座」第31回の講演ビデオと、講演資料を公開しました。 https://www.marulabo.net/docs/asami31/ 【 2024/1/19 第31回 「実装(2)」】 講座の全体構成はこちらを参照ください。 https://www.marulabo.net/docs/asami/ 【 本講座の概要 】 実装2回目の今回は設計モデルとして作成したScalaプログラムを整理して、実装への展開を考えます。 実装のポイントとTDD(Test-Driven Development)について取り上げました。 【 講演ビデオ https://youtu.be/6EOtO-y0rbs   の構成】   00:00:00 開始   00:01:45 設計の成果物   00:05:20 基本構造   00:12:00 メソッド実装   00:21:53 実装のポイント   00:41:53 TDD (Test-Driven Development)   00:58:29 まとめ 【 講演資料 】 実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】 | PPT https://www.slideshare.net/slideshows/2-31-67e1/265610862

マルレク関連資料 2002年〜2009年

丸山レクチャー関連資料 丸山レクチャー・シリーズ 丸山レクチャー・シリーズ・全アルカイーブ Lecture Note wakhokページ(旧) 丸山レクチャーシリーズ 2008-2009年度 第6回   CloudとSOA 第5回   CloudとRich Client 第4回   ScalabilityとAvailability 第3回   Cloud上の分散データベース ― BigTable、SimpleDB、Azure SDS ― 第2回   MicrosoftのクラウドOS/Windows Azureについて 第1回  クラウド時代の到来 2007-2008年度 第5回   Google Andoroidの世界    第4回   GlassfishとJbossのCluster/Cache技術 第3回  > SCA/Tuscanyの拡張メカニズム SOAへの二つのアプローチ IT技術の適用と ビジネス・バリュー実現 という二つの視点 第2回  JAX-RSとWADL ---JavaEEとRESTfulWebService 第1回   Googleの分散処理技術 2006-2007年度 第5回   古くて新しいNGNとJavaの接点 第4回   Cloud Google File System とAmazon S3/EC2 第3回   Web2.0と新しいネットワーク・メディア    第2回   JavaへのClosureの導入について    第1回   WS-ResourceTransfer  Webサービスは「状態」をどのように扱うか?    2005-2006年度 第5回   SOAとコンポーネント技術 ---SCA入門---    第4回   JAXBとJAX-WS    第3回   SOA技術とGrid   第2回   JBIとServiceMIX    第1回   SOAとは何かを考える     2004-2005年度 第5回   J2EEとSOAの近未来  J2EE6.0のコア技術としての JBI(Java Business Integration)   第4回   Annotationプログラミング入門    第3回   SOAの中核技術としてのBPEL   第2回   GridとSOAをつなぐもの --- WSRFとNotificatio

copresheaf-意味論の射程

【 こんな理論が何の役に立つのか? 】 このセッションが、週末のセミナーに向けた最後のセッションになります。 簡単に、セミナー第二部のまとめをしたいと思います。 ここでは、このセミナーで紹介したような理論が、現実的・実践的にどのような役に立つのかという話をしようと思います。 それは、現在の大規模言語モデルの到達点をどうとらえるのかということと結びついています。僕は、大規模言語モデルは、さらに発展するだろうと考えています。では、どういうふうにそれは発展していくのでしょうか? 【 ここまでで見てきたこと 】 ここまで見てきたこと、すなわち、SyntaxカテゴリーからSemantic カテゴリーの構成は、大規模言語モデルの次のような数学的モデルを構築できたということです。 「何の構造もないように見える具合的なテキスト・データから、その表現の継続の確率分布を大量に学習することによって、大規模言語モデルは内部に意味の世界を構築している。」 【 重要なのは、copresheaf-意味論 】 この数学的言語モデルには、重要なポイントがあります。 それは、言語の意味が住む世界を、[0,1]-copresheaf として、明確に定義したことです。 我々は、言語の文法構造については、いろいろ知ることができます。しかし、意味の世界がどのような構造をしているかについては、必ずしも明確な概念を持っているわけではありません。 しかし、大規模言語モデルが内部に構築する意味の世界を、 [0,1]-copresheaf としてとらえることは、意味へのアプローチを大きく変えるものです。 【 copresheaf-意味論の含意 】 もし、意味が [0,1]-copresheaf で表現されるのなら、さまざまな意味の構成には、カテゴリー論的操作が対応しているということができます。 Part 2 で見た、論理的概念「red and blue」「red or blue」にカテゴリー論的な product と coproduct に対応づけたのは、その一例です。 もっともPart 2での議論は、productもcoproductも、未だenrich化されていませんでした。論理的概念「AND」と「OR」を[0,1]-copresheaf で表現するためには、 productもcoproductも、enrich化さ

Semantic category

【  enrich化されたcopresheaf として意味をとらえる 】 このセッションでは、意味のカテゴリーsemantic を構成します。第一部と同様に、ここでも意味はcopresheaf として定義されます。ただしそのenrich版として。 第一部から継承された意味のcopresheafとしての解釈は、Tai−Danaeらのカテゴリー論的言語理論を特徴づける重要なものです。 【 なぜ、copresheaf なのか? 】 ここでは、まず、少し一般的な視点から、copresheaf(それは、関数の集合です)を使うことのメリットを考えておきましょう。 数学的対象Xの性質がよく分からないけど、数学的対象Yの性質・構造はよくわかっているとしましょう。 そうした時、 Xはそうでなくても、XからYへの関数の集合{X→Y}を考えると、それがはっきりした構造を持つことがよくあります。例えば、任意の集合上の実数値関数はベクトル空間を形成します。 【 単位区間 [0,1] とC上のcopresheaf [0,1]^𝐶 】 単位区間[0,1]は、カテゴリー理論の観点から見ると豊かな構造を持っています。それは closed commutative monoidal であり,complete で cocompleteです。 単位区間[0, 1]でenrich化された任意のカテゴリーCに対して、Cから単位区間へのfunctor 𝐶→[0,1]のカテゴリーとして、C上のcopresheaf [0,1]^𝐶 を考えます。 このcopresheaf は、単位区間[0,1]の豊かな構造を継承します。それは、単位区間[0,1] と同様に、product, coproduct, internal hom のenrich化されたバージョンを持っています。 補題 2 は、任意の [0,1]-category Cは、豊かな構造を持つ [0,1]-category copresheaf  [0,1]^𝐶 に埋め込まれることを示しています。 【 Semantic category 】 LをSyntax category とした時、Semantic category を、[0,1]^𝐿 と定義します。  Semantic category 𝐿 ̂は、[0,1]-categoryである L 上で [0,

copresheaf [0,1]^𝐿 とYoneda Lemma

【 言語理論へのenrich化されたカテゴリー理論導入の意味 】 週末のセミナーに向けて、そろそろまとめを始めようと思います。 大規模言語モデル(LLM)の成功が、数学的言語理論にどのような刺激を与えたかを、いくつか振り返ってみようと思います。それは「不思議」なことを発見した驚きに近い感覚だと思います。  ● LLMは、一見すると何の構造も持たないように見える自然言語のデータから、何かを学習する。その学習では、自然言語が文法構造を持つことは前提されていない。LLMは大量のデータから文法構造も学習できるように見える。  ● LLMが学習する「何か」の中には、意味の理解が含まれているように見える。ただ、その「意味」はどのように表現され、「意味の理解」はどう行われているのだろうか?   ● LLMは、表現の「連続」が可能である。それは、いくらでも長いコンテンツを生成できるように見える。こうした能力はLLMの母胎である「翻訳モデル」には無い能力だ。  ● LLMの「意味の分散表現」は、LLMのメカニズムやこうしたLLMの能力とどのように関係しているのだろうか?  ● ... まだまだ不思議なことはあるように思います。 昨年末に開催した、セミナーの第一部で紹介した、Tai−Danae らのカテゴリー論を枠組みとした理論 −− 言語をpreorderのカテゴリーとして捉える + copresheaf 意味論 + Yoneda embeddingによる言語と意味の対応づけ −− は、斬新なアプローチでこうした疑問の一部に答えるものでした。 ただ、これらはいわば「代数的」な性格のものでした。そこには、言語現象の重要な特質と思われる「確率論」的な性格が欠けていました。 今回のセミナー第二部で紹介するDai−Tanae らの新しい理論は、enriched category 論を使って、言語の数学的構造の理論を、代数と確率論の両者が交わるところで構成しようとしたものです。 まず、言語のカテゴリーLをpreorderから、射が[0,1]に値を取るものに変えることから始めます。(これを、「Lを[0,1]j上にenrich化する」と言います。) 今回のセッションの内容は、主要に、第一部の理論の骨組みが、enrich化可能であることを示そうとしたものです。次のように。  ● Cを[0,1]上でe

enriched functor と enriched copresheaf

【 functor category をenrich化する 】 このセッションの目的は、カテゴリー C からカテゴリーDへのfunctor 𝐶→𝐷 であるcopresheaf 𝐷^𝐶のenrich版を構成することです。 まず、functorの定義を振り返りながら、enrich化されたfunctorを定義します。 ここでは、次のような定義が与えられます。 「CとDを、あるcommutative monoidal preorder (V, ⊗, ≤, 1)上でenrich化されたカテゴリーとする。この時、Cのすべてのオブジェクト 𝑥,𝑦について    𝐶(𝑥,𝑦) ≤ 𝐷(𝑓𝑥,𝑓𝑦) を満たす関数  𝑓: 𝐶 → 𝐷 を enriched functorと呼ぶ。」 ここで、C(x,y), D(x',y')は、enriched category のhomオブジェクトです。 次に、functorカテゴリーの定義とcopresheafの定義を振り返りながら、enrich化されたcopresheafの定義を考えていきます。 Vがclosed commutative monoidal preorder の時、Vは自分自身でenrich化されたカテゴリーになります。先の定義で見た、enrich化されたfunctor f: C → 𝐷 で𝐷 = 𝑉とした enrich化されたfunctor 𝐶 → 𝑉を考えます。 「Cを、closed commutative monoidal preorder V上でenrich化されたカテゴリーとする。enrich化されたcopresheaf 𝑉^𝐶は、Cのすべてのオブジェクト𝑥,𝑦について   𝐶(𝑥, 𝑦) ≤ 𝑉(𝑓𝑥, 𝑓𝑦) を満たす関数で定義される。」 この条件式は、先に見たenriched functor の条件式で、𝐷 = 𝑉としたものに他なりません。 通常のカテゴリーでは、カテゴリー間の写像が functor category を定義するように、 enrich化されたカテゴリーでは、enrich化されたカテゴリー間の写像が、enrich化されたfunctor category を定義します。 -------------------------

Syntax category −− enriched category論の言語理論への応用

【 この投稿はわかりやすいかも知れない 】 このセッションから、新しい内容に入ります。 前回まで、enriched category とはどういうものなのか、その概略を見てきたのですが、このセッションから、このenriched category論を言語理論へどのように応用するのかという話をしたいと思っています。 今回はその一回めで、言語のカテゴリーに確率を導入します。それは、単なるpreorderという構造しか持たなかった言語のカテゴリーを、[0,1]でenrich化して、[0,1]−categoryにしようということです。 このカテゴリーを、Syntax categoryと呼ぶことにします。 ( 難しい言い方をすれば、単位区間[0,1]は、closed commutative monoidal preorder で、enrich化する能力を持ち、この[0,1]で enrich化されたカテゴリーを、[0,1]−categoryと呼びます。Syntax categoryは、言語の表現をオブジェクトにする、[0,1]−categoryなのです。) 【 すこしわかりやすいかも 】 ただ、今回の投稿は、少しわかりやすいのではと思っています。 なぜなら、この投稿では数学的定義や証明はほとんど出てきませんし、何よりも、こうした言語のカテゴリーと大規模言語モデルの関係が主要に語られているからです。 なぜ、面倒なカテゴリー論の枠組みを使うのか? それは、そうした数学的枠組みが、大規模言語モデルのある意味不思議な特徴を、よりよく捉えているからです。そこが出発点です。 ここで述べていることは、大規模言語モデルの振る舞いを実際に知っている人には、覚えのあることで、わかりやすいと思いますが、それは大事なことなのです。 数学的な議論だけを追いかけていると、大事な「原点」を見失うこともあります。その意味では、今回の投稿を「原点」を確認するのに使ってもらえたらと思っています。 【 Lの射 L(x,y)とその値 】 [0,1]でenrich化されたSyntax category Lでは、その射L(x,y)は、𝜋(𝑦|𝑥)で定義されています。ここで、 𝜋(𝑦|𝑥)は、表現 yが表現 x の拡大である確率です。 例をいくつか挙げましょう。   𝐿(𝑟𝑒𝑑,𝑟𝑒𝑑 𝑓𝑖𝑟