- 1. ローカルLLMのダウンロードとローカル保存、オフライン実行方法まとめ
- 2. 【AWS】S3バケットのファイル作成をトリガーにLambdaを実行する
- 3. 【環境構築】venv
- 4. サブクラスタリングによる詳細なSEO分析と可視化
- 5. GROWIでMarkdownファイルを一括エクスポートする
- 6. 超解像はここまで来た。細部を補完してくっきり画像にしてくれる SeeSR
- 7. upscaler比較 かんたんにいろんなモデルを試せるspandrelで
- 8. AtCoder練習2~白昼夢を様々な方法で~
- 9. python.TKinter用 Source.Generator
- 10. stliteのソースコードをPythonファイルから読み込む方法
- 11. ウェブページ管理ツール「Chronoter(クロノーター)」をリリースしました【個人開発】
- 12. 【CNN】花の画像認識で花言葉を表示するアプリを作成してみた【初心者】
- 13. numpy.dotでm×n行列と1×m行列の積を計算するときの注意
- 14. ロジスティック回帰はライブラリで違う
- 15. テトリス風落ち物パズルを作る part04 ミノの設置とライン消去
- 16. 豆腐文字が倒せない・・・?
- 17. 【Python】論理演算
- 18. 【Pyhton】比較演算とブール値
- 19. 統計検定2級の問題をプログラムで検証してみた(2)
- 20. text2imageへの進化
ローカルLLMのダウンロードとローカル保存、オフライン実行方法まとめ
最近Llama3とかRecurrentGemmaとか次から次へとリリースされて、試してみるだけでも大変ですよね。
この記事はそういったローカルLLMを試すときに、最低限必要となる実行コードをまとめます。
主な実行内容はこちらです。
– LLMのダウンロード
– ダウンロードしたLLMをローカルに保存(キャッシュではない)
– ローカルに保存したLLMを使ってテキスト生成※ なお、今回対象となるLLMはHuggingfaceに公開されているものとします。
## LLMのダウンロード
“`python
# キャッシュの場所を指定したいとき
import os
os.environ[‘HF_HOME’] = ‘./cache’# Huggingfaceのトークン認証が必要なとき(Gemmaなど)
import getpass
os.environ[‘HF_TOKEN’] = getpass.getpass(‘HF_TOKEN:’)from transformers import AutoTokenizer, AutoModelForCausalLM
# 公開されてい
【AWS】S3バケットのファイル作成をトリガーにLambdaを実行する
# はじめに
AWSのS3バケットにファイルをアップロードすることをトリガーにしてLambda関数を実行する方法について勉強したので備忘録も兼ねて本記事にまとめています。本記事では、S3バケットとLambda関数の設定手順、およびトリガーの設定方法を記載する。# 環境
python 3.12# S3側の準備
Lambdaから指定するバケットを作成します。2. Amazon S3 > バケット > バケットを作成 を選択。
2. 任意のバケット名を入力し、右下のバケットを作成をクリック。(本記事ではバケット名を`test-lambda-trigger1`とします。)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1247619/1114e61d-a0a7-e475-bae8-e1572d123795.png)
# Lambda側の準備
## 関数の作成
1. Lambda > 関数 > 関数の作成 から新規でLambdaを作成します。
2. 任意の関数名を入力し
【環境構築】venv
# 導入経緯
Deep Learningの学習環境を用意したく, Pythonに標準搭載されたvenv環境を構築しました.
導入手順はものすごく簡単で, 特に解説の必要もないかと思いますが, 備忘録として一応まとめています.
ご指摘等ありましたら, コメントをお願いいたします.# 目次
– [動作環境](#動作環境)
– [導入手順](#導入手順)
– [1. Pythonの導入](#1-pythonの導入)
– [2. venvの導入](#2-venvの導入)
– [3. パッケージのインストール](#3-パッケージのインストール)# 動作環境
私がnenvを導入した際の環境です.
| | |
| — | — |
| チップ | Apple M3 |
| OS | macOS Sonoma 14.4.1 |
| シェル | zsh |
| ターミナル | iTerm2 |
| パッケージマネージャ | Homebrew |
| Python | 3.9.6 |# 導入手順
## 1. Pythonの導入
まず初めに, pythonがイン
サブクラスタリングによる詳細なSEO分析と可視化
# 1. はじめに
この記事では、前回の記事「[Google BigQueryを用いたGSCデータの可視化とLooker Studioでの表示](https://qiita.com/tan0ry0shiny/items/7a2b0508c5c41f1578f3)」で行ったクラスタリングに続き、さらに詳細なサブクラスターの分析を行います。今回は、各クラスタ内のクエリをさらに細分化し、サブクラスターごとのロングテールキーフレーズを生成し、それをSEO対策に活用する方法について解説します。本記事では結果や概要を記載しますが、具体的な手順については今後別の記事で詳しく説明する予定ですので、気長にお待ちいただくか、他の記事を参考にしてください。
また、この記事は一意見ですので、間違いや修正、ご意見等ありましたらご教示いただけると幸いです。
# 2. サブクラスターの作成
各クラスタ内のクエリを再度クラスタリングしてサブクラスターを作成しました。これにより、各クラスタ内のテーマやトピックをさらに細分化して理解することができます。**例:障害者支援サービスの評判と口コミのサブクラスター*
GROWIでMarkdownファイルを一括エクスポートする
# 概要
[GROWI](https://growi.org/ja/)は、オープンソースのWiki開発ツールです。
GROWIには、今のところ(2024/06時点)、記事を一括でMarkdownファイルにエクスポートする機能がありません。
ただし、[データアーカイブ機能](https://docs.growi.org/ja/admin-guide/management-cookbook/export.html)を使うと、MongoDB Collectionsをzip形式でエクスポートできますので、本データを元にMarkdownファイルや添付ファイルを復元できます。:::note
GROWIの以下のような機能群に魅力があり、以前、自分が所属するチームで利用していました。
– オープンソースのため、ローカル環境でホストできる
– Markdownで記事を書ける
– draw.ioと連携でき、記事内にダイアグラムを埋め込める
– HackMDと連携でき、複数人で記事の同時編集ができる※ある時、社内のセキュリティ施策の関係で、GROWIから別ツールへ移行する必要が出たため、
超解像はここまで来た。細部を補完してくっきり画像にしてくれる SeeSR
# 細部まで補完
↑これが低解像度の画像だが、ポピュラーな超解像モデルRealESRGANでアップスケールすると
↑このように細部がスムーシングされてしまう。
そこでDiffusionで細部を補完するSeeSRを使うと↓
upscaler比較 かんたんにいろんなモデルを試せるspandrelで
spandrelはチェックポイントファイル(pth)のみからpytorchモデルを復元/実行できるライブラリ。
Super Resolution のupscalerもたくさんある。Stable Diffusion WebUIで使われているやつ。モデルはこのリポジトリとか
https://github.com/Phhofm/models?tab=readme-ov-file#released-sorted-by-new
このWebページにたくさんあります。
https://openmodeldb.info/
今回はこの256*238の画像で試します。
![handshake.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/bbe6ffa9-791e-72e1-53c0-658bd8d5af19.jpeg)
単純に4倍リサイズすると、
![handshakeのコピー.jpg](https://qiita-image-store.s3.ap-northeast-1.amazona
AtCoder練習2~白昼夢を様々な方法で~
# 白昼夢の問題
問題:英小文字からなる文字列 `S` が与えられます。 `T`が空文字列である状態から始め、以下の操作を好きな回数繰り返すことで `S=T` とすることができるか判定してください。– `T` の末尾に `dream dreamer erase eraser` のいずれかを追加する。
– `S`は英小文字からなる詳しい詳細は[こちら](https://atcoder.jp/contests/abs/tasks/arc065_a)から
1\. **後ろから順に当てはめていく。**
– この問題のポイントは、Sの文字列を前から調べていくと、複数通りの選択が生じることです。例えば、`dreamer`と言う文字列が続いたときに、コレが`dreamer`の文字列でできているのか、それとも`dream+erase`などの造語かどうかを判断できないところです。それを回避するために、後ろの文字列から当てはめていくことが良さそうです。“`python
S = input()
# 逆順にする
S = S[::-1]target = [“dream”, “dreamer
python.TKinter用 Source.Generator
python.TKinter用 Source.Generatorを 作りました。
起動直後に 数個のパラメータの 入力インターフェイスを
表示させ 入力後はスクリプトで 処理するだけ。
そんな 入力アプリを作る為のモノです。
入力後のスクリプトは 提供してません。
お好みの言語で 用意してください。TwilightBluesy..genPTK_v10
[application](https://twilight-bluesy.net/_utl/genPTK-v10/index.html)
[document](https://twilight-bluesy.net/__apps/_appZ.html?name=genPTK&verN=10)
[site.top](https://twilight-bluesy.net/)
stliteのソースコードをPythonファイルから読み込む方法
## stliteとは
StreamlitはPython環境上で実行されているサーバにブラウザでアクセスする仕組みですが、このサーバを同じブラウザ上で動くようにしたものが[stlite](https://github.com/whitphx/stlite)です。
Streamlit Creator[^1]であるWhitphxさんが開発しています。https://github.com/whitphx/stlite
[^1]: Streamlitコミュニティへの貢献が世界トップクラスな方々のこと。https://streamlit.io/creators
PythonをWebAssembly(WASM)に移植してブラウザ上で動くようにした[Pyodide](https://pyodide.org/en/stable/)というPythonディストリビューションがあり、stliteはStreamlitをこのPyodideで動くようにすることでサーバレスを実現しているそうです[^2]。
[^2]: 「サーバレス」ではなく「静的サイトで動かせる」と表現した方が分かりやすいか
ウェブページ管理ツール「Chronoter(クロノーター)」をリリースしました【個人開発】
公開されているWebページのスナップショットの記録とドキュメント管理ができるサービス「Chronoter(クロノーター)」のβ版をリリースしました!
構想は1年ほど温めていたのですが、
ここ半年ほどかけて一人で開発し、MVPと呼べるレベルのものが出来上がりました。
サービスと利用している技術についてご紹介します!
ぜひ興味を持っていただけたら、実際に使ってみて感想などいただけると嬉しいです。## リリースしたサービス
https://chronoter.com/ja
### できること
#### 1. ウェブサイトのスナップショットを保存する
公開されているWebページの情報を保存して、いつでも再現できるようになります。
ページの内容が更新されたり、公開が終了した場合でも、スナップショット撮影時点での状態を確認可能です。
![スクリーンショット 2024-06-13 18.55.07(3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176054/2db4830f-5760-b59b-8a8
【CNN】花の画像認識で花言葉を表示するアプリを作成してみた【初心者】
### 目次
1.はじめに
2.実行環境
3.制作の流れ
4.アプリの実装
5.まとめ#### 1.はじめに
こんにちは。今回、プログラミング初心者が機械学習を学び、画像認識のWEBアプリを作成してみました。
作成したWEBアプリは「花の画像を識別し、その花の花言葉を表示する」という内容になります。
学び始めた当初は「pythonとは?」という状態でしたが、なんとかアプリの実装まで頑張ってみましたので、温かい目でご覧いただけますと幸いです。#### 2.実行環境
・Visual Studio Code
・Google Colaboratory#### 3.制作の流れ
■Step1.学習用データの準備
こちらの記事を参考に「向日葵」「チューリップ」「パンジー」「アジサイ」「カーネーション」の5種類の花の画像を集めました。参考文献:【Python】画像認識で世界のタワーの識別
https://qiita.com/ogssus0011/items/0c5325a91d2788046e1b“`ruby:Flowersimg
#pythonライブラリの「icrawler
numpy.dotでm×n行列と1×m行列の積を計算するときの注意
## はじめに
– numpy.dotでm×n行列と1×m行列の積を計算しようとしたら失敗したので,共有できればと思い記事を書きました## numpyを用いた行列の積の計算方法
– 以下のようにすれば行列を定義可能“`python
import numpy as np
A = np.array([[1,2,3],[3,3,5]])
B = np.array([[1,2],[2,2],[1,1]])
print(A)
print(B)
“`
– 実行画面“`
[[1 2 3]
[3 3 5]]
[[1 2]
[2 2]
[1 1]]
“`
– 積の計算をnp.dotで行う“`python
print(np.dot(A, B))
“`
– 実行結果
– 正しく計算できている“`
[[ 8 9]
[14 17]]
“`
ロジスティック回帰はライブラリで違う
データ分析に使うライブラリとして古典的な機械学習がベースのScikit-Learnと数理モデルがベースのstatsmodelsがあります。
重回帰分析をやる分には結果が同じになりますが、ロジスティック回帰だと実は結果が異なるようになります。# 決定境界の描画関数
## Scikit-Learn用
“`Python3
from sklearn import preprocessing
import matplotlib.pyplot as plt
import numpy as np
def showline_clf(x, y, model, modelname, x0=”x0″, x1=”x1″):
fig, ax = plt.subplots(figsize=(8, 6))
X, Y = np.meshgrid(np.linspace(*ax.get_xlim(), 1000), np.linspace(*ax.get_ylim(), 1000))
XY = np.column_stack([X.ravel(), Y.ravel()])
x =
テトリス風落ち物パズルを作る part04 ミノの設置とライン消去
[前回](https://qiita.com/comet725/items/5004cbea97247d5bf33b)はキー入力と落下処理を行った
今回はミノの設置とライン消去を行う# ミノの設置
落下処理が失敗した→地面に着いたなので
地面についた状態から少し動かす余裕を持たせるために
カウントダウンしていく
“`py
# 床に着地しているかのチェック
is_floor_landed = not self.can_mino_move(self.mino, Pos(0, 1), 0)
if is_floor_landed:
self.wait_count -= 1
“`移動処理のタイミングでカウントが基準値を下回ったら設置する。
“`py
def move_and_rotate_mino(self):
if self.wait_count <= WAIT // 2: self.wait() return def wait(self) -> None:
if self.wait_count == 0:
豆腐文字が倒せない・・・?
# 豆腐文字?
あなたは、豆腐文字 をご存じでしょうか??こういうやつです⇒(□□)
Pythonのmatplotlib を使ってグラフを作成すると
おおよそ日本語に対応していないフォントなので
□□ になっていまうこと ありますよね・・・。「matplotlib 文字化け」等で検索すると、便利ライブラリ「japanize-matplotlib」を使った解決法があります。
また、日本語に対応しているフォントを追加して、手動で設定する方法もあります。ー参考記事ー
https://qiita.com/uehara1414/items/6286590d2e1ffbf68f6c
https://qiita.com/katuemon/items/5c4db01997ad9dc343e0
公式:japanize-matplotlib
https://pypi.org/project/japanize-matplotlib/
これで解決することが多いのですが、ドツボにはまってどうしようもない・・・
という方向けの記事になります!# AWSのSagemaker Stud
【Python】論理演算
論理演算とは、ブール値(TrueまたはFalse)を操作する演算のことです。主な論理演算子は以下の3つです。
– and: 論理積(AND)
– or: 論理和(OR)
– not: 論理否定(NOT)
# 論理積 (AND)
2つの条件がともに真(True)の場合のみ真となり、そうでない場合は偽(False)となります。
“`python
print(True and True) # True
print(True and False) # False
print(False and True) # False
print(False and False) # False
“`
# 論理和 (OR)
2つの条件のどちらか一方も真(True)であれば真となり、両方が偽(False)の場合のみ偽となります。
“`python
print(True or True) # True
print(True or False) # True
print(False or True) # True
print(False or False
【Pyhton】比較演算とブール値
# 比較演算
比較演算子は、2つの値を比較するための演算子です。`==`: 等しい
`!=`: 等しくない
`>`: 大きい
`<`: 小さい `>=`:以上
`<=`:以下 例えば、次のようなコードを書くことができます。 ```python x = 5 y = 10 print(x == y) # False print(x != y) # True print(x > y) # False
print(x < y) # True print(x >= y) # False
print(x <= y) # True ``` 出力は以下のようになります。 ```console False True False True False True ``` # ブール値 ブール値とは、True(真)かFalse(偽)の2つの値をとる値のことです。Pythonでは、比較演算子の結果はブール値になります。 例えば、次のようなコードを書くことができます。 ```python is_raining = True has_umbrella = False if is_ra
統計検定2級の問題をプログラムで検証してみた(2)
# 背景
統計検定2級の問題で、2人の対戦相手(T君、U君)と合計3回対戦をして、2連勝する確率を問う問題がありました。
(統計検定2級受験予定で、この問題を解いてない方は、答えを見ないでくださいね。)T君に勝つ確率がp、U君に勝つ確率がq、0
text2imageへの進化
# 初めに
はい、
Akira_0809です、
前回、ChatGPTと一緒に作成した画像生成AIを改良します、
text2imageにしていきます、
1を入力すると1の画像が出力されるようにしたい## 前回
https://qiita.com/Akira_0809/items/19ec406ee5eab0cecf41## 会話ログ
https://chatgpt.com/share/e8be36f9-caf7-4746-b4ea-05cf8269b702# 授業
数字を条件としてGANに入力し画像生成する*「条件付きGAN」(Conditional GAN, cGAN)*
を使用する
“`diff_python
import torch
import torch.nn as nn
import torch.optim as optim
from torchvision import datasets, transforms
from torch.utils.data import DataLoader# データセットのロード
transform = trans