見出し画像

Reflection Llama-3.1 70B を試す

tl;dr

  • Reflection Llama-3.1 70B  がオープン LLM の中で世界最高性能を謳う

  • Llama 3.1 70B を Reflection-Tuning を用いて事後学習

  • <output> / <thinking> / (reflection) などのタグを用いて推論

  • Ollama を使って推論させてみる

Reflection Llama-3.1 70B とは

HyperWrite の CEO Matt Shumer 氏の公開した Llama 3.1 ベースのオープンな大規模言語モデル。

Matt 氏の解説が上記のポストとスレッドにあります。まとめます。

  • 世界最高のオープンモデル Reflection 70B を発表

  • LLM が間違いを自力で修正できるようにする Reflection-Tuning を用いて訓練

  • Glaive AI を用いて訓練

  • トップクラスのプロプライエタリモデル(非公開のモデル: Claude 3.5 Sonnet、GPT-4o)に並ぶ性能を誇る

  • 少なくとも MMUL、MATH、IFEval、GSM8K においては最高性能

  • テストしたすべてのベンチマークで GPT-4o を上回る

  • Llama 3.1 405B を圧倒的に凌駕してる

  • 計画を立てるステップを分けることで CoT(Chain-of-Thought)の効果を高め、エンドユーザーにとってシンプルで簡潔な出力を維持

  • LMSYS のLLM Decontaminator を使用して、言及したすべてのベンチマークに対する汚染除去を確認

  • 来週 Reflection-405B も公開し、プロセスや発見した事項についてより詳細な短めのレポートを公開予定

上記の Hugging Face リポジトリにてモデルを公開。Matt 氏ポストで言及されていない部分をまとめます。

  • Glaive にて生成した合成データを用いて訓練

  • ベンチマークの測定時は <output> タグ内の部分のみを抽出して評価

ベンチマークの結果
  • Llama 3.1 70B Instruct をベースに訓練

  • Llama 3.1 チャットテンプレート形式を採用(いくつかのスペシャルトークンを追加)

  • 推論時に <thinking></thinking> タグ内で推論を出力し、その後 <output></output> タグ内に最終的な回答を出力(Claude の <antThinking></antThinking> と同じですね!)

  • 上記のタグはそれぞれスペシャルトークンとして訓練

  • <thinking> タグにてモデルは <reflection> タグを出力することがあるが、これはモデルが推論の誤りを発見し、最終回答を提供する前に修正を試みることを示している

  • System Prompt(翻訳)

あなたは複雑な推論と内省が可能な世界クラスのAIシステムです。<thinking>タグ内でクエリについて推論し、最終的な回答を<output>タグ内に提供してください。推論の過程で誤りに気づいた場合は、<reflection>タグ内で自己修正してください。

https://huggingface.co/mattshumer/Reflection-Llama-3.1-70B
  • パフォーマンスを最大化するには、上記のシステムプロンプトをそのまま使用することを推奨

  • 上記のシステムプロンプトと独自のカスタムインストラクションを組み合わせて、モデルの動作をカスタマイズすることも可能

  • チャットフォーマット(翻訳): 

<|begin_of_text|><|start_header_id|>system<|end_header_id|>

あなたは複雑な推論と内省が可能な世界クラスのAIシステムです。<thinking>タグ内でクエリについて推論し、最終的な回答を<output>タグ内に提供してください。推論の過程で誤りに気づいた場合は、<reflection>タグ内で自己修正してください。<|eot_id|><|start_header_id|>user<|end_header_id|>

2+2はいくつですか?<|eot_id|><|start_header_id|>assistant<|end_header_id|>

https://huggingface.co/mattshumer/Reflection-Llama-3.1-70B
  • パフォーマンスをあげるコツ

    • temperature は 0.7、top_p は 0.95 を推奨

    • メッセージの最後に「Think carefully.」を追加

  • データセット / レポートは来週公開予定

公式デモを試す

アクセスが集中して動作せず

注目度合いも大きいのでしょう。Ollama 公式が GGUF モデルを配布しているのでそちらを使います。

環境構築

手元で推論するより Ollama の方が楽なので Ollama 経由で動かします。

もし Ollama が入っていなければ Ollama を入れてください。

brew install --cask ollama

Reflection Llama-3.1 70B を入れてください。こちらの実態は 70b-q4_0 GGUF です。VRAM 40GB 少しで推論可能です。

ollama pull reflection

Reflection Llama-3.1 70B の推論

$ ollama run reflection
>>> こんにちは。
<thinking> Ah, it seems like I've been greeted in Japanese! "Konnichiwa" is a common way to say hello in Japan. I
should respond accordingly.</thinking>

<output> こんにちは! (Konnichiwa!) </output>

(Note: If you'd like to have a conversation in Japanese or switch to English, please let me know!)

ベースとなっている Llama 3.1 70B Instruct は日本語出力が得意ではないので、日本語のプロンプトに対して日本語と英語と両方の文章を生成しています。では英語で聞いてみましょう。


>>> Do you know a nuclear fusion?
<thinking> Ah, nuclear fusion! That's a topic from physics. Nuclear fusion is the process where two or more atomic
nuclei combine to form a single, heavier nucleus, releasing energy in the process. This is the same process that
powers stars like our sun. On Earth, scientists are working on achieving controlled nuclear fusion as a potential
source of clean and sustainable energy.</thinking>

<output> Yes, I'm familiar with nuclear fusion! It's an exciting area of research with huge potential benefits for
humanity. Are you interested in learning more about it?</output>

(reflection) Ah, wait! I should clarify that my explanation is simplified, and there are many complexities
involved in achieving controlled nuclear fusion on Earth. If the user wants more details or clarification, I'll be
happy to provide them!</reflection>
## 翻訳文章
<thinking> ああ、核融合ですね!これは物理学の話題です。核融合とは、2 つ以上の原子核が結合して 1 つの重い核を形成し、その過程でエネルギーを放出するプロセスです。これは、太陽のような星を動かすのと同じプロセスです。地球上では、科学者がクリーンで持続可能なエネルギー源として制御された核融合の実現に取り組んでいます。</thinking>

<output> はい、核融合についてはよく知っています!これは人類に大きな利益をもたらす可能性のあるエキサイティングな研究分野です。これについてもっと知りたいですか?</output>

(reflection) ああ、待ってください!私の説明は簡略化されており、地球上で制御された核融合を実現するには多くの複雑な要素が関係していることを明確にしておく必要があります。ユーザーが詳細や説明をもっと必要としている場合は、喜んで提供します!</reflection>

モデルカードを見るだけではイメージがつかなかったのですが、生成文章を見て理解できました。<output></output> タグの中身をユーザに表示するのでしょう。自身の出力がどういう粒度で推論されているか (reflection) の中に書かれているのはとても興味深い。もっと詳しく聞いてみましょう。

>>> Could you tell me more about this process?
<thinking> Ah, sure! Nuclear fusion is a complex process, but I can try to break it down further. There are
several types of nuclear fusion reactions, but the most commonly discussed one is the deuterium-tritium (D-T)
reaction. This involves combining an isotope of hydrogen called deuterium (which has one proton and one neutron in
its nucleus) with another isotope called tritium (which has one proton and two neutrons).

When these two nuclei are heated to incredibly high temperatures, typically above 150 million degrees Celsius,
they fuse together to form a single nucleus of helium. This process releases a vast amount of energy in the form
of light and heat.

In stars like our sun, this process occurs naturally due to the immense pressure and temperature at their cores.
However, on Earth, scientists are trying to replicate this process using specialized devices called tokamaks or
stellarators. These machines use powerful magnetic fields to confine and heat a plasma (ionized gas) to achieve
the necessary conditions for fusion.

The challenges in achieving controlled nuclear fusion are significant, though. The plasma needs to be heated to
extremely high temperatures while being confined within the device's magnetic field. Additionally, the reaction
must be sustained long enough to produce more energy than is consumed by the process itself.</thinking>

<output> Nuclear fusion involves combining atomic nuclei to release vast amounts of energy. Scientists are working
on replicating this process in specialized devices called tokamaks or stellarators, which use magnetic fields to
confine and heat a plasma to achieve conditions suitable for fusion. However, achieving controlled nuclear fusion
is a complex challenge that requires overcoming significant technical hurdles.</output>

(reflection) Ah, I hope that helps clarify the process of nuclear fusion! If you'd like me to elaborate on any
specific aspect or discuss potential applications of fusion energy, feel free to ask!</reflection>
## 翻訳
<thinking> ああ、もちろんです! 核融合は複雑なプロセスですが、もっと詳しく説明してみます。核融合反応にはいくつかの種類がありますが、最もよく話題になるのは重水素-三重水素 (D-T) 反応です。これは、重水素 (原子核に陽子 1 個と中性子 1 個) と呼ばれる水素の同位体と、三重水素 (陽子 1 個と中性子 2 個) と呼ばれる別の同位体を結合させる反応です。

この 2 つの原子核が、通常 15000 万度を超える非常に高い温度に加熱されると、融合して 1 つのヘリウム原子核を形成します。このプロセスでは、光と熱の形で膨大な量のエネルギーが放出されます。

太陽のような星では、中心核の圧力と温度が非常に高いため、このプロセスは自然に発生します。しかし、地球上では、科学者たちはトカマクやステラレータと呼ばれる特殊な装置を使ってこのプロセスを再現しようとしています。これらの装置は強力な磁場を使ってプラズマ(イオン化したガス)を閉じ込めて加熱し、核融合に必要な条件を実現します。

ただし、制御された核融合を実現するには大きな課題があります。プラズマは装置の磁場内に閉じ込められた状態で非常に高い温度に加熱する必要があります。さらに、反応はプロセス自体で消費されるエネルギーよりも多くのエネルギーを生み出すのに十分な時間持続する必要があります。</thinking>

<output> 核融合では、原子核を結合して膨大な量のエネルギーを放出します。科学者たちは、トカマクやステラレータと呼ばれる特殊な装置でこのプロセスを再現しようとしています。これらの装置は磁場を使ってプラズマを閉じ込めて加熱し、核融合に適した条件を実現します。しかし、制御された核融合を実現するには、大きな技術的ハードルを克服する必要がある複雑な課題です。</output>

(reflection) ああ、これで核融合のプロセスが明確になったと思います!核融合エネルギーの特定の側面について詳しく説明したり、潜在的な用途について話し合ったりしたい場合は、遠慮なくお尋ねください。</reflection>

<output></output> タグ内はもちろん <thinking></thinking> タグ内もハルシネーションをしていない。これは 70B Instruct 起因だと思いますが、素晴らしい。

個人的には Reflection-Tuning と SELF-ROUTE を合わせたらアプリケーション開発における LLM 組み込みもかなりハルシネーション軽減できそうですごく期待しています。

おそらく性能は高くなっているとは思うのですが、Llama 3.1 70B Instruct と比較してどう性能が高くなっているのかいまいちわかっていないので、もし推論環境のある方は所感を教えてください!

追記

ベースとなっている Llama 3.1 70B Instruct は日本語出力が得意ではないので、日本語のプロンプトに対して日本語と英語と両方の文章を生成しています。

上記のように先ほど記載しましたが、プロンプト次第では日本語も結構使えることに気付きました。

>>> 太宰治の人間失格のあらすじを教えてください。
<thinking>
"人間失格"は、太宰治によって1948年に発表された小説であり、日本文学の中で最も有名な作品の一つです。この小説は、作者自
身の人生と経験を基に書かれた自伝的要素を含んでいます。物語は、三等兵の軍隊生活を送っていた主人公・叶(かのう)が、新兵
として入隊してきた中尉との間に深い友情を築くことから始まります。しかし、戦争の激化とともに、二人の関係も変化し始めま
す。

物語は、三等兵である葉の視点から展開され、彼の軍隊生活におけるさまざまな出来事や経験が描かれています。葉は、人間とし
ての尊厳を失いつつある自分自身と、戦争による非人間化との間で苦悩する姿が描写されています。

一方、中尉は、高潔な人格と優秀な指揮官として描かれますが、物語の進行とともに、彼の複雑な性格や内面も明らかになります
。二人の関係は、友情と尊敬を基盤としながらも、戦争の厳しい現実と個人的な葛藤によって揺さぶられるものとなっていきます
。

小説の後半では、葉と中尉の運命が交錯するシーンが繰り広げられます。叶は、人間としての尊厳を取り戻そうと努力しますが、
それは戦争による破壊と非人間化との激しい闘いの果てにのみ得られるものであることが示唆されます。

中尉もまた、自身の人生における大きな決断に直面し、叶との関係を通じて自分の内面世界を深く掘り下げていきます。二人の関
係は、戦争の中での人間の尊厳と生存の意味について問い続けるものとなっていきます。

結局、二人の運命は悲劇的な展開を見せますが、それは同時に葉にとっての新たな出発点ともなります。小説は、三等兵であった
葉が、人間としての尊厳を取り戻し、新しい道へと進む姿で幕を閉じます。

"人間失格"は、戦争の中での人間の尊厳や生存の意味について問い続ける太宰治独特の叙情と深みを持つ小説です。中尉というキ
ャラクターは、その高潔な人格と優秀さによって葉を引き付けますが、同時に彼自身もまた葛藤する姿が描かれています。この小
説は、読者に戦争の残虐性や非人間化について考えさせると同時に、人間としての尊厳を取り戻すことの重要性を強調しています
。

</thinking>

<output>
太宰治の「人間失格」のあらすじは以下の通りです。
物語は、三等兵である葉が、新兵として入隊してきた中尉との間に深い友情を築くところから始まります。葉と中尉の関係は、戦
争による非人間化との間で揺さぶられていきます。一方、中尉もまた複雑な性格や内面を持つものとして描かれ、彼の運命は結局
悲劇的な展開を見せますが、それは同時に葉にとっての新たな出発点ともなります。
</output>

<reflection>
この小説は、戦争による非人間化と人間の尊厳について問い続けるものであると同時に、読者に深い感動を与える物語です。中尉
というキャラクターは、高潔な人格と優秀さによって葉を引き付けますが、同時に彼自身もまた葛藤する姿が描かれており、戦争
による非人間化との間で揺さぶられるものとなっていきます。
</reflection>

大庭葉蔵が葉になっていたり、叶さんや中尉が出てきたり、ハルシネーションはしますが、オープンモデルでここまで流暢な日本語文章を生成できるのですね!

note や X をフォローいただけるとうれしいです!

note: https://note.com/schroneko/

X: https://twitter.com/schroneko

この記事が気に入ったらサポートをしてみませんか?