-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
weekly useful materials - 07/05 - #106
Comments
全文検索 完全に理解した全文検索エンジンの仕組みをざっくり理解するための資料。 情報の収集インデックスの作成方法などがざっくり説明されている。 コメントメモ 出典 |
sys.path.append() を使わないでください
有望な対処方法は以下
# from https://qiita.com/siida36/items/b171922546e65b868679#%E8%A7%A3%E6%B1%BA%E6%B3%952-requirementstxt
[tool.poetry]
name = "my_package"
version = "0.1.0"
description = ""
authors = [""]
packages = [
{ include = "my_package", from = "src" }
]
# from https://qiita.com/siida36/items/b171922546e65b868679#%E8%A7%A3%E6%B1%BA%E6%B3%952-requirementstxt
from distutils.core import setup
setup(
name="my_package",
version="0.1.0",
description="",
author="",
packages=["my_package"],
package_dir={
"my_package": "src/my_package",
},
package_data={
"my_package": [
"sub_dir/*.py",
]
},
)
コメント検証レベルのコードだとsys.path.appendは使いやすくて多用してしまうのだが、アンチパターンであったというのは知らなかった。 出典 |
New library updates in PyTorch 1.12おっとなったものだけピックアップ 1. swin transformerとefficientnet_v2が追加
# from https://pytorch.org/blog/pytorch-1.12-new-library-releases/
import torch
from torchvision.models import *
image = torch.rand(1, 3, 224, 224)
model = swin_t(weights="DEFAULT").eval()
prediction = model(image)
image = torch.rand(1, 3, 384, 384)
model = efficientnet_v2_s(weights="DEFAULT").eval()
prediction = model(image) 2. object detection / instanse segmentationが追加
3. 画像分類用の様々なpretrained modelの精度が改善平均平均3%ほど向上している 4. Dropout2dの挙動が1.10に戻る1.11で変わった仕様が1.10の時に戻る。ただし、Dropout1dを使用することが推奨。 コメント業務をする中で、torchvisionに実装されているライブラリだけで戦う事はあまりないかもしれないが、 出典 |
What's new in Python 3.11?Python 3.11で新たに追加される機能の紹介。 目を引いたものだけ抜粋 1. errorの原因特定が簡単に3.10だとこうだったのが、 3.11でこうなる また、エラーに対してnotationをつけることが可能に 2. tomlファイルが読めるようになる# https://deepsource.io/blog/python-3-11-whats-new/
import tomllib
with open('.deepsource.toml', 'rb') as file:
data = tomllib.load(file) typingまわり自クラスを表す、selfを定義可能に typedictにrequired, not requiredを利用可能に # from https://deepsource.io/blog/python-3-11-whats-new/
from typing import TypedDict, Required
# `total=False` means all fields are not required by default
class User(TypedDict, total=False):
name: Required[str]
age: Required[int]
married: bool # now this is optional
marie: User = {'name': 'Marie', 'age': 29, 'married': True}
fredrick : User = {'name': 'Fredrick', 'age': 17} # 'married' is not required # from https://deepsource.io/blog/python-3-11-whats-new/
rom typing import TypedDict, NotRequired
class User(TypedDict):
name: str
age: int
married: NotRequired[bool]
marie: User = {'name': 'Marie', 'age': 29, 'married': True}
fredrick : User = {'name': 'Fredrick', 'age': 17} # 'married' is not required 一時的なディレクトリ移動を可能にするコンテキストマネージャー# from https://deepsource.io/blog/python-3-11-whats-new/
import os
def write_logs(logs):
with open('output.log', 'w') as file:
file.write(logs)
def foo():
print("Scanning files...")
files = os.listdir(os.curdir) # lists files in current directory
logs = do_scan(files)
print("Writing logs to /tmp...")
with contextlib.chdir('/tmp'):
write_logs(logs)
print("Deleting files...")
files = os.listdir(os.curdir)
do_delete(files) コメントエラーの内容が分かりやすくなるのはかなり便利かも、それとコンテキストマネージャーでcdできるのも重宝しそう。 出典 |
Graph Neural Network を用いた レイアウトつき文書からの情報抽出請求書などのレイアウト付き文書から情報抽出を行うためにGNNを活用する論文が2本紹介されている。 GraphIE: A Graph-Based Framework for Information Extraction2019年にNAACLで提案されたフレームワークで、テキスト情報とレイアウト情報を活用してタグを付与していく。 手法の全体像が以下 ベースラインとの比較 ここではSeqIEすなわち、検出された文字列を全部concatして一つの文章とみなした後、bi-LSTMをかける手法をベースラインとして設定
思いの外レイアウトを考慮しないベースラインが強いが、未知テンプレートに対しても汎化しているのはGraphIE。 ちなみに実験に用いられているデータセットは以下 さまざまな期間から収集された25,000 x 9 page の薬剤系の文書。 このうち半分をtrainにつかったということで、ざっくり、100,000枚のレイアウト文書で学習されている。
Merge and Recognize: A Geometry and 2D Context Aware Graph Model for Named Entity Recognition from Visual DocumentsCOLING 2020で提案された論文。抽出したい情報が複数のセグメントに分かれてしまっている時に対応するために提案されたもの。 精度の上昇はLSTM→BERTだけでは説明つかんさそうな上がり方。 検証に用いられたデータセット 13,498枚の名刺のうち8割つまり、約1万枚を利用
コメントレイアウト付き文書からの情報抽出にグラフを活用するアイデアが面白かった。 出典 |
自然言語処理を用いた効果的な広告テキストの自動生成【CADC2022】広告効果の高い広告テキストを自動生成するのに活用されている技術の紹介。 Fluencyの評価方法 Relevanceの評価方法 実際のLPと広告文が内容的に近しいものかどうかを評価するところで、今回はLPに付与されているキーワードをどれだけ含んでいるか、どれだけ最初の方に載せているかで評価。 広告効果の評価方法 これまでの広告配信実績から広告タイトルと説明文から広告効果を予測するGBDTを作成。 評価実験 データの規模は73万件ほど
8つの企業からなるデータセット
ちょいちょいSEPよりも良いものがあるのがポイント 実際に配信した結果、および配信結果と各種メトリクスの相関を調べたもの 物によっては実際のCTRと相反しているものがあるのが面白い。理由としては広告らしすぎるものはクリックしないと述べられていたが、果たして... コメント強化学習を文章生成に取り入れて、より良い文章を作るという取り組みが面白かった。 出典 |
AI Labの進めるクリエイティブ自動生成の研究【CADC2022】広告クリエイティブ自動生成のための3つの研究事例の紹介。 クリエイティブは編集可能性や解像度変更などができるように、ピクセルで画像を表現するラスター形式ではなく、どこに何があるかを示していくベクター形式であることに注意されたい。 研究事例①: 広告中テキストのベクター生成論文: De-rendering Stylized Texts 数のようにラスター画像をベクター形式へと変換した上で、広告中のテキスト編集を可能にする研究
必要な技術要素としては、どこにテキストがあるかのOCR技術やテキストのフォントが何かの判別、どこが文字で、どこが背景かの領域分割 より詳しいものが以下 若干背景と文字の検出がうまくいっていないところは見受けられるものの、パッと見の印象はかなり良い 研究事例②: デザインテンプレートの自動生成論文: CanvasVAE: Learning to Generate Vector Graphic Documents ベクター形式のデザインテンプレートを自動生成するために、マルチモーダルVAEを提案した研究。 すぐさまクリエイティブに活かせるクオリティではないしにろ、それっぽいものが出来ている。 研究事例③: ユーザーによるレイアウト制御論文: Constrained Graphic Layout Generation via Latent Optimization 実装をみたところ実際に指定できる制約条件は、人間の言葉を数式に置き換えられるものに限る模様。このbboxはこのbboxと被ってはいけないとか、このテキストはこのbboxの下とか。 コメント画像生成技術をプロダクト活用するために必要な研究が着々となされている感じがする。 出典 |
AI開発の新たなパラダイム「基盤モデル」とは近年業界を騒がせてきた「基盤モデル」という大規模かつ多様なデータで学習を行った汎化性能が高いモデルの特性や代表的なモデル、活用事例が端的にまとめられているブログ。 「基盤モデル」は大規模かつ多様なデータで学習を行っているので、個別のタスクに適用する際は少量の学習データで高い汎化性能を得られるという特性がある。 また、学習に用いるデータの量や、パラメータ数、訓練ステップ数を大きくすればするほど性能が上がるというスケーリング則が実験的に知られていて、今のところその限界は見つかっていない。 代表的なモデル言語のみでいうと、BERTやGPT-3, PaLMなど。PaLMは思考の過程をmodelのoutputに含ませることで、これまで解けなかった問題を解けるようにした、prompt engneeringでも注目の手法を提案している。 言語&視覚を整理したのが以下の図 言語→画像で人間よりも高い創造性を発揮しているDALL-EやImagen, Partiなどに加えて、マルチモーダル入力、マルチモーダル出力を目指す、unified IOやGatoなども登場 活用事例
以下がviableの製品イメージ。顧客のフィードバックを自動で要約してくれたり、数値のモニタリングなども行ってくれる。 コメント基盤モデルの特性や種類については普段からの情報である程度は知っていたが、活用事例がこんなにたくさんあるとは思わなかった。 出典 |
No description provided.
The text was updated successfully, but these errors were encountered: