BinaryFormatter が将来的に .NET から削除されるようです(つい最近まで知らなかった勢)。 Python の pickle 同様、低レイヤ API としてあくまでリスクがあっても使えるようにしてあるし、これからもそうであろうと思っていたので驚きました。 …
Python でジェネリック型の型パラメータをランタイム時に取得できる抽象を提供するライブラリ Reification を作りました。前回記事「Python のジェネリック型から実行時に型パラメータを取得する方法」の内容を綺麗に実装した感じです。
このライブラリを使用すると、ジェネリックなクラスにランタイムでその型パラメータを認識させ、それに基づいた動作をさせることができます。具体的なユースケースとしては、コードの動的型検査の強化や、型パラメータを動作上の意味付けとして利用することなどが考えられます。 …
ELYZA Japanese LLaMA 2 の 13B モデルがリリースされたのでお試しです。量子化済みモデルの中から fast-instruct-q5_K_M を選びました。
7B を扱った先回記事とだいたい同じ内容を Ubuntu で行っています。
Llama.cpp の Python バインディング (CPU) である llama-cpp-python は OpenAI 互換の API サーバーを内蔵しているので、ここに Chatbot UI (WEB フロントエンド) を接続することで、ChatGPT サービスのように WEB から ELYZA Japanese LLaMa 2 を使うことができます1。 …
Python の型ヒントには、ジェネリック型も存在します。しかし、現在の Python の実装では、ジェネリック型のインスタンスやクラスには、実行時に型パラメータの情報は一切残っていない(型消去的動作)です。
本記事では、Python のジェネリック型の型注釈で実行時に型パラメータを取れるようにする方法を紹介します。 …
昨年は、自分の最初の PyPI パッケージを公開しました。名前は「halftone-converter」で、AM ハーフトーン画像を作成するための画像変換機能 (CLI) を提供しています。 …
DiffBIR は、拡散過程に基づく画像復元モデルです。 Stable Diffusion の重みを利用しているようです。 …
大量のファイルを HTTP でダウンロードするときや、複数のタスクを並列に実行したいとき、プログラム自体を並列に書き直すのは手間がかかります。そこで、便利なのがシェルの xargs コマンドです。 GNU 版 xargs を使えば並列処理をお手軽に実現できます。 …
WEB フロントエンドの JavaScript 開発では、非同期の操作を行う必要が多々あります。コールバック関数はそれらシナリオで頻繁に使われますが、複雑になりがちで、複数のコールバック関数が絡まる問題、通称「コールバック地獄」と呼ばれる状況を生成します。
JavaScript は ES6 で Promise を導入し、ES7 では async/await 構文を提供しました。これらの新機能により、非同期コードをより一貫して読みやすい形式で表現することが可能です。この記事ではコールバック関数を Promise に変える方法を示します。 …
先回記事の続きです。前回紹介した Elyza の日本語言語モデル ELYZA Japanese LLaMa 2 を Chatbot UI から使えるようにしてみました。
Llama.cpp の Python バインディングである llama-cpp-python は OpenAI 互換の API サーバーを内蔵しているので、ここに Chatbot UI を接続することで、ChatGPT のように WEB から ELYZA Japanese LLaMa 2 を使うことができます1。 …
OSS を活用したクラウドサービス開発では、使用する OSS のライセンス管理が重要です。中でも、クラウド提供を頒布行為とみなす AGPL ライセンスの OSS が混入すると法律的な問題に発展する可能性があるため、これを確実に避ける必要があります。
今回は Python 開発において、ライセンス管理を助けてくれるツール pip-licenses について具体的な使用方法を紹介します。 …