地平線まで行ってくる。

記録あるいは忘備録。時には検討事項。

Fine_tune_Gemma_models_in_Keras_using_LoRAを試す

Googleが発表したGemma。2Bモデルをファインチューニングをサンプルコードを使ってやってみました。せっかくなので、データセットを日本語databricks-dolly-15k-jaを使ってみます。Kaggleからモデルをダウンロードするので、対応する部分を整備して実行。

 

github.com

 

ファインチューニング前:

prompt = template.format(
    instruction="どうやってヨーロッパに行きますか?",
    output="",
)
print(gemma_lm.generate(prompt, max_length=256))
Instruction:
どうやってヨーロッパに行きますか?

Response:
私は飛行機で行く。

Instruction:
どうやってヨーロッパに行きますか?

Response:
私は飛行機で行く。

Instruction:
どうやってヨーロッパに行きますか?

Response:
私は飛行機で行く。

 

ファインチューニング後

prompt = template.format(
    instruction="どうやってヨーロッパに行きますか?",
    output="",
)
print(gemma_lm.generate(prompt, max_length=256))
Instruction:
どうやってヨーロッパに行きますか?

Response:
ヨーロッパは、いくつかの主要な空港と鉄道で easyjeteasyjet が接続されています。
ヨーロッパの主要な空港は、ロンドン、ブリュッセル、パリ、アムステルダム、フランクフルト、ベルリン、ブダペストミュンヘン、ウィーン、ストックホルムストックホルムヘルシンキなどです。

 

もう一つ、ファインチューニング後

prompt = template.format(
    instruction="光合成の仕組みを子どもにもわかるように説明してください。",
    output="",
)
print(gemma_lm.generate(prompt, max_length=256))
Instruction:
光合成の仕組みを子どもにもわかるように説明してください。

Response:
光合成は、植物が光とCO2を反応させて、糖とO2を生成する反応を指します。この反応には光エネルギー、CO2、H2O、O2、糖、ADP、ATP、H+が必要になります。この反応は、光触媒光触媒の働きで進行します。

 

用途を限定して使いやすいようにするという流れも加速するのでしょうね。

 

Pipenvでhashエラー

Pipenv installでhash値のエラーが生じて困っていた。ライブラリーの依存性が解消されないだけだと思って試行錯誤していたが、どうも様子がおかしい。調べてみると、同じようなところで悩んでいる方が・・・。

 

github.com

 

参考にして

 

$ pipenv --rm
$ sudo apt install unixodbc-dev unixodbc
$ sudo apt clean
$ sudo mv /etc/pip.conf /etc/_pip.conf
$ pipenv --clear
$ pipenv install

 

で解消した。pip.confがいたずらしていたってこと?

Qwen1.5を試す。

Qwenは優秀なモデルということらしいので、早速試して見た。

 

  • Qwen1.5-7B-Chat-GPTQ-Int8"
  • Qwen1.5-7B-Chat-AWQ"
  • Qwen/Qwen1.5-14B-Chat-AWQ"

 

の順で試して見て・・・7Bだといまいちだったので、14Bまでcolab(無料)でお試し。


Qwen1.5-14B-Chat-AWQ

質問:日本で1番目に高い山は富士山です。それでは2番目に高い山は?

回答:日本の2番目に高い山は、秩父山脈の最高峰である槍ヶ峰(やぎがけ)です。標高は2,999メートルです。

これには答えたが、まどかマギカチェックの答えはこれでいいのか?中国語名なのだろうか・・・しらんけど。

 

質問:まどか☆マギカで一番かわいいのは?

答え:「まどか☆マギカ」のキャラクターはそれぞれ魅力があり、誰が最もかわいらしいかは個人差があります。一般的には、子供たちのキャラクターたちは非常に可愛く描写されています。特に、主人公・鞍马前髪(Madoka)と彼女の友人・峰岸南(Homura)が人気があります。

- 鞍馬前髪 (Madoka):物語の中心人物であり、純粋で優しい性格で、子供たちの中でも最も親しみやすい存在として愛されています。
- 峰岸南 (Homura):冷静で頑強な性格ですが、Madokaに深い思いを持ち、成長していく姿に多くのファンが惹かれます。
- 野上幸姬 (Kaname):美しく優雅で、また知性も兼ね備えた人物で、ファンから支持されています。

ただし、アニメやマンガの好みによっては、他のキャラクターがもっとかわいく感じる人もいるかもしれません。それぞれのキャラクターが異なる魅力を持っているため、自分にとって最もかわいらしいキャラクターを見つけることが大切です。

 

要約も悪くないが、カタカナは弱いのだろうか。

 

github.com

 

NextCloudの設定メモ

NextCloudは、クラウドストレージを構築する便利なOSSクラウドストレージだけでなく、メールクライアントやチャットなど一通りの環境をクラウドに構築できる。便利に使ってきたが、警告や不具合の解消を実用上問題ない程度解消したのでメモ。

 

PHPはほとんど知識がない。


警告解消 

twinturbo-power.com

 

Cornが動かないぞ

updateなど定期的に起こさないといけないので、cornにて設定するが、動作していない。個人利用なので、cornでやらなくても大きな問題はないけれども、あまりよろしくもない。

お試しで単独で動作させてみると、エラー吐いている。

 

OC\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)

 

APCuは有効になっているんだけれども、php.init見直したりしたが解決できず。

 

help.nextcloud.com

 

上記を参考にphpに明示的に渡してみると。

 

php --define apc.enable_cli=1 /home/hogehoge/nextcloud/corn.php

 

上記のように引数 apc.enable_cli=1 を渡すことでエラー回避。

 

NextCloud便利なんだよなぁ。主に、スマホのストレージと同期させたり、テスト用メールアカウントの閲覧管理にも便利。

 

wsl2とcuda: libcuda.so.1 is not a symbolic link

WSL2でcuda周りと思われるエラー。

libcuda.so.1 is not a symbolic link

と。realなファイルでsymbolic linkじゃないと叱られる。

 

github.com

 

/etc/wsl.confにautomount項目に記述を追加。

echo -e "[automount]\nldconfig = false" | sudo tee -a /etc/wsl.conf

シンボリックにしてしまう。

 
sudo mkdir /usr/lib/wsl/lib2
sudo ln -s /usr/lib/wsl/lib/* /usr/lib/wsl/lib2
echo /usr/lib/wsl/lib2 | sudo tee /etc/ld.so.conf.d/ld.wsl.conf

以上でエラー回避。system32に直接変更しないでできるの利点。ただ、update時に改めて対処しなおさないといけない、とか、ありそうなので注意かな。

 

他のやり方。

github.com

 

system32の中身を直接、symbolic linkに弄ってもできる。windows本体とwsl2環境は出来るだけ分離しておきたいので前者で対応。

 

wsl2、まだ慣れないな・・・。

 

 

 

nitky/Superswallow-7b-v0.1を再び試してみる。

生成テキストに繰り返しが頻繁に行われるので、パラメータの影響かもしれないと思って弄っていた。

bwgift.hatenadiary.jp

 

しかし、model cardにしっかり追記されてた。そこで改めてトライ。

 

github.com

 

生成される回答がかなりしっかりに。他の生成テキストを見ても7Bのモデルでここまでできるようになったんですね。これからが楽しみです。

 

### 入力:
日本で一番寒い地方はどこか教えてください。

### 応答:
北海道は日本で最も寒い地域です。北海道は北極圏に位置し、冬は氷点下まで気温が下がることも珍しくありません。この地域に住む人々は厳しい寒さに適応するために厚手の衣類や暖房設備などを利用している傾向があります。また、北海道は国内でも雪が多い地域として知られています。特に札幌市は全国的に有名なスキーリゾートエリアとなっています。

 

nitky/Superswallow-7b-v0.1を試してみる。

LLMのモデルをマージするのが流行っているらしい。そこで、nitky/Superswallow-7b-v0.1というモデルを試して見た。7Bなので、Colabの無料枠で実行できるかも・・・と思ってチャレンジ。

 

モデルはこちら。作成者に感謝。

huggingface.co

 

使ったColabはこちらです。

github.com

 

長くなるので結果は一部だけ転記します。知識があるものについては、長文になっても、いい感じのそれなりの答えを返してくれます。知識が少ないものは繰り返しが激しい印象でした。しかし、ここまでできればローカルLLMも楽しくなってきますね。

 

タスクを限定したり、知識を限定したりすると、いい感じになるのではないだろうか。その時にどういうマージのやり方が効率がいいのか、というのはドンドン進んでいくのでしょうか。

 

質問:アジアで有名な観光地と名物を詳しく述べてください。

 

答え:アジアにはたくさんの有名な観光地があります。例えば、インドのタージ・マハル、中国の万里の長城、タイのワット・プラケオ、ベトナムハロン湾、韓国のソウル、日本の富士山、インドネシアのバリ島、フィリピンのマニラ湾、シンガポールマーライオン像、ネパールのエベレストなどです。また、アジアにはさまざまな名物料理があります。例えば、インドのバターチキン、タイのトムヤムクンベトナムのフォー、韓国のキムチ、日本の寿司、タイのトムヤムクンインドネシアナシゴレン、フィリピンのアドボ、シンガポールのチキンライス、ネパールのダルバードなどです。これらの料理は、それぞれの国の伝統的な料理であり、多くの観光客が訪れて味わっています。また、アジアには多くの伝統的な文化や歴史があり、観光客にとって魅力的な体験がたくさんあります。例えば、インドのガンジス川での祈り、中国の万里の長城の見学、タイの寺院の参拝、ベトナムの水上市場の見学、韓国の伝統的な宮廷料理の体験、日本の茶道の体験、タイの伝統的な舞踊の鑑賞、インドネシアの伝統的な楽器の演奏、フィリピンの伝統的なダンスの鑑賞、シンガポールのナイトサファリの体験などです。これらの体験は、それぞれの国の伝統的な文化や歴史を知ることができ、観光客にとって貴重な体験となります。また、アジアには多くの自然の魅力もあります。例えば、インドのヒマラヤ山脈、中国の黄河、タイのプーケット島、ベトナムハロン湾、韓国の済州島、日本の富士山、インドネシアのバリ島、フィリピンのボホール島、シンガポールセントーサ島、ネパールのエベレストなどです。これらの自然の魅力は、観光客にとって素晴らしい体験となります。また、アジアには多くの世界遺産があります。例えば、インドのタージ・マハル、中国の万里の長城、タイのアユタヤ、ベトナムハロン湾、韓国のソウル、日本の奈良の仏教寺院、インドネシアのボロブドゥール、フィリピンのマニラ湾、シンガポールセントーサ島、ネパールのエベレストなどです。これらの世界遺産は、それぞれの国の歴史や文化を知ることができ、観光客にとって魅力的な体験となります。最後に、アジアには多くの観光地があり、それぞれに魅力があります。観光客は、それぞれの目的に合わせて、自分の好みに合った観光地を選ぶことができます。また、アジアには多くの名物料理があり、それぞれの国の伝統的な料理を味わうことができます。また、アジアには多くの伝統的な文化や歴史があり、観光客にとって魅力的な体験がたくさんあります。また、アジアには多くの自然の魅力もあります。また、アジアには多くの世界遺産があり、それぞれの国の歴史や文化を知ることができます。これらの魅力は、観光客にとって素晴らしい体験となります。</s>

 

vLLMでQweb_7b_chat_AWQを試す

バッチで高速なLLM処理を実現しているというvLLMを試して見た。Qwebも触ってみたかったので、colabの無料枠で動くか実験しました。

 

github.com

 

vLLMは対応していモデルであればすぐに動く。動かしたときにはbugがあり、LLMで生成部分を2度実行するとエラーとなる。github issuesを参照するとfixはもうじき反映されるようだ。ドキュメントもパラメータが一部しか例示されてない。これから整備されていくのが楽しみだ。

 

github.com

 

文章は、あまり破綻してなさそうだけれども、正解にはなかなか厳しい結果となった。rinna社のQwenモデルだったら違うのかもしれない。また、OpenAI API互換サーバーとしても動作できる。API動作速度時のベンチマークはどうなのだろう。気になるところ。

 

user
魔法少女まどか☆マギカで1番好きなキャラクターは?assistant
私は、魔法少女まどか☆マギカで一番好きなキャラクターは、魔法少女エマリアです。エマリアは、まどかの青梅竹马であり、とても可愛くて、まどかとの出会いをする前に、エマリアのことが大好きでした。また、エマリアは、まどかのためになることを決意し、私達を支えてくれるようになるために頑張っています。私たちは一緒に成長し、互いに変化しています。エマリアの存在は私にとって、魔法少女まどかの存在が大切な意味を持ち、私にとってかけがちな人物です。

user
ドラえもんの主人公は?
assistant
ドラえもんの主人公は、大正芳人的声優である藤子・F.不二氏が声優監督を担当しました。

user
日本で2番目に高い山はどこにありますか。
assistant
日本で2番目に高い山は富士山です。富士山は、日本で有名な山です。

user
日本の首相を調べるにはどうしたらいいでしょう。assistant
日本の首相を調べるには、次のようなことができます。

  1. 自由党首相官邸首相官邸のホームページを確認し、首相の情報を確認することができます。
  2. 自由党の公式ブログや公式Twitterアカウントなどを確認し、首相の最新情報を確認することができます。また、公式YouTubeチャンネルや公式Facebookページなどを確認し、首相の最新情報を確認することができます。

これらの情報源を使用することで、日本の首相を調べることができます。

 

GGUF version の rinna/nekomata-7b-instructionをColabでお試し

 GGUF version の rinna/nekomata-7b-instructionをColabでお試ししました。

 

huggingface.co

 

さっそく、colaboratoryで・・・。

 

github.com

 

結果。要約はもうちょっと頑張って欲しい気がしますが、7Bモデルでかつ量子化モデルがどんどん実用的になってきた感じがします。


※要約

大規模言語モデル(だいきぼげんごモデル、英: large language model、LLM)は、多数のパラメータ(数千万から数十億)を持つ人工ニューラルネットワークで構成されるコンピュータ言語モデルで、膨大なラベルなしテキストを使用して自己教師あり学習または半教師あり学習によって訓練が行われる。

答え

 LLM(だいきぼげんごモデル、英: large language model、LLM)は、人工ニューラルネットワークで構成されるコンピュータ言語モデルで、多数のパラメータ(数千万から数十億)を持ちます。教師あり学習によって訓練が行われる。

※Q&A

質問

日本の有名な観光地を理由と共に数を多く答えてください。

答え

1.京都 - 日本有数の観光都市です。
2.広島平和記念公園 - 現存する原爆ドームとともに、世界遺産に登録されています。
3.宮崎市 - 神話や伝説の舞台である。

 

 

Swallow-7bを試す。

日本語に強いLlama2ベースのモデル。

 

日本語に強い大規模言語モデル「Swallow」を公開 英語が得意な大規模言語モデルに日本語を教える | 東工大ニュース | 東京工業大学

 

細かい工夫を積み重ねていて期待できそう。しかも、7Bモデルはcolabで動かせそうなので挑戦してみました。

 

github.com

 

幾つか試して見ました。要約は、文章の意味合いが変わる答えもあり。だが、7Bモデルだってことを考えると高い性能ではないでしょうか。

 

-------

指示:アジアで有名な観光地と名物を詳しく述べてください。

答え:

アジアで最も有名な観光地の1つは、タイのバンコクにあるワット・ポーの黄金仏です。また、タイの伝統的な舞踊であるムエタイや、タイの北端にあるチェンマイのナイトマーケットなど、タイが提供するものを楽しむこともできます。 ベトナムハノイにあるバディン寺は、ハノイの象徴的な寺院です。また、ベトナムはアジアで最も多様な料理を提供していることでも知られています。フォーやコムガーなどの伝統的な料理のほか、揚げパンのバインミーを楽しむことができます。 シンガポールにあるマリーナ・ベイ・サンズは、シンガポールを代表する建物です。この建物は、海に浮かぶ巨大なインフィニティプールで知られています。シンガポールの歴史は、マーライオンなどの象徴的な存在によって特徴づけられています。 インドのケララ州にあるアレッピーは、マングローブの森の真ん中にある伝統的な漁村で、映画『The Motorcycle Diaries』の撮影が行われた。ケララ州は、アーユルヴェーダと呼ばれる伝統的な癒しの実践を世界に普及させたことで有名です。 最後に、中国の北京にある天安門は、中国を代表するランドマークです。天安門は、中国の歴史と文化が反映された場所であるだけでなく、多くの中国人の人生における通過儀礼の場所でもあります。 これらはアジアで最も有名な観光地の一例です。あなたの旅行によっては、これらの場所を訪れることができるかもしれませんし、できないかもしれません。


指示:以下の文章をまとめてください。

"赤血球は血液細胞の一つで色は赤く血液循環によって体中を回り、肺から得た酸素を取り込み、体のすみずみの細胞に運び供給する役割を担い、また二酸化炭素の排出にも関わる。赤血球の内部には鉄を含むタンパク質ヘモグロビンが充満しており、赤血球はヘモグロビンに酸素を取り込む。大きさは直径が7-8μm、厚さが2μm強ほどの両面中央が凹んだ円盤状であり、数は血液1μLあたり成人男性で450-650万個、成人女性で380-580万個程度で血液の容積のおよそ4-5割程度が赤血球の容積である。"

 

答え:

赤血球は血液細胞の一種で、血球中の最大の細胞であり、体に酸素を供給する。赤血球は円盤状の細胞で、体の他の細胞に酸素を運ぶ。 赤血球の大きさは、約0.7から1.0μmである。その表面積は、細胞の直径に等しい。つまり、赤血球の表面積は、直径の2乗に比例する。


指示:以下の文章を50字でまとめてください。

"赤血球は血液細胞の一つで色は赤く血液循環によって体中を回り、肺から得た酸素を取り込み、体のすみずみの細胞に運び供給する役割を担い、また二酸化炭素の排出にも関わる。赤血球の内部には鉄を含むタンパク質ヘモグロビンが充満しており、赤血球はヘモグロビンに酸素を取り込む。大きさは直径が7-8μm、厚さが2μm強ほどの両面中央が凹んだ円盤状であり、数は血液1μLあたり成人男性で450-650万個、成人女性で380-580万個程度で血液の容積のおよそ4-5割程度が赤血球の容積である。"

 

答え:

赤血球は、血液循環により全身に酸素を運ぶ役割を担う血球細胞のひとつであり、赤く、大きさは直径が7-8μm、厚さが2μm強で、2μm強の凹んだ円盤状であり、体中のあらゆる細胞に酸素を供給する働きがある。また、二酸化炭素の排出も担う。