The document summarizes a research paper that compares the performance of MLP-based models to Transformer-based models on various natural language processing and computer vision tasks. The key points are:
1. Gated MLP (gMLP) architectures can achieve performance comparable to Transformers on most tasks, demonstrating that attention mechanisms may not be strictly necessary.
2. However, attention still provides benefits for some NLP tasks, as models combining gMLP and attention outperformed pure gMLP models on certain benchmarks.
3. For computer vision, gMLP achieved results close to Vision Transformers and CNNs on image classification, indicating gMLP can match their data efficiency.
The document shows how to use the Cobra command line interface (CLI) framework to build a CLI tool in Go. It initializes a new Cobra app, adds commands for "hoge" and "conf" using the cobra add subcommand, defines configurations and ticket structs to load/save using TOML, and includes an example of running an external command like fzf to select from options.
CTF for ビギナーズのネットワーク講習で使用した資料です。
講習に使用したファイルは、以下のリンク先にあります。
https://onedrive.live.com/redir?resid=5EC2715BAF0C5F2B!10056&authkey=!ANE0wqC_trouhy0&ithint=folder%2czip
1) TLS 1.3 is the latest and most secure version of the TLS protocol for encrypting HTTP communications. It improves performance, efficiency, security, and supports newer encryption algorithms and key derivation functions.
2) TLS 1.3 reduces the number of exchanges needed before encrypted communication begins from three exchanges to one. It also reduces the number of rounds needed for the handshake.
3) TLS 1.3 bans insecure encryption algorithms and hashes like MD5, SHA-1, 3DES, and RC4 that were still supported in previous versions for backward compatibility. It adds newer and more secure algorithms like ChaCha20 and EdDSA.
The document shows how to use the Cobra command line interface (CLI) framework to build a CLI tool in Go. It initializes a new Cobra app, adds commands for "hoge" and "conf" using the cobra add subcommand, defines configurations and ticket structs to load/save using TOML, and includes an example of running an external command like fzf to select from options.
CTF for ビギナーズのネットワーク講習で使用した資料です。
講習に使用したファイルは、以下のリンク先にあります。
https://onedrive.live.com/redir?resid=5EC2715BAF0C5F2B!10056&authkey=!ANE0wqC_trouhy0&ithint=folder%2czip
1) TLS 1.3 is the latest and most secure version of the TLS protocol for encrypting HTTP communications. It improves performance, efficiency, security, and supports newer encryption algorithms and key derivation functions.
2) TLS 1.3 reduces the number of exchanges needed before encrypted communication begins from three exchanges to one. It also reduces the number of rounds needed for the handshake.
3) TLS 1.3 bans insecure encryption algorithms and hashes like MD5, SHA-1, 3DES, and RC4 that were still supported in previous versions for backward compatibility. It adds newer and more secure algorithms like ChaCha20 and EdDSA.
23. 破滅のピラミッド
var g = ...
!
step1 { a =>
step2 { b =>
step3 { c =>
step4 { d =>
// do something with a, b, c, d and g
}
}
}
}
依存する非同期ステップが?
ピラミッドのように積み上がる
外側のスコープの状態を暗黙に?
参照していてモジュール性が低い
38. 例 (Akka Streams):
implicit val system = ActorSystem()
implicit val mat = ActorMaterializer()
!
val a = Source(...)
val b = Source(...)
!
val a1 = a.map(_ + 1)
val b1 = b.map(_ - 1).map(_ * 2)
!
val c = (a1 zip b1).map{case (a, b) => a + b}
!
c.runWith(Sink.foreach(println))(mat)
A
B C
+1
—1
×2
+
先ほどのデータフローを?
関数型 DSL で記述する
39. 例 (Akka Streams):
implicit val system = ActorSystem()
implicit val mat = ActorMaterializer()
!
val a = Source(...)
val b = Source(...)
!
val a1 = a.map(_ + 1)
val b1 = b.map(_ - 1).map(_ * 2)
!
val c = (a1 zip b1).map{case (a, b) => a + b}
!
c.runWith(Sink.foreach(println))(mat)
入力に適用する関数を?
高階関数 map で繋ぎ合わせる
関数
入力
A
B C
+1
—1
×2
+
43. 遅延評価
class Cons[A](hd: A, tl: => List[A]) extends List[A]
!
def nats(n: Int): List[Int] = new Cons(n, nats(n+1))
def fizzbuzz(n: Int) = n match {
case _ if n % 15 == 0 => "FizzBuzz"
case _ if n % 3 == 0 => "Fizz"
case _ if n % 5 == 0 => "Buzz"
case _ => n.toString
}
nats.map(fizzbuzz).take(100).foreach(println)
必要呼び
(プル型)
コードを生成器と選択器の
組み合わせでモジュール化できる
無限リスト
46. FRP の〈糊〉
implicit val system = ActorSystem()
implicit val mat = ActorMaterializer()
!
val a = Source(...)
val b = Source(...)
!
val a1 = a.map(_ + 1)
val b1 = b.map(_ - 1).map(_ * 2)
!
val c = (a1 zip b1).map{case (a, b) => a + b}
!
c.runWith(Sink.foreach(println))
A
B C
+1
—1
×2
+
生成器
非同期の文脈を局所化した高階関数 (map, zip 等)を使い、
ビジネスロジックをパイプライン化する
選択器
局所化された非同期の文脈
47. ? 多くの FRP のデータフロー記述は宣言型 DSL:
構築したデータフローを実際にスケジュールし
実行するのはランタイムの役割
what と how の分離
implicit val system = ActorSystem()
implicit val mat = ActorMaterializer()
!
val c = (a1 zip b1).map{case (a, b) => a + b}
!
c.runWith(Sink.foreach(println))(mat) ランタイム
48. what と how の分離
Input
Input
Output(2) ランタイム
(1) プログラミングモデル (DSL)
(how を実行する = 変更の伝搬)
(what を記述する = データフロー)
52. 例: 融合 (Fusing)
? Akka Streams 2.0 の新機能
This new abstraction … is called fusing. This feature
… will be now possible to execute multiple stream
processing steps inside one actor, reducing the
number of thread-hops where they are not
necessary … will increase performance for various
use cases, including HTTP.
http://akka.io/news/2015/11/05/akka-streams-2.0-M1-released.html
複数の処理ステップを?
一つにまとめて性能向上