Make組ブログ

Python、Webアプリや製品・サービス開発についてhirokikyが書きます。

1ヶ月に22本ブログ記事を書いて気づいたこと

正確にはまだ21.05本くらいで、今もその数値が少しずつ増えています。 さて AI校正Shodoアドベントカレンダーをやろうと思い立ったのは11月の中旬ごろでしたが、目的としてはもちろんマーケティング的な意味合いもありつつ、ドッグフーディング的な意義もあ…

requirements.txtでリポジトリーURLを指定する方法

requirements.txtでリポジトリーURLを指定したいことがあります。たとえばSageMakerではコード用のディレクトリーにrequirements.txtを配置することで、起動時に依存ライブラリーをインストールしてくれます。その際に問題になるのが、Neuron系のライブラリ…

Jupyter Notebookでマウスを使わない!

AI

Jupyter Notebookでマウスを使わなければ気持ちよくなれます!という啓蒙活動です。 Jupyter NotebookというとGUIが基本なのでどうしてもマウスを動かしてしまいますが、キーボード操作がかなり充実しています。あまり知られていない感じもしますが、かなり…

Dockerで稼働しているCeleryが停止時にタスクを完了しない問題と修正方法

DockerでCeleryを稼働しているとき、設定によってはタスクを安全に完了(Graceful Shutdown)できていない場合があります。それぞれの登場人物の仕様を理解して間違いないようにしましょう。 コンテナランタイムの仕様 AWS Fargateではコンテナを停止する際…

Optimum Neuronでresume_from_checkpointをするとTypeError None // int

先日の記事のように Optimun Neuronを使うとHuggingFace Trainerを簡単にAWS Neuron上で扱えます。 ですがまだあまり安定していないというのが正直なところです。今回の問題は0.0.23から0.0.25の範囲で確認済みです。記事に書いてしまっていますが、もし良け…

Optimun NeuronでHuggingFace TrainerをAWS Neuron上で簡単に動かす

Optimun Neuron を使うと、HuggingFace TrainerをAWS Neuron上で気軽に扱えるようになります。具体的には以下のように、TrainerとTrainingArgumentsを置き換えるだけです。 from optimum.neuron import NeuronTrainer as Trainer from optimum.neuron import…

SageMakerでのトレーニング時は事前にデータをエンコードしておく

SageMakerでトレーニングする際、強めのマシンを使う場合は事前にデータをエンコードしておくと良いです。データ量が多いと dataset.map(encoder) をするのも案外時間がかかります。そうするとGPUやTrnを有効活用していない時間も課金されてしまうので、事前…

HuggingFace Trainerで学習とハイパーパラメーターチューニングを両立するプログラムを書く

HuggingFace Trainer を使っていて、トレーニング用のプログラムとハイパーパラメーターチューニング用のプログラムを両立させる方法を考えてみました。 HuggingFace Trainerでは trainer.hyperparameter_search(...) メソッドを使ってハイパーパラメーター…

33歳になりました

33歳になりました。 「しかし、人間は負けるようにはできていない」老人は言った。 「叩きのめされることはあっても、負けはしない」 老人と海 / ヘミングウェイ 越前敏弥訳 過去分 blog.hirokiky.org blog.hirokiky.org blog.hirokiky.org blog.hirokiky.or…

SageMakerでのトレーニング実行前に FileNotFoundError: [Errno 2] No such file or directory: 'train'

SageMakerでトレーニング中に No such file or directory: 'train' というエラーが発生しました。 Traceback (most recent call last): File "/usr/local/bin/dockerd-entrypoint.py", line 28, in <module> subprocess.check_call(shlex.split(" ".join(sys.argv[1:</module>…

PyCon JP 2024はディープなトークが多くて良かった #pyconjp2024

2024年9月27日、28日はPyCon JP 2024のカンファレンスデーでした。 https://2024.pycon.jp/ 今回はトークの満足度が個人的にとても高かった。とくにコア開発、処理系、PEP Author(仕様策定に携わる人)のトークも充実しており、トークだけを見てもイベント…

「ストーナー」を読み終えて

前回書いたように株主総会や決算が終わり、やっとまともな呼吸ができるようになって、ストーナーという小説を読んでいました。途中までほんの少しずつ読んでいたのを、精神的な落ち着きが得られた今になって、一気に読み終えることができました。 本の感想は…

作った会社の第4期の決算が終わりました

株式会社ゼンプロダクツを創業して4年、第4期の決算と株主総会が終わりました。 前期に続いてかなり良い感じの成長を遂げ、投資をしていただいた2年前に掲げた目標も順にクリアできています。 ほんとうにありがたいことです。 自分で作った会社、プロダクト…

「Xで炎上したのだけ知ってる」という回数を減らしたい

「Xで炎上したのだけ知ってる」というとき、SNSで話題やトレンドだけ追いかけているのにその詳細はまったく知らないし興味もない、ということが多い。それを終わりにしたい。 パリオリンピック 2024が終わった。 僕はクライミング、やり投げやレスリングなど…

ガリが市営ジムに1年通って体重を7キロほど増やした

やったぜ!って話です。 もともと体重49kgの体脂肪率5%(誤差の範疇なので5%になる)だったのですが、今は56kgくらいに増やせました。 今が人生で一番健康だと思います。 僕は生まれてから30年間ずっと痩せてました。どうしても食えないし、太らないし…、…

【募集】DjangoCongress JPの開催地を募集します

こんにちは。今日は少しお願いがあります! DjangoCongress JPの開催地・会場を募集しています。 例年開催しているDjangoCongress JPですが、次回の開催地と会場がまだ決まっていません。とくに東京以外の場所で「ぜひここでやろう!」という方を求めていま…

結局、migrate機能ってなぜ必要なの? WebフレームワークのDBマイグレーション機能の意味を解説します

DjangoなどのWebフレームワークにはマイグレーションという機能が搭載されています。ですがこのマイグレーションという機能の必要性が分かりにくい(いまいちピンときていない人がけっこう多い)ので背景を踏まえて説明します。 マイグレーションとは何なの…

正しい生き方を求めた結果が今なら最初から自分の好きに生きたほうが良かったのでは

っていう時代になりつつあるのかなと感じるこのごろです。 というか皆んなインターネットに疲れてしまった。 まぁこれは完全に僕の戯言なのでデータがどうこうというわけではないです。エッセーでごわす。 何だかインターネットに疲れてしまって、インターネ…

名を売るには人類はアホすぎる

人間は名を売りたいと思うものの、人間の脳を考えるとその席は少すぎるし消えていくという話です。 人生があるのなら、自分の存在価値を最大限大きくしたい、と思うのは野心のある人なら自然なことに思います。誰かに自分の名や存在を知ってほしいという感情…

トムソーヤの冒険の記憶

小学生のころトムソーヤの冒険を読みました。何かよく聞く名前だし、名著らしいし読むかという打算的な気持ちもあったと記憶しています。 読んでみると、思ったより冒険はしないんですね。というよりも僕が期待していたのはもっと壮大な「インディージョーン…

32歳になりました

0x20歳、というネタをやる歳になりました。 Shodoという事業でやっていますが、0を1にできたのでこれからは1を100にしていきたいです。 でも期待以上には答えたいじゃん 高いハードルはダッシュをしてハイジャンプ 出る杭がもっと出て黙らす外野 Dripping' L…

デジタル世界は魂ゆえに残酷だよねって話

雑談です。 VRChatの世界でよく「最終的に魂が大事」という話になります。 デジタルの世界では自分が好きな姿になれるので、逆説的に魂(つまり中の人の考え方や面白さ)が重要になってくるというわけです。これはVRでないSNSでも似たようなもので、アイコン…

DjangoCongress JPやるってよ!

来月の10月7日(土曜日)にDjangoCongress JP 2023をやります! これを読んでくれている、Djangoに興味がある方にお伝えしたいです。 Djangoの面白いイベントです PythonのWebフレームワークDjangoに関するカンファレンスです。年に1回のお祭りです。 今年も…

DjangoCongress JP 2023のトーク応募は今日(8月21日)締切です

皆さんこんにちは。 DjangoCongress JP 2023のトーク応募の締め切りは今日です! Djangoの知見がある方、何か共有したいことがある方、会社を知ってほしい方、ぜひご応募ください。 forms.gle あまりハードルは高く考えなくても大丈夫です! この機会にカン…

ChatGPTで御社(AIスタートアップ)は倒産しないの?という声に

弊社は倒産するのかい?! すーーーーーーーーーない!!! ハッ!(笑顔) 世界的に人工知能(AI)の話題が盛り上がっています。ChatGPTは爆発的に注目を集めていて、とくに次世代のGPT-4の登場が話題になり、ますます熱いAI分野です。 そこで「AI校正のSho…

ChatGPTを非同期でPythonから利用する方法

ShodoがChatGPTに対応しましたね。 最近注目されている自然言語処理技術の一つChatGPT。本記事ではPythonからChatGPTを非同期で扱う方法についてご紹介します。 実はこの記事もChatGPTに書いてもらい、僕が加筆し、Shodoで校正しています。 ChatGPTと非同期…

ロケットと、信じる話

(今日は雑記として、結論もない話を書きました) H3ロケットの打ち上げが失敗してしまい、僕としては結構ショックでした。 いやー、残念。やる意義も大きくて、期待していました。 1号であり試験機なので今後、改善すれば良いと思います。もちろん失敗につ…

31歳になりました

めでたい! 起業した会社で初めて資金調達を実施しました。 もう、前に進むだけです。 将来、国家公務員だなんて言うな 夢がないなあ Keep Tryin' / 宇多田ヒカルより open.spotify.com 30歳も超えると、もう何歳がどうとか関係なくなってくるので、楽でいい…

歳とともにコンテンツからの衝撃や感動が減ってきた?という話

雑記です。 最近はFANBOXにこういうことを書きがちですが、たまにはブログでも書こうと思います。 単なる思ったことの記事なので、ふーんとか、そういう気持ちで読んでください。 コンテンツからの衝撃 何というか最近、新しいコンテンツを摂取しても 「うわ…

イラストのAI学習禁止はできるのかをAIエンジニアが短く話します

こんにちは。 mimic(ミミック)というサービスがリリースされ、インターネットを騒がせています。 このサービスはアップロードされたイラストを学習して、類似されたイラストを生成できるというものです。 illustmimic.com 誰がこの文章を書いているか Shod…