【1】AlphaCode (担当: @ELYZA_inc fujiki)
- 概要・書誌情報
- preprint: URL
- 73ページある大作。
- DeepMind の 競技プログラミングAI
- 平均的な競技プログラミング競技者程度。
1. 問題
- 競技プログラミング
- 問題文が与えられて、その問題を解く解法としてのプログラムを提出する。
- テストケースがある。
- テストケースの一部は一般に公開されていない。
- <> 自然言語をプログラムに翻訳。
- = 仕様が与えられてプログラムを書く。
2. 提案・方法
- モデル
- 非対称な Encoder-Decoder モデル
- Decoder 層 ~= 6x Encoder 層
- Encoder: 入力は 1,526 tokens。MLM で訓練
- Decoder: 入力は 768 tokens。CausalLM で訓練
- モデルサイズ: 基本 1B オーダ。最大 41B
‣
- 全体像を端的に表した図
図左:
DATA - 事前学習・fine-tuning の学習パラダイム- 事前学習:
- GitHub 上の code
- 715.1 GB
- fine-tuning:
- 競プロ用に整備された CodeContests データセットを作成 (→ 公開)
- = 既存のデータセット (e.g. Description2Code, CodeNet) + Codeforces
- Description2Code: ~7764 programming challenges
- CodeNet: 4053 problems
- データ数: 10kオーダ → 比較的リーズナブル
- 時系列 split
- cleansing
‣
- 学習には、更なる工夫を追加。
- Tempering - 正則化
- (論文読む限り) 温度付き Softmax の温度 に同じ概念。
- 学習時には とすることで分布を急峻にし、fine-tuning 用データセットへの過学習を防ぐことができた。
- Value conditioning & prediction
- 正解・不正解などの追加情報も得られているため、それらの情報で条件付ける。
- また、その値の予測を補助タスクとして訓練。
- GOLD - オフライン強化学習
- “重み付き損失で学習” といったイメージ。
- モチベーションとしては、”recall” よりも “precision” を高めたい。
- 学習データの分布をまんべんなく捉えてほしいというよりかは、他のソリューションがハズレていても、1つは正解を確実に生成してほしい。よって importance weight を導入している、という感じ。
- 全体像を端的に表した図 (再掲)
図右:
SAMPLING & EVALUATION - 推論時の工夫- 大規模なサンプリング
- 多様さを確保
- プログラミング言語 - Python, C++
- 高い temperature
- 問題タグ・レーティングをランダムに → 改善が見られた
- Filtering
- テストケースをフィルタとして使い、通ったものを採用
- テストケースに通るプログラム生成自体難しく、10% 程度の問題に対しては解法を生成することができなかった。
- Clustering
- さらに、追加のテストケースで、その入力に対して同じ解答をするサンプルをクラスタリング
- 擬似的なテストケースも使用
- テスト入力を生成するモデル: 説明文 → テスト入力
3. 結果
- 論文は Codeforces で Top 54% に入る程度と報告。ミドルレベル。
- 公開後、CodeForces で実際のコンテストに参加する予定だったが、サブミットせず撤退。
- 今後の成長が期待されるかもしれない。
- 以上は実際のコンテストの話で、今回作成したデータセットでの評価は以下の通り。
- 解答率はまだまだ高くはないので、やはり “今後に期待” か。
4. 関連
- AlphaCode 特設サイト https://alphacode.deepmind.com/
- attention を可視化、coding に取り組む AlphaCode の作業風景が見られる。
- Podcast - 著者に聞いてみた。
- オフィシャルツイート
- 新たな GitHub code データセット
- AlphaCode のものを拡張し、それより大きいデータセット。
- misawa さんより紹介。
【2】SimCTG (担当: @ELYZA_inc fujiki)
- 概要
- Simple Contrastive Text Generation から命名。
- ケンブリッジ大・テンセント AI Lab・DeepMind・香港大
- 大規模言語モデルの自然言語生成の性能を上げる「学習方法」と「生成方法」を提案。
1. 問題
- 自然言語生成には大きく2つ、1. 最尤的な生成方法、2. 確率的な生成方法がある。
- 自然言語生成をする「言語モデル」とは?
- 学習データにある単語列の出現確率を近似した「確率分布」
- つまり、「言語を生成するでっかいサイコロ」!
- 学習によって、出やすい目 = 言葉が決まる。
- 最尤的な生成方法
- “最も出やすい言葉を生成する方法”
問題:
不要な繰り返しが発生。- 下の例について、
- (3) では、「樹齢は...、樹高は...。樹高が...、」
- (4) では、「岐阜県高山市一宮町一宮(いちのみやちょういちのみや)は、...。岐阜県高山市一宮町一宮(いちのみやちょういちのみや)は、岐阜県高山市一宮町一宮(いちのみやちょういちのみや)は、...」
- 確率的な生成方法
- “言語サイコロを振って、出た目を採用して生成する方法”
- まれなものも生成される可能性がある。
- good: 多様性は出てくる。
- bad: 多様なのはいいが...。不思議な言葉も出てくる。
- 上位の単語に限定したり、既出の単語の生成にペナルティを与えるなど、いろいろな調整が可能だが、それでも一貫性に欠けうる。
問題:
一貫性に欠ける- 下の例 (2) について、
- 「雪見の藩お抱え家臣、... が祭っている「月輪寺」には手水鉢が2つあり、長久氏の勢力が強まると同時に関連する寺もあり、山を挟むように ... 樹齢250年を越してきたが、...」
- 途中で主語が迷子...?
2. 提案
- (先出し) 提案手法 SimCTG を使うと、
- 「樹齢400年を越す日本さくら名所100選に選定されている。...。岐阜県飛騨地方 ... に生育し、...。「花の本」とも称され、開花期は5月上旬から下旬までで、桜の枝張りは濃緑色である。花は ... 八重咲きで、花弁の色は ...、雄しべは4本、...」
問題
の原因- 各トークンの (潜在) 表現が不適切な類似関係にある。
- 図左: どのトークンも似通った表現になってしまっている。
- 図右: こちらのように、「自身とは近く、他とは遠く」なってほしい。
仮説:
高次元の潜在表現空間での分布が「異方性」を持っていることが原因ではないか?- あるいは、表現の「コントラスト」が効いていないということ。
- ⇒ ならば、コントラストを効かせればいい!
- ⇒ Contrastive Learning (対照学習) の出番
- 提案は、
- 自然言語生成での 「Contrastive Learning」
- 生成時にもコントラストを効かせる 「Contrastive Search」
- Contrastive Learning
- (文字通り) 対照的な学習方法
- 同じトークン の表現の類似度は高くし、異なるトークンどうし の表現の類似度は低くする。
- Contrastive Search
- 対照的な生成方法
- こちらも素直なやり方。
- 「今生成したいトークンの確率値」から「すでに生成したトークンとの類似度」を差し引く。
3. 結果
- 文書生成と対話生成で好成績と報告。
- 特に、自動評価だけではなく、人手評価も高い。
- 文書生成
- 人手評価結果 (Table 2) を抜粋。
- 「SimCTG? 強いよね。一貫性・流暢性・情報性、隙がないと思うよ」
- 対話生成
- LCCC: 中国語での対話
- DailyDialog: 英語での対話
- LCCC については、Contrastive Search (対照的な生成方法) だけでも効果あり。
- 言語によっては、従来の最尤法 (MLE) でも「等方」的な表現空間が獲得されているのかもしれない。
- 中国語での対話の生成例
【3】chiTra (担当: @ELYZA_inc fujiki)
概要
- 国立国語研究所 及び 株式会社ワークスアプリケーションズが提供。
- Sudachi を使った日本語の事前学習済みモデル chiTra が公開。
- Sudachi Transformer より命名。
- 引用
- データ
- 「国語研日本語ウェブコーパス(NWJC)」
- 258億語
- 引用
- GitHub
- Qiita 記事
- 基本的に、HuggingFace を使うことで、簡便に利用できる。
- ただし、Tokenizer は別で、
BertSudachipyTokenizer
を使う必要がある。
詳細は言語処理学会年次大会(PT1-6)
『国語研日本語ウェブコーパス』は検索系『梵天』に格納して公開 なお、『梵天』は 2021年12月24日を持ってサービスを停止
関連
- 最近、日本語事前学習済モデルの公開が盛ん
- rinna社 13億パラメータの大規模言語モデル (GPT系)
- もし動かしてみた方などいれば、所感をぜひ。
【4】GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models (担当: ELYZA Ryo Misawa)
URL
- paper: https://arxiv.org/abs/2112.10741
- code: Embed GitHub
- colab で安全性に考慮したデータセットで学習した small モデル(3億パラメーター)を使って遊べます
概要
- 35 億パラメーターの classifier-free guidance 付き拡散モデルを使って,高品質なテキストからの画像生成と画像編集を実現
- 反復的に prompt を与えて編集することで複雑な prompt に対応したいというモチベーション
- 人手評価において,パラメーター数が3倍以上大きい DALL-E(120億パラメーター)よりも高い性能を達成
拡散モデル
- データにノイズを加え,それを復元するように学習する
Guidance
- 拡散モデルがクラス・テキストに基づいて画像生成させるための手法
- classifier guidance
- ノイズを加えた入力からクラスを予測する分類モデルを使う
- classifier-free guidance
- 分類モデルを使わずに,クラス・テキストあり・なしで学習したモデルを使う
- 分類モデルを使う場合,ノイズ入りのデータで学習する必要があり,事前学習モデルが使えなかったり,訓練が複雑になる
提案手法
- guided diffusion model をテキストからの画像生成と画像編集に適用
- 先行研究は class-conditional image synthesis,本研究は text-conditional
結果
- 定性評価
- SOTA の XMC-GAN や DALL-E よりも高品質な画像を生成できていることが分かる
- CLIP guided よりも classifier-free guided の方が良い
- (cherry-picking はしていないらしい)
- 影や反射も追加したり,周囲とスタイルの合うように編集できている
定量評価
- CLIP による reranking なしの場合・DALL-E の結果のみに reranking をする場合・DALL-E の結果のみに reranking かつ discrete-VAE で GLIDE の結果をぼかした場合を比較
その他
- DeepFake など悪用されないように,データセットをフィルタリングし,small モデルのみを公開
- フィルタリング: 人が現れるデータは使わないなど
【5】JaQuAD: Japanese Question Answering Dataset for Machine Reading Comprehension(担当: ELYZA Ryo Misawa)
URL
- paper: https://arxiv.org/abs/2202.01764v1
- code:
概要
- 日本語版の SQuAD 1.1
詳細
- データ規模
- 901 本の日本語 Wikipedia 記事
- 39,696 データ
- 作成方法
- 解答,質問のタイプ
- SQuAD 1.1 形式なので,答えのないデータは作らられていない
他の QA データセットとの比較
- 運転ドメインQAデータセット
- paper: https://www.anlp.jp/proceedings/annual_meeting/2019/pdf_dir/B1-4.pdf
- dataset: https://nlp.ist.i.kyoto-u.ac.jp/?Driving+domain+QA+datasets
- 解答可能性付き読解データセット
- abc/EQIDEN というクイズ大会の問題に対して,Elasticsearch を使って自動的にコンテキストを Wikipedia から収集し,それに対して解答可能性をスコアリングしたデータセットなので不自然なペアリングがされている,と主張
- paper: https://www.anlp.jp/proceedings/annual_meeting/2018/pdf_dir/C4-5.pdf
- dataset: http://www.cl.ecei.tohoku.ac.jp/rcqa/
the documents of the dataset come from driving-blogs which limits its domain and patterns
this dataset has a shortcoming that the majority of contexts and corresponding questions are contrived, and that they could be biased by the original competition in some ways
【6】ライティング支援のための文法誤り訂正(担当: ELYZA Ryo Misawa)
URL
- speaker-deck: https://speakerdeck.com/chemical_tree/raiteinguzhi-yuan-falsetamefalsewen-fa-wu-riding-zheng
概要
- 文法誤り訂正ついて,歴史的な流れや評価指標などについて簡単にまとめた概要と最新動向についてのまとめ
特に興味深かった話
- Sakaguchi et al.(2016) の提唱がきっかけで文法誤り訂正のゴールにシフトがあった
- 機械翻訳の手法を援用するのが主流だが,入出力がほとんど同じという点で異なる
- 系列編集タスクとして解くことで効率化
その他
- 日本語の文法誤り訂正データセットも紹介されていた
【7】WRIME: 主観と客観の感情分析データセット (担当: ELYZA Akira Sasaki (hikomimo))
- repo: https://github.com/ids-cv/wrime
- paper:
- 宮内裕人, 鈴木陽也, 秋山和輝, 梶原智之, 二宮崇, 武村紀子, 中島悠太, 長原一. 主観と客観の感情極性分類のための日本語データセット. 言語処理学会第28回年次大会, 2022.
- Tomoyuki Kajiwara, Chenhui Chu, Noriko Takemura, Yuta Nakashima, Hajime Nagahara. WRIME: A New Dataset for Emotional Intensity Estimation with Subjective and Objective Annotations. In Proceedings of the 2021 Annual Conference of the North American Chapter of the Association for Computational Linguistics (NAACL 2021), pp.2095-2104, 2021.
- 梶原智之, Chenhui Chu, 武村紀子, 中島悠太, 長原一. 主観感情と客観感情の強度推定のための日本語データセット. 言語処理学会第27回年次大会, pp.523-527, 2021.
- 研究目的で利用可能なデータセットとのことです
日本語の感情分析の研究のために、以下の特徴を持つデータセットを構築しました。 ・主観(テキストの筆者1人)と客観(クラウドワーカ3人)の両方の立場から感情ラベルを付与しました。 ・Plutchikの基本8感情(喜び、悲しみ、期待、驚き、怒り、恐れ、嫌悪、信頼)を扱いました。 ・各感情の強度を4段階(0:無、1:弱、2:中、3:強)でラベル付けしました。 ・Ver.2では、感情極性(-2:強いネガティブ、-1:ネガティブ、0:ニュートラル、1:ポジティブ、2:強いポジティブ)も追加しました。
- 上記のようなデータが train/dev/test = 30000/2500/2500 件含まれています
【8】Generating Training Data with Language Models (担当: ELYZA Akira Sasaki (hikomimo))
- 大規模言語モデルを使えば訓練データ自動生成できるよね!という論文
- ※ 言語モデルのパラメータはアップデートせず、あくまで事前学習済みのものをそのまま使う
- タスクごとに、ラベルごとのプロンプトを準備
- が言語モデルで生成される部分
- MNLIなどは文対に対してラベル付与するタスクなので、 でないほうの文を として事前学習コーパスからランダムサンプルしている
- たとえば各タスクで以下のような生成がされる
- zero-shotにおいてはpromptベースの既存手法を大きく上回り、かつ32事例程度を使ったfew-shot手法とどっこいどっこいの性能
【9】テキストデータのaugmentation (daaja, augmenty) (担当: ELYZA Akira Sasaki (hikomimo))
daaja
- 日本語NLPに特化したdata augmentationライブラリ
‣
- その他、固有名詞の置き換えなどにも対応しているようです
augmenty
- repo: https://github.com/KennethEnevoldsen/augmenty
- spaCyベースの、多言語 (主に英語?) 向けdata augmentationライブラリ
- どういったaugmentationが出来るかは以下ページにまとまっている
- https://kennethenevoldsen.github.io/augmenty/augmenters_overview.html
- 文字置換、エンティティ置換、WordNetベースの類義語挿入、embeddingに基づく類似語への置換など...
- 日本語でも一部augmenterを使えたので試してみました
word_embedding.v1
は結構じゃじゃ馬な感じ。名詞だけに絞って置換などできれば...wordnet_synonym.v1
はWordNetに含まれる単語のみが対象になりそうなので、word_embedding.v1
よりはまとも (古風というか荘厳というか... な結果になってますが...)- その他のトークン並び替え、文字置換なども日本語で動作するようです