Photo by Victor Dunn on Pexels.com

AIで記事を学習して新たな記事を生み出すにはお金が必要だと思っていたがそうでも.

2025.06.22

Logging

おはようございます.AIで記事を学習して新たな記事を生み出すにはお金が必要だと思っていたがそうでもなくローカルPCでそこら辺に落ちているLlamaモデルを持ってきてチューニングすれば何とかなるじゃねぇという思いに至った.

実はあなたの手元にあるPCと、そこら中に「落ちている」オープンソースのAIモデル、特にLlama 3があれば、十分記事が生成できるんです。


ローカルAI記事生成は、もはや夢物語じゃない

「AIで記事生成」と聞くと、SFのような世界や、大企業だけが使える特権のように感じるかもしれません。しかし、今は違います。オープンソースの強力な言語モデル、特にMetaが公開したLlama 3の登場は、この常識を大きく覆しました。

Llama 3は、その性能の高さにもかかわらず、誰でも無料で利用できるという点が最大の魅力です。さらに、80億パラメータの8Bモデルであれば、最新のゲーミングPCとまではいかなくとも、ある程度の性能を持つPCであれば十分に動作します。これにより、高額なクラウドサービスを利用せずとも、自分のPCでAI記事生成の環境を構築することが現実的になりました。


なぜLlama 3があなたのPCと相性抜群なのか?

Llama 3がローカルPCでの記事生成に適している理由はいくつかあります。

  • 完全無料のオープンソース: 利用に費用がかからないため、予算を気にせずAIを試したり、本格的に導入したりできます。
  • 選べるモデルサイズ: Llama 3には様々なサイズのモデルがあり、PCのスペックに合わせて選べます。特に8Bモデルは、個人利用に最適なバランスを持っています。
  • 活発な開発者コミュニティ: 世界中の開発者がLlama 3を使った新しいツールや効率的なチューニング方法を日々共有しています。困ったときには助けを借りられる心強い味方です。
  • 「量子化」でさらに軽量に: モデルのサイズを大幅に小さくする「量子化」という技術を使えば、より少ないメモリでLlama 3を動かせるようになります。これにより、より多くのPCで利用の道が開けます。

あなたのPCを「記事生成マシン」に変える秘訣

もちろん、いきなりプロのライター並みの記事をAIに書かせるのは難しいかもしれません。しかし、ちょっとした工夫で「何とかなる」レベルの記事生成は十分に可能です。

  1. 少量のデータでファインチューニング: 大量の記事データは不要です。あなたが書きたい記事のテーマやスタイルに合った、質の良い記事を数十〜数百程度集めてLlama 3を学習(ファインチューニング)させれば、その分野に特化した記事生成能力が格段に向上します。
  2. プロンプト(指示文)の工夫: AIへの「指示の出し方」は非常に重要です。具体的で明確なプロンプトを与えることで、チューニングが完璧でなくても、驚くほど質の高い記事が生成できます。これはまるで、優秀なアシスタントに的確な指示を出すようなものです。
  3. 効率的な学習方法の活用: 「LoRA(Low-Rank Adaptation)」のような効率的なファインチューニング手法を使えば、少ないGPUメモリでも短時間でモデルを特定のタスクに最適化できます。

あなたの創造性が、今、AIで加速する

かつては一部の専門家や企業にしか手の届かなかったAIによる記事生成が、今やあなたのPCで実現できる時代になりました。これはまさにAI技術の「民主化」です。

とまぁそういう訳なので何とかしてみますが、ファインチューニングにどれぐらい時間がかかるのかが未知数だったりする.

ファインチューニングPythonコード

以下のPythonコードは、Llama 3モデルをロードし、提供されたテキスト記事でファインチューニング(LoRA使用)を実行し、結果を保存します。 上記の入力値は、このコードに自動的に反映されます。 このコードをPythonファイル(例: `finetune_llama.py`)として保存し、実行してください。

import os
import torch
from datasets import load_dataset
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, TrainingArguments, Trainer
from peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training, TaskType

# GPUの利用可能性を確認
print("GPUが利用可能か確認中...")
if not torch.cuda.is_available():
    print("GPUが見つかりません。Fine-tuningにはGPUが強く推奨されます。")
    # GPUがない場合は、ここでスクリプトを終了するか、CPUモードで続行するか選択できます。
    # exit("GPUがないため終了します。")
else:
    print(f"GPUが利用可能です: {torch.cuda.get_device_name(0)}")

# --- 1. モデルとトークナイザーのロード ---
# Llama 3モデルのパスを指定します。Hugging Faceのモデル名(例: "meta-llama/Llama-3-8B")
# またはローカルにダウンロードしたモデルのパスを指定してください。
MODEL_NAME = "meta-llama/Llama-3-8B" # ユーザーが入力したパスがここに挿入されます

print(f"モデルとトークナイザーをロード中: {MODEL_NAME}")

# 4bit量子化設定 (GPUメモリの節約に役立ちます)
# bnb_4bit_compute_dtypeは、Ampere以降のNVIDIA GPUに推奨されるbfloat16を使用しています。
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_use_double_quant=True,
    bnb_4bit_quant_type="nf4", # NF4 (NormalFloat4) 量子化タイプ
    bnb_4bit_compute_dtype=torch.bfloat16 
)

# トークナイザーをロード
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, trust_remote_code=True)
# Llama 3はデフォルトでbos_tokenを付与しないことがあるため、明示的に追加。
# また、padding_side='right'はLlamaモデルに推奨される設定です。
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "right"

# モデルをロードし、量子化設定を適用し、自動的にGPUにマッピングします。
model = AutoModelForCausalLM.from_pretrained(
    MODEL_NAME,
    quantization_config=bnb_config,
    device_map="auto", # 利用可能なデバイス(GPU)に自動的にモデルを分散
    trust_remote_code=True # リモートコードの実行を許可
)
print("モデルロード完了。")

# k-bit学習用にモデルを準備 (PEFTライブラリのため)
# gradient_checkpointingを有効にすることで、メモリ使用量をさらに削減できます。
model.gradient_checkpointing_enable()
model = prepare_model_for_kbit_training(model)
print("k-bit学習用にモデルを準備しました。")

# --- 2. データセットの準備 ---
# あなたのテキスト記事ファイルが格納されているディレクトリを指定します。
# 例: 'your_article_data/' の中に 'article1.txt', 'article2.txt', ... と置かれている場合
DATA_DIR = "./your_article_data/" # ユーザーが入力したパスがここに挿入されます

print(f"データセットをロード中: {DATA_DIR}")

# 'text'形式でデータセットをロードします。指定されたディレクトリ内のすべての.txtファイルを読み込みます。
# 各ファイルが1つのエントリとして扱われます。
try:
    dataset = load_dataset('text', data_files={'train': os.path.join(DATA_DIR, '*.txt')})
    print(f"データセットのサンプル数: {len(dataset['train'])}")
except Exception as e:
    print(f"データセットのロード中にエラーが発生しました。ディレクトリとファイル形式を確認してください: {e}")
    exit("データセットロード失敗。")

# データセットをトークン化する関数
# 長い記事をモデルの最大入力長に分割します。
def tokenize_function(examples):
    # Llama 3の最大入力長は通常8192ですが、お使いのGPUのVRAMに合わせて調整してください。
    # ここでは一般的な値として2048を設定しています。
    max_length = 2048 
    # truncate=Trueで最大長を超えるテキストを切り捨てます。
    return tokenizer(examples["text"], truncation=True, max_length=max_length)

# データセットをトークン化します。
# num_procはCPUコア数に応じて並列処理を行い、処理を高速化します。
tokenized_dataset = dataset.map(
    tokenize_function,
    batched=True,
    num_proc=os.cpu_count(),
    remove_columns=["text"] # 元のテキスト列は学習に不要になるため削除します。
)
print("データセットのトークン化が完了しました。")

# --- 3. PEFT (LoRA) の設定 ---
# LoRA (Low-Rank Adaptation) は、元のモデルの重みをフリーズし、
# 小さなアダプター層を追加して学習させることで、効率的にファインチューニングを行います。
# これにより、GPUメモリの使用量を抑えつつ、高い性能を実現できます。
lora_config = LoraConfig(
    r=16, # LoRAのランク。値を大きくすると表現力が増すが、メモリ消費も増える。
    lora_alpha=32, # LoRAのスケーリング係数。rの2倍程度が推奨されることが多いです。
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"], # LoRAを適用する層。Llamaモデルで一般的な層。
    bias="none", # バイアスを学習しない設定。
    lora_dropout=0.05, # ドロップアウト率。過学習を防ぐために設定します。
    task_type=TaskType.CAUSAL_LM, # タスクタイプを因果言語モデルに設定。
)

# モデルにLoRAアダプターを追加します。
model = get_peft_model(model, lora_config)
print("モデルにLoRAアダプターを適用しました。")
model.print_trainable_parameters() # 学習可能なパラメータ数を確認します。

# --- 4. 学習の実行 ---
# 学習済みモデルを保存するディレクトリ
OUTPUT_DIR = "./llama3_finetuned_model/" # ユーザーが入力したパスがここに挿入されます

# 学習の設定
training_args = TrainingArguments(
    output_dir=OUTPUT_DIR,
    num_train_epochs=3, # エポック数。データセットのサイズと希望する精度に応じて調整してください。
    per_device_train_batch_size=1, # GPUあたりのバッチサイズ。VRAMが少ない場合は1に設定。
    gradient_accumulation_steps=4, # 勾配を蓄積するステップ数。実質的なバッチサイズは per_device_train_batch_size * gradient_accumulation_steps になります。
    optim="paged_adamw_8bit", # 8bit AdamWオプティマイザを使用し、メモリ効率を向上させます。
    save_steps=500, # 500ステップごとにモデルを保存します。
    logging_steps=100, # 100ステップごとにログを出力します。
    learning_rate=2e-4, # 学習率。
    fp16=True, # 混合精度学習を有効化 (GPUが対応している場合)。VRAM削減と高速化に寄与します。
    max_steps=-1, # num_train_epochsに基づいて学習します。
    group_by_length=True, # 同じ長さのシーケンスをグループ化し、パディングを削減します。
    lr_scheduler_type="cosine", # 学習率スケジューラーのタイプ。
    warmup_ratio=0.03, # ウォームアップ比率。
    report_to="none", # レポート先を指定しない (wandbなどを使用しない場合)。
)

# トレーナーの初期化
# data_collatorは、モデルの入力形式に合わせてデータを整形します。
trainer = Trainer(
    model=model,
    train_dataset=tokenized_dataset["train"],
    args=training_args,
    data_collator=lambda data: {
        'input_ids': torch.stack([f['input_ids'] for f in data]),
        'attention_mask': torch.stack([f['attention_mask'] for f in data]),
        'labels': torch.stack([f['input_ids'] for f in data]), # 因果言語モデルでは、入力自体がラベルとなります。
    },
)

# 学習の開始
print("Fine-tuningを開始します...")
trainer.train()
print("Fine-tuningが完了しました。")

# --- 5. 学習済みモデルの保存 ---
# LoRAアダプターのみを保存します。これにより、ファイルサイズが小さく、効率的に管理できます。
trainer.save_model(OUTPUT_DIR)
print(f"学習済みLoRAアダプターが '{OUTPUT_DIR}' に保存されました。")

# 保存したアダプターを使って推論を行う方法の例 (コメントアウトされています):
# このコードは、ファインチューニング後にモデルをロードして推論を行うための参考例です。
# from peft import PeftModel
#
# # 元のモデルをロード (学習時と同じ量子化設定を使用します)
# base_model = AutoModelForCausalLM.from_pretrained(
#     MODEL_NAME,
#     quantization_config=bnb_config,
#     device_map="auto",
#     trust_remote_code=True
# )
#
# # 保存したLoRAアダプターを元のモデルに結合します。
# peft_model = PeftModel.from_pretrained(base_model, OUTPUT_DIR)
#
# # 推論モードに設定します。
# peft_model.eval()
#
# # テキスト生成の例
# prompt = "ローカルPCでのLlama 3ファインチューニングの利点とは"
# inputs = tokenizer(prompt, return_tensors="pt").to("cuda") # 入力をGPUに移動
#
# with torch.no_grad(): # 勾配計算を無効化し、メモリ使用量を削減
#     outputs = peft_model.generate(
#         **inputs,
#         max_new_tokens=200, # 生成する新しいトークンの最大数
#         do_sample=True, # サンプリングによる生成を有効化
#         top_p=0.9, # Nucleusサンプリングの閾値
#         temperature=0.7, # 生成の多様性を制御する温度
#         eos_token_id=tokenizer.eos_token_id # 終了トークンID
#     )
# print("\n--- 生成されたテキスト ---")
# print(tokenizer.decode(outputs[0], skip_special_tokens=True))

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

```, ;;), )。, アウト, アシスタント, アダプター, あたり, アップ, あなた, いくつ, ウォーム, エポック, エラー, エントリ, オープン, オプティマイザ, お金, クラウドサービス, グループ, クン, ゲーミング, コード, コア, ここ, こと, コミュニティ, コメント, これ, サイズ, サンプリング, サンプル, シーケンス, スクリプト, スケーリング, スケジューラー, スタイル, ステップ, スペック, すべて, ソース, そこら, タイプ, ダウンロード, タスク, ため, チューニング, ツール, データ, データセット, テーマ, ディレクトリ, テキスト, デバイス, デフォルト, トー, トークナイザー, とき, どれ, トレーナー, ドロップ, バイアス, パス, バッチ, パディング, パラメータ, バランス, ファイル, ファイルサイズ, ファインチューニング, ファインチューニングコード, フリーズ, プロ, プロンプト, マシン, マッピング, メモリ, モード, モデル, もの, ユーザー, よう, ライター, ライブラリ, ラベル, ランク, リモート, レベル, レポート, ローカル, ロード, ログ, 一般, 一部, 上記, 不要, 世界, 世界中, 並み, 並列, 予算, 付与, 以下, 以降, 企業, 使い, 使用, 係数, 保存, 個人, 優秀, 入力, 公開, 共有, 具体, 処理, 出力, 分割, 分散, 分野, 初期, 利点, 利用, 制御, 削減, 削除, 創造, 加速, 助け, 効率, 動作, 勾配, 十分, 参考, 反映, 可能, 向上, 味方, 因果, 場合, 多様, 夢物語, 大幅, 大量, 失敗, 学習, 完了, 完全, 完璧, 実現, 実行, 実質, 寄与, 対応, 専門, 導入, 少量, 工夫, 希望, 常識, 強力, 形式, 必要, 思い, 性能, 手元, 手法, 技術, 抜群, 指定, 指示, 挿入, 推奨, 推論, 提供, 整形, 新た, 方法, 日々, 明日, 明確, 明示, 時代, 時間, 最大, 最新, 最適, 有効, 未知数, 本格, 格段, 格納, 構築, 様々, 比率, 民主, 活用, 活発, 消費, 混合, 済み, 温度, 準備, 無効, 無料, 特定, 特権, 現実, 理由, 環境, 生成, 発生, 登場, 的確, 相性, 短時間, 確認, 秘訣, 移動, 程度, 管理, 節約, 精度, 終了, 結合, 結果, 続行, 能力, 自体, 自分, 自動的, 蓄積, 表現, 言語, 計算, 記事, 設定, 許可, 調整, 費用, 軽量, 追加, 通常, 適用, 選択, 重み, 重要, 量子, 開始, 開発, 関数, 閾値, 非常, 高速, 高額, 魅力,

Photo by Karol D on Pexels.com

映画、そして、バトンは渡されたを観ました。 #ネトフリ #映画 #Netflix

2022.11.23

Logging

おはようございます、水曜日の朝ですね、書いているのは月曜日の朝です。

今日は映画を一本観ましたのでその感想を書いていきます。本日、観た映画は「そして、バトンは渡された」です。劇場で観えなかったのでやっと観えたなって感じです、映画館に足を運ぼうと思っていたのだけども、ちょっと女性が多そうという理由で行かなかった映画ですが、この度、ネトフリで映画を観ました。

映画『そして、バトンは渡された』本予告 2021年10月29日(金)公開
そして、バトンは渡された 予告

この映画は小説「そして、バトンは渡された」を映画化したものです、原作の小説は読まずに映画を観ました。原作読んでしまうと完璧なネタバレを見たあとの映画という事になるので、小説よりも映画が自分は好きなので、そういう順番になりがちです。

さて、ネタバレ無しで映画の感想を一言で表すと「感動」ですね😭。いや、ホントこれに尽きるかなって思います。観て良かった映画ですし、一度は観て欲しい映画なのかもなって思います。今、ネトフリで観れるようになっています。因みにNetflixはある期間が過ぎると見えなくなったりするので、お早めに観たいと思う方は観といた方が良いですよ😗。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

2, 4, 95, com, fKypJ, https, Netflix, watch, www, youtube, あと, これ, すね, ネタ, ネトフリ, バトン, バレ, ホント, もの, , 一言, 予告, , 今日, 劇場, 原作, 女性, 完璧, 小説, , , 感動, 感想, 映画, 映画館, 月曜日, , 本日, 水曜日, 理由, 自分, , 順番,

トラックボールマウスを購入しました、もはや帰れない。

2022.03.18

Logging

おはよう御座います。もう春ですね🌴。
日本は春の次に梅雨という時季があります、早く梅雨の時季が過ぎ去りますようにと今から思っています😏。

トラックボールマウスを購入しました、悩んだあげく手が勝手にポッチっていました。勝手良かったなと思います。其の理由はマウスを操作しているとふいにキーボードにマウスが当たってイラってなるのですが、それが完璧に解消された事にあります。

イラってなる対策のため今までキーボードを小型化していましたが、ついにトラックボールマウスを自分が買うなんてと思っていましたが結果、買って正解だなって思いました。

慣れればこちらの方が便利です。ポインタの動きも滑らかですしね。何より手をあまり動かさなくて良くなった事により肩こり対策にもなります。因みに一度、自分は肩こりがひどくて会社を休んだことがあります。デスクワークの仕事って腰痛と肩こりが仕事を続けていく中で問題になっていくと思いますがトラックボールマウスによって、それが軽減させられると自分は今回、トラックボールマウスを導入して思いました。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

あげく, イラ, キーボード, こちら, こと, それ, ため, デスク, トラック, トラックボ, ふい, ボール, ポインタ, ポッチ, マウス, ワーク, 一度, , , , 仕事, 会社, 便利, 勝手, 問題, 完璧, 対策, 小型, , 操作, , 日本, , 時季, 梅雨, , 正解, 理由, 結果, 肩こり, 腰痛, 自分, 解消, 購入,

映画、マトリックス・レザレクションズ、やっぱ今日観に行きます(AM11時)! #マトリックス

2021.12.17

Logging

映画、マトリックス・レザレクションズを本日、11時に始まる字幕版を観に行きます?、感想につきましては映画を見終わった後に、ネタバレなしでツイートします。日本語版の方が上映数が多いのは少し残念ですね。

マトリックス三部作の中で印象的だったのが、やっぱあのバレットタイム撮影方法だと思います、ぐるぐるとスローモーションのキアヌリーブスを・・・。この映像はとても衝撃的でした、今までこんな映像は見たことがなかったので。そしてマトリックスの世界観がとても良かったですが、今回の新章は予告を見る限りでは前回を完璧に超えていいるストーリー展開が見れそうな気がします。今からマトリックス観るのが楽しみです。では観に行ってきます!!

映画『マトリックス レザレクションズ』予告 2021年12月17日(金)公開

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

11, AM, com, https, mBRWwAqJ--U, watch, www, youtube, キアヌリーブス, こと, ストーリー, スローモーション, タイム, ツイート, バレット, マトリックス, レザレクションズ, 三部作, 上映, 世界観, , 予告, , 今回, 今日, 前回, 字幕, 完璧, 少し, 展開, , 感想, 撮影, 新章, , 方法, 日本語版, 映像, 映画, 本日, 楽しみ, 残念, , , 限り,

日進月歩でCertbotのインストール仕方が変わっていた話。

2021.07.26

Logging

オリンピックの冒頭の音楽がいじめ問題で差し変わるらしいという話を聞きました。この記事が投稿される時にはオリンピック開会式は終わっている頃ですが・・・?。どうなったでしょうか、気になります。もし完璧な状態でオリンピック開催を向かえる事が出来たら、まさにプロフェッショナルですよ。音楽、映像や振り付けまでも変更しないといけないのに、あと3日しかないですよねぇ・・・超ブラック案件かと思います。

それはさておき、先日ツイートした件を書きますね、Certbotのインストール仕方が変わっていた話です。今までこのコマンドを打てば、 CertbotがインストールされてSSL環境もまぁ簡単に対応できていたのですが、なんだか仕様が変わったらしくてsnapというものをインストールしてからCertbotをインストールしないと駄目なようになっていました。まさに日進月歩だと感じました・・・(*´ω`*)。

yum install certbot
snap install core; sudo snap refresh core
snap install --classic certbot

正直なところ困る?

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

, Certbot, install, snap, SSL, yum, インストール, オリンピック, コマンド, ツイート, ブラック, プロフェッショナル, もの, , 仕方, 仕様, , 先日, 冒頭, 問題, 変更, 完璧, 対応, 投稿, 日進月歩, 映像, , 案件, , 状態, 環境, 簡単, 記事, , 開会式, 開催, 音楽, , 駄目,

完璧に作らず運用しながら改善するのがベストかも。

2021.04.15

Logging

今、カートシステムを作っているのだけど完璧に作らず運用しながら改善するつもりでいます。サブスクとして運用していくつもりで、980円か売上の何パーセントかをピンはねする様にします。カートシステムなんてありふれているので、収益性はあまり無いけど少しは足しになるのかもと思っています。最初は不具合とかもあるので無料で運営するつもりです。ある意味実験的です。

https://www.youtube.com/watch?v=yOQA62AUqKk

因みに自分が忙しくなって開発が頓挫する可能性もありますが、このまま順調に開発が進めば再来月の末には形になっているのではないかなと思います。代引きや銀行振込とかは請求メールを飛ばせば良いのだけど、クレジットカード決済や何とかpayの決済の部分を導入できるかどうかは不明ですね。クレジット決済システムや何とかpayのAPIシステムの導入は何度もした事があるのだけど、お客様のURLからカートシステムURLへデータを飛ばしてクレジット決済する事が出来るかが申請がおりのかが不明で、まだそこらへんを調べてはいないのです。

https://www.youtube.com/watch?v=Oal6n4X8KCk

尚、カートシステムが一段落したら、商品を管理するBASE (ベイス) | ネットショップみたいなものを作ろうと思っていて、それを多店舗展開できるもの。アイデアは前の前の会社で勤めていた時のシステムから着想を得ています。因みにそのシステムは導入費用は100万円ぐらいだったけど、自分が作ろうとしているものは、多店舗展開する機能は自前せずに他社のAPIと連動するという所が違うかな?、どこと連携するかと言えば例えばネクストエンジンとかです。なので自分は自社サイトを管理する部分だけ作ってしまえば良いかなと思っています。ちなみにお値段は固定ではなくサブスクで売り出す事とし、値段は千円を超えない範囲で考えています。サーバー負荷も考えないといけないので100店舗ぐらいで最初は運用したいです。収入としては10万円以下ですが、収入はないよりもある方が良いですよね。

https://www.youtube.com/watch?v=sJDwIrebLFo

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

980, API, Pay, url, お客様, カード, クレジット, サブ, システム, スク, つもり, データ, パーセント, ピンはね, ベスト, メール, 不具合, 不明, , , 代引き, , 何度, 再来月, 収益性, 可能性, 完璧, 導入, 少し, , 意味, 振込, 改善, 最初, , 決済, 無料, 申請, 自分, 請求, 運営, 運用, 部分, 銀行, 開発, 順調, 頓挫,

text形式に土日は変更。

2020.10.03

Logging

土日は基本テストスタイルに変更しようと思っています。なお、今まで土日はイラストを挿絵としていれておりましたが、サーバー移行の際に画像データがすべて消えてしまったことにより、この際、テキスト形式にしようと思ったので、そのようにすることにしました。なるべく短文にならないように気をつけて記事を書こうかなと思います。

本日はお休みなので『映画、浅田家』を見に行こうかどうか考えています。浅田家のお話、予告を見ると結構感動しそうな気がします。ただ、567の事を考えるとあまりリスクな事をしたくないなという気持ちもあります。映画館って完璧な密室なので・・・。たぶん空調設備も高知県の場合、完璧ではないでしょうからね。そう思うと本当に凄い観たい映画だけ観たほうが良いかなという気持ちがあります。観たい映画は結構な本数があるので…。

映画「浅田家!」予告【2020年10月2日(金)公開】

「あ?どうしよう?」
「浅田家」

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

567, Text, イラスト, お休み, お話, こと, サーバー, スタイル, すべて, データ, テキスト, テスト, リスク, 予告, , 土日, 基本, 場合, 変更, 完璧, 密室, 形式, 感動, 挿絵, 映画, 映画館, 本当, 本数, 本日, , 気持ち, 浅田家, 画像, 短文, 移行, 空調, 結構, 記事, 設備, , 高知県,

質問DATA検索を作りました。

2020.08.29

Logging

質問箱というサービスでじぶんに質問してくれる方がいます、そんな人達が使用してくれればなと思い、ちょこちょこっと作りました。OR検索はできません。ワンキーワードだけの検索ですが、役に立つかなと。

じぶんは重複した(似たような)質問には答えなくて良いかなと思います。なお、質問箱のデータは手動で登録しました。いちぶブログラムでデータを抜き取りましたが、未回答は完璧な手動での登録です…。

ちなみにこういう仕様のサービスは1時間もなく出来上がります、とても簡単なので・・・。ウェブサイトのサービスって基本的に簡単なので長年やっていると飽きます。とくに簡単なものはコードを書くのが面倒くさくなってなんでこんな簡単なコードを書かなくてはならないのかと思ってしまうことも過去に何度かありました。なので汎用性のあるコードを構えておいてコピペで使えるものを構えておくと良いですよ。長年、プログラムをやっていると飽きますね。

URLはこちら
https://zip358.com/QuestionTXT/

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

, data, OR, url, いち, ウェブ, キーワード, グラム, コード, こちら, こと, コピペ, サービス, サイト, じぶん, ちょこ, データ, プロ, プログラム, もの, ワン, , 仕様, 何度か, 使用, 回答, 完璧, , 手動, , 検索, 汎用性, 登録, 簡単, 質問, 過去, 重複, 長年,

夜な夜なサーバー移行。

2020.06.27

Logging

夜な夜なサーバー移行。ほぼ徹夜してサーバー移行を行いました。ちょっとは表示速度が早くなったかな?、どうだろうか。よくわからないけど・・・。当分、このサーバーを使用していこうと思います。何故かわからないけどブログが表示されるまで結構な悪戦苦闘をしました?、全部自分でこんなんだったら、立ち上げたほうが良かったかなとか、途中から思い出しました。

因みにまだ完璧に終えたわけではなくて半分ぐらい終わったかなという感じです。正直な所、つらいつらい寝たいと思っています。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

サーバー, ちょっと, ブログ, わけ, 使用, 全部, 半分, 完璧, 徹夜, 悪戦苦闘, 感じ, , 正直, 移行, 結構, 自分, 表示, 途中, 速度,

AutoML-Zeroで妄想。

2020.04.21

Logging

AutoML-Zeroで妄想してみました。AutoML-Zeroというのはグーグルさんが作った自ら進化するAI(人工知能)の事を指します。何がすごいってコーディングされたものを自ら最適化するところです。これって有ることに疑問があります、ひとと自ら最適化するAIの差があると言えば感情だと思うわけです。この差は有機物質と無機物質との違いのような気がします。さてもし創造主が人を作ったとするならば、創造主は創造主を模倣するでしょう。その創造主は恐らく完璧に近いほど同じものを違う物質から想像するでしょう。暴走した時に壊せるために・・・。人はいま人形ロボットというものを作っていますが、それは電池が無いと生きていけないように、人は食物が無いと生きていけないように設計されています。

何故、人は有機物質から人形ロボットを作ろうとせず無機物質から人形ロボットを作るのか?。人は自ら生きるために働いているようで現在は技術を発展させるために生きているようにも思うのです。人は働きたくないため、人形ロボットを作って変わりに働いてもらおうとしています。創造主は何のために人を作ったのかという疑問?

おそらく創造主は人を作って何らかの仕事を人にやらすと考えるのが妥当だと思うわけです。ただ、これは永遠にループします。創造主の始まりの始まりを考えるからです、なのでこの世はイーロン・マスクが言ったように仮想世界だというのは案外あたっているでしょう。まさに仮想世界とは妄想のループです。自ら考えることで世界ができているようにも思います、全ての繋がり(宇宙全体の生命体)が思考停止すれば無に帰ること出来るかとは言い難くて、始まりの始まりが全て思考停止すれば無に帰ることが出来そうですが、それは永遠に出来ないのです、始まりの始まりは増え続けるからです‥という妄想。

そういう感じで越えられない壁が人には存在します。なのでAutoML-Zeroが自己思考するようになっても人と人工知能には超えられない壁が存在するかもしれないですね。

夜中、どっぷり妄想してみましたw意味わかりますか?じぶんの思考!?

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

AI, AutoML-Zero, いま, グーグル, コーディング, こと, これ, それ, ため, ところ, ひとと, もの, ロボット, , , 人工, 人形, , 何故, 創造, 妄想, 完璧, , 想像, 感情, 技術, , 暴走, 最適化, 有機, 模倣, , 無機, 物質, 現在, 疑問, 発展, 知能, 自ら, 設計, 進化, 違い, 電池, 食物,

きっと無人化進む今後10年以内に。

2019.12.19

Logging

セブン―イレブンでも 「無人店舗」【パラビジネス 2分で経済を面白く】

日本でもきっと無人化進む今後10年以内と思っている。
何故なら人口減少の時代になるから、そして外国人労働者に投資するより
長期的にみるとコストダウンだから無人化は進むと思います。

最初はアシスト要因としていたスタッフも最終的(20年以内)に
完璧な無人なコンビニやスーパーなどが日本でも増えていくと思います。

これは時代の流れなので止められないと思っている。
いきなり若者のは増えない、日本は後期高齢者社会へ進んでいくのは
目に見える現実です。これを打破できるのは若返りが可能となる社会まで
世の中が発展しないと無理ゲーだと思いますので無人化が嫌だと言っても
そういう未来になると諦めた方が良い。

ハイテクすぎ!!深センの無人コンビニ「F5 未来商店」行ってきた!

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

10, 20, アシスト, ゲー, コスト, これ, コンビニ, スーパー, スタッフ, ダウン, , , 人口, 今後, 労働者, 可能, 外国人, 完璧, 後期, 打破, 投資, , 日本, 時代, 最初, 未来, 減少, 無人, 現実, 発展, , 社会, 若者, 要因, 高齢者,

英語を止めて中国語を勉強なさい。

2019.12.09

Logging

英語を止めて中国語を勉強しなさい

https://www.lingq.com/ja/

20ヶ国語話せるおじいさん…。
凄いな・・・日本人が聞いても理解できるから凄いな。

たぶん、日本人は完璧な英語が喋りたいから、挫折するだろうなと
感じます。伝わらないと日本人は結構な確率で挫折する。

それが一番の障壁になっているのだろうなと感じます。

ちなみに自分は英語を何度も勉強しようとして途中で止めてきた
ひとですが、聴く能力だけは映画やYOUTUBEで英語を理解していない
日本人より聞くことが多いので
その能力だけは高くなっているように思えます。

ただし、、、何を言っているかは1/4ぐらいの割合で理解できる程度です:D
自分が思うに聞く?話す?書くなのかも。

でも日本人の場合、最初に文法的なことから理解しようというするから
挫折するのかなと思います。

それとは別に下記の動画のような英単語勉強方法をすることをオススメします。

【英単語暗記法】20000語を覚えるための方法

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

0, , 20, 4, com, UlCz, youtube, おじいさん, おすすめ, こと, それ, , 下記, 中国語, , 何度, 割合, 勉強, 動画, 場合, 完璧, 挫折, 方法, 日本人, 映画, 最初, 理解, 確率, 程度, 結構, 能力, 自分, 英単語, 英語, , 途中, 障壁,

楽天RMSの禁止タグ制限を突破サービス!?

2019.09.07

Logging

楽天RMSの禁止タグ制限を突破サービスを自前してみました。
完璧ではないけど需要はあると思いますのでリリース、
ちなみにこちらのソースコードは非公開とさせて頂きます。
※会社でも似たような機能開発していますから…。
自分の頭の中にソースコードの設計工場があります(^^)。
リンクはこちらからお使いください。
https://zip358.com/tool/rakuten-RMS-tag/
広告でご飯食べてます。
ちなみにモバイル対応は意識していません。
PCブラウザより操作を行ってください。
※最新のChromeブラウザ推奨しております。
 
 

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

358, Chrome, com, https, nbsp, PC, rakuten-RMS-tag, RMS, tool, www, zip, お使い, コード, こちら, ご飯, サービス, ソース, タグ, ブラウザ, モバイル, リリース, リンク, , 会社, 公開, 制限, 完璧, 対応, 工場, 広告, 意識, 推奨, 操作, 最新, 楽天, 機能, 禁止, 突破, 自分, 自前, 設計, 開発, 需要, ,

Gitサーバを構築するという事になり。

2016.01.04

Logging


大晦日から元旦かけて、会社でGitサーバを構築するいう事になり勉強をしていました。
Gitサーバを立ち上げようと発案したのは自分、じぶんが発案者なので
勉強するのも道理だろうとGitサーバを勉強しました。
結論から言えば出来たのですが、いまいち完璧に
理屈がわかったのではなく、こうすればMacでもWindowsでも
動くという事がわかっただけです。
ちなみに構築方法はそのうち掲載します・・・・うそ。
ってそれほど難しい話ではなかったので掲載します。

#------------Git------------------------
yum -y install git
git config --global core.quotepath false
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
cd /var/wwww/html
git init --shared=true
git status
git add .
git commit -m 'new'
git config --bool core.bare true
git config --get-all core.bare
#-------------Key-------------------
ssh-keygen -t rsa
cd /root/.ssh
cp id_rsa /var/www/html

まず、初めにGitサーバをインストールします。
だいたい、初期の状態でインストールされています。
次にGit(ギット)のコンフィグの設定を行い、リポジトリを作成したい
階層まで行きリポジトリを作成します。addし後にコミットして完了です。
こちらがリモートリポジトリになります。
そしてローカル側にもGitをインストールします。
例えば、sourcetreeなどをWindowsにインストールします。
(※GUIでインストールを行ってください。CUIではなく:真ん中の選択肢を押下?)
まず最初に先ほど作成したsshのkey(秘密鍵?公開鍵?=id_rsa)を
ローカルにダウンロードします、その後、puttygen.exeなどを使いppkに
変換を行います。(ppk変換方法はこちら
次にsourcetreeの初期設定としてkeyの登録を行います。
先ほどppkに変換したファイルを参照します(ツール→オプション)。


参照後、新規/クローンを選択しリモートリポジトリとローカルリポジトリ作成場所を
選択してクローンの作成を行います。

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

-y, auto, branch, color, config, diff, false, git, global, install, Mac, quotepath, status, Windows, yum, いまいち, ウソ, うち, サーバ, じぶん, , 会社, 元旦, 勉強, 大晦日, 完璧, 掲載, 方法, 構築, 理屈, 発案, 発案者, 結論, 自分, , 道理,

Photo by Pixabay on Pexels.com

cronの設定数に制限があるさくらサーバーとかで制限以上に使う方法(´Д`)

2015.01.12

Logging

cronの設定数に制限があるさくらサーバーとかで制限数以上(cron設定を増やす方法
)に使う方法はないかなと考えた結果、自分はこうしました。
一つのPHPファイル(実行ファイル)から複数のファイルをキックすることに!(´Д`)
こうすれば、処理が遅くないファイルなら複数個でも実行できるのではないかと
思ったわけです。結果的に成功しているぽっいです。
※Shellで作れる人は作れるだろうけど自分には無理(´∀`*)ポッいのでPHPで制作しました。
ちなみにさくらレンタルサーバーの場合、php.iniにタイムゾーン設定を
加えてあげてください(date.timezone = Asia/Tokyo ←追加)。
そうしないと動かない恐れがあります。
作っていて思ったことですが、作る考え方はわかるものの、元々メソッドを覚えていない
人間なのでググってメソッド探しにまずヘタりました( ´Д`)=3。その後、完璧なハズとか
思ってソースを実行させるとエラーは出ないものの。思った通りうごかないという事象に
苦しめられること2時間、何でだろうとか思っていて検証してみた結果、メソッドの使い方が
間違っていたり、変数名が間違っていたりとなんとも言えない無情さに襲われましたが
何とか動作するようになったみたいなのでコードをうっぷします。
ソースコードを記載しときます。動作するとは
思いますが誤作動するかもしれないので保証はしません。なお、いつもながら
ソースにはコメントを記載しておりませんのでトレースしてください。
PHPファイルのDLはこちらから( ´Д`)=3?(最終更新日2015/01/12 11:07)
追記2
改良しました。{*改良版はこちら*}
※このPHPファイルを5分置きにキックしていますΣ(゚∀´(┗┐ヽ(・∀・ )ノ。

<?php
//5分刻みに対して有効な無限クローン 処理が負荷の場合どうなるかは知りません。
date_default_timezone_set('Asia/Tokyo');
class cron{

    public function d_m($obj)
    {
            if($obj->m==="*")return true;
            if(preg_match("/,/",$obj->m))return $this->comma($obj->m,date("m"));
            if((int)$obj->m === (int)date("m"))return true;

            return false;
    }

    public function d_d($obj)
    {
            if($obj->d==="*")return true;
            if(preg_match("/,/",$obj->d))return $this->comma($obj->d,date("d"));
            if((int)$obj->d === (int)date("d"))return true;

            return false;
    }

    public function d_H($obj)
    {
            if(preg_match("/\*\/[0-9]{1,2}/",$obj->H)){
                $H = explode("/",$obj->H);
                if((int)$H[1]>0 && ((int)date("H") % (int)$H[1])===0)return true;
            }else{
                if($obj->H==="*")return true;
                if(preg_match("/,/",$obj->H))return $this->comma($obj->H,date("H"));
                if((int)$obj->H === (int)date("H"))return true;

            }
            return false;
    }

    public function d_i($obj)
    {
            if(preg_match("/\*\/[0-9]{1,2}/",$obj->i)){
                $i = explode("/",$obj->i);
                if((int)$i[1]>0 && ((int)date("i") % (int)$i[1])===0)return true;
            }else{
                if($obj->i==="*")return true;
                if(preg_match("/,/",$obj->i))return $this->comma($obj->i,date("i"));
                if((int)$obj->i === (int)date("i"))return true;

            }
            return false;
    }

    //曜日 0=日曜日 6=土曜日
    public function d_w($obj)
    {
            if((int)$obj->w[date("w")]===1)return true;
            return false;
    }

    public  function comma($c="",$t=""){
        if($c==="")return false;
        if($t==="")return false;
        $flg = false;
        foreach(explode(",",$c) as $cc){
            if((int)$cc===(int)$t)$flg = true;
        }
        return $flg;
    }


    public function d_command($obj){
        if($obj->command){
            exec($obj->command . " > /dev/null &");
        }
        return true;
    }

}
if ($argv[1]) {
   $filename = $argv[1];
    if(is_file($filename)){
        $jsn = json_decode(file_get_contents($filename));
        $cron = new cron();
        try {
            foreach($jsn as $obj){
                if($cron->d_m($obj)){
                    if($cron->d_d($obj)){
                        if($cron->d_H($obj)){
                            if($cron->d_i($obj)){
                                if($cron->d_w($obj)){
                                    $cron->d_command($obj);//波動拳{{{{
                                }
                            }
                        }
                    }
                }
            }
        } catch (\Throwable $th) {
            print $th->getMessage();
        }
    }
}

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

, Asia, cron, date, ini, php, shell, timezone, Tokyo, いの, キック, こと, サーバー, さくら, ゾーン, タイム, パス, ファイル, ヘタ, ボツ, メソッド, レンタル, わけ, 一つ, , 人間, 処理, 制作, 制限, 場合, 完璧, 実行, , 成功, 方法, 無理, 結果, 考え方, 自分, 複数, 複数個, 設定, 追加,