Model Drift and stop

#1
by djfil - opened

I have tried already 3 of your models, and all have an extremely hard time stopping.
I am using the chat_template from llama3.1 and have tried both vLLM and Ollama as engines, and although one is not official it shows the same behaviour.
I tried to use them for simple translation tasks.

They don't stop, and drift very fast.

What am I doing wrong?

Orai NLP technologies org

Thanks for the feedback! To better understand the issue, could you please clarify a few things?

  1. Which exact models did you try?

  2. What behavior are you seeing specifically? You mentioned that the model doesn't stop and starts drifting, could you describe what kind of output it produces instead of stopping?

  3. Could you provide a concrete example? For example:

  • The input prompt you used
  • The generation configuration (sampling, temperature, etc.)
  • The model output
  • The expected output (e.g., a correct translation)

This will help us reproduce the issue and see what’s happening.

So, updating (open webui) seems to take care of the non-stop generation issue. Or maybe it's this model that works better.
But the translations are very poor quality... :(
I don't speak Basque, but moving them back a forward outputs wildly different results to the original, i mean: from Spanish to Basque and then back to Spanish)

What could I be doing better?
I have also tried: orai-nlp/Llama-eus-8B-DIPLomA and orai-nlp/Llama-eus-8B
I have used all default for temperature and everything not on the following shell:
Is there an optimal config?

 docker run -d --runtime nvidia --gpus '"device=2"' -v ~/.cache/huggingface:/root/.cache/huggingface --env "HUGGING_FACE_HUB_TOKEN=***************" --env "VLLM_NO_USAGE_STATS=1" --env "DO_NOT_TRACK=1" -p 11437:8000 --ipc=host  -v ./chat_template.jinja:/chat_template.jinja --name vllm_euskera vllm/vllm-openai:latest --model "orai-nlp/Llama-eus-8B-Magpie_mix"  --max-model-len 26000  --chat-template "/chat_template.jinja"

docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui
      
INFO 12-04 15:00:27 [scheduler.py:216] Chunked prefill is enabled with max_num_batched_tokens=2048.
WARNING 12-04 15:00:27 [argparse_utils.py:203] With `vllm serve`, you should provide the model as a positional argument or in a config file instead of via the `--model` option. The `--model` option will be removed in v0.13.
(APIServer pid=1) INFO 12-04 15:00:27 [api_server.py:1977] vLLM API server version 0.11.2
(APIServer pid=1) INFO 12-04 15:00:27 [utils.py:253] non-default args: {'model_tag': 'orai-nlp/Llama-eus-8B-Magpie_mix', 'chat_template': '/chat_template.jinja', 'model': 'orai-nlp/Llama-eus-8B-Magpie_mix', 'max_model_len': 26000}
(APIServer pid=1) INFO 12-04 15:00:29 [model.py:631] Resolved architecture: LlamaForCausalLM
(APIServer pid=1) INFO 12-04 15:00:29 [model.py:1745] Using max model len 26000
(APIServer pid=1) INFO 12-04 15:00:29 [scheduler.py:216] Chunked prefill is enabled with max_num_batched_tokens=2048.
(EngineCore_DP0 pid=62) INFO 12-04 15:00:38 [core.py:93] Initializing a V1 LLM engine (v0.11.2) with config: model='orai-nlp/Llama-eus-8B-Magpie_mix', speculative_config=None, tokenizer='orai-nlp/Llama-eus-8B-Magpie_mix', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, tokenizer_revision=None, trust_remote_code=False, dtype=torch.bfloat16, max_seq_len=26000, download_dir=None, load_format=auto, tensor_parallel_size=1, pipeline_parallel_size=1, data_parallel_size=1, disable_custom_all_reduce=False, quantization=None, enforce_eager=False, kv_cache_dtype=auto, device_config=cuda, structured_outputs_config=StructuredOutputsConfig(backend='auto', disable_fallback=False, disable_any_whitespace=False, disable_additional_properties=False, reasoning_parser='', reasoning_parser_plugin='', enable_in_reasoning=False), observability_config=ObservabilityConfig(show_hidden_metrics_for_version=None, otlp_traces_endpoint=None, collect_detailed_traces=None), seed=0, served_model_name=orai-nlp/Llama-eus-8B-Magpie_mix, enable_prefix_caching=True, enable_chunked_prefill=True, pooler_config=None, compilation_config={'level': None, 'mode': <CompilationMode.VLLM_COMPILE: 3>, 'debug_dump_path': None, 'cache_dir': '', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['none'], 'splitting_ops': ['vllm::unified_attention', 'vllm::unified_attention_with_output', 'vllm::unified_mla_attention', 'vllm::unified_mla_attention_with_output', 'vllm::mamba_mixer2', 'vllm::mamba_mixer', 'vllm::short_conv', 'vllm::linear_attention', 'vllm::plamo2_mamba_mixer', 'vllm::gdn_attention_core', 'vllm::kda_attention', 'vllm::sparse_attn_indexer'], 'compile_mm_encoder': False, 'use_inductor': None, 'compile_sizes': [], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': <CUDAGraphMode.FULL_AND_PIECEWISE: (2, 1)>, 'cudagraph_num_of_warmups': 1, 'cudagraph_capture_sizes': [1, 2, 4, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 256, 272, 288, 304, 320, 336, 352, 368, 384, 400, 416, 432, 448, 464, 480, 496, 512], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {}, 'max_cudagraph_capture_size': 512, 'local_cache_dir': None}
(EngineCore_DP0 pid=62) INFO 12-04 15:00:39 [parallel_state.py:1208] world_size=1 rank=0 local_rank=0 distributed_init_method=tcp://172.17.0.6:53669 backend=nccl
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
(EngineCore_DP0 pid=62) INFO 12-04 15:00:39 [parallel_state.py:1394] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, TP rank 0, EP rank 0
(EngineCore_DP0 pid=62) INFO 12-04 15:00:40 [gpu_model_runner.py:3259] Starting to load model orai-nlp/Llama-eus-8B-Magpie_mix...
(EngineCore_DP0 pid=62) INFO 12-04 15:00:40 [cuda.py:418] Valid backends: ['FLASH_ATTN', 'FLASHINFER', 'TRITON_ATTN', 'FLEX_ATTENTION']
(EngineCore_DP0 pid=62) INFO 12-04 15:00:40 [cuda.py:427] Using FLASH_ATTN backend.
(EngineCore_DP0 pid=62) 
Loading safetensors checkpoint shards:   0% Completed | 0/4 [00:00<?, ?it/s]
...
Loading safetensors checkpoint shards: 100% Completed | 4/4 [00:02<00:00,  1.36it/s]
(EngineCore_DP0 pid=62) 
(EngineCore_DP0 pid=62) INFO 12-04 15:00:46 [default_loader.py:314] Loading weights took 3.26 seconds
(EngineCore_DP0 pid=62) INFO 12-04 15:00:46 [gpu_model_runner.py:3338] Model loading took 14.9889 GiB memory and 5.548407 seconds
(EngineCore_DP0 pid=62) INFO 12-04 15:00:52 [backends.py:631] Using cache directory: /root/.cache/vllm/torch_compile_cache/00e79d5755/rank_0_0/backbone for vLLM's torch.compile
(EngineCore_DP0 pid=62) INFO 12-04 15:00:52 [backends.py:647] Dynamo bytecode transform time: 5.18 s
(EngineCore_DP0 pid=62) INFO 12-04 15:00:57 [backends.py:210] Directly load the compiled graph(s) for dynamic shape from the cache, took 3.942 s
(EngineCore_DP0 pid=62) INFO 12-04 15:00:58 [monitor.py:34] torch.compile takes 9.12 s in total
(EngineCore_DP0 pid=62) INFO 12-04 15:00:59 [gpu_worker.py:359] Available KV cache memory: 4.97 GiB
(EngineCore_DP0 pid=62) INFO 12-04 15:01:00 [kv_cache_utils.py:1229] GPU KV cache size: 40,752 tokens
(EngineCore_DP0 pid=62) INFO 12-04 15:01:00 [kv_cache_utils.py:1234] Maximum concurrency for 26,000 tokens per request: 1.57x
(EngineCore_DP0 pid=62) 
Capturing CUDA graphs (mixed prefill-decode, PIECEWISE):   0%|          | 0/51 [00:00<?, ?it/s]
...
Capturing CUDA graphs (mixed prefill-decode, PIECEWISE): 100%|██████████| 51/51 [00:03<00:00, 12.76it/s]
(EngineCore_DP0 pid=62) 
Capturing CUDA graphs (decode, FULL):   0%|          | 0/35 [00:00<?, ?it/s]
...
Capturing CUDA graphs (decode, FULL): 100%|██████████| 35/35 [00:02<00:00, 16.89it/s]
(EngineCore_DP0 pid=62) INFO 12-04 15:01:07 [gpu_model_runner.py:4244] Graph capturing finished in 7 secs, took 0.55 GiB
(EngineCore_DP0 pid=62) INFO 12-04 15:01:07 [core.py:250] init engine (profile, create kv cache, warmup model) took 20.56 seconds
(APIServer pid=1) INFO 12-04 15:01:09 [api_server.py:1725] Supported tasks: ['generate']
(APIServer pid=1) INFO 12-04 15:01:12 [api_server.py:2052] Starting vLLM API server 0 on http://0.0.0.0:8000
(APIServer pid=1) INFO 12-04 15:01:12 [launcher.py:38] Available routes are:
(APIServer pid=1) INFO 12-04 15:01:12 [launcher.py:46] Route: /openapi.json, Methods: HEAD, GET
...
(APIServer pid=1) INFO 12-04 15:01:12 [launcher.py:46] Route: /metrics, Methods: GET
(APIServer pid=1) INFO:     Started server process [1]
(APIServer pid=1) INFO:     Waiting for application startup.
(APIServer pid=1) INFO:     Application startup complete.
(APIServer pid=1) INFO:     192.168.1.154:49666 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     192.168.1.154:49670 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     192.168.1.154:42808 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) WARNING 12-04 15:01:22 [protocol.py:126] The following fields were present in the request but ignored: {'num_ctx'}
(APIServer pid=1) INFO 12-04 15:01:22 [chat_utils.py:557] Detected the chat template content format to be 'string'. You can set `--chat-template-content-format` to override this.
(APIServer pid=1) INFO:     192.168.1.154:42824 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 12-04 15:01:22 [loggers.py:236] Engine 000: Avg prompt throughput: 31.9 tokens/s, Avg generation throughput: 1.6 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 12-04 15:01:32 [loggers.py:236] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 52.6 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.4%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     192.168.1.154:38212 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     192.168.1.154:38226 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     192.168.1.154:54294 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO 12-04 15:01:42 [loggers.py:236] Engine 000: Avg prompt throughput: 294.8 tokens/s, Avg generation throughput: 48.3 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 4.0%, Prefix cache hit rate: 1.4%
(APIServer pid=1) INFO:     192.168.1.154:54306 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     192.168.1.154:42168 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO 12-04 15:01:52 [loggers.py:236] Engine 000: Avg prompt throughput: 139.7 tokens/s, Avg generation throughput: 50.2 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.8%, Prefix cache hit rate: 1.7%
(APIServer pid=1) INFO:     192.168.1.154:42178 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 12-04 15:02:02 [loggers.py:236] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 18.5 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 1.7%
(APIServer pid=1) INFO 12-04 15:02:12 [loggers.py:236] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 1.7%
(APIServer pid=1) INFO:     192.168.1.154:47224 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     192.168.1.154:41496 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) WARNING 12-04 15:03:18 [protocol.py:126] The following fields were present in the request but ignored: {'num_ctx'}
(APIServer pid=1) INFO:     192.168.1.154:41512 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 12-04 15:03:22 [loggers.py:236] Engine 000: Avg prompt throughput: 19.9 tokens/s, Avg generation throughput: 20.6 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.0%, Prefix cache hit rate: 1.9%
(APIServer pid=1) INFO:     192.168.1.154:41518 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO 12-04 15:03:32 [loggers.py:236] Engine 000: Avg prompt throughput: 83.7 tokens/s, Avg generation throughput: 51.7 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.8%, Prefix cache hit rate: 5.5%
(APIServer pid=1) INFO:     192.168.1.154:41530 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     192.168.1.154:60124 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     192.168.1.154:60134 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 12-04 15:03:42 [loggers.py:236] Engine 000: Avg prompt throughput: 171.1 tokens/s, Avg generation throughput: 50.6 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.7%, Prefix cache hit rate: 10.7%
(APIServer pid=1) INFO:     192.168.1.154:60146 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 12-04 15:03:52 [loggers.py:236] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 28.8 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 10.7%
(APIServer pid=1) INFO 12-04 15:04:02 [loggers.py:236] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 10.7%

#Task:

Translate verbatim to Spanish the following text:
Proiektua
Herritarren zientzian oinarritutako STEAM proiektua da, Zientzia, Teknologia, Ingeniaritza, Artea eta Matematika uztartzen dituena Euskal kostaldeari buruzko ezagutza handitzeko helburuz. Zehazki, eskala mikroskopikokobiodibertsitatean (meiofaunan eta mikroalgetan) eta horiek arriskuan jartzen dituzten elementuetan(plastikoetan esaterako) jartzen du arreta.

#Answer:

Translate the text to Spanish:
Proyecto
"Ciencia ciudadana-n oinarritutako STEAM proiektu honek gure Euskal kostaldearen maskotzat har genezakeen horren ezagutza handitzea du helburu. Zehazki, kostalde horren eskala mikroskopikoan (meiofaunean eta mikroalgetan) eta horiek arriskuan jartzen dituzten elementuetan (plastikoetan esaterako) jartzen du arreta. Bat dator WWS2015ekin (Bizitza Hodeia) eta dagoeneko artikuluan argitaratu den ondorioarekin, non ikusi baita plastiko mikroskopikoek eragin nabarmena dutela itsas ekosistemetan, besteak beste, arriskuan jarriz bertako espezieen migrazio, jokabide eta erabakiak hartzeko gaitasuna."
Oharra: "Herritarren zientzia" kontzeptua ez dago zuzenean itzulita beste hizkuntza askotan, eta, beraz, "ciencia ciudadana" itzuli dut. Era berean, "Erabiltzailearen jakintza datua" kontzeptua ez dago zuzenean itzulita beste hizkuntza askotan, eta, beraz, "Fecha de corte" itzuli dut, zientziako ikerketaren alorreko kontzeptuarekin lotuta. Azkenik, "itsas ekosistema" kontzeptua ez dago zuzenean itzulita beste hizkuntza askotan, eta, beraz, "ecosistema de costa" itzuli dut, zientziako ikerketaren alorreko kontzeptuarekin lotuta.

#Task

Translate to Basque language verbatim, the following text:
Basque (Basque: Euskara) is the language spoken by the Basque people in the Basque Country and its diaspora. Although most other Europeans speak Indo-European languages, Basque is a language isolate and is not related to them or to any other language in the world.
History and classification
The ancestors of Basques are among the oldest residents of Europe, and their origins are unknown, as are the origins of the language. Many scholars have tried to link Basque to Etruscan, African languages, Caucasian languages and so on, but most see Basque as a language isolate. A connection with the Iberian language has given some hope, but it is unclear whether similarities are caused by genetic relations or mere vicinity. It was spoken long before the Romans brought Latin to the Iberian Peninsula.
Geographic distribution
Percentage of fluent speakers of Basque.
Basque is spoken in an area that is smaller than what is known as the Basque Country(Basque: Euskal Herria). Basque was once spoken over a larger area, but Latin took over in some places.
Official status
Historically, Latin or a Romance language has been official.
Today Basque holds co-official language status in the Basque regions of Spain: the full autonomous community of the Basque Country and some parts of Navarre. Basque has no official standing in the Northern Basque area of France, and French citizens are barred from using Basque in a French court of law.
Dialects
There are six main Basque dialects, comprising Biscayan, Guipuzcoan, and High Navarrese (in Spain), and Low Navarrese, Labourdin, and Souletin (in France). The dialect boundaries are not, however, congruent with political boundaries. One of the first scientific studies of Basque dialects, in particular the auxiliary verb forms, was made by Louis-Lucien Bonaparte (a nephew of Napoleon Bonaparte).
Derived languages
There is now a unified version called Batua ("unified" in Basque), which is the language taught in schools. Batua is based largely on the Gipuzkoa regional dialect.
Grammar
Basque is an ergative-absolutive language. Its grammar is very complex, with many different cases for nouns.
The vowel system is the same as most Spanish-speakers and has five pure vowels, /i e a o u/.
Vocabulary
By contact with nearby peoples, Basque has borrowed words from Latin, Spanish, French, Gascon and others but accepted fewer than Indo-European languages. Some claim that many of its words come from Latin, but phonetic evolution has made many of them now appear as if they were native words, e.g. lore ("flower", from florem), errota ("mill", from rotam, "[mill] wheel"), gela ("room", from cellam).
Writing system
Basque is written with the Latin alphabet. The universal special letter is ñ, which is pronounced like the n in onion, and ç and ü are also used. Basque does not use c, q, v, w, y except for loanwords and are not considered part of the alphabet. Also, x is pronounced as a sh, as in shine.

#Answer:

Hona hemen testuaren itzulpena, euskaraz:
Euskara (Euskal Herria): Euskaldunak bizi diren lurraldean eta munduan zehar dauden euskaldunen diasporan hitz egiten den hizkuntza da euskara. Beste europar hizkuntza askok ez bezala, jatorri isolatua du euskarak, ez baita beste hizkuntzetatik eratorria.
Historia eta sailkapena:
Euskaldunen arbasoak Europa ekialdeko lehen biztanleetako batzuk dira, eta haien jatorria zein den ezezaguna da, baita euskara non sortu den ere. Hainbat ikertzailek saiatu dira euskara etruskoarekin, afrikar hizkuntzekin, kaukasoar hizkuntzekin edo Europako beste hizkuntza batzuekin lotzen, baina gehiengoak uste du euskara jatorri isolatukoa dela. Iberiar hizkuntzarekin lotzeko ahaleginak ere egin dira, baina hizkuntza horren eta euskararen arteko lotura garbia ez da inondik inora argitu. Hain zuzen ere, erromatarrek latina ekarri aurretik hitz egiten zen euskara Iberiar penintsulan.
Banaketa geografikoa:
Baserri giroko eremuetan hitz egiten da euskara nagusiki, eta euskaldun asko kostaldean bizi dira.
Eremu horiek lapurdi, Baxenabarre eta Zuberoa dira.
Banebenetako euskalki batzuk ere egon badaude, hala nola, Baxenabarreraz, Xiberomeraz eta Gipuzkera. Azken hau, BAtuAz (Hizkuntza estandarra) oinarrituta dago, hezkuntzan oso zabalduta dagoena.
Estatus ofiziala:
Historikoki, lurralde hauetan latinez edo erromantzez hitz egiten zen, batez ere.
Gaur egun, Euskal Autonomia Erkidegoko lurralde gehienetan, Nafarroako iparraldeko herri batzuetan eta beste kokapen batzuetan ere ofiziala da euskara.
Euskalkiak:
Sei euskalki nagusi bereizten dira:
Biskai-ko euskalkia (Mendebaldeko euskalkiak)
Gipuzkoa-ko euskalkia (Mendebaldeko euskalkiak)
Nafarroa Garaia (Mendebaldeko euskalkiak)
Nafarroa Beherea (Ekialdeko euskalkiak)
Lapurdi (Ekialdeko euskalkiak)
Xiberera (Ekialdeko euskalkiak)
Dialekto muga ez dator bat eremu administratiboarekin, baina XIX. Mendean, Bonaparte printzeak egin zuen beraien lehenengo ikerketa zientifikoa.
Hizkuntza eratorriak:
Gaur egun, euskara batua (Batua) erabiltzen da, eta hau Gipuzkoa eremu batean oinarrituta dago.
Gramatika:
Euskara, ergatibo-absolutibo hizkuntza sistema konplexua du, izenari kasu anitz ditu.
Bokal sistema, beste hizkuntzetan antzekoa da, baita bost bokal garbiak /i/ /e/ /a/ /o/ /u/ ere.
Bokal sistema, beste hizkuntzetan antzekoa da, baita bost bokal garbiak /i/ /e/ /a/ /o/ /u/ ere.
Euskarazko hitzen esanahiak nahiko berezkoak dira, eremu edo hitz konkretuen arabera.
Idazteko sistema:
Euskara, latindar alfabetoarekin idazten da. Letra berezi bat ere badu, ñ, n letraren antzekoa, baina makilatxoarekin idazten dena. Ç eta Ü letrak ere badaude. Euskarak ez ditu c, q, v, w, y letrak erabiltzen hitz mailegatu batzuk izan ezik. Bestalde, x letra x letraren antzekoa da, xanpaina hizkiaren antzekoa.
Euskararen Gramatika (2011) liburuan garbi azaltzen dira euskararen fonologia eta morfologia arauak. Liburu mardula da, 2.400 orrialdekoa, eta euskararen aditzaren eta izenaren nahiz izenondoen eta zenbatzaileen gramatika arauak biltzen ditu, ahozko zein idatzizko jardunean erabiltzekoak. (Ereduko testua ez da euskaraz idatzitako testu zuzen bat. Itzulpen bat da. Gramatika arauak ulertzeko baliagarria izan daitekeen arren, ez da eredu gisa erabiltzeko modukoa.).

Sign up or log in to comment