Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Agreed mate! Thank you for your honesty.

When I started building this application, I wanted it to be as user-friendly and simple to use as possible. Unfortunately I have deviated greatly from that, partly due to bringing in a lot of new features, and partly due to realizing that there is no one-shoe-fits-all scenario in this very complex work of OCR + translation of multiple languages, formats, styles etcetera. It's necessary to have this many knobs, to support all cases. However, to solve both issues in one, my intention for the future is to keep many of these behind "Advanced" feature gates. Hopefully I can squeeze some of that in next week too.

I have actually had an idea for an UX friendly first time setup that will try to be a one-shot-fits-all scenario as much as possible, by asking the user a few questions and then setting the application up to adhere to those answers. I think that alone would do wonders for user retention.

I could try to help you with the LLAMA setup if you'd like. Is there a specific language pair you'd like to use, and what problems are you having exactly? Completely incomprehensible results, or just bad translation output?

(4 edits)

” I have actually had an idea for an UX friendly first time setup that will try to be a one-shot-fits-all scenario as much as possible, by asking the user a few questions and then setting the application up to adhere to those answers. I think that alone would do wonders for user retention. “

Yes, I agree. You know the app best. If you can translate the technical know-how into plain questions, it will help users navigate around the inherent complexity have a best-fit setup immediately.

 
” I could try to help you with the LLAMA setup if you’d like. Is there a specific language pair you’d like to use, and what problems are you having exactly? Completely incomprehensible results, or just bad translation output? “

Would appreciate it!

  • I’m working with an English → French setup.
  • I downloaded a LLM called “croissant” I believe (https://huggingface.co/croissantllm/CroissantLLMBase-GGUF), as it touted as being tailor made, but after some prompting it just hallucinated a whole story or repeated stuff infinitely.
  • I then tried the Google Emma (or Gemma?), and it just ran for a minute and errored out.

Just a known working configuration (What model, What parameters to set in GameTranslate) would be great. doesn’t need to be fast. As I could see what a working setup would look like and figure out stuff from there. 👍

Hey pal,

Sorry, I forgot about this. I tried the Croissant model as well as Tower Instruct Mistral, and after some tinkering.. I believe that there isn't any EN-FR LLM out there today that realistically can work in a game format. They'll hallucinate and break often when translating singular words or questions. They seem to work fine for any paragraph type of translations, which is great, but it falls completely flat if you want to use it for anything more than that.

If your main use case is to translate longer sentences or paragraphs and can't get it to work, let me know.

As for the one-shot-fits-all solution, it is a work in progress.. haha. I find it hard to know exactly what to put there and what not to.

I tried another model, the 'llama-translate" found here; https://huggingface.co/dahara1/llama-translate-gguf

It actually seems to handle singular words and paragraphs just fine. However, it is pretty excruciatingly slow on my PC, but then again I only have a 980 ti. Give it a try with this JSON body:

{

    "prompt": "<|begin_of_text|><|start_header_id|>system<|end_header_id|>\nYou are a highly skilled professional translator.<|eot_id|><|start_header_id|>user<|end_header_id|>\n\n### Instruction:\nTranslate %source% to %target%.\n\n### Input:\\n%text%。\n\n### Response\n<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n",

    "max_new_tokens": 256,

    "temperature": 0,

    "top_p": 1,

    "do_sample": false

}