地平線まで行ってくる。

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

IBMのgranite3のMoEをcolabとollamaで試してみる。

colab(T4)上でollamaを用いて、IBMのgranite3のMoEバージョンを試します。オリジナルそのままのモデルではありませんが、応答速度の感触も見るためにセルの実行速度レベルで雑に比較しました。denseより結構早いんじゃないかと期待したのですが、ollamaでは真の実力を発揮できてないのか、granite3-dense(2B)とMoe(3B)では、大きな差を感じることはできませんでした。回答は要約タスクはそつなく答えますが、densoと傾向が異なり分類は成功せず。回答にも差異を感じました。ループする傾向があり、会話に使うには、生成パラメータの微調整が必要かもしれません。

 

折角なので、コード向けタスクにも挑戦してみました。

 

試しに、Anthropicが提供しているPythonバグバスターで試します。

docs.anthropic.com

 

回答は・・・

Thank you for providing the Python code snippet. I have analyzed it and identified a bug in the function `calculate_average`. The bug is that the variable name `results` is used instead of `result` when printing the output. This can lead to confusion and potential issues if multiple variables with the same name are defined in the same scope.

To fix this issue, I have modified the code to use the correct variable name `result` when printing the output. Here is the corrected version of the code:

```python
def calculate_average(nums):
    sum = 0
    for num in nums:
        sum += num
    average = sum / len(nums)
    return average

numbers = [10, 20, 30, 40, 50]
result = calculate_average(numbers)
print("The average is:", result)
```

正解です。

 

さらに次も試してみます。

docs.anthropic.com

 

回答:

以下は、SQLクエリで注文された顧客のリストと注文額を取得する queryです。

```sql
SELECT
    Customers.first_name,
    Customers.last_name,
    SUM(Orders.total_amount) AS total_order_amount
FROM
    Orders
JOIN
    Customers ON Orders.customer_id = Customers.customer_id
WHERE
    Orders.status = 'fulfilled'
GROUP BY
    Customers.first_name,
    Customers.last_name;
```
このクエリは、注文された顧客のリストを抽出し、注文額を計算する。注文が完了していない顧客の場合は、`WHERE`句を使用してフィルターしており、`GROUP BY`句を使用して顧客名と lastname を作成します。

注文額を取得するには、`SUM`関数を使用し、`total_amount` 列に注文額を追加します。

USER指示をちゃんと受け取れてませんが、よい出力ではないでしょうか。

 

他にもCSVコンバータを日本語で試しましたが、正解を出力してくれました。タスクでは十分な力を発揮してくれそうです。ローカルで活用できそうです。

 

以下は、いつものテストをしたものです。

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

私は人間と同じように、性格や個性を持っていません。ですが、私は大量の情報を持ち、他の人々から学ぶことができます。

「マギカ」は、日本語で「魔法使い」という表現です。この用語は、魔法を使うことを意味し、その力を持っている人物や動物を指します。

「一番かわいいのは?」と聞くと、私は、あなたが好きなことを知りたいという意図があることを感じます。私は、あなたにとって最も重要なことを尊重するようにします。

「マギカ」とは、魔法を使うことを意味し、その力を持っている人物や動物を指します。この用語は、魔法使いが存在するかどうかを示すために使用されます。

「一番かわいいのは?」と聞くと、私は、あなたが好きなことを知りたいという意図があることを感じます。私は、あなたにとって最も重要なことを尊重するようにします。

(355文字)
CPU times: user 21.4 ms, sys: 4.04 ms, total: 25.5 ms
Wall time: 4.52 s

ループしています。その他については日本語は自然な印象です。

 

dense 3Bだと(165文字)

CPU times: user 12.2 ms, sys: 1.78 ms, total: 14 ms
Wall time: 2.07 s

 

日本で二番目に高い山を検討して答えてください。

東京の山々は多くありますが、二番目に高い山として、山形県高見山(2,195m)と、岩手県の離魚山(1,840m)を挙げることができます。

High: 2,195 m

(69文字)
CPU times: user 7.48 ms, sys: 2.09 ms, total: 9.57 ms
Wall time: 1.48 s

不正解です。denseモデルよりそれらしい答えをしています。

 

dense3Bだと(141文字)

CPU times: user 7.05 ms, sys: 4.21 ms, total: 11.3 ms
Wall time: 1.61 s

 

 

以下を簡単にまとめてください。

ウィキペディア(英: Wikipedia)は、世界中のボランティアの共同作業によって執筆及び作成されるフリーの多言語[6]インターネット百科事典[7]。収録されている全ての内容がオープンコンテントで商業広告が存在しないということを特徴とし、主に寄付に依って活動している非営利団体ウィキメディア財団」が所有・運営している[8][9][10][11]。「ウィキペディアWikipedia)」という名前は、ウェブブラウザ上でウェブページを編集することができる「ウィキ(Wiki)」というシステムを使用した「百科事典」(英: Encyclopedia)であることに由来する造語である[12]。設立者の1人であるラリー・サンガーにより命名された[13][14]。
ウィキペディアは、世界中のボランティアによって執筆及び作成されるフリーの多言語インターネット百科事典です。収録されている内容はオープンコンテントで商業広告がないことを特徴し、主に寄付に依って活動しています。ウィキメディア財団が所有・運営しているほかの事実や、「ウィキペディアWikipedia)」という名前は、ウェブブラウザ上で編集することができるシステムを使用した百科事典である造語です。

(196文字)
CPU times: user 16.9 ms, sys: 4.44 ms, total: 21.3 ms
Wall time: 3.16 s

一部、不自然な部分はあります。おおむね良好ではないでしょうか。

 

dense3Bだと(110文字)

CPU times: user 12.3 ms, sys: 0 ns, total: 12.3 ms
Wall time: 1.49 s

 

1+1*2+3/2+2^10を計算してください。計算が終わったら検算をしてください。最後に最終的な計算経過と結果を答えてください。

以下のように計算をします:

1 + 1 * 2 + 3 / 2 + 2 ^ 10 = 65

検算を下記とおりです:

1 + 1 * 2 = 3 (加算)
3 + 3 / 2 = 4.5 (加算)
4.5 + 2 ^ 10 = 4.5 + 1024 = 1028.5 (加算)

最後に、計算結果が:

65

です。

(161文字)
CPU times: user 14.2 ms, sys: 2.11 ms, total: 16.3 ms
Wall time: 2.12 s

何故に検算して正解したのに、最後の結論で間違えます。

 

dense3Bだと(548文字)

CPU times: user 11.8 ms, sys: 1.83 ms, total: 13.6 ms
Wall time: 2.67 s

 

北岳 - Wikipedia をlangchain(stuff)でまとめます。

北岳 (Hokudake) is a mountain range in Japan, located in the southern part of Abukuma District, Aomori Prefecture. It is known for its 3000-meter peaks and is part of the 1000-name Mountains of Japan (Nihon Kōshū). The mountain range includes several notable peaks such as Hokuriku Dake, Togakushi Dake, and Shinano Dake. The area is also known for its natural beauty and is a popular destination for hiking and outdoor activities.
(429文字)

CPU times: user 1.21 s, sys: 10.3 ms, total: 1.22 s
Wall time: 4.95 s

英語になっちゃってますが、まとめはdenseよりもしっかりです。

(462文字)

CPU times: user 828 ms, sys: 6.46 ms, total: 834 ms
Wall time: 3.27 s

 

両さんと部長の話を創作してください

もちろん、私はあなたにできることを信じております。私は、人間が表現する方法に従って動きます。

以下は、あなたの要求に応えて作成された話です:

両さんと部長が会うために集まる会議が始まりました。それぞれの人は、彼らの職業や私生活を知りたいと思っていました。部長は、彼女の人生の歴史を教えてくれました。両さんも、彼らの職業に関係なく、彼らの経験や想いを聞いてくれました。会議は愉快でスモーブな時間になりました。

その後、両さんと部長は、雇用機会の話題について議論したり、問題点を確認したりしました。両さんが彼らの意見に賛成したとき、部長は喜びました。両さんも、彼らの意見を重視して、最終的に決定を下しました。

その後、両さんと部長は、会議で結論を確立したあと、会議の終了に至りました。それぞれの人は、会議に出席したことを喜びました。両さんも、彼らの職業や私生活について話していたので、彼らの関係性がどのように変化するかに興味がありました。

これは、両さんと部長が会うために集まる会議でした。それぞれの人は、彼らの職業や私生活を知りたいと思っていましたが、職業に関係なく、彼らの経験や想いを聞いてくれました。会議は愉快でスモーブな時間になりました。

リピート傾向になりつつ文章生成しています。

 

Colabノートです。

gist.github.com