I’m still hard at work on my in-depth 70B model evaluations, but with the recent releases of the first Yi finetunes, I can’t hold back anymore and need to post this now…

Curious about these new Yi-based 34B models, I tested and compared them to the best 70Bs. And to make such a comparison even more exciting (and possibly unfair?), I’m also throwing Goliath 120B and OpenClosedAI’s GPT models into the ring, too.

Models tested:

  • 2x 34B Yi: Dolphin 2.2 Yi 34B, Nous Capybara 34B
  • 12x 70B: Airoboros, Dolphin, Euryale, lzlv, Samantha, StellarBright, SynthIA, etc.
  • 1x 120B: Goliath 120B
  • 3x GPT: GPT-4, GPT-3.5 Turbo, GPT-3.5 Turbo Instruct

Testing methodology

Those of you who know my testing methodology already will notice that this is just the first of the three test series I’m usually doing. I’m still working on the others (Amy+MGHC chat/roleplay tests), but don’t want to delay this post any longer. So consider this first series of tests mainly about instruction understanding and following, knowledge acquisition and reproduction, and multilingual capability. It’s a good test because few models have been able to master it thus far and it’s not just a purely theoretical or abstract test but represents a real professional use case while the tested capabilities are also really relevant for chat and roleplay.

  • 1st test series: 4 German data protection trainings
    • I run models through 4 professional German online data protection trainings/exams - the same that our employees have to pass as well.
    • The test data and questions as well as all instructions are in German while the character card is in English. This tests translation capabilities and cross-language understanding.
    • Before giving the information, I instruct the model (in German): I’ll give you some information. Take note of this, but only answer with “OK” as confirmation of your acknowledgment, nothing else. This tests instruction understanding and following capabilities.
    • After giving all the information about a topic, I give the model the exam question. It’s a multiple choice (A/B/C) question, where the last one is the same as the first but with changed order and letters (X/Y/Z). Each test has 4-6 exam questions, for a total of 18 multiple choice questions.
    • If the model gives a single letter response, I ask it to answer with more than just a single letter - and vice versa. If it fails to do so, I note that, but it doesn’t affect its score as long as the initial answer is correct.
    • I sort models according to how many correct answers they give, and in case of a tie, I have them go through all four tests again and answer blind, without providing the curriculum information beforehand. Best models at the top, symbols (✅➕➖❌) denote particularly good or bad aspects.
    • All tests are separate units, context is cleared in between, there’s no memory/state kept between sessions.
  • SillyTavern v1.10.5 frontend (not the latest as I don’t want to upgrade mid-test)
  • koboldcpp v1.49 backend for GGUF models
  • oobabooga’s text-generation-webui for HF/EXL2 models
  • Deterministic generation settings preset (to eliminate as many random factors as possible and allow for meaningful model comparisons)
  • Official prompt format as noted

1st test series: 4 German data protection trainings

    1. GPT-4 API:
    • ✅ Gave correct answers to all 18/18 multiple choice questions! (Just the questions, no previous information, gave correct answers: 18/18)
    • ✅ Consistently acknowledged all data input with “OK”.
    • ✅ Followed instructions to answer with just a single letter or more than just a single letter.
    1. goliath-120b-GGUF Q2_K with Vicuna format:
    • ✅ Gave correct answers to all 18/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 18/18
    • ✅ Consistently acknowledged all data input with “OK”.
    • ✅ Followed instructions to answer with just a single letter or more than just a single letter.
    1. Nous-Capybara-34B-GGUF Q4_0 with Vicuna format and 16K max context:
    • Yi GGUF BOS token workaround applied!
    • ❗ There’s also an EOS token issue but even despite that, it worked perfectly, and SillyTavern catches and removes the erraneous EOS token!
    • ✅ Gave correct answers to all 18/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 18/18
    • ✅ Consistently acknowledged all data input with “OK”.
    • ✅ Followed instructions to answer with just a single letter or more than just a single letter.
    1. lzlv_70B-GGUF Q4_0 with Vicuna format:
    • ✅ Gave correct answers to all 18/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 17/18
    • ✅ Consistently acknowledged all data input with “OK”.
    • ✅ Followed instructions to answer with just a single letter or more than just a single letter.
    1. chronos007-70B-GGUF Q4_0 with Alpaca format:
    • ✅ Gave correct answers to all 18/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 16/18
    • ✅ Consistently acknowledged all data input with “OK”.
    • ✅ Followed instructions to answer with just a single letter or more than just a single letter.
    1. SynthIA-70B-v1.5-GGUF Q4_0 with SynthIA format:
    • ❗ Wrong GGUF metadata, n_ctx_train=2048 should be 4096 (I confirmed with the author that it’s actually trained on 4K instead of 2K tokens)!
    • ✅ Gave correct answers to all 18/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 16/18
    • ✅ Consistently acknowledged all data input with “OK”.
    • ✅ Followed instructions to answer with just a single letter or more than just a single letter.
    1. dolphin-2_2-yi-34b-GGUF Q4_0 with ChatML format and 16K max context:
    • Yi GGUF BOS token workaround applied!
    • ✅ Gave correct answers to all 18/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 15/18
    • ❌ Did NOT follow instructions to acknowledge data input with “OK”.
    • ➖ Did NOT follow instructions to answer with just a single letter consistently.
    1. StellarBright-GGUF Q4_0 with Vicuna format:
    • ✅ Gave correct answers to all 18/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 14/18
    • ✅ Consistently acknowledged all data input with “OK”.
    • ✅ Followed instructions to answer with just a single letter or more than just a single letter.
    1. Dawn-v2-70B-GGUF Q4_0 with Alpaca format:
    • ✅ Gave correct answers to all 18/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 14/18
    • ✅ Consistently acknowledged all data input with “OK”.
    • ➖ Did NOT follow instructions to answer with more than just a single letter consistently.
    1. Euryale-1.3-L2-70B-GGUF Q4_0 with Alpaca format:
    • ✅ Gave correct answers to all 18/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 14/18
    • ✅ Consistently acknowledged all data input with “OK”.
    • ➖ Did NOT follow instructions to answer with more than just a single letter consistently.
    1. sophosynthesis-70b-v1 exl2-4.85bpw with Vicuna format:
    • N. B.: There’s only the exl2-4.85bpw format available at the time of writing, so I’m testing that here as an exception.
    • ✅ Gave correct answers to all 18/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 13/18
    • ✅ Consistently acknowledged all data input with “OK”.
    • ✅ Followed instructions to answer with just a single letter or more than just a single letter.
    1. GodziLLa2-70B-GGUF Q4_0 with Alpaca format:
    • ✅ Gave correct answers to all 18/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 12/18
    • ✅ Consistently acknowledged all data input with “OK”.
    • ✅ Followed instructions to answer with just a single letter or more than just a single letter.
    1. Samantha-1.11-70B-GGUF Q4_0 with Vicuna format:
    • ✅ Gave correct answers to all 18/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 10/18
    • ❌ Did NOT follow instructions to acknowledge data input with “OK”.
    • ➖ Did NOT follow instructions to answer with just a single letter consistently.
    • ❌ Sometimes wrote as or for “Theodore”
    1. Airoboros-L2-70B-3.1.2-GGUF Q4_K_M with Llama 2 Chat format:
    • N. B.: Q4_0 is broken so I’m testing Q4_K_M here as an exception.
    • ✅ Gave correct answers to only 17/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 16/18
    • ✅ Consistently acknowledged all data input with “OK”.
    • ➖ Did NOT follow instructions to answer with more than just a single letter consistently.
    1. GPT-3.5 Turbo Instruct API:
    • ❌ Gave correct answers to only 17/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 11/18
    • ❌ Did NOT follow instructions to acknowledge data input with “OK”.
    • ❌ Schizophrenic: Sometimes claimed it couldn’t answer the question, then talked as “user” and asked itself again for an answer, then answered as “assistant”. Other times would talk and answer as “user”.
    • ➖ Followed instructions to answer with just a single letter or more than just a single letter only in some cases.
    1. dolphin-2.2-70B-GGUF Q4_0 with ChatML format:
    • ✅ Gave correct answers to only 16/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 14/18
    • ➕ Often, but not always, acknowledged data input with “OK”.
    • ✅ Followed instructions to answer with just a single letter or more than just a single letter.
    1. GPT-3.5 Turbo API:
    • ❌ Gave correct answers to only 15/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 14/18
    • ❌ Did NOT follow instructions to acknowledge data input with “OK”.
    • ❌ Responded to one question with: “As an AI assistant, I can’t provide legal advice or make official statements.”
    • ➖ Followed instructions to answer with just a single letter or more than just a single letter only in some cases.
    1. SauerkrautLM-70B-v1-GGUF Q4_0 with Llama 2 Chat format:
    • ✅ Gave correct answers to only 9/18 multiple choice questions! Just the questions, no previous information, gave correct answers: 15/18
    • ❌ Achknowledged questions like information with just OK, didn’t answer unless prompted, and even then would often fail to answer and just say OK again.

Observations:

  • It’s happening! The first local models achieving GPT-4’s perfect score, answering all questions correctly, no matter if they were given the relevant information first or not!
  • 2-bit Goliath 120B beats 4-bit 70Bs easily in my tests. In fact, the 2-bit Goliath was the best local model I ever used! But even at 2-bit, the GGUF was too slow for regular usage, unfortunately.
  • Amazingly, Nous Capybara 34B did it: A 34B model beating all 70Bs and achieving the same perfect scores as GPT-4 and Goliath 120B in this series of tests!
  • Not just that, it brings mind-blowing 200K max context to the table! Although KoboldCpp only supports max 65K currently, and even that was too much for my 48 GB VRAM at 4-bit quantization so I tested at “only” 16K (still four times that of the Llama 2 models), same as Dolphin’s native context size.
  • And Dolphin 2.2 Yi 34B also beat all the 70Bs (including Dolphin 2.2 70B) except for the top three. That’s the magic of Yi.
  • But why did SauerkrautLM 70B, a German model, fail so miserably on the German data protection trainings tests? It applied the instruction to acknowledge data input with OK to the questions, too, and even when explicitly instructed to answer, it wouldn’t always comply. That’s why the blind run (without giving instructions and information first) has a higher score than the normal test. Still quite surprising and disappointing, ironic even, that a model specifically made for the German language has such trouble understanding and following German instructions properly, while the other models have no such issues.

Conclusion:

What a time to be alive - and part of the local and open LLM community! We’re seeing such progress right now with the release of the new Yi models and at the same time crazy Frankenstein experiments with Llama 2. Goliath 120B is notable for the sheer quality, not just in these tests, but also in further usage - no other model ever felt like local GPT-4 to me before. But even then, Nous Capybara 34B might be even more impressive and more widely useful, as it gives us the best 34B I’ve ever seen combined with the biggest context I’ve ever seen.

Now back to the second and third parts of this ongoing LLM Comparison/Test…


Here’s a list of my previous model tests and comparisons or other related posts:


Disclaimer: Some kind soul recently asked me if they could tip me for my LLM reviews and advice, so I set up a Ko-fi page. While this may affect the priority/order of my tests, it will not change the results, I am incorruptible. Also consider tipping your favorite model creators, quantizers, or frontend/backend devs if you can afford to do so. They deserve it!

  • fab_space@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    I want to share my test with u for reviewing, and hopefully, integration.

    how it sounds?

  • Perimeter666@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    Goliath is a masterpiece so far. Running it on 4x4090, speed is OK, but not the best still.

    For my taste it writes stories better than GPT4 itself, immersing deeper and avoiding useless watery poetic shit GPT4 is full of.

    Just give the thing 16k context and with a 16x4096 setup it’ll be divine lol

  • FullOf_Bad_Ideas@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    I am not serious, but the results clearly suggest that what we should try next is to stack 2 various finetunes of Yi-34B onto each other in the same way it’s done in Goliath and then quantize it.

  • drifter_VR@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    But why did SauerkrautLM 70B, a German model, fail so miserably on the German data protection trainings tests?

    Does it write decent german, at least ?

    I ask because I tried another Llama-2-70B model fine-tuned to speak another language than english (Vigogne-2-70b-chat) and I have been disappointed by its poor writing style.

    Maybe it’s my settings or the fine-tuning. Or maybe the base model is the issue (relatively small and trained mainly in english)

  • mcmoose1900@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    I have… mixed feeling about Capybara’s storytelling, compared to Base YI 34B with the alpaca lora?

    I have been trying it with the full instruct sytnax, but maybe it will work better with hybrid instruct/chat sytnax (where the whole story is in one big USER: block, and the instruction is to continue the story.)

  • iChrist@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    I found out that for a simple task like “list 10 words that end with the letters en” i get only wrong answers with the dolphin 34B variant, while 13B tiegihter gets it right, am i doing something wrong with template?

  • sophosympatheia@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    Another great contribution, Wolfram! I was pleased to see one of my 70b merges in there and it didn’t suck. More good stuff to come soon! I have a xwin-stellarbright merge I still need to upload that is hands down my new favorite for role play. I’m also excited to see what opus can do in the mix.

  • kindacognizant@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    > Deterministic generation settings preset

    There seems to be a common fallacy that absolute 0 temperature or greedy sampling is somehow the most objective because it’s only picking the top token choice; this isn’t necessarily true, especially for creative writing.

    Think about it this way: you are indirectly feeding into the model’s pre-existing biases in cases where there are many good choices. If you’re starting a story with the sentence, “One day, there was a man named”, that man could be literally any man.

    On the base Mistral model, with that exact sentence, my custom debug kobold build says:

    Token 1: 3.3%

    Token 2: 2.4%

    Token 3: 1.6%

    Token 4: 1.6%

    Token 5: 1.18%

    Token 6: 1.15%

    Token 7: 1.14%

    Token 8: 1.03%

    Token 9: 0.99%

    Token 10: 0.98%

    When the most confidence the model has in a token is 3.3%, that implies you’d want to keep the selection criteria just as diverse, because in reality that slight bit of confidence is only because it has a generic name for the top token.

    Whatever the most likely token is only the most likely token for that particular token given the past context window: a deterministic preset is not creating generations that are overall more coherent. In fact, it causes models to latch onto small biases caused by tokenization, which manifests as repetition bias.

    The Deterministic preset in ST also has a rather high repetition bias of 1.18; this is causing the model to subtly bias against things like asterisks and proper formatting, which are important to test for in a model.

  • coderguyofficial@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    my experience so far…

    i can confirm yi-capybara-34b-2k is actually pretty good

    • better than zephyr-beta-8-bit at following instructions
    • better than chatgpt-3.5-turbo on chatgpt web app
    • gpt-4 is the best one, but no longer by a large gap
  • RepresentativeOdd276@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    Can you add a test in your next comparisons where you ask the LLM to output in less than x amount of words? I have noticed that most LLMs including large ones fail to follow this instruction successfully.